diff --git a/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml b/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
index 4e30649fec..e487ba79e7 100644
--- a/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/advanced-networking/chapter.sgml
@@ -1,5483 +1,5483 @@
Цагаанхүүгийн
Ганболд
Орчуулсан
tsgan@hotmail.com
Сүлжээний нэмэлт ойлголтууд
Ерөнхий агуулга
Энэ бүлэг нь хэд хэдэн сүлжээний дэвшилтэт нэмэлт сэдвүүдийг хамрах
болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Гарцууд болон чиглүүлэлтүүдийн үндсүүд.
&ieee; 802.11 болон &bluetooth; төхөөрөмжүүдийг хэрхэн суулгах талаар.
FreeBSD-г гүүр болгож хэрхэн тохируулах талаар.
Дискгүй машин дээр сүлжээгээр ачаалахыг хэрхэн тохируулах талаар.
Сүлжээний хаягийн хөрвүүлэлтийг хэрхэн тохируулах талаар.
PLIP-ээр хоёр компьютерийг хэрхэн холбох талаар.
FreeBSD машин дээр IPv6-г хэрхэн тохируулах талаар.
ATM-ийг хэрхэн тохируулах талаар.
&os; дээр Common Address Redundancy Protocol буюу CARP-ийн
боломжуудыг хэрхэн идэвхжүүлж ашиглах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
/etc/rc скриптүүдийн үндсүүдийг ойлгосон байх.
Сүлжээний үндсэн ухагдахуудын талаар мэдлэгтэй байх.
Шинэ FreeBSD цөм хэрхэн тохируулж суулгах талаар мэдэх
().
Нэмэлт гуравдагч талуудын хийсэн програм хангамжийг хэрхэн
суулгах талаар мэдэх ().
Коранф
Грайфон
Хувь нэмэр болгон оруулсан
Гарцууд болон Чиглүүлэлтүүд
чиглүүлэлт хийх
гарц
дэд сүлжээ
Сүлжээгээр нэг машин нөгөө машиныг олж чаддаг байхын тулд нэгээс нөгөө
уруу хэрхэн хүрэхийг тайлбарласан арга замууд байх ёстой. Үүнийг
routing буюу чиглүүлэлт хийх
гэдэг. Чиглүүлэлт
нь destination буюу зорьсон газар
болон
гарц
хаягийн хослолоор тодорхойлогддог. Хэрэв та энэ
зорьсон газар
уруу очихоор оролдож байгаа бол
энэ гарц
аар холбогдоно гэж энэ хослол нь зааж байгаа юм.
Гурван төрлийн зорьсон газар байдаг: эдгээр нь хостууд, дэд сүлжээнүүд болон
анхдагч
юм. Анхдагч чиглүүлэлт
нь
аль ч чиглүүлэлтэд хамаарахгүй бол ашиглагддаг. Бид анхдагч чиглүүлэлтийн
талаар дараа нь арай дэлгэрэнгүй ярилцах болно. Бас гурван төрлийн гарц байдаг:
эдгээр нь хостууд, интерфэйсүүд (бас links
буюу холбоосууд гэгддэг)
болон Ethernet тоног төхөөрөмжийн хаягууд (MAC хаягууд) юм.
Жишээ
Чиглүүлэлтийн өөр ойлголтуудыг үзүүлэхийн тулд бид netstat-ийн
дараах жишээг ашиглах болно:
&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0
анхдагч чиглүүлэлт
Эхний хоёр мөр нь анхдагч чиглүүлэлт (бид үүнийг дараагийн хэсэгт
авч үзэх болно) болон localhost чиглүүлэлтийг заана.
loopback төхөөрөмж
Энэ чиглүүлэлтийн хүснэгтийн заасан localhost-д зориулж
ашиглах интерфэйс (Netif багана) нь
lo0 бөгөөд энэ нь бас loopback буюу буцах
интерфэйс гэгддэг. Энэ нь уг очих газрын хувьд бүх урсгалыг LAN уруу илгээхийн оронд
дотооддоо үлдээнэ гэж хэлж байгаа бөгөөд энэ нь хаанаас эхэлсэн тэндээ буцаж
очих учраас тэр юм.
Ethernet
MAC хаяг
Дараагийн байгаа зүйл бол 0:e0:-с
эхэлсэн хаягууд юм. Эдгээр нь Ethernet тоног төхөөрөмжийн хаягууд бөгөөд
бас MAC хаягууд гэгддэг. FreeBSD нь локал Ethernet дээр байгаа
ямар ч хостуудыг (жишээн дээрх test0) автоматаар
таньж тэр хостод зориулж шууд түүн уруу ed0
Ethernet интерфэйсээр гарахаар чиглүүлэлт нэмдэг. Энэ төрлийн
чиглүүлэлттэй холбоотой хугацаа (Expire багана)
байдаг бөгөөд энэ нь заасан хугацаанд тэр хостоос бид нар юу ч сонсохгүй үед
ашиглагддаг. Ийм явдал болоход энэ хост уруу заагдсан чиглүүлэлт автоматаар
устгагдах болно. Эдгээр хостууд нь RIP (Routing Information Protocol
буюу чиглүүлэлтийн мэдээллийн протокол) гэгддэг арга замаар танигддаг бөгөөд энэ нь
хамгийн богино замыг тодорхойлсны үндсэн дээр локал хостууд уруу очих чиглүүлэлтийг
олдог.
дэд сүлжээ
FreeBSD нь бас локал дэд сүлжээнд зориулж дэд сүлжээний чиглүүлэлтүүдийг
нэмдэг (10.20.30.255 нь
10.20.30 дэд сүлжээний цацах хаяг бөгөөд
example.com нь тэр дэд сүлжээтэй холбоотой
домэйний нэр юм). link#1 тэмдэглэгээ нь машин дахь
эхний Ethernet картыг заана. Та тэдгээрт зориулж ямар ч нэмэлт интерфэйс
заагдаагүйг харах болно.
Эдгээр бүлгүүд (локал сүлжээний хостууд болон локал дэд сүлжээнүүд) нь
автоматаар routed гэгддэг дэмоноор
тохируулагдсан чиглүүлэлтүүдтэй байна. Хэрэв энэ нь ажиллахгүй байгаа бол
зөвхөн статикаар тодорхойлогдсон (өөрөө хэлбэл илэрхий оруулж өгсөн)
чиглүүлэлтүүд байх болно.
host1 мөр нь бидний хостыг зааж байгаа бөгөөд
түүнийг Ethernet хаягаар нь мэддэг. Бид илгээж байгаа хост болохоор FreeBSD нь
Ethernet интерфэйсээр илгээхийн оронд loopback буюу буцах интерфэйсийг
(lo0) ашиглахаа мэддэг.
Хоёр host2 мөрүүд нь биднийг &man.ifconfig.8;
alias буюу өөр нэр ашиглах үед (Ethernet-ийн талаар дурдсан хэсгээс бид үүнийг яагаад хийдгийг
үзээрэй) учирч болзошгүй зүйлийн жишээ юм. lo0
интерфэйсийн дараа байгаа => тэмдэг нь бид зөвхөн
loopback буюу буцах интерфэйсийг ашиглаад зогсохгүй (энэ хаяг нь бас локал хостыг хэлж
байгаа болохоор) энэ нь ялангуяа alias буюу өөр нэр гэдгийг хэлж байгаа юм.
Ийм чиглүүлэлтүүд нь alias-ийг дэмждэг хост дээр зөвхөн харагдана; локал сүлжээн
дэх бусад бүх хостууд ийм чиглүүлэлтүүдийнхээ хувьд ердөө л link#1
мөртэй байна.
Төгсгөлийн мөр (очих дэд сүлжээ 224) нь
multicast-тай ажиллаж байгаа бөгөөд үүнийг өөр хэсэгт авч үзэх болно.
Төгсгөлд нь чиглүүлэлт бүрийн төрөл бүрийн шинж чанаруудыг Flags
баганаас харж болно. Эдгээр тугуудын зарим болон тэдгээрийн харгалзах утга санаануудыг
доорх богино хүснэгтээр харуулав:
U
Up: Чиглүүлэлт идэвхтэй байна.
H
Host: Чиглүүлэлтийн очих газар нь ганц хост байна.
G
Gateway: Энэ очих газарт зориулж бүгдийг энэ алсын систем уруу
илгээх бөгөөд алсын систем нь тэндээсээ хаашаа илгээхээ олох болно.
S
Static: Энэ чиглүүлэлт нь системээр автоматаар үүсгэгдсэн биш
гараар тохируулагдсан.
C
Clone: Бидний холбогдож байгаа машины хувьд энэ чиглүүлэлт
дээр үндэслэн шинэ чиглүүлэлт үүсгэдэг. Энэ төрлийн чиглүүлэлт нь ихэвчлэн
локал сүлжээнүүдэд ашиглагддаг.
W
WasCloned: Локал сүлжээний (Clone) чиглүүлэлт дээр
үндэслэн автоматаар тохируулагдсан чиглүүлэлтийг заана.
L
Link: Чиглүүлэлт нь Ethernet тоног төхөөрөмжтэй
холбоотой зүйлийг хамарна.
Анхдагч чиглүүлэлтүүд
анхдагч чиглүүлэлт
Локал систем нь алсын хост уруу холболт хийх хэрэгтэй үед мэдэгдэж байгаа зам
байгаа эсэхийг тодорхойлохын тулд энэ нь чиглүүлэлтийн хүснэгтээс шалгадаг. Хэрэв алсын
хост нь бидний хэрхэн хүрэхийг нь мэдэх (клон хийгдсэн чиглүүлэлтүүд) дэд сүлжээнд
байгаа бол систем тэр интерфэйсээр холбогдож болох эсэхийг шалгадаг.
Хэрэв бүх мэдэгдэж байгаа зам амжилтгүй болвол системд сүүлчийн ганц
сонголт анхдагч
чиглүүлэлт үлдэнэ. Энэ чиглүүлэлт нь гарц чиглүүлэлтийн
тусгай төрөл (системд ихэвчлэн ганц байдаг) бөгөөд тугнуудын талбартаа үргэлж
c гэж тэмдэглэгдсэн байдаг. Локал сүлжээн дэх хостын хувьд
энэ гарц нь машины гадаад ертөнц уруу шууд холбогдох зүйлээр (PPP холболт, DSL,
кабель модем, T1, эсвэл өөр сүлжээний интерфэйсээр) тохируулагддаг.
Хэрэв та өөрөө гаднах ертөнц уруу гарц маягаар ажиллаж байгаа машины хувьд анхдагч
чиглүүлэлтийг тохируулж байгаа бол анхдагч чиглүүлэлт нь таны Интернэтийн Үйлчилгээ
Үзүүлэгчийн (ISP) сайт дахь гарц машин болох юм.
Анхдагч чиглүүлэлтүүдийн жишээг харцгаая. Энэ нь нийтлэг тохиргоо юм:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Local1 болон
Local2 хостууд нь таны сайтад байна.
Local1 нь ISP уруу dial-up PPP холболтоор
холбогдсон. Энэ PPP сервер компьютер нь дотоод сүлжээгээр
өөр нэг гарц компьютер уруу гадаад интерфэйсээр ISP-ийн Интернэт өгч байгаа уруу
холбогдсон байна.
Таны машин бүрийн хувьд анхдагч чиглүүлэлтүүд нь ийм болно:
Хост
Анхдагч Гарц
Интерфэйс
Local2
Local1
Ethernet
Local1
T1-GW
PPP
Түгээмэл асуулт нь Бид яагаад Local1-ийн хувьд
түүний холбогдсон ISP-ийн серверийн оронд T1-GW-г анхдагч гарц гэж
тохируулсан бэ?
гэсэн асуулт юм.
PPP интерфэйс нь өөрийн талын холболтондоо ISP-ийн локал сүлжээн дэх хаягийг ашиглаж
байгаа болохоор ISP-ийн локал сүлжээн дэх бусад дурын машинуудад зориулсан чиглүүлэлт
автоматаар үүсгэгдэх болно гэдгийг санаарай. Ийм учраас та T1-GW
машин уруу хэрхэн хүрэхээ аль хэдийн мэдэж байгаа болохоор ISP-ийн сервер уруу урсгал
илгээх дундын алхам шаардлагагүй юм.
Өөрийн локал сүлжээний хувьд X.X.X.1 хаягийг гарц хаяг болгож ашиглах нь
түгээмэл байдаг. Тэгэхээр (адил жишээг ашиглаад) хэрэв таны локал C ангиллын
хаягийн талбар 10.20.30 байсан бөгөөд
таны ISP 10.9.9-г ашиглаж байгаа бол
анхдагч чиглүүлэлтүүд нь ийм байна:
Хост
Анхдагч Чиглүүлэлт
Local2 (10.20.30.2)
Local1 (10.20.30.1)
Local1 (10.20.30.1, 10.9.9.30)
T1-GW (10.9.9.1)
Та /etc/rc.conf файлын тусламжтай
анхдагч чиглүүлэлтийг хялбараар тодорхойлж болно. Бидний жишээн дээр
Local2 машин дээр бид дараах мөрийг
/etc/rc.conf файлд нэмсэн:
defaultrouter="10.20.30.1"
Үүнийг шууд тушаалын мөрөөс &man.route.8; тушаалаар хийж бас
болно:
&prompt.root; route add default 10.20.30.1
Сүлжээний чиглүүлэлтийн хүснэгтүүдийг гараар удирдах талаар дэлгэрэнгүй
мэдээллийг &man.route.8; гарын авлагын хуудаснаас лавлана уу.
Хос гэртэй хостууд
хос гэртэй хостууд
Өөр бас нэг тохиргооны төрлийг бид хэлэлцэх ёстой бөгөөд энэ нь хоёр өөр сүлжээн
дээр байгаа хостын тухай юм. Техникийн хувьд гарц болж байгаа дурын машин
(дээрх жишээн дээр PPP холболтыг ашиглах нь) хос гэртэй хост гэж тооцогддог.
Гэхдээ үнэндээ энэ ухагдахуун нь хоёр дотоод сүлжээнд байгаа машиныг хэлэхэд
зөвхөн ашиглагддаг.
Нэг тохиолдолд машин нь хоёр Ethernet карттай бөгөөд карт бүр
тусдаа дэд сүлжээний хаягтай байна. Өөрөөр, машин нь зөвхөн нэг Ethernet
карттай бөгөөд &man.ifconfig.8; alias хийлт буюу өөр нэрийг ашигладаг байж
болно. Эхнийх нь физикийн хувьд тусдаа хоёр Ethernet сүлжээ ашиглагдаж
байгаа үед хэрэглэгдэх бөгөөд сүүлийнх нь ганц физик сүлжээний сегмент байгаа боловч
логикийн хувьд хоёр тусдаа дэд сүлжээнүүд байгаа үед хэрэглэгддэг.
Аль ч тохиолдолд энэ машин нь нөгөө дэд сүлжээ уруу хүрэх тодорхойлогдсон гарц
(гаднаас ирэх чиглүүлэлт) гэдгийг дэд сүлжээ бүр мэддэг байхаар чиглүүлэлтийн хүснэгтүүд
тохируулагддаг. Хоёр дэд сүлжээний хооронд чиглүүлэгч маягаар ажиллах
машинтай энэ тохиргоо нь бид аль нэг тал уруу эсвэл хоёр талын хоёулангийн хувьд
пакет шүүгч буюу галт хана дээр тулгуурласан аюулгүй байдлын шийдлийг хийх
шаардлагатай үед ихэвчлэн хэрэглэгддэг.
Хоёр интерфэйсийн хооронд пакетуудыг дамжуулдаг байхаар энэ машиныг
байлгахыг хэрэв та хүсвэл энэ боломжийг идэвхжүүлэхийг FreeBSD-д хэлэх
хэрэгтэй. Үүнийг хэрхэн хийх талаар дэлгэрэнгүйг дараагийн хэсгээс үзнэ үү.
Чиглүүлэгч бүтээх нь
чиглүүлэгч
Сүлжээний чиглүүлэгч нь ердөө л нэг интерфэйсээс нөгөө интерфэйс уруу пакетуудыг
дамжуулдаг систем юм. Интернэтийн стандартууд болон сайн инженерчлэлийн туршлага нь
үүнийг FreeBSD дээр анхдагчаар идэвхжүүлсэн байхаас FreeBSD төслийг сэргийлдэг.
&man.rc.conf.5; дахь дараах хувьсагчийг YES болгон
өөрчилснөөр та энэ боломжийг идэвхжүүлж болно:
- gateway_enable=YES # Set to YES if this host will be a gateway
+ gateway_enable="YES" # Set to YES if this host will be a gateway
Энэ тохируулга нь &man.sysctl.8;-ийн хувьсагч net.inet.ip.forwarding-г
1 болгоно. Хэрэв та чиглүүлэлтийг түр зуур зогсоох хэрэгтэй
бол үүнийг түр зуур 0 болгож тохируулж болно.
BGP
RIP
OSPF
Урсгалыг хааш нь илгээхээ мэдэхийн тулд таны шинэ чиглүүлэгчид чиглүүлэлтүүд
хэрэгтэй болно. Хэрэв таны сүлжээ хангалттай хялбар байх юм бол статик
чиглүүлэлтүүд ашиглаж болно. FreeBSD нь стандарт BSD чиглүүлэлтийн дэмон
&man.routed.8; програмтай бас ирдэг. Энэ нь RIP (1 ба 2-р хувилбар) болон
IRDP протоколуудыг дэмждэг. BGP v4, OSPF v2 болон бусад төвөгтэй
чиглүүлэлтийн протоколуудын дэмжлэгийг net/zebra
багц хангадаг. &gated; зэрэг арилжааны
бүтээгдэхүүнүүд бас илүү төвөгтэй сүлжээний чиглүүлэлтийн шийдлүүдэд
зориулагдсан байдаг.
Аль
Хоанг
Хувь нэмэр болгон оруулсан
Статик чиглүүлэлтүүдийг тохируулах нь
Гар тохиргоо
Бид дараах сүлжээтэй байна гэж төсөөлье:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
Энэ тохиолдолд RouterA нь Интернэт уруу
гарах чиглүүлэгч маягаар ажиллаж байгаа бидний &os; машин байна.
Энэ нь анхдагч чиглүүлэлтээ 10.0.0.1
гэж тохируулсан бөгөөд ингэснээр гаднах ертөнц уруу холбогдох боломжийг
олгоно. Бид RouterB нь зөв тохируулагдсан бөгөөд
хаа явах хэрэгцээтэй газраа хэрхэн хүрэхээ мэддэг гэж үзэх болно. (Энэ нь
зураг дээр хялбар юм. Ердөө л RouterB дээр 192.168.1.1-г гарц болгон анхдагч чиглүүлэлт
нэмнэ.)
Хэрэв бид RouterA-ийн чиглүүлэлтийн хүснэгтийг
харвал доор дурдсантай төстэйг харах болно:
&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1
Энэ үеийн чиглүүлэлтийн хүснэгттэй байхад RouterA нь
бидний Internal Net 2 буюу дотоод сүлжээ 2 уруу хүрч чадахгүй байх болно.
Энэ нь 192.168.2.0/24-ийн хувьд
чиглүүлэлтгүй байна. Үүнийг арилгах нэг арга нь гараар чиглүүлэлт нэмэх явдал юм.
Дараах тушаал нь RouterA-ийн чиглүүлэлтийн хүснэгтэд
192.168.1.2-г дараагийн зөрлөг (hop)
болгон ашиглан Internal Net 2 сүлжээг нэмэх болно:
&prompt.root; route add -net 192.168.2.0/24 192.168.1.2
Одоо RouterA нь 192.168.2.0/24
сүлжээн дэх дурын хост уруу хүрч чадна.
Байнгын тохиргоо
Дээрх жишээ нь ажиллаж байгаа систем дээр статик чиглүүлэлтийг
тохируулахад төгс төгөлдөр юм. Гэхдээ нэг асуудал нь таны &os; машин
дахин ачаалахад чиглүүлэлтийн мэдээлэл үлдэхгүй байх явдал юм.
Статик чиглүүлэлтийг байнга байлгахын тулд түүнийг /etc/rc.conf
файлд нэмнэ:
# Add Internal Net 2 as a static route
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"
static_routes тохиргооны хувьсагч нь
зайгаар тусгаарлагдсан үгнүүдийн жагсаалт юм. Үг бүр чиглүүлэлтийн нэрийг
заана. Бидний жишээн дээр static_routes мөрөнд
бид зөвхөн нэг үгтэй байна. Энэ нь internalnet2
юм. Бид дараа нь &man.route.8; тушаалд өгөх бүх тохиргооны нэмэлт өгөгдлүүдийг
route_internalnet2
гэгдсэн тохиргооны хувьсагчийн хамтаар нэмнэ. Бидний жишээний хувьд бид ийм
тушаал ашиглаж болно:
&prompt.root; route add -net 192.168.2.0/24 192.168.1.2
тэгэхээр бидэнд "-net 192.168.2.0/24 192.168.1.2" хэрэгтэй.
Дээр дурдсанаар бид static_routes мөрөнд нэгээс
илүү үгс оруулж болно. Энэ нь бидэнд олон статик чиглүүлэлтүүд үүсгэх боломжийг
олгоно. Дараах мөрүүд нь 192.168.0.0/24 болон 192.168.1.0/24 сүлжээний хувьд статик чиглүүлэлтүүдийг
санаандаа төсөөлсөн чиглүүлэгч дээрээ нэмж байгаа жишээг үзүүлж байна:
static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"
Чиглүүлэлтийн тархалт
чиглүүлэлтийн тархалт
Бид гаднах ертөнц уруу чиглэсэн өөрсдийн чиглүүлэлтүүдийг хэрхэн тодорхойлох
талаар ярилцсан боловч гаднах ертөнц хэрхэн биднийг олох талаар хэлэлцээгүй билээ.
Чиглүүлэлтийн хүснэгтүүдийг тухайн нэг хаягийн талбарын (бидний жишээн дээр
C ангиллын дэд сүлжээ) бүх урсгал тэр сүлжээний тухайн нэг хост уруу илгээгдэж тэр нь
пакетуудыг дотогшоо дамжуулдгаар тохируулж болно гэдгийг бид мэдэж байгаа билээ.
Та өөрийн сайтдаа заагдсан хаягийн талбарыг авах үед таны үйлчилгээ үзүүлэгч
өөрсдийн чиглүүлэлтийн хүснэгтүүдийг таны дэд сүлжээнд зориулагдсан бүх урсгал
таны PPP холбоосоор таны сайт уруу илгээгддэгээр тохируулах болно. Гэхдээ улс даяар
байх бусад сайтууд таны ISP уруу илгээхээ яаж мэдэх вэ?
Бүх заагдсан хаягийн талбаруудыг хянаж Интернэтийн үндсэн сүлжээ уруу холбогдох
холболтын цэгийг тодорхойлдог систем (тараагдсан DNS-ийн мэдээлэлтэй бараг адил)
байдаг. Backbone
буюу гол нуруу (үндсэн сүлжээ)
нь улс даяар болон дэлхий даяар Интернэтийн урсгалыг зөөвөрлөж байдаг гол шугамнууд
юм. Гол нуруу машин бүр мастер хүснэгтүүдийн хуулбартай байдаг бөгөөд эдгээр хүснэгтүүд нь
тухайн нэг сүлжээнд зориулсан урсгалыг онцгой гол нуруу зөөвөрлөгч уруу чиглүүлж
тэндээсээ доош бусад үйлчилгээ үзүүлэгчдээр дамжин таны сүлжээнд хүрдэг.
Үндсэн (гол нуруу) сайтууд уруу зарлаж тэдгээр нь таны сайтын хувьд холболтын цэг
(буюу орох зам) гэж тодорхойлох нь таны үйлчилгээ үзүүлэгчийн үүрэг юм. Үүнийг чиглүүлэлтийн
тархалт гэж нэрлэдэг.
Алдааг олж засварлах
traceroute
Заримдаа чиглүүлэлтийн тархалт асуудалтай бөгөөд зарим нэгэн сайтууд өөр уруу
чинь холбогдож чадахгүй байж болно. Чиглүүлэлт хаана ажиллахгүй болж байгааг
олоход тус болох магадгүй хамгийн ашигтай тушаал нь &man.traceroute.8; тушаал
юм. Хэрэв та алсын машин уруу холбогдож чадахгүй юм шиг байвал (өөрөөр хэлбэл
&man.ping.8; амжилтгүй болвол) энэ нь бас адил ашигтай байдаг.
&man.traceroute.8; тушаалыг таны холбогдохыг оролдож байгаа алсын
хостын нэртэй ажиллуулдаг. Энэ нь гарц хостуудыг оролдлого хийж байгаа замын
хамтаар харуулдаг бөгөөд эцсийн хост уруу хүрэх юм уу эсвэл холболтын асуудлаас болоод
эцсийн хост уруугаа хүрэлгүйгээр ажиллаж дуусдаг.
Дэлгэрэнгүй мэдээллийг &man.traceroute.8;-ийн гарын авлагын хуудаснаас
үзнэ үү.
Multicast чиглүүлэлт хийх
multicast чиглүүлэлт хийх
цөмийн тохируулгууд
MROUTING
FreeBSD нь multicast програмууд болон multicast чиглүүлэлтийг
угаасаа дэмждэг. Multicast програмууд нь FreeBSD-ийн ямар нэг тусгай
тохиргоо шаарддаггүй; програмууд нь шууд л ажилладаг. Multicast
чиглүүлэлт нь дэмжлэгийг цөмд эмхэтгэхийг шаарддаг:
options MROUTING
Мөн multicast чиглүүлэлтийн дэмон &man.mrouted.8; нь
туннелиуд болон DVMRP-г үүсгэхээр
/etc/mrouted.conf файлын тусламжтай
тохируулагдсан байх ёстой. Multicast тохиргооны талаар дэлгэрэнгүй
мэдээллийг &man.mrouted.8;-ийн гарын авлагын хуудаснаас олж
болно.
&os; 7.0-с эхлэн &man.mrouted.8; multicast чиглүүлэлтийн
демон үндсэн системээс хасагдсан. Энэ нь DVMRP
multicast чиглүүлэлтийн протоколыг хэрэгжүүлдэг бөгөөд үүнийг
ихэнх multicast суулгацуудад &man.pim.4;-р ихэвчлэн сольсон
байдаг. Холбогдох &man.map-mbone.8; болон &man.mrinfo.8;
хэрэгслүүд бас хасагдсан. Одоо эдгээр програмууд нь &os;-ийн портын
цуглуулгад net/mrouted портод
байгаа болно.
Loader
Марк
Фонвил
Мюррей
Стөүкли
Утасгүй сүлжээ
утасгүй сүлжээ
802.11
утасгүй сүлжээ
Утасгүй сүлжээний үндсүүд
Ихэнх утасгүй сүлжээнүүд нь &ieee; 802.11-ийн стандартууд дээр үндэслэсэн
байдаг. Үндсэн утасгүй сүлжээ нь 2.4GHz юм уу эсвэл 5GHz-ийн зурваст
цацдаг радио долгионоор холбогддог олон станцуудаас тогтдог (энэ нь орон
нутгаас хамаарч өөр өөр байдаг бөгөөд 2.3GHz-с 4.9GHz-ийн хүрээнд холбоог
идэвхжүүлэхээр өөрчлөгдөж байгаа).
802.11 сүлжээ нь хоёр аргаар зохион байгуулагддаг:
дэд бүтцийн горимд нэг станц мастер маягаар ажиллаж
бусад станцууд нь түүнтэй холбогддог; энэ сүлжээг BSS гэдэг бөгөөд мастер
станц нь хандалтын цэг (access point)(AP) гэгддэг. BSS-т бүх холбоо AP-р
дамждаг; нэг станц өөр нэг утасгүй станцтай холбоо тогтоохыг хүссэн байсан ч гэсэн
мэдэгдлүүд нь AP-р дамжих ёстой байдаг. Хоёр дахь хэлбэрийн сүлжээнд
мастер байдаггүй бөгөөд станцууд нь шууд холбогддог. Энэ сүлжээний хэлбэрийг
IBSS гэдэг бөгөөд бас ad-hoc сүлжээ гэгддэг.
802.11 сүлжээнүүд нь 2.4GHz-ийн зурваст &ieee; 802.11 болон 802.11b
стандартуудаар тодорхойлогдсон протоколуудыг ашиглан эхлэн хийгдэж байсан.
Эдгээр тодорхойлолтууд нь ажиллах давтамжууд, хүрээ хийх болон дамжуулах хурд
(холболт төрөл бүрийн хурдаар хийгдэж болно) зэрэг MAC давхаргын үзүүлэлтүүдийг
агуулдаг. Сүүлд 802.11a стандарт нь өөр дохионы арга замууд болон илүү өндөр дамжуулах
хурдууд зэрэг 5GHz-ийн зурвасын ажиллагааг тодорхойлсон билээ. Мөн дараа нь
802.11b сүлжээнүүдтэй буцаж нийцтэй байхаар 802.11a дохионы хэрэглээ болон
2.4GHz-ийн зурваст дамжуулах арга замуудыг идэвхжүүлж 802.11g стандарт
тодорхойлогдсон байна.
Суурь болсон дамжуулах техникүүдээс гадна 802.11 сүлжээнүүд нь
төрөл бүрийн аюулгүй байдлын арга замуудтай байдаг. Анхдагч 802.11
тодорхойлолтууд нь WEP гэгддэг аюулгүй байдлын энгийн протоколыг
тодорхойлсон билээ. Энэ протокол нь тогтмол, урьдчилан хуваалцсан
түлхүүр болон RC4 криптограф шифр ашиглан сүлжээнд дамжуулагдах өгөгдлийг
кодчилдог. Станцууд нь өөр хоорондоо холбогдохын тулд бүгд нэг тогтмол түлхүүр
дээр зөвшилцөх ёстой. Энэ схемийг амархан эвдэх боломжтойг харуулсан
бөгөөд дамжин өнгөрөх хэрэглэгчдийг сүлжээнд нэгдэхийг зөвлөдөггүйгээс бусад
тохиолдолд одоо ховор ашиглагдах болсон байна. Криптографийн шинэ шифрүүд болон
станцуудыг хандалтын цэгт танин нэвтрүүлж өгөгдлийн холболтыг хийхийн тулд түлхүүрүүдийг
солилцох нэмэлт протоколыг тодорхойлдог &ieee; 802.11i тодорхойлолтоор одоогийн
аюулгүй байдлын практикийг тодорхойлдог. Мөн криптограф түлхүүрүүд нь
үе үе шинэчлэгддэг бөгөөд халдлагын оролдлогуудыг илрүүлэх (ба халдлагын оролдлогуудыг
сөрөх) арга замууд бас байдаг. Утасгүй сүлжээнүүдэд түгээмэл ашиглагддаг
өөр нэг аюулгүй байдлын протоколын тодорхойлолт нь WPA юм. Энэ нь
үйлдвэрлэлийн бүлгийн тодорхойлсон 802.11i-ийн өмнөх протокол
бөгөөд 802.11i-г батлахыг хүлээж байх хугацаанд түр зуурын арга хэмжээ
болох юм. WPA нь 802.11i-д байгаа шаардлагуудын дэд олонлогийг
тодорхойлж хуучин тоног төхөөрөмжүүд дээрх шийдэлд зориулагдан хийгджээ.
Ялангуяа WPA нь анхдагч WEP шифрээс гарсан TKIP шифрийг зөвхөн шаарддаг.
802.11i нь TKIP-ийн хэрэглээг зөвшөөрдөг боловч өгөгдлийг шифрлэхэд зориулж
илүү хүчирхэг шифр болох AES-CCM-ийн дэмжлэгийг бас шаарддаг. (AES шифр нь
WPA-д шаардагддаггүй, учир нь үүнийг хуучин тоног төхөөрөмж дээр хийхэд
тооцооллын хувьд өртөгтэй гэж үздэг.)
Дээрх протоколын стандартуудаас гадна мэдэж байх өөр нэг чухал стандарт
бол 802.11e юм. Энэ нь 802.11 сүлжээнд видео дамжуулах, IP дээгүүрх
дуу (VoIP) зэрэг мультимедиа хэрэглээнүүдэд шаардлагатай протоколуудыг
тодорхойлдог. 802.11i-тай адил 802.11e нь үйлдвэрлэлийн бүлгээс
802.11e-ийн дэд олонлог гэж тодорхойлсон, 802.11e-г батлахыг хүлээж байх
хугацаанд мультимедиа хэрэглээнүүдийг идэвхжүүлэхэд ашиглаж болох
WME (сүүлд WMM) гэгдсэн урьдчилсан тодорхойлолт байдаг.
802.11e болон WME/WMM-ийн талаар мэдэх ёстой хамгийн чухал зүйл нь
утасгүй сүлжээний зэрэглэл тогтоогдсон урсгалын хэрэглээг Quality of Service
(QoS) буюу үйлчилгээний чанарын протоколууд болон өргөтгөсөн зөөвөрлөгчийн
хандалтын протоколуудын тусламжтайгаар идэвхжүүлдэг явдал юм. Эдгээр
протоколуудын зөв шийдэл нь өгөгдлийн өндөр хурдтай тэсрэлт болон зэрэглэл
тогтоогдсон урсгалыг идэвхжүүлдэг.
6.0 хувилбараас эхлээд &os; нь 802.11a, 802.11b, болон 802.11g-г
ашиглан ажилладаг сүлжээнүүдийг дэмждэг. WPA болон 802.11i аюулгүй байдлын
протоколууд нь адилхан (11a, 11b, болон 11g-тэй цуг) дэмжигдсэн байдаг
бөгөөд WME/WMM протоколуудын шаарддаг QoS болон урсгалын зэрэглэлт нь
хязгааргүй тооны утасгүй төхөөрөмжүүдэд дэмжигдсэн байдаг.
Үндсэн тохируулга
Цөмийн тохиргоо
Утасгүй сүлжээг ашиглахын тулд танд утасгүй сүлжээний карт болон
цөмийг тохирох утасгүй сүлжээний дэмжлэгтэйгээр тохируулах хэрэгтэй
болно. Сүүлийнх нь олон модулиудад хуваагддаг. Тэгэхээр танд
зөвхөн өөрийнхөө ашиглах програм хангамжийг тохируулах хэрэгтэй болох
юм.
Танд эхлээд хэрэг болох зүйл нь утасгүй сүлжээний төхөөрөмж
юм. Хамгийн түгээмэл хэрэглэгддэг төхөөрөмжүүд нь Atheros-ийн
хийдэг хэсгүүдийг ашигладаг төхөөрөмжүүд байдаг. Эдгээр төхөөрөмжүүд нь
&man.ath.4; драйвераар дэмжигддэг бөгөөд /boot/loader.conf
файлд дараах мөрийг нэмэхийг шаарддаг:
if_ath_load="YES"
Atheros драйвер нь гурван тусдаа хэсэгт хуваагддаг: эдгээр нь зөв драйвер
(&man.ath.4;), бичил схемийн функцуудыг зохицуулдаг, тоног төхөөрөмжийн
дэмжлэгийн давхарга (&man.ath.hal.4;), болон хүрээнүүдийг дамжуулахын
тулд хэд хэдэн боломжит хурдуудаас (энд ath_rate_sample) сонгох алгоритм юм.
Та энэ дэмжлэгийг модуль хэлбэрээр дуудах үед түүнтэй хамааралтай зүйлс
автоматаар зохицуулагдах болно. Хэрэв танд Atheros төхөөрөмжийн оронд
өөр төхөөрөмж байгаа бол та тэр төхөөрөмжид зориулсан модулийг сонгох юм,
өөрөөр хэлбэл:
if_wi_load="YES"
гэж Intersil Prism хэсгүүд дээр суурилсан төхөөрөмжүүдийн
хувьд хийж өгнө (&man.wi.4; driver).
Энэ баримтын үлдсэн хэсэгт бид &man.ath.4; төхөөрөмжийг ашиглах
бөгөөд жишээнүүд дээрх төхөөрөмжийн нэр таны тохиргооны дагуу
өөрчлөгдөх ёстой. Байгаа утасгүй драйверуудын жагсаалтыг
&man.wlan.4; гарын авлагын хуудасны эхнээс олж болно. Таны
утасгүй төхөөрөмжид зориулагдсан &os;-ийн драйвер байхгүй бол магадгүй
&windows; драйверийг NDIS
драйверийн гүйцэтгэл хялбаршуулагчийн тусламжтай шууд ашиглаж
болох юм.
Төхөөрөмжийн драйверийг тохируулсныхаа дараа та драйверийн шаарддаг
802.11 сүлжээний дэмжлэгийг бас оруулах хэрэгтэй болно. &man.ath.4;
драйверийн хувьд энэ нь ядахдаа &man.wlan.4;,
wlan_scan_ap болон wlan_scan_sta
модулиуд байх бөгөөд &man.wlan.4; модуль нь утасгүй төхөөрөмжийн драйвертай
цуг автоматаар дуудагддаг ба үлдсэн модулиуд нь /boot/loader.conf
файлын тусламжтайгаар ачаалах үед дуудагдах ёстой:
wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"
wlan_scan_ap болон
wlan_scan_sta модулиудыг
&os; 7.X шаарддаг бөгөөд, &os;-ийн бусад хувилбарууд
тэдгээрийг шаарддаггүй.
Үүнтэй цуг таны ашиглах аюулгүй байдлын протоколуудад зориулагдсан криптографын дэмжлэгийг
хийдэг модулиуд хэрэгтэй болно. Эдгээр нь &man.wlan.4; модулиар автоматаар
шаардлагын дагуу дуудагддаг байхаар зориулагдсан боловч одоохондоо эдгээрийг гараар
тохируулах шаардлагатай. Дараах модулиуд байдаг: &man.wlan.wep.4;, &man.wlan.ccmp.4;
болон &man.wlan.tkip.4;. &man.wlan.ccmp.4; болон &man.wlan.tkip.4;
драйверууд нь WPA ба/эсвэл 802.11i аюулгүй байдлын протоколуудыг ашиглахаар
болсон тохиолдолд танд зөвхөн хэрэгтэй байдаг. Хэрэв таны сүлжээ нээлттэй
(өөрөөр хэлбэл шифрлэлтгүй) ажиллах бол танд &man.wlan.wep.4; дэмжлэг
ерөөсөө хэрэггүй. Эдгээр модулиудыг ачаалах үед дуудахын тулд дараах мөрүүдийг
/boot/loader.conf файлд нэмнэ:
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
Системийн эхлүүлэх тохиргооны файлд (өөрөөр хэлбэл
/boot/loader.conf) ийм мэдээлэлтэйгээр та өөрийн
&os; хайрцгийг дахин ачаалах хэрэгтэй. Хэрэв та өөрийн машиныг дахин ачаалахыг
хүсэхгүй байгаа бол та модулиудыг &man.kldload.8;-ийн тусламжтайгаар
гараар дуудаж болно.
Хэрэв та модулиудыг ашиглахыг хүсэхгүй байгаа бол дараах мөрүүдийг өөрийн
цөмийн тохиргооны файлд нэмж эдгээр драйверуудыг цөмд эмхэтгэж болно:
device ath # Atheros IEEE 802.11 wireless network driver
device ath_hal # Atheros Hardware Access Layer
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
device wlan # 802.11 support
device wlan_scan_ap # 802.11 AP mode scanning
device wlan_scan_sta # 802.11 STA mode scanning
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
wlan_scan_ap болон
wlan_scan_sta мөрүүдийг
&os; 7.X шаарддаг бөгөөд, &os;-ийн бусад хувилбарууд
тэдгээрийг шаарддаггүй.
Цөмийн тохиргооны файлдаа ийм мэдээлэлтэйгээр цөмөө дахин эмхэтгээд
өөрийн &os; машиныг дахин ачаалах хэрэгтэй.
Систем ассаны дараа ачаалах үеийн мэдэгдлүүдэд үүнтэй адил
утасгүй төхөөрөмжийн талаар зарим мэдээллийг олж болно:
ath0: <Atheros 5212> mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
ath0: Ethernet address: 00:11:95:d5:43:62
ath0: mac 7.9 phy 4.5 radio 5.6
Дэд бүтцийн горим
Дэд бүтцийн горим буюу BSS горим нь ихэвчлэн ашиглагддаг горим юм.
Энэ горимд утасгүй хандалтын цэгүүд нь утастай сүлжээнд холбогдсон байдаг.
Утасгүй сүлжээ бүр өөрийн нэртэй байдаг бөгөөд энэ нэр нь сүлжээний SSID
гэгддэг. Утасгүй клиентүүд нь утасгүй хандалтын цэгүүдэд холбогддог.
&os; клиентүүд
Хандалтын цэгүүдийг хэрхэн олох вэ
Сүлжээнүүдийг хайхын тулд ifconfig
тушаалыг ашиглана. Энэ хүсэлт нь хэсэг хором болж болох бөгөөд
боломжтой утасгүй давтамж бүр уруу шилжиж, байгаа хандалтын
цэгүүдийг шалгахыг системээс шаарддаг. Зөвхөн супер хэрэглэгч
ийм хайлт эхлүүлж чадна:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 6 54M 29:3 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS WPA
Та хайлт хийхээсээ өмнө интерфэйсээ болгож
тэмдэглэх ёстой. Дараа дараагийн хайлтын хүсэлтүүд интерфэйсийг
up болгож тэмдэглэхийг шаарддаггүй.
Хайлтын хүсэлтийн гаралт олсон BSS/IBSS сүлжээ бүрийг
харуулдаг. Сүлжээний нэр SSID-с
гадна хандалтын цэгийн MAC хаяг болох BSSID-г
бид харах болно. CAPS талбар нь сүлжээ бүрийн
төрөл болон тэнд ажиллаж байгаа станцуудын боломжуудыг заана:
E
Extended Service Set (ESS) буюу өргөтгөсөн үйлчилгээний олонлог.
Станц нь дэд бүтцийн сүлжээний хэсэг гэдгийг харуулна
(IBSS/ad-hoc сүлжээтэй харьцуулах юм бол ).
I
IBSS/ad-hoc сүлжээ. Станц нь ad-hoc сүлжээний хэсэг гэдгийг
харуулна (ESS сүлжээтэй харьцуулах юм бол).
P
Хувийн нууц. BSS-ийн дотор солилцож байгаа өгөгдлийн бүх
хүрээнүүдэд өгөгдлийн нууц байдал шаардлагатай байдаг. Энэ BSS нь
бусадтай солилцох өгөгдлийн хүрээнүүдийг шифрлэх/буцаах
WEP, TKIP эсвэл AES-CCMP зэрэг криптограф ашиглахыг станцаас
шаарддаг гэсэн үг юм.
S
Богино оршил (preamble). Сүлжээ богино оршлуудыг
(802.11b өндөр хурд/DSSS PHY-д тодорхойлогдсоноор богино
оршил нь урт оршилд ашиглагддаг 128 бит талбартай харьцуулах юм бол
56 бит sync талбарыг хэрэглэдэг) ашиглаж байгааг харуулдаг.
s
Богино слот (ангархай) хугацаа. 802.11g сүлжээ хуучин
(802.11b) станцууд байхгүй байгаа учраас богино слот хугацааг
хэрэглэж байгааг харуулна.
Мэдэгдэж байгаа сүлжээнүүдийн одоогийн жагсаалтыг бас доорх
тушаалаар харуулж болно:
&prompt.root; ifconfig ath0 list scan
Энэ мэдээллийг автоматаар хувиргагчаар (adapter) эсвэл гараар
хүсэлтийн тусламжтай шинэчилж болно.
Хуучин өгөгдөл кэшээс автоматаар арилгагдах болохоор хэсэг хугацаа
өнгөрсний дараа нэмэлт хайлтууд хийхгүй л бол энэ жагсаалт багасаж
болох юм.
Үндсэн тохиргоонууд
Энэ хэсэгт &os; дээр утасгүй сүлжээний хувиргагчийг шифрлэлтгүйгээр
хэрхэн ажиллуулахыг харуулсан энгийн жишээг үзүүлнэ. Эдгээр ойлголтуудыг
мэддэг болсныхоо дараа өөрийнхөө утасгүй сүлжээг тохируулахдаа
WPA-г ашиглахыг
бид тууштай зөвлөж байна.
Утасгүй сүлжээг тохируулах гурван үндсэн алхам байдаг: эдгээрт хандалтыг цэгийг
сонгох, өөрийн станцыг таниулж нэвтрүүлэх, болон IP хаягийг тохируулах
багтана. Дараах хэсэг алхам бүрийг хэлэлцэнэ.
Хандалтын цэгийг сонгох нь
Ихэнх тохиолдолд систем өөртөө бүтээгдсэн гүнзгийрүүлэн шалгах аргаа
(heuristic) ашиглан хандалтын цэгийг сонгохыг нь зөвшөөрөх хангалттай байдаг.
Таныг интерфэйсийг up гэж тэмдэглэх үед энэ нь анхдагч байх бөгөөд хэрэв
үгүй бол интерфэйсийг /etc/rc.conf файлд
жагсаан тохируулна, өөрөөр хэлбэл:
ifconfig_ath0="DHCP"
Хэрэв олон хандалтын цэгүүд байгаа бөгөөд та тухайн нэгийг сонгохыг
хүсвэл түүнийг SSID-аар нь сонгож болно:
ifconfig_ath0="ssid your_ssid_here DHCP"
Адил SSID-тай олон хандалтын цэгүүд байгаа орчинд (роуминг-ийг
(тэнүүчлэх) хялбар болгохын тулд ихэвчлэн хийдэг) аль нэг тухайн
төхөөрөмж уруу холбогдох шаардлагатай болж болох юм. Энэ тохиолдолд
та хандалтын цэгийн BSSID-ийг зааж өгч бас болох юм (та бас SSID-ийг
үлдээж болно):
ifconfig_ath0="ssid your_ssid_here bssid xx:xx:xx:xx:xx:xx DHCP"
Системийн хайлт хийх давтамжуудын олонлогийг хязгаарлах зэрэг хандалтын
цэгийн сонголтыг шаардах өөр аргууд байдаг.Та олон зурвасын
утасгүй сүлжээний карттай байх тохиолдолд энэ нь ашигтай байдаг. Ийм
тохиолдолд бүх боломжит сувгуудыг хайх нь цаг хугацаа шаардсан
ажил байдаг. Ажиллагааг тухайн нэг зурвас дээр хязгаарлахын тулд
параметрийг та ашиглаж болно, өөрөөр
хэлбэл:
ifconfig_ath0="mode 11g ssid your_ssid_here DHCP"
нь картыг 2.4GHz давтамжуудын хувьд тодорхойлогдсон 802.11g горимд
картыг ажиллуулах бөгөөд бусад 5GHz-ийн сувгуудыг авч үзэхгүй байх
болно. Үүнийг хийх өөр нэг арга нь ажиллагааг тухайн нэг давтамжид
түгжих параметр болон
хайлт хийхдээ сувгуудын жагсаалтыг заах
параметрийг ашиглах явдал юм. Эдгээр параметрүүдийн талаар дэлгэрэнгүй
мэдээллийг &man.ifconfig.8; гарын авлагын хуудаснаас лавлана уу.
Нэвтрэлт танилт
Хандалтын цэгийг сонгосны дараа таны станц өгөгдөл дамжуулахаа
өмнө өөрийгөө таниулан нэвтрэх хэрэгтэй. Нэвтрэлт танилт хэд хэдэн
аргаар хийгдэж болно. Ашиглагддаг хамгийн түгээмэл схем бол
нээлттэй нэвтрэлт танилт гэгддэг бөгөөд энэ нь дурын станц сүлжээнд нэгдэж
холбогдохыг зөвшөөрдөг. Энэ нь эхний удаа утасгүй сүлжээг тохируулж байхдаа
тестийн зорилгоор таны ашиглах ёстой нэвтрэлт танилт юм. Бусад
схемүүд нь өгөгдлийн урсгал эхлэхээс өмнө криптограф мэдээлэл
солилцоо хийгдэхийг шаарддаг; урьдчилсан хуваалцсан түлхүүрүүд эсвэл
нууц үгс ашиглах эсвэл RADIUS зэрэг арын үйлчилгээнүүдийг ашигладаг
илүү төвөгтэй схемүүд зэргийг дурдаж болно. Ихэнх хэрэглэгчид
нээлттэй нэвтрэлт танилт ашиглах бөгөөд энэ нь анхдагч тохиргоо
байдаг. Дараагийн хамгийн түгээмэл тохируулга бол WPA-PSK бөгөөд энэ нь
бас WPA Personal гэгддэг. Энэ тохируулга доор тайлбарлагдсан
байгаа.
Хэрэв танд хандалтын цэгт зориулсан &apple; &airport; Extreme дээр
суурилсан үндсэн станц байгаа бол WEP түлхүүртэй хамт хуваалцсан түлхүүрийг
тохируулах хэрэгтэй болж болох юм. Үүнийг /etc/rc.conf
файл эсвэл &man.wpa.supplicant.8; програмыг ашиглан хийж болно.
Хэрэв та ганц &airport; үндсэн станцтай бол хандалтыг иймэрхүүгээр хийж
өгч болно:
ifconfig_ath0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"
Ерөнхийдээ хуваалцсан түлхүүр бүхий нэвтрэлт танилтыг
ашиглахаас зайлсхийх хэрэгтэй, яагаад гэвэл WEP түлхүүрийн
материалыг их хүчилсэн хэлбэрээр ашигладаг нь түлхүүрийг
эвдэх боломжийг илүү амархан болгодог. Хэрэв WEP ашиглагдах
ёстой бол (өөрөөр хэлбэл хуучин төхөөрөмжтэй нийцтэй байх үүднээс)
WEP-ийг open буюу нээлттэй нэвтрэлт
танилттай цуг ашиглах нь зүйтэй юм. WEP-ийн талаар дэлгэрэнгүй
мэдээллийг -с олж болно.
DHCP-ээр IP хаяг авах
Хандалтын цэгийг сонгож нэвтрэлт танилтын параметрүүдийг тохируулсны
дараа холбогдохын тулд та IP хаяг авах хэрэгтэй болно. Та өөрийн утасгүй
IP хаягийг ихэвчлэн DHCP-ээр авах болно. Ингэхийн тулд ердөө л
/etc/rc.conf файлыг засварлаж
дээрх жишээн дээр үзүүлсэн шиг өөрийн төхөөрөмжийн тохиргоонд зориулж
DHCP гэж нэмж өгнө:
ifconfig_ath0="DHCP"
Энэ хүрэхэд та утасгүй интерфэйсээ ажиллуулахад бэлэн байх болно:
&prompt.root; /etc/rc.d/netif start
Интерфэйс ажиллаж эхэлсний дараа ath0
интерфэйсийн төлөвийг үзэхийн тулд ifconfig
тушаалыг ашиглана:
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid dlinkap channel 6 bssid 00:13:46:49:41:76
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
status: associated мөр нь
таныг утасгүй сүлжээнд (бидний тохиолдолд dlinkap
сүлжээ уруу) холбогдсон гэдгийг харуулж байна.
bssid 00:13:46:49:41:76 хэсэг нь
таны хандалтын цэгийн MAC хаяг юм; authmode мөр нь
холболт шифрлэгдээгүй гэдгийг танд харуулж байна
(OPEN).
Статик IP хаяг
DHCP серверээс IP хаяг авч чадахгүй тохиолдолд тогтмол IP хаяг
та тавьж болно. Дээр үзүүлсэн DHCP гэсэн
түлхүүр үгийг хаягийн мэдээллээр солих хэрэгтэй. Хандалтын цэгийг
сонгохдоо хэрэглэсэн бусад параметрүүдийг үлдээхээ мартуузай:
ifconfig_ath0="ssid your_ssid_here inet 192.168.1.100 netmask 255.255.255.0"
WPA
WPA (Wi-Fi Protected Access буюу Wi-Fi Хамгаалагдсан Хандалт) нь
WEP-ийн
сул тал болон зөв нэвтрэлт танилтын дутмаг байдлыг арилгах зорилгоор
802.11 сүлжээнүүдэд цуг ашиглагддаг аюулгүй байдлын протокол
юм. WPA нь 802.1X нэвтрэлт танилтын протоколыг хөшүүрэгддэг бөгөөд өгөгдлийн
бүрэн бүтэн байдалд зориулж WEP-ийн оронд хэд хэдэн шифрүүдийн
нэгийг ашигладаг. WPA-ийн шаарддаг цорын ганц шифр бол TKIP
(Temporary Key Integrity Protocol) бөгөөд энэ нь
бүрэн бүтэн байдал шалгалт, хуурамч үйлдлийг илрүүлэлт болон илрүүлсэн
халдлагуудад хариулахад зориулсан арга хэмжээнүүдийг WEP-ийн ашигладаг
үндсэн RC4 шифрт нэмэн өргөтгөсөн шифр юм. TKIP нь хуучин тоног төхөөрөмж дээр
зөвхөн програм хангамжийн өөрчлөлттэйгөөр ажиллахаар хийгдсэн;
энэ нь аюулгүй байдлыг сайжруулдаг боловч халдлагаас бүрэн гүйцэд
хамгаалж чаддаггүй. WPA нь TKIP-г орлуулж AES-CCMP шифрийг
бас заадаг бөгөөд боломжтой тохиолдолд үүнийг хэрэглэхийг
урьтал болгодог; энэ тодорхойлолтод WPA2 (эсвэл RSN) гэсэн
ухагдахуун нийтлэг ашиглагддаг.
WPA нь нэвтрэлт танилт болон шифрлэлтийн протоколуудыг
тодорхойлдог. Нэвтрэлт танилт нь хоёр техникийн аль нэгээр
ихэвчлэн хийгддэг: 802.1X болон RADIUS зэрэг арын
нэвтрэлт танилтын үйлчилгээгээр эсвэл урьдчилан хуваалцсан нууц үг
ашиглан станц болон хандалтын хооронд хамгийн багаар мэдээлэл солилцох
(handshake) замаар хийгддэг. Эхнийх нь ихэвчлэн WPA Enterprise,
сүүлийнх нь WPA Personal гэгддэг. Ихэнх хүмүүс утасгүй сүлжээнд
зориулж арын RADIUS сервер тохируулдаггүй учир WPA-PSK нь
WPA-д зориулсан хамгийн түгээмэл тохиолддог тохиргоо юм.
Утасгүй холболтын хяналт болон нэвтрэлт танилт (түлхүүрийн
тохиролцоо эсвэл сервертэй хийх нэвтрэлт танилт) нь
&man.wpa.supplicant.8; хэрэгслээр хийгддэг. Энэ програм нь
ажиллахын тулд /etc/wpa_supplicant.conf
тохиргооны файл шаарддаг. Энэ файлын талаар дэлгэрэнгүй
мэдээллийг &man.wpa.supplicant.conf.5; гарын авлагын хуудаснаас
олж болно.
WPA-PSK
WPA-PSK нь бас WPA Personal гэгддэг бөгөөд өгөгдсөн нууц үгээс үүсгэгдсэн
pre-shared key буюу (PSK) урьдчилан хуваалцсан түлхүүр дээр суурилдаг
бөгөөд утасгүй сүлжээнд мастер түлхүүр болон ашиглагддаг. Энэ нь
утасгүй хэрэглэгч бүр адил түлхүүрийг хуваалцана гэсэн үг юм.
WPA-PSK нь нэвтрэлт танилтын сервер хэрэглэх боломжгүй эсвэл шаардлагагүй
жижиг сүлжээнүүдэд зориулагдсан юм.
Хангалттай урт, төрөл бүрийн тэмдэгтүүдээс бүтсэн, таах буюу/эсвэл халдах
боломжгүй хэцүү нууц үгсийг үргэлж ашиглах хэрэгтэй.
Эхний алхам нь /etc/wpa_supplicant.conf
файлыг өөрийн сүлжээний SSID болон урьдчилан хуваалцсан түлхүүрээр
тохируулах явдал юм:
network={
ssid="freebsdap"
psk="freebsdmall"
}
Дараа нь бид /etc/rc.conf файлд
утасгүй төхөөрөмжийн тохиргоо WPA-аар хийгдэж IP хаяг DHCP-ээс
авагдана гэдгийг зааж өгнө:
ifconfig_ath0="WPA DHCP"
Дараа нь бид интерфэйсийг босгож ажиллуулна:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
Эсвэл та үүнийг гараар дээрх
/etc/wpa_supplicant.conf ашиглан
хийж доор дурдсан тушаалыг ажиллуулж болно:
&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP]
Дараагийн үйлдэл нь DHCP серверээс IP хаяг авахын тулд
dhclient тушаалыг ажиллуулах явдал
юм:
&prompt.root; dhclient ath0
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
Хэрэв /etc/rc.conf файл нь
ifconfig_ath0="DHCP" мөртэй тохируулагдсан
бол dhclient тушаалыг гараар ажиллуулах
шаардлагагүй, dhclient тушаал нь
түлхүүрүүдийг wpa_supplicant гаргаж
авсны дараа ажиллах болно.
DHCP-ийн хэрэглээ боломжгүй тохиолдолд wpa_supplicant
станцыг таниулж нэвтрүүлсний дараа та статик IP хаяг
тохируулж болно:
&prompt.root; ifconfig ath0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
protmode CTS roaming MANUAL bintval 100
DHCP сервер ашиглагдаагүй үед та анхдагч гарц болон
нэрийн серверийг гараар бас тохируулах хэрэгтэй болно:
&prompt.root; route add default your_default_router
&prompt.root; echo "nameserver your_DNS_server" >> /etc/resolv.conf
EAP-TLS-тэй WPA
WPA-г ашиглах хоёр дахь арга нь 802.1X арын нэвтрэлт танилтын
сервертэй цуг ашиглах явдал бөгөөд энэ тохиолдолд WPA-г
урьдчилан хуваалцсан түлхүүр бүхий аюулгүй байдлын хувьд арай дутуу WPA-Personal-с
ялгахын тулд WPA-Enterprise гэдэг. WPA-Enterprise дахь
нэвтрэлт танилт нь EAP (Extensible Authentication Protocol
буюу өргөтгөсөн нэвтрэлт танилтын протокол) дээр суурилдаг.
EAP нь шифрлэлтийн аргагүй ирдэг бөгөөд харин шифрлэгдсэн туннелийн
дотор EAP-ийг суулгахаар шийдсэн байдаг. EAP нэвтрэлт танилтын аргуудын
олон төрлүүд бүтээгдсэн бөгөөд хамгийн түгээмэл аргууд нь EAP-TLS, EAP-TTLS
болон EAP-PEAP юм.
EAP-TLS (EAP with Transport Layer Security) нь
Wi-Fi alliance-аас
хамгийн түрүүнд батламжлагдсан EAP арга бөгөөд утасгүй ертөнц дэх
маш сайн дэмжигдсэн нэвтрэлт танилтын протокол юм. EAP-TLS нь
ажиллахын тулд гурван сертификат шаарддаг: эдгээр нь CA сертификат (бүх машин
дээр суулгагдсан), таны нэвтрэлт танилтын серверт зориулсан сертификат,
утасгүй клиент бүрд зориулсан клиентийн сертификат юм. Энэ
EAP арга дээр нэвтрэлт танилтын сервер болон утасгүй клиент нь
өөр өөрсдийн сертификатыг бие биендээ үзүүлж нэг нэгнийгээ
танин нэвтрүүлдэг бөгөөд тэд эдгээр сертификатыг танай байгууллагын
сертификатын удирдлага (CA) олгож баталгаажуулсан болохыг
шалгадаг.
Урьдын адил тохиргоог /etc/wpa_supplicant.conf
файлаар хийнэ:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}
Энэ талбар нь сүлжээний нэрийг заана
(SSID).
Энд бид RSN (&ieee; 802.11i) протоколыг ашиглана, өөрөөр хэлбэл,
WPA2.
key_mgmt мөр нь бидний ашиглах
түлхүүр удирдах протоколыг заана. Бидний тохиолдолд энэ нь EAP
нэвтрэлт танилтыг ашиглаж байгаа WPA юм:
WPA-EAP.
Энэ талбарт бид өөрсдийн холболтдоо зориулж EAP
аргыг заана.
identity талбар нь EAP-ийг таниулах
мөрийг агуулна.
ca_cert талбар нь CA сертификат
файлын замыг заана. Энэ файл нь серверийн сертификатыг шалгахад
хэрэгтэй.
client_cert шугам клиентийн
сертификатын файлын замыг өгнө. Энэ сертификат нь сүлжээний
утасгүй клиент бүрийн хувьд давтагдашгүй байна.
private_key талбар нь
клиентийн сертификатын хувийн түлхүүрийн файлын замын нэр
юм.
private_key_passwd талбар нь
хувийн түлхүүрийн нэвтрэх үгийг агуулдаг.
Тэгээд дараах мөрийг
/etc/rc.conf файлд нэмнэ:
ifconfig_ath0="WPA DHCP"
Дараагийн алхам нь rc.d боломжийн
тусламжтай интерфэйсийг босгож ажиллуулах явдал юм:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
Урьд нь үзүүлсний адил интерфэйсийг гараар wpa_supplicant болон
ifconfig тушаалуудаар босгох боломжтой
байдаг.
EAP-TTLS-тэй WPA
EAP-TLS-тэй байхад нэвтрэлт танилтын сервер болон клиентэд
сертификат хэрэгтэй бол EAP-TTLS-тэй (EAP-Tunneled
Transport Layer Security) байхад клиентийн сертификат
нэмэлт сонголт байдаг. Энэ арга нь зорчигчид клиент талдаа
сертификатгүй байсан ч гэсэн нууцлаг SSL туннель үүсгэж чаддаг
зарим нэг аюулгүй вэб сайтуудын хийдэгтэй ойролцоо байдаг.
EAP-TTLS нь нэвтрэлт танилтын өгөгдлийг аюулгүй тээвэрлэхэд
зориулж шифрлэгдсэн TLS туннелийг ашиглах болно.
Тохиргоог /etc/wpa_supplicant.conf
файлаар хийнэ:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}
Энэ талбарт бид өөрийн холболтондоо зориулж
EAP аргыг дурдана.
identity талбар нь шифрлэгдсэн TLS
туннель доторх EAP нэвтрэлт танилтад зориулсан таниулах мөрийг
агуулна.
password талбар нь EAP нэвтрэлт
танилтад зориулсан нэвтрэх үгийг агуулна.
ca_cert талбар нь CA сертификатын
файлын замын нэрийг заана. Энэ файл нь серверийн сертификатыг
шалгахад хэрэгтэй байдаг.
Энэ талбарт бид шифрлэгдсэн TLS туннельд ашиглагдсан
нэвтрэлт танилтын аргыг заана. Бидний тохиолдолд MD5-Challenge-тай
цуг EAP ашиглагдаж байна. inner authentication
дотоод нэвтрэлт танилт үе нь ихэвчлэн phase2
буюу хоёрдугаар
үе гэгддэг.
Дараах мөрийг та /etc/rc.conf файлд
бас нэмэх хэрэгтэй:
ifconfig_ath0="WPA DHCP"
Дараагийн алхам бол интерфэйсийг босгож ажиллуулах явдал юм:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
EAP-PEAP-тэй WPA
PEAP (Protected EAP) нь EAP-TTLS-ийн өөр нэг хувилбар хэлбэрээр
байхаар хийгдсэн юм. Хоёр төрлийн PEAP арга байдаг бөгөөд хамгийн
түгээмэл нь PEAPv0/EAP-MSCHAPv2 юм. Энэ баримтын үлдсэн хэсэгт
PEAP ухагдахууныг тэр EAP аргыг хэлэхдээ хэрэглэх болно. PEAP нь
EAP-TLS-ийн дараа ордог хамгийн их ашиглагддаг EAP стандарт юм,
өөрөөр хэлбэл хэрэв та төрөл бүрийн OS-үүд холилдсон сүлжээтэй бол
PEAP нь EAP-TLS-ийн дараа орох хамгийн ихээр дэмжигдсэн стандарт
байх юм.
PEAP нь EAP-TLS-тэй төстэй байдаг: энэ нь клиент болон
нэвтрэлт танилтын серверийн хооронд нэвтрэлт танилтын
мэдээллийн солилцоог хамгаалах шифрлэгдсэн туннель үүсгэн
клиентүүдийг танин нэвтрүүлэхийн тулд сервер талын сертификатыг
ашигладаг. Аюулгүй байдлын ухагдахуун дахь EAP-TTLS болон PEAP-ийн
хоорондох ялгаа нь PEAP нэвтрэлт танилт хэрэглэгчийн нэрийг
цэвэр текст хэлбэрээр, зөвхөн нууц үгийг шифрлэгдсэн TLS туннелээр
цацдаг явдал юм. EAP-TTLS нь хэрэглэгчийн нэр болон нууц үгт
зориулж TLS туннелийг ашиглах болно.
Бид /etc/wpa_supplicant.conf файлыг
засварлаж EAP-PEAP-тэй холбоотой тохируулгуудыг нэмэх хэрэгтэй болно:
network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
Энэ талбарт бид өөрийн холболтондоо зориулж EAP аргыг
ашиглахаа дурдана.
identity талбар нь шифрлэгдсэн TLS
туннель доторх EAP нэвтрэлт танилтад зориулсан таниулах мөрийг
агуулна.
password талбар нь EAP нэвтрэлт
танилтад зориулсан нэвтрэх үгийг агуулна.
ca_cert талбар нь CA сертификатын
файлын замын нэрийг заана. Энэ файл нь серверийн сертификатыг
шалгахад хэрэгтэй байдаг.
Энэ талбар нь нэвтрэлт танилтын (TLS туннель) эхний үед
зориулсан параметрүүдийг агуулна. Ашигласан нэвтрэлт танилтын
серверээс хамаараад нэвтрэлт танилтад зориулж тусгай хаяг/шошгыг
зааж өгөх хэрэгтэй болно. Ихэнх тохиолдолд хаяг/шошго нь
клиентийн EAP шифрлэлт
байх бөгөөд үүнийг
peaplabel=0 гэж тохируулна.
Илүү мэдээллийг &man.wpa.supplicant.conf.5;
гарын авлагын хуудаснаас олж болно.
Энэ талбарт бид шифрлэгдсэн TLS туннельд ашиглагдсан
нэвтрэлт танилтын аргыг заана. PEAP-ийн хувьд энэ нь
auth=MSCHAPV2 байна.
Доор дурдсаныг /etc/rc.conf файлд
нэмэх ёстой:
ifconfig_ath0="WPA DHCP"
Дараа нь бид интерфэйсийг босгож ажиллуулж болно:
&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
txpowmax 36 protmode CTS roaming MANUAL bintval 100
WEP
WEP (Wired Equivalent Privacy) нь анхдагч 802.11 стандартын
хэсэг юм. Үүнд ямар ч нэвтрэлт танилтын арга байхгүй, энэ нь хандалт
хяналтын зөвхөн сул хэлбэр бөгөөд хялбар эвдэх боломжтой байдаг.
WEP-ийг ifconfig тушаалаар
тохируулж болно:
&prompt.root; ifconfig ath0 ssid my_net wepmode on weptxkey 3 wepkey 3:0x3456789012 \
inet 192.168.1.100 netmask 255.255.255.0
weptxkey нь дамжуулалтад
ямар WEP түлхүүр ашиглахыг хэлж байна. Энд бид гурав дахь
түлхүүрийг ашиглаж байна. Энэ нь хандалтын цэг дэх тохиргоотой
таарах ёстой. Хэрэв та хандалтын цэг дээр ямар түлхүүр ашиглагдаж
байгааг мэдэхгүй байгаа бол энэ утгад 1-ийг
(өөрөөр хэлбэл эхний түлхүүр) ашиглах хэрэгтэй.
wepkey нь сонгогдсон WEP түлхүүрийг
тохируулахыг хэлнэ. Энэ нь index:key
хэлбэрийн байх ёстой бөгөөд индекс өгөгдөөгүй бол түлхүүр
1 тохируулагдана. Энэ нь хэрэв бид
эхний түлхүүрээс өөр түлхүүрүүдийг ашиглах бол индексийг тохируулах
хэрэгтэй гэсэн үг юм.
Та 0x3456789012-г
хандалтын цэг дээр ашиглахаар тохируулсан түлхүүрээр
солих ёстой.
Цаашхи мэдээллийг &man.ifconfig.8; гарын авлагын
хуудаснаас унших нь зүйтэй юм.
wpa_supplicant хэрэгслийг өөрийн утасгүй
интерфэйсийг WEP-тэй тохируулахын тулд бас ашиглаж болно.
Дараах мөрийг /etc/wpa_supplicant.conf
файлд нэмж дээрх жишээг тохируулж болно:
network={
ssid="my_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}
Дараа нь:
&prompt.root; wpa_supplicant -i ath0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76
Ad-hoc горим
IBSS горим буюу бас ad-hoc гэгддэг горим нь цэгээс цэгт холбогдох холболтуудад
зориулагдан хийгдсэн. Жишээ нь A машин болон B
машины хооронд ad-hoc сүлжээ үүсгэхийн тулд бид ердөө л хоёр IP хаяг болон SSID
сонгох хэрэгтэй болно.
A машин дээр:
&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.1 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
adhoc параметр нь интерфэйс IBSS горимд ажиллаж
байгааг харуулж байна.
B машин дээр бид A машиныг
илрүүлж чадах ёстой:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 02:11:95:c3:0d:ac 2 54M 19:3 100 IS
Гаралт дээрх I нь A
машин ad-hoc горимд байгааг батална. Бид одоо B-г
өөр IP хаягтайгаар тохируулах хэрэгтэй:
&prompt.root; ifconfig ath0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect <adhoc> (autoselect <adhoc>)
status: associated
ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
A болон B нь одоо
мэдээлэл солилцоход бэлэн боллоо.
&os; хандах цэг болж ажиллах
&os; нь Access Point (AP) буюу хандах цэг болж ажилласнаар
нэмэлт хандах цэг болсон төхөөрөмж худалдаж авах эсвэл цэгээс цэгийн хооронд холбогдож ажилладаг сүлжээ байгуулах зэрэг нэмэлт үйлдлүүдийг хэмнэж болдог. Хэрэв таны &os; машин сүлжээнээс сүлжээний хооронд дамжуулдаг гүүр болж (жишээ нь интернэтэд холбож) ажиллах шаардлагатай үед илүү тохирдог.
Үндсэн тохиргоо
&os; машинаа хандах цэг болж ажилладгаар тохируулахаасаа өмнө цөмөө сүлжээнийхээ картанд тохируулж тохируулсан байх ёстой. Та мөн хэрэглэх нууцлалын дамжуулах протокол буюу бүртгэлээ нэмэх хэрэгтэй. Нэмэлт мэдээллийг хэсгээс харна уу.
NDIS хэмээгч драйвер орлуулагч болон Виндоусын драйверуудыг ашигласан тохиолдолд хандах цэг болгож ашиглах боломж одоогоор байхгүй. Зөвхөн &os;-н үндсэн утасгүй холболтын драйвер л хандах цэг болох горимыг дэмжиж байгаа.
Утасгүй холболтын сүлжээ дэмжигдэх ажилладаг болж ирэнгүүт нь утасгүй сүлжээний төхөөрөмж тань тухайн машин дээрээ хандах цэг болж ажиллах чадвартайг шалгаж болдог (заримдаа hostap горим гэж нэрлэдэг):
&prompt.root; ifconfig ath0 list caps
ath0=783ed0f<WEP,TKIP,AES,AES_CCM,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,TKIPMIC,WPA1,WPA2,BURST,WME>
Дээрх тушаалын гаралтаас HOSTAP гэдэг үг нь тухай утасгүй сүлжээний карт нь хандах цэг болж ажиллах чадвартай гэдгийг баталж өгч байна. Мөн төрөл бүрийн нууцлалын боломжууд нь WEP, TKIP, WPA2, гэх мэтээр дурдагддаг бөгөөд эдгээр нь хандах цэгийн дамжуулалтаа нууцлахад нь хэрэглэгдэх чухал хэрэгтэй мэдээлэл болж өгдөг.
Одоо утасгүй сүлжээний төхөөрөмж нь hostap горимд шилжиж өөрийн гэсэн SSID дугаар болон IP хаягаа аваад ажиллах боломжтой болно:
&prompt.root; ifconfig ath0 ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0
Дахин ifconfig тушаалаар ath0 төхөөрөмжийн төлөв байдлыг шалгая:
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 38 bmiss 7 protmode CTS burst dtimperiod 1 bintval 100
hostap үг нь уг төхөөрөмжийг тухайн машин дээр хандах цэг болж ажиллаж байгааг нь илэрхийлж байна.
Тухайн төхөөрөмжийн ийм тохируулгыг машин асах үед нь хийгдэхээр тохируулъя гэж бодсон тохиолдолд /etc/rc.conf файлд дараах мөрийг оруулж өгөх хэрэгтэй:
ifconfig_ath0="ssid freebsdap mode 11g mediaopt hostap inet 192.168.0.1 netmask 255.255.255.0"
Тухайн машин дээр хандах цэг нь нэвтрэх үйлдэл болон нууцлах үйлчилгээ ашиглахгүй ажиллах
Хэдийгээр хандах цэгийг нэвтрэх үйлдэл болон холболтын нууцлал ашиглахгүйгээр ажиллуулах нь тийм сайшаалтай биш боловч хандах цэгийн ажиллагааг шалгахын тулд ингэж тохируулж ажиллуулах шаардлага гардаг. Энэ тохируулга нь мөн хэрэглэгчтэй холбогдолтой хүндрэлүүдийг шийдэхэд бас хэрэглэгдэж болно.
Өмнө харуулснаар тохируулагдсан хандах цэгийг өөр утасгүй сүлжээтэй ажиллаж буй машинаас хайлт хийж олж болдог:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 ES
Хэрэглэгч машинаас хандах цэгийг ингэж олоод түүнтэй дараах маягаар холбогдож болно:
&prompt.root; ifconfig ath0 ssid freebsdap inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:11:95:d5:43:62
media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100
WPA нууцлалтай хандах цэг болсон машин
Энэ хэсэгт хандах цэг болж ажиллаж буй &os; машиныг WPA нууцлалын бүртгэл хэрэглэх тухай өгүүлэх болно. WPA нууцлалтай холбогдолтой болон WPA дээр суурилсан хэрэглэгчийн тохиргооны талаар дэлгэрэнгүй мэдээллийг хэсгээс хараарай.
hostapd нэртэй далд чөтгөр нь WPA-г ашиглаж буй хандах цэг дээр хэрэглэгчийг нэвтрүүлэх болон түлхүүр үг солилцох үйлдлүүдэд зориулагдсан байдаг.
Дараах жишээн дээр бүх тохиргооны үйлдлүүд нь хандах цэг болж ажиллаж буй &os; машин дээр гүйцэтгэгдэх болно. Хандах цэг зөв ажиллаж эхэлсэн үед hostapd далд чөтгөрийг автоматаар машиныг ачаалагдах үед зөвшөөрөхийн тулд /etc/rc.conf файлд дараах мөрийг нэмж өгөх хэрэгтэй:
hostapd_enable="YES"
hostapd далд чөтгөрийг тохируулахаасаа өмнө хэсэгт заасан ерөнхий тохиргоог хийсэн эсэхээ магадлаарай.
WPA-PSK
WPA-PSK нь хэрэглэгчид нэвтрэх үйлдэл хийдэг сервер шаардлагагүй юм уу эсвэл боломжгүй болсон бага зэргийг сүлжээнд
зориулагдсан билээ.
Тохиргоо нь /etc/hostapd.conf файлд хийгддэг:
interface=ath0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=1
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
Энэ талбар нь хандах цэг болж ажиллаж буй утасгүй сүлжээний төхөөрөмжийг заадаг.
hostapd-н гүйцэтгэж байгаа явцыг харуулалтын түвшинг заадаг талбар. 1 гэсэн утга нь хамгийн бага түвшинг зааж байгаа билээ.
ctrl_interface гэсэн талбар нь hostapd-д хэрэглэгддэг &man.hostapd.cli.8; төрлийн гадны програмуудтай холбогдоход хэрэглэгддэг домэйн сокет файлуудыг хадгалах сангийн байрлалыг зааж өгдөг. Энд анхдагч утга нь хэрэглэгдсэн байна.
ctrl_interface_group гэсэн мөрөнд хяналт хийдэг төхөөрөмж рүү хандаж болох бүлгийн нэр (энд wheel бүлгийг оруулсан) байна.
Энэ талбарт сүлжээний нэрийг оруулдаг.
wpa талбар нь WPA нууцлалыг зөвшөөрдөг бөгөөд ямар бүртгэл шаардлагатайг нь тодорхойлж өгнө. 1 гэсэн утга нь хандах цэгийг WPA-PSK нууцлалаар тохируулдаг.
wpa_passphrase талбарт ASCII тэмдэгтээр бичигдсэн WPA нэвтрэх үйлдлийн нууц үг агуулагддаг.
Болж өгвөл урт олон үсэгнээс бүтсэн таахад хялбар биш чангавтар нууц үг сонгох хэрэгтэй.
wpa_key_mgmt мөр нь хэрэглэж буй түлхүүр үгний зориулалтанд хамаатай. Манай тохиолдолд энэ нь WPA-PSK байна.
wpa_pairwise талбар нь хандах цэгт тохиромжтой нууц хувиргалтуудыг харуулдаг. Энд TKIP (WPA) ба CCMP (WPA2) хувиргагчид хоёулаа хүлээн зөвшөөрөгдөнө. CCMP хувиргагч нь TKIP-н бас нэг хувилбар бөгөөд боломжтой бол үүнийг илүүд үзэх хэрэгтэй. TKIP хувиргагчийг CCMP хувиргагч хэрэглэх боломжгүй үед л сонгох нь зүйтэй.
Дараагийн алхам нь hostapd-г эхлүүлэх:
&prompt.root /etc/rc.d/hostapd forcestart
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100
Хандах цэг одоо ажиллагаанд орсон бөгөөд хэрэглэгчийн зүгээс холбогдох тухай дэлгэрэнгүй мэдээллийг хэсгээс харна уу. Хандах цэгт холбогдсон төхөөрөмжүүдийг ifconfig ath0 list
sta гэсэн тушаалаар харж болно.
WEP нууцлал хэрэглэж хандах цэг болсон машин
Ямар ч нэвтрэх үйлдэл хэрэглэдэггүй учраас амархан дайралтад өртдөгийн улмаас WEP нууцлалын хувиргуурыг хэрэглэх нь тийм сайшаалтай биш. Зарим худалдаанд хэрэглэгдэж буй утасгүй сүлжээний картууд нь зөвхөн WEP нууцлалын бүртгэл хэрэглэдэг ба ийм картуудыг хандах цэг болгож хэрэглэхээр бол хэрэглэгчийн таних үйлдэл хийхээр тохируулах боломж байхгүй байх болно.
Утасгүй сүлжээний төхөөрөмж тэгэхээр одоо hostap горимд ажиллаж болох бөгөөд шаардлагатай зөв SSID дугаар болон IP хаягаа авах шаардлагатай:
&prompt.root; ifconfig ath0 ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11g mediaopt hostap \
inet 192.168.0.1 netmask 255.255.255.0
weptxkey гэдэг нь дамжуулалтад WEP нууцлал хэрэглэхийг зааж өгч байна. Энд бид гуравдугаар түлхүүрийг (түлхүүрийн дугаар нь 1 гэсэн тоогоор эхэлдэг) хэрэглэсэн байна. Энэ сонголт нь дамжуулагдах өгөгдлийг хувиргахад хэрэглэгддэг.
wepkey гэдэг нь WEP түлхүүрийг сонгосныг зааж байна. Энэ нь index:key гэсэн хэлбэртэй байдаг ба хэрэв эхний дугаарлалт нь заагдаагүй бол түлхүүр нь 1 гэж суугддаг. Тэгэхээр хэрэв эхний түлхүүрээс өөр түлхүүр хэрэглэх шаардлагатай бол эхний дугаарлалтыг нь зааж өгөх шаардлагатай гэсэн үг.
Ингээд дахин ifconfig тушаалыг ашиглаж ath0 төхөөрөмжийн төлөв байдлыг шалгаж болно:
&prompt.root; ifconfig ath0
ath0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100
Өөр утасгүй холбогддог машинаас хандах цэгийг хайж шалгаж болдог:
&prompt.root; ifconfig ath0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPS
Хэрэглэгчийн машинаас хандах цэгийг олоод зөв тохиргоог нь зааж өгөн (дугаар түлхүүр гэх мэт) холбогдох тухай дэлгэрэнгүй зааврыг хэсгээс харна уу.
Алдааг олж засварлах
Хэрэв та утасгүй сүлжээндээ асуудалтай байгаа бол асуудлыг олж
засварлахад туслах хэд хэдэн алхмууд байдаг.
Хайлт хийж байхдаа та хандалтын цэгийг олж харахгүй байгаа бол
та өөрийн утасгүй төхөөрөмжөө тодорхой хэдэн сувгууд дээр
хязгаарлаж тохируулаагүй эсэхээ шалгаарай.
Хэрэв та хандалтын цэгт холбогдож чадахгүй байгаа бол таны станцын
тохиргоо хандалтын цэгийн аль нэгтэй тохирч байгаа эсэхийг шалгаарай.
Үүнд нэвтрэлт танилтын схем болон аюулгүй байдлын протоколууд
хамаарна. Өөрийн тохиргоогоо аль болох хялбаршуулах хэрэгтэй.
Хэрэв та WPA эсвэл WEP зэрэг аюулгүй байдлын протоколыг
ашиглаж байгаа бол хандалтын цэгийг нээлттэй нэвтрэлт танилтад зориулж
ямар нэгэн аюулгүй байдлын хамгаалалтгүй тохируулж урсгал
дамжиж байгаа эсэхийг үзэх хэрэгтэй.
Хандалтын цэгт холбогдсоныхоо дараа &man.ping.8; зэрэг
хялбар хэрэгслүүдийг ашиглаад ямар ч аюулгүй байдлын тохиргоог
оношилж болно.
wpa_supplicant нь илүү дибаг хийх
дэмжлэгтэй байдаг; үүнийг сонголттой
гараар ажиллуулж системийн бүртгэлүүдийг шалгах хэрэгтэй.
Мөн олон доод түвшний дибаг хийх хэрэгслүүд бас байдаг. Та
802.11 протоколын дэмжлэг давхаргад дибаг мэдэгдлүүдийг
/usr/src/tools/tools/net80211 дахь
wlandebug програмыг ашиглан идэвхжүүлж
болно. Жишээ нь:
&prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>
тушаал нь хандалтын цэгүүдийг хайх болон холбоог зохион байгуулах
802.11 протоколын мэдээлэл солилцоонуудыг хийхтэй холбоотой
консолын мэдэгдлүүдийг идэвхжүүлэхэд ашиглагдаж болох юм.
802.11 давхаргын арчилж байдаг олон ашигтай статистикууд бас
байдаг; эдгээр мэдээллүүдийг wlanstats
хэрэгсэл харуулах болно. Эдгээр статистикууд нь 802.11 давхаргаар
танигдсан бүх алдаануудыг таних ёстой. Гэхдээ 802.11 давхаргаас доош
орших төхөөрөмжийн драйверууд дээр танигдсан зарим алдаанууд нь
харуулагдахгүй байж болохыг санаарай. Төхөөрөмжтэй холбоотой
асуудлуудыг оношлохын тулд та драйверийн баримтаас лавлах хэрэгтэй юм.
Хэрэв дээрх мэдээлэл асуудлыг тодруулахад тань туслахгүй байгаа бол
дээрх хэрэгслүүдээс гарсан гаралтыг оруулж асуудлынхаа тайланг илгээгээрэй.
Пав
Лукистник
Бичсэн
pav@FreeBSD.org
Bluetooth
Bluetooth
Танилцуулга
Bluetooth нь 10 метрийн дотор 2.4 GHz давтамжийн лицензжүүлээгүй
зурваст ажиллах хувийн сүлжээнүүд үүсгэхэд зориулагдсан утасгүй технологи юм.
Сүлжээнүүд нь үүрэн утас, гарын цахим жижиг хэрэгслүүд, болон зөөврийн
компьютерууд зэрэг зөөврийн төхөөрөмжүүдээс ad-hoc ихэвчлэн бүрдүүлдэг.
Бусад түгээмэл утасгүй технологиудаас ялгаатай тал нь Wi-Fi, Bluetooth нь
илүү өндөр түвшний үйлчилгээний хувийн тохиргоонуудыг санал болгодог, өөрөөр
хэлбэл FTP-тэй адил файлын серверүүд, файл түлхэх, дуу дамжуулалт,
цуваа шугамын эмуляц зэрэг олныг дурдаж болно.
&os; дэх Bluetooth стек нь Netgraph тогтолцоог ашиглан хийгдсэн
байдаг (&man.netgraph.4;-г үзнэ үү). Олон төрлийн Bluetooth USB хамгаалах
төхөөрөмжүүд (dongle) &man.ng.ubt.4; драйвераар дэмжигдсэн байдаг.
Broadcom BCM2033 бичил схем дээр суурилсан Bluetooth төхөөрөмжүүд нь
&man.ubtbcmfw.4; болон &man.ng.ubt.4; драйверуудаар дэмжигдсэн байдаг.
3Com Bluetooth PC Карт 3CRWB60-A нь &man.ng.bt3c.4; драйвераар
дэмжигдсэн байдаг. Цуваа болон UART дээр суурилсан Bluetooth төхөөрөмжүүд нь
&man.sio.4;, &man.ng.h4.4; болон &man.hcseriald.8; драйверуудаар
дэмжигдсэн. Энэ хэсэг нь USB Bluetooth dongle-ийн хэрэглээг тайлбарлах
болно.
Төхөөрөмжид залгах нь
Анхдагчаар Bluetooth төхөөрөмжийн драйверууд нь цөмийн модуль хэлбэрээр
байдаг. Төхөөрөмжийг залгахаасаа өмнө та драйверийг цөмд дуудаж ачаалах хэрэгтэй
болно:
&prompt.root; kldload ng_ubt
Хэрэв Bluetooth төхөөрөмж системийг эхлүүлэх явцад системд байх юм бол
/boot/loader.conf файлаас модулийг дуудна:
ng_ubt_load="YES"
Өөрийн USB dongle-ийг залга. Консол (эсвэл syslog) дээр доор дурдсантай төстэй
гаралт гарч ирэх болно:
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294
/etc/rc.d/bluetooth скрипт нь
Bluetooth стекийг эхлүүлэх болон зогсооход хэрэглэгддэг. Төхөөрөмжийг
салгахаасаа өмнө стекийг зогсоох нь зөв байдаг, гэхдээ энэ нь (ихэвчлэн) сүйрлийн биш
байдаг. Стекийг эхлүүлж байхад доор дурдсантай төстэй гаралтыг та хүлээн авах
болно:
&prompt.root; /etc/rc.d/bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8
HCI
Host Controller Interface (HCI) буюу Хостын Хянагчийн Интерфэйс
Host Controller Interface (HCI) буюу Хостын Хянагчийн Интерфэйс нь
үндсэн зурвасын хянагч болон холболтын менежерт тушаалын интерфэйсийг,
тоног төхөөрөмжийн төлөв болон хяналтын регистрүүдэд хандалтыг өгдөг байна.
Энэ интерфэйс нь Bluetooth-ийн үндсэн зурвасын боломжуудад хандах нэгэн
хэвийн аргыг олгодог. Хост дээрх HCI давхарга нь өгөгдөл болон тушаалуудыг
Bluetooth тоног төхөөрөмж дээрх HCI firmware-тэй солилцдог.
Хостын Хянагчийн Тээврийн Давхаргын (өөрөөр хэлбэл физик шугам) драйвер нь
HCI давхаргуудад нэг нь нөгөөдөө мэдээлэл солилцох боломжоор хангаж
өгдөг.
hci төрлийн ганц Netgraph цэг ганц Bluetooth
төхөөрөмжийн хувьд үүсдэг. HCI цэг нь Bluetooth төхөөрөмжийн драйверийн цэгт
(доош) болон L2CAP цэгт (дээш) ихэвчлэн холбогддог. Бүх HCI үйлдлүүд нь
төхөөрөмжийн драйверийн цэг дээр биш HCI цэг дээр хийгдэх ёстой. HCI цэгийн
анхдагч нэр нь devicehci
юм. Илүү дэлгэрэнгүй
мэдээллийг &man.ng.hci.4; гарын авлагын хуудаснаас лавлана уу.
Хамгийн нийтлэг ажлуудын нэг нь RF-ийн ойр Bluetooth төхөөрөмжүүдийг
олох явдал юм. Энэ үйлдлийг inquiry буюу
лавлагаа гэдэг. Лавлагаа болон бусад HCI-тэй холбоотой үйлдлүүд нь
&man.hccontrol.8; хэрэгслээр хийгддэг. Доорх жишээ нь ойр орчим ямар
Bluetooth төхөөрөмжүүд байгааг хэрхэн олохыг харуулж байна. Та төхөөрөмжүүдийн
жагсаалтыг хэдхэн секундэд авах ёстой. Алсын төхөөрөмж нь
илрүүлэгдэх горимд байгаа тохиолдолд лавлагаанд зөвхөн
хариулах болно гэдгийг санаарай.
&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]
BD_ADDR нь Bluetooth төхөөрөмжийн
сүлжээний картанд байдаг MAC хаягууд шиг давтагдашгүй хаяг юм. Энэ хаяг нь
төхөөрөмжтэй холбогдоход цаашид хэрэг болдог. BD_ADDR-т хүн уншиж
болохоор нэр өгөх боломжтой байдаг. /etc/bluetooth/hosts
файл нь мэдэгдэж байгаа Bluetooth хостуудын тухай мэдээллийг
агуулдаг. Дараах жишээ нь алсын төхөөрөмжид өгсөн хүн уншиж болохоор нэрийг
хэрхэн авч болохыг үзүүлж байна:
&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39
Хэрэв та лавлагааг алсын Bluetooth төхөөрөмж дээр хийх юм бол энэ нь
таны компьютерийг your.host.name (ubt0)
хэлбэрээр
олох болно. Локал төхөөрөмжид өгсөн нэрийг ямар ч үед өөрчилж болно.
Bluetooth систем нь цэгээс-цэгт-хүрэх (point-to-point)
эсвэл цэгээс-олон-цэгт-хүрэх (point-to-multipoint) холболтын боломжийг олгодог.
Цэгээс-олон-цэгт-хүрэх (point-to-multipoint) холболтод холболт нь
хэд хэдэн Bluetooth төхөөрөмжүүдийн хооронд хуваалцан хэрэглэгддэг. Дараах
жишээ нь локал төхөөрөмжийн хувьд идэвхтэй үндсэн зурвасын холболтуудын
жагсаалтыг хэрхэн авахыг үзүүлж байна:
&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN
connection handle буюу холболтын гар
нь үндсэн зурвасын холболтыг дуусгах шаардлагатай үед ашигтай байдаг.
Үүнийг гараар хийхийг ерөнхийдөө шаарддаггүйг санаарай. Стек нь идэвхгүй байгаа
үндсэн зурвасын холболтуудыг автоматаар дуусгах болно.
&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]
HCI тушаалуудын бүрэн жагсаалыг hccontrol help
гэж лавлана уу. HCI тушаалуудын ихэнх нь супер хэрэглэгчийн зөвшөөрлүүдийг
шаарддаггүй.
L2CAP
Logical Link Control and Adaptation Protocol (L2CAP) буюу
Логик Холболтын Хяналт ба Тааруулах Протокол
Логик Холболтын Хяналт ба Тааруулах Протокол (L2CAP) нь
холболт дээр тулгуурласан болон холболтгүй (connection-oriented and
connectionless) өгөгдлийн үйлчилгээнүүдийг протокол олон хуваагдах (multiplex)
чадвар болон сегмент болгож дахин цуглуулах үйлдэлтэй цуг дээд түвшний
протоколуудад хангаж өгдөг. L2CAP нь уртаараа 64 килобайт хүртэл хэмжээний
L2CAP пакетуудыг дамжуулж хүлээн авахыг өндөр түвшний протоколууд болон
програмуудад зөвшөөрдөг.
L2CAP нь сувгууд гэсэн ойлголт дээр тулгуурладаг.
Суваг нь үндсэн зурвасын холболт дээрх логик холболт юм. Суваг бүр ганц протоколд
олноос нэг уруу чиглэсэн загвараар уягдсан байдаг. Олон сувгууд нэг протоколд
уягдаж болдог боловч нэг сувгийг олон протоколд уяж болдоггүй. Суваг дээр
хүлээн авсан L2CAP пакет бүр зохих дээд түвшний протокол уруу чиглүүлэгддэг.
Олон сувгууд нь нэг үндсэн зурвасын холболтыг хуваалцаж болно.
l2cap төрлийн ганц Netgraph цэг ганц Bluetooth
төхөөрөмжийн хувьд үүсгэгддэг. L2CAP цэг нь Bluetooth HCI цэг (доош) болон
Bluetooth сокетуудад (дээш) ихэвчлэн холбогддог. Илүү дэлгэрэнгүй мэдээллийг
&man.ng.l2cap.4; гарын авлагын хуудаснаас лавлана уу.
Ашигтай тушаал бол бусад хэрэгслүүд уруу ping хийхэд хэрэглэгддэг
&man.l2ping.8; тушаал юм. Зарим нэг Bluetooth шийдлүүд нь тэдэн уруу
илгээсэн бүх өгөгдлийг буцаахгүй байж болох учраас дараах жишээн дээрх
0 bytes гэдэг нь хэвийн юм.
&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0
&man.l2control.8; хэрэгсэл нь L2CAP цэгүүд дээр төрөл бүрийн үйлдлүүдийг
хийдэг. Энэ жишээ нь логик холболтуудын (сувгууд) жагсаалт болон локал төхөөрөмжийн
хувьд үндсэн зурвасын жагсаалтыг хэрхэн авахыг үзүүлж байна:
&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPEN
Өөр нэг оношлогооны хэрэгсэл бол &man.btsockstat.1; юм. Энэ нь
&man.netstat.1;-ийн хийдэгтэй төстэйг хийдэг, гэхдээ зөвхөн Bluetooth сүлжээтэй
холбоотой өгөгдлийн бүтцүүдийн хувьд хийдэг. Доорх жишээ нь дээрх &man.l2control.8;-ийн
нэгэн адил логик холболтыг харуулж байна.
&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN
RFCOMM
RFCOMM Протокол
RFCOMM протокол нь L2CAP протоколын дээгүүр цуваа портуудыг эмуляц хийх
боломжийг хангадаг. Энэ протокол нь ETSI стандарт TS 07.10 дээр суурилсан юм.
RFCOMM нь RS-232 (EIATIA-232-E) цуваа портуудын 9 замыг эмуляц хийх нэмэлт
бэлтгэл бүхий ердийн тээвэрлэх протокол юм. RFCOMM протокол нь хоёр Bluetooth
төхөөрөмжийн хооронд 60 хүртэлх зэрэг холболтуудыг (RFCOMM сувгууд)
дэмждэг.
RFCOMM-ийн хувьд өөр өөр төхөөрөмжүүд (холбооны төгсгөлийн цэгүүд)
дээр ажиллаж байгаа хоёр програм болон тэдгээрийн хоорондын холбооны сегмент
холбооны бүрэн замд ордог. RFCOMM нь төхөөрөмжүүд дээр байгаа цуваа портуудыг ашигладаг
програмуудад зориулагдсан юм. Холбооны сегмент нь нэг төхөөрөмжөөс нөгөө уруу
холбогдсон (шууд холболт) Bluetooth холбоос юм.
RFCOMM нь шууд холболтын үед төхөөрөмжүүдийн хоорондох холболт
эсвэл сүлжээний хувьд төхөөрөмж болон модемийн хоорондох холболтод зөвхөн
санаа тавьдаг. RFCOMM нь нэг талдаа Bluetooth утасгүй технологийг ашиглаж
холбогддог бөгөөд нөгөө талдаа утастай интерфэйсээр хангадаг модулиуд зэрэг бусад
тохиргоонуудыг дэмждэг.
&os; дээр RFCOMM протокол нь Bluetooth сокетуудын давхаргад хийгддэг.
хослох
Төхөөрөмжүүдийг хослох
Анхдагчаар Bluetooth холбоонд нэвтрэлт танилт хийгддэггүй бөгөөд ямар ч
төхөөрөмж ямар ч төхөөрөмжтэй ярилцаж чаддаг. Bluetooth төхөөрөмж (жишээ нь
үүрэн утас) тухайн нэг үйлчилгээг (жишээ нь Dial-Up үйлчилгээ) хангахын тулд
нэвтрэлт танилтыг шаарддаг байхаар байж болно. Bluetooth нэвтрэлт танилт нь
хэвийн үед PIN кодуудаар хийгддэг. Хоёр төхөөрөмжийн
хувьд хэрэглэгч адил PIN кодыг оруулах шаардлагатай. Хэрэглэгч PIN код оруулсны
дараа хоёр төхөөрөмж холболтын түлхүүр үүсгэнэ.
Түүний дараа холболтын түлхүүр нь уг төхөөрөмжүүд дээрээ эсвэл байнгын хадгалалтад
хадгалагдаж болно. Дараагийн удаа хоёр төхөөрөмж нь урьд нь үүсгэсэн холболтын
түлхүүрээ ашиглах болно. Энэ тайлбарласан процедурыг pairing
буюу хослох гэж нэрлэдэг. Ямар нэг төхөөрөмж холболтын
түлхүүрийг гээх юм бол хослолтыг дахин хийх ёстой.
&man.hcsecd.8; дэмон нь бүх Bluetooth нэвтрэлт танилтын хүсэлтүүдтэй
ажиллах үүрэгтэй. Анхдагч тохиргооны файл нь
/etc/bluetooth/hcsecd.conf юм. Дурын 1234
гэж тохируулагдсан PIN кодтой үүрэн утасны жишээ хэсгийг доор үзүүлэв:
device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}
PIN код дээр хязгаарлалт байдаггүй (уртаас гадна). Зарим төхөөрөмжүүдэд
(жишээ нь Bluetooth чихэвчнүүд) тогтмол PIN код цуг бүтээгдсэн байж болох юм.
тохируулга нь &man.hcsecd.8; дэмонг нүүрэнд үлдэж
ажиллахыг заадаг бөгөөд ингэснээр юу болж байгааг харах боломжтой юм.
Хослолыг хүлээн авч алсын төхөөрөмж уруу Bluetooth холболт эхлүүлэхээр
алсын төхөөрөмжийг тохируулна. Алсын төхөөрөмж нь хослол хийлтийг хүлээн авсан гэдгээ
хэлж PIN код хүсэх ёстой. hcsecd.conf файлд
байгаатай адил PIN код оруулаарай. Одоо таны PC болон алсын төхөөрөмж
хосолсон байна. Өөрөөр та хослол хийлтийг алсын төхөөрөмж дээр эхлүүлж болно.
&os; 5.5, 6.1 болон түүнээс шинэ хувилбаруудад hcsecd-г
систем эхлэхэд автоматаар эхлүүлэхийн тулд дараах мөрийг /etc/rc.conf
файлд нэмэн хийж болно:
hcsecd_enable="YES"
hcsecd дэмоны гаралтын жишээг доор
үзүүлэв:
hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
SDP
Service Discovery Protocol (SDP) буюу Үйлчилгээ Илрүүлэх Протокол
Service Discovery Protocol (SDP) буюу Үйлчилгээ Илрүүлэх Протокол нь
сервер програмуудын үзүүлдэг үйлчилгээнүүдийн байгаа эсэх болон тэдгээр
үйлчилгээнүүдийн шинж чанаруудыг илрүүлэх боломжийг клиент програмуудад олгодог.
Үйлчилгээний шинж чанарууд нь санал болгосон үйлчилгээний төрөл эсвэл ангилал болон
үйлчилгээг хэрэглэхэд шаардагдах арга зам юм уу эсвэл протоколын мэдээллийг
агуулдаг.
SDP-д SDP сервер болон SDP клиентийн хоорондох холбоо ордог. Сервер нь
сервертэй холбоотой үйлчилгээнүүдийн шинж чанаруудыг тайлбарладаг үйлчилгээний
бичлэгүүдийн жагсаалтыг арчилж байдаг. Үйлчилгээний бичлэг бүр ганц үйлчилгээний
талаар мэдээллийг агуулдаг. SDP серверийн арчилж байдаг үйлчилгээний бичлэгээс
клиент SDP хүсэлт илгээн мэдээллийг авч болно. Хэрэв клиент эсвэл клиенттэй
холбоотой програм нь үйлчилгээг ашиглахаар шийдвэл үйлчилгээг хэрэглэхийн тулд
үйлчилгээ үзүүлэгч уруу тусдаа холболт нээх ёстой. SDP нь үйлчилгээнүүд болон
тэдгээрийн шинж чанаруудыг илрүүлэх арга замаар хангадаг боловч тэдгээр үйлчилгээнүүдийг
хэрэглэх арга замуудаар хангадаггүй юм.
Хэвийн үед SDP клиент нь үйлчилгээнүүдийн зарим хүссэн онцгой шинжүүд дээр тулгуурлан
үйлчилгээнүүдийг хайдаг. Гэхдээ үйлчилгээнүүдийн талаар урьд нь ямар ч мэдээлэл байхгүй
байхад SDP серверийн үйлчилгээний бичлэгүүдээр тайлбарлагдсан үйлчилгээнүүдийн ямар
төрлүүд байгааг олохыг хүсэх үеүүд байдаг. Санал болгосон дурын үйлчилгээнүүдийг
хайх процесс нь browsing буюу үзэх
гэгддэг.
Bluetooth SDP сервер &man.sdpd.8; болон тушаалын мөрийн клиент
&man.sdpcontrol.8; нь стандарт &os; суулгацад орсон байдаг. Дараах жишээ нь
SDP үзэх хүсэлтийг хэрхэн хийж байгаа харуулж байна.
&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... гэх мэт байна. Үйлчилгээ болгон шинж чанаруудтай байгааг анхаараарай
(жишээ нь RFCOMM суваг). Үйлчилгээнээс хамаараад та зарим нэг шинж чанаруудын
талаар тэмдэглэгээ хийж авах хэрэгтэй болж болох юм. Зарим Bluetooth шийдлүүд нь
үйлчилгээ үзэх боломжийг дэмждэггүй бөгөөд хоосон жагсаалт буцааж болох юм.
Энэ тохиолдолд тодорхой үйлчилгээг хайх боломжтой байдаг. Доорх жишээ нь
OBEX-ийн Обьект Түлхэх (OPUSH) үйлчилгээг хэрхэн хайхыг үзүүлж байна:
&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH
&os; дээр Bluetooth клиентүүдэд үйлчилгээнүүдийг санал болохдоо
&man.sdpd.8; серверийн тусламжтайгаар хийдэг. &os; 5.5, 6.1 болон
түүнээс дээш хувилбарууд дээр /etc/rc.conf файлд
дараах мөрийг нэмж болно:
sdpd_enable="YES"
Дараа нь sdpd дэмонг ингэж эхлүүлж болно:
&prompt.root; /etc/rc.d/sdpd start
Алсын клиентүүдэд Bluetooth үйлчилгээг үзүүлэхийг хүссэн локал серверийн
програм нь үйлчилгээг SDP дэмонд бүртгэх болно. Ийм програмуудын нэг нь
&man.rfcomm.pppd.8; юм. Эхэлснийхээ дараа энэ нь Bluetooth LAN үйлчилгээг
локал SDP дэмонд бүртгэх болно.
Локал SDP серверт бүртгэсэн үйлчилгээнүүдийн жагсаалтыг локал хяналтын сувгаар
SDP-ийн үзэх хүсэлтийг илгээн авч болно:
&prompt.root; sdpcontrol -l browse
Dial-Up сүлжээ (DUN) ба PPP ашиглах Сүлжээний Хандалт (LAN) хувийн тохиргоонууд
Dial-Up сүлжээ (DUN) хувийн тохиргоо нь модемууд болон үүрэн утаснуудтай
ихэвчлэн ашиглагддаг. Энэ хувийн тохиргоонд хамаарах тохиолдлуудыг
доор дурдав:
үүрэн утас эсвэл модемийг компьютер дээрээ
Интернэтийн хандалтын сервер уруу залгаж холбогдох юм уу эсвэл
бусад dial-up үйлчилгээнүүдэд хэрэглэхээр утасгүй модем маягаар ашиглах;
үүрэн утас эсвэл модемийг компьютер дээрээ
өгөгдлийн дуудлагуудыг хүлээн авахад ашиглах.
PPP ашиглах Сүлжээний Хандалт (LAN) хувийн тохиргоо дараах тохиолдлуудад
ашиглагдаж болно:
Ганц Bluetooth төхөөрөмжид зориулсан LAN хандалт;
Олон Bluetooth төхөөрөмжид зориулсан LAN хандалт;
PC-ээс PC уруу (цуваа кабелийн эмуляцаар PPP сүлжээ
ашиглан).
&os; дээр энэ хоёр хувийн тохиргоо нь &man.ppp.8; болон
&man.rfcomm.pppd.8; програмуудаар хийгддэг. &man.rfcomm.pppd.8; нь
RFCOMM Bluetooth холболтыг PPP-ийн ажиллаж чадах ямар нэгэн зүйл болгож хувиргадаг
гүйцэтгэл хялбаршуулагч юм. Аль ч хувийн тохиргоог ашиглахаасаа өмнө
/etc/ppp/ppp.conf файлд шинэ PPP хаяг
үүсгэгдсэн байх ёстой. Жишээнүүдийн талаар &man.rfcomm.pppd.8; гарын
авлагаас лавлана уу.
Дараах жишээн дээр &man.rfcomm.pppd.8; нь DUN RFCOMM суваг дээр
BD_ADDR 00:80:37:29:19:a4 хаягтай алсын төхөөрөмж уруу RFCOMM холболт
хийхэд ашиглагдах болно. RFCOMM сувгийн дугаарыг алсын төхөөрөмжөөс SDP-ээр
авах болно. RFCOMM сувгийг гараар зааж өгөх боломжтой бөгөөд энэ тохиолдолд
&man.rfcomm.pppd.8; нь SDP хүсэлт хийхгүй байх болно. Алсын төхөөрөмж дээр
RFCOMM сувгийг олохын тулд &man.sdpcontrol.8;-г ашиглаарай.
&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup
PPP ашиглах Сүлжээний Хандалтын (LAN) үйлчилгээг хангахын тулд
&man.sdpd.8; сервер ажиллаж байх ёстой. LAN клиентүүдэд зориулсан
шинэ оруулгууд /etc/ppp/ppp.conf файлд
үүсгэгдсэн байх ёстой. Жишээнүүдийн талаар &man.rfcomm.pppd.8;
гарын авлагын хуудаснаас лавлана уу. Төгсгөлд нь RFCOMM PPP серверийг
зөв RFCOMM сувгийн дугаар дээр эхлүүлнэ. RFCOMM PPP сервер нь
Bluetooth LAN үйлчилгээг локал SDP дэмонд автоматаар бүртгэх болно.
Доорх жишээ нь RFCOMM PPP серверийг хэрхэн эхлүүлэхийг үзүүлж байна.
&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-server
OBEX
OBEX Object Push (OPUSH) буюу OBEX Обьект Түлхэх хувийн тохиргоо
OBEX нь хөдөлгөөнт төхөөрөмжүүдийн хооронд энгийн файл дамжуулалт хийхэд
зориулагдсан өргөн ашиглагддаг протокол юм. Үүний гол хэрэглээ нь хэт ягаан туяаны
холбоо бөгөөд зөөврийн компьютерууд эсвэл PDA-уудын хооронд ердийн файл
дамжуулахад, нэрийн хуудас эсвэл цагалбарыг үүрэн утас болон PIM програмуудтай
бусад төхөөрөмжүүдийн хооронд илгээхэд хэрэглэгддэг.
OBEX сервер болон клиент нь гуравдагч талын багц obexapp
хэлбэрээр хийгдсэн байдаг бөгөөд энэ нь comms/obexapp
порт хэлбэрээр байдаг.
OBEX клиент нь OBEX серверт обьектуудыг түлхэж оруулах буюу/эсвэл татахад хэрэглэгддэг.
Обьект нь жишээ нь нэрийн хуудас юм уу эсвэл уулзалт байж болно. OBEX клиент нь
алсын төхөөрөмжөөс SDP-ээр RFCOMM сувгийн дугаарыг авч болно. RFCOMM сувгийн
дугаарын оронд үйлчилгээний нэрийг зааж үүнийг хийж болно. Дэмжигдсэн үйлчилгээний
нэрсэд: IrMC, FTRN, болон OPUSH ордог. RFCOMM сувгийг дугаар болгон зааж
өгөх боломжтой байдаг. Төхөөрөмжийн мэдээллийн обьектийг үүрэн утаснаас татаж
авч байгаа болон шинэ обьектийг (нэрийн хуудас) утасны сан уруу хийж байгаа
OBEX сессийн жишээг доор үзүүлэв.
&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)
OBEX-ийн Обьект Түлхэх үйлчилгээг хангахын тулд &man.sdpd.8; сервер
ажиллаж байх ёстой. Бүх ирж байгаа обьектууд хадгалагдах root хавтас үүсгэгдэх
ёстой. root сангийн анхдагч зам нь /var/spool/obex
байна. Төгсгөлд нь OBEX серверийг зөв RFCOMM сувгийн дугаар дээр эхлүүлнэ.
OBEX сервер нь OBEX-ийн Обьект Түлхэх үйлчилгээг локал SDP дэмонд автоматаар
бүртгүүлэх болно. Доорх жишээ нь OBEX серверийг хэрхэн эхлүүлэхийг харуулж байна.
&prompt.root; obexapp -s -C 10
Serial Port Profile (SPP) буюу Цуваа портын хувийн тохиргоо
Serial Port Profile (SPP) буюу Цуваа портын хувийн тохиргоо нь Bluetooth
төхөөрөмжүүдэд RS232 (эсвэл түүнтэй төстэй) цуваа кабелийн эмуляц хийхийг зөвшөөрдөг.
Энэ хувийн тохиргоонд хамаатай тохиолдол нь кабелийн оронд виртуал цуваа портын
хийсвэрлэлтийн тусламжтай Bluetooth-ийг ашигладаг хуучин програмуудтай харьцдаг.
&man.rfcomm.sppd.1; хэрэгсэл нь цуваа портын хувийн тохиргоог хийдэг.
Псевдо tty нь виртуал цуваа портын хийсвэрлэлт болон ашиглагддаг. Доорх жишээ нь
алсын төхөөрөмжийн цуваа портын үйлчилгээ уруу хэрхэн холбогдохыг харуулж байна.
Та RFCOMM сувгийг заах шаардлагагүйг санаарай - &man.rfcomm.sppd.1; нь
алсын төхөөрөмжөөс SDP-ээр авч чаддаг. Хэрэв та үүнийг дарж өөрчлөхийг хүсвэл
тушаалын мөрөнд RFCOMM сувгийг зааж өгөх хэрэгтэй.
&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...
Холбогдсоны дараа псевдо tty нь цуваа порт шиг ашиглагдаж болно:
&prompt.root; cu -l ttyp6
Алдааг олж засварлах
Алсын төхөөрөмж холбогдож чадахгүй байх
Зарим нэг хуучин Bluetooth төхөөрөмжүүд нь үүрэг шилжүүлэлтийг дэмждэггүй.
Анхдагчаар &os; нь шинэ холболтыг хүлээн авахдаа үүргийг өөрчилж мастер болохыг
оролддог. Үүнийг дэмждэггүй төхөөрөмжүүд нь холбогдож чаддаггүй. Шинэ холболт
хийгдэхэд үүрэг шилжүүлэлт хийгддэгийг санаарай. Тийм учраас алсын төхөөрөмжөөс
үүрэг шилжүүлэлтийг дэмждэг эсэхийг нь асуух боломжгүй юм. Локал тал дээрээ
үүрэг шилжүүлэлтийг хаах HCI тохируулга байдаг:
&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0
Ямар нэгэн юм буруу болоод байна, би яг юу болоод байгааг харж болох уу?
Тиймээ, та харж болно. comms/hcidump порт
хэлбэрээр байдаг гуравдагч талын багц hcidump-г ашиглана.
hcidump хэрэгсэл нь &man.tcpdump.1;-тай төстэй.
Энэ нь Bluetooth пакетуудын агуулгыг терминал дээр харуулж Bluetooth пакетуудыг
файл уруу гаргахад хэрэглэгдэж болно.
Эндрю
Томпсон
Бичсэн
Гүүр
Танилцуулга
IP дэд сүлжээ
гүүр
Заримдаа нэг физик сүлжээг (Ethernet сегмент зэрэг)
IP дэд сүлжээнүүд үүсгэж сегментүүдийг хооронд нь чиглүүлэгчээр
цугт нь холбож ашиглалгүйгээр хоёр тусдаа сүлжээний сегмент болгох нь ашигтай
байдаг. Ийм маягаар хоёр сүлжээг хооронд нь холбодог төхөөрөмжийг
bridge
буюу гүүр
гэдэг.
Хоёр сүлжээний интерфэйс карттай FreeBSD систем гүүр маягаар ажиллаж
чаддаг.
Гүүр нь өөрийн сүлжээний интерфэйс бүрийн төхөөрөмжийн MAC давхаргын
хаягуудыг (Ethernet хаягууд) сурч ажилладаг. Түүний эх болон төгсгөл нь
зөвхөн өөр өөр сүлжээнд байгаа тохиолдолд хоёр сүлжээний хооронд
урсгалыг дамжуулдаг.
Олон талаараа гүүр нь маш цөөн порттой Ethernet шилжүүлэгчтэй адил
юм.
Гүүр хийхэд тохирох тохиолдлууд
Өнөөдөр гүүр ашиглагддаг олон нийтлэг тохиолдол байдаг.
Сүлжээнүүдийг холбох нь
Гүүрний үндсэн үйлдэл нь хоёр буюу түүнээс олон
сүлжээний сегментүүдийг хооронд нь холбох явдал юм.
Кабелийн хязгаарлалт, галт хана хийх эсвэл виртуал машины
интерфэйс зэрэг псевдо сүлжээнүүдийг холбох зэрэг сүлжээний
энгийн төхөөрөмжийн оронд хост дээр тулгуурласан гүүрийг ашиглах
шалтгаан олон байдаг. Гүүр нь бас hostap горимд ажиллаж байгаа
утасгүй сүлжээний интерфэйсийг утастай сүлжээ рүү холбож
хандалтын цэг маягаар ажиллах чадвартай.
Шүүх/урсгал хэлбэржүүлэх галт хана
галт хана
NAT
Нийтлэг тохиолдол бол чиглүүлэлт юм уу эсвэл сүлжээний хаягийн хөрвүүлэлтгүй (NAT)
галт ханын ажиллагаа шаардлагатай тохиолдол юм.
Үүний жишээ нь DSL юм уу эсвэл ISDN-ээр ISP уруугаа холбогдсон
жижиг компани юм. Тэд 13 ширхэг гаднаас хандах боломжтой IP хаягийг
өөрсдийн ISP-ээс авдаг бөгөөд сүлжээндээ 10 PC-тэй. Энэ тохиолдолд
чиглүүлэгч дээр тулгуурласан галт хана нь дэд сүлжээний асуудлуудаас болоод
төвөгтэй байна.
чиглүүлэгч
DSL
ISDN
Гүүр дээр тулгуурласан галт ханыг тохируулж тэдний DSL/ISDN чиглүүлэгчийн
замд ямар нэгэн IP хаяглалтын асуудалгүйгээр тавьж болно.
Сүлжээ сонсогч (Network tap)
Гүүр нь сүлжээний хоёр сегментийг холбож тэдгээрийн
хооронд дамжиж байгаа бүх Ethernet урсгалыг шалгахад
хэрэглэгдэж болно. Энэ нь гүүр интерфэйс дээр
&man.bpf.4;/&man.tcpdump.1; ашиглах юм уу эсвэл
бүх урсгалын хуулбарыг нэмэлт интерфэйс (span порт) уруу илгээх
замаар байж болно.
Түвшин 2 VPN
Хоёр Ethernet сүлжээ нь IP холбоосын дагуу
EtherIP туннель юм уу эсвэл OpenVPN зэрэг &man.tap.4;
дээр тулгуурласан шийдлүүдийн тусламжтайгаар холбогдож болно.
Түвшин 2 Давхцал
Сүлжээ нь хоорондоо олон холбоосоор холбогдож давхацсан замуудыг
хаахын тулд Spanning Tree протоколыг ашиглаж болно.
Ethernet сүлжээ нь зөв ажилладаг байхын тулд хоёр төхөөрөмжийн
хооронд зөвхөн нэг идэвхтэй зам байх ёстой байдаг бөгөөд
Spanning Tree нь давталтыг илрүүлж давхацсан холбоосуудыг
хаалттай төлөвт оруулдаг. Аль нэг идэвхтэй холбоос амжилтгүй
болсон тохиолдолд уг протокол өөр модыг тооцоолж сүлжээн дэх
бүх цэгүүдэд хүрэх холболтыг сэргээхийн тулд аль нэг
хаалттай замыг дахин идэвхжүүлдэг.
Цөмийн тохиргоо
Энэ хэсэг нь &man.if.bridge.4; гүүрний шийдлийн тухай өгүүлэх болно,
netgraph гүүрний драйвер бас байдаг бөгөөд илүү дэлгэрэнгүй мэдээллийг
&man.ng.bridge.4; гарын авлагын хуудаснаас үзнэ үү.
Гүүрний драйвер нь цөмийн модуль бөгөөд &man.ifconfig.8;-оор
гүүр интерфэйсийг үүсгэх үед автоматаар дуудагддаг.
Өөрийн цөмийн тохиргооны файлд device if_bridge
гэж нэмэн гүүрийг цөмд эмхэтгэж болно.
&man.pfil.9; тогтолцоогоор холбогддог галт ханын дурын
багцтай пакет шүүлтийг ашиглаж болдог. Галт хана нь модуль хэлбэрээр
дуудагдах юм уу эсвэл цөмд эмхэтгэгдэж болно.
Гүүр нь &man.altq.4; эсвэл &man.dummynet.4;-тэй цуг
урсгал хэлбэржүүлэгч болон ашиглагдаж болно.
Гүүрийг идэвхжүүлэх нь
Интерфэйс хуулбарлалтыг ашиглан гүүрийг үүсгэдэг.
Гүүрийг үүсгэхийн тулд &man.ifconfig.8;-ийг ашиглана.
Хэрэв гүүрний драйвер цөмд байхгүй бол автоматаар
дуудагддаг.
&prompt.root; ifconfig bridge create
bridge0
&prompt.root; ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0
Гүүр интерфэйс үүсч түүнд санамсаргүйгээр үүсгэгдсэн
Ethernet хаяг автоматаар өгөгддөг. maxaddr болон
timeout нэмэлт өгөгдлүүд нь өөрийн дамжуулах
хүснэгтэд хичнээн MAC хаягийг хадгалах болон сүүлд харагдсанаасаа
хойш оруулга бүр хичнээн секундын дараа устгагдах вэ гэдгийг
хянадаг. Бусад нэмэлт өгөгдлүүд нь Spanning Tree хэрхэн
ажиллахыг хянадаг.
Гишүүн сүлжээний интерфэйсийг гүүрэнд нэмэх хэрэгтэй.
Гүүрний хувьд пакетуудыг дамжуулахын тулд бүх гишүүн интерфэйсүүд
болон гүүр өөрөө идэвхжсэн байх шаардлагатай:
&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up
&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
Гүүр нь одоо Ethernet хүрээнүүдийг fxp0
болон fxp1-ийн хооронд дамжуулж байна.
Гүүр нь ачаалах үед үүсгэгдэх /etc/rc.conf-ийн
тохиргоо ийм байна:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"
Хэрэв гүүр хостод IP хаяг хэрэгтэй бол үүнийг тохируулах
зөв газар бол гишүүн интерфэйсийн аль нэг биш харин
гүүр интерфэйс өөрөө юм. Үүнийг статикаар эсвэл DHCP-ээр
тохируулж болно:
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24
Гүүр интерфэйсд IPv6 хаягийг өгч бас болно.
Галт хана
firewall
Пакет шүүлт идэвхжсэн тохиолдолд гүүр хийгдсэн
пакетууд нь гарч байгаа интерфэйс ба гүүр интерфэйс дээрээ
гарах шүүлтээр, тохирох интерфэйс дээрээ орох
шүүлтээр дамждаг.
Аль ч шатыг хааж болдог. Пакетийн урсгалын
чиглэл нь чухал бол гүүрэн дээр галт хана хийснээс
гишүүн интерфэйсүүд дээр хийсэн нь дээр байдаг.
Гүүр нь IP бус ба ARP пакетуудыг дамжуулах болон IPFW-ийн тусламжтай
хийгдэх хоёрдугаар түвшний галт хананд зориулсан хэд
хэдэн тохируулж болох тохируулгуудтай байдаг. Дэлгэрэнгүй
мэдээллийг &man.if.bridge.4;-ээс үзнэ үү.
Spanning Tree
Гүүрний драйвер нь хуучин Spanning Tree Протоколтой (STP)
нийцтэй Rapid Spanning Tree Protocol (RSTP эсвэл 802.1w) буюу
Түргэн Spanning Tree Протоколыг хийж гүйцэтгэсэн байдаг.
Spanning Tree нь сүлжээн дэх давталтуудыг илрүүлж арилгахад
хэрэглэгддэг. RSTP нь хуучин STP-г бодох юм бол илүү түргэн
нийлэх боломжийг олгодог. Энэ протокол нь давхцал үүсгэлгүйгээр
дамжуулалтад хурдан шилжихийн тулд хөрш шилжүүлэгчидтэйгээ
мэдээлэл солилцдог.
Доор дурдсан хүснэгт нь дэмжигдсэн ажиллах горимуудыг
үзүүлж байна:
OS хувилбар
STP горимууд
Анхдагч горим
&os; 5.4—&os; 6.2
STP
STP
&os; 6.3+
RSTP эсвэл STP
STP
&os; 7.0+
RSTP эсвэл STP
RSTP
Spanning Tree-г stp тушаал ашиглан
гишүүн интерфэйсүүд дээр идэвхжүүлж болно.
Одоо fxp0 болон
fxp1 интерфэйсүүдтэй гүүрний хувьд
STP-г идэвхжүүлэхийн тулд доор дурдсаныг хийнэ:
&prompt.root; ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwarding
Энэ гүүр нь 00:01:02:4b:d4:50 гэсэн
ID болон 32768 гэсэн ээлж бүхий spanning
tree-тэй байна. root id адил байгаа нь
модны хувьд root гүүр гэдгийг илтгэж байна.
Сүлжээн дэх өөр нэг гүүр бас идэвхжсэн spanning tree-тэй
байна:
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwarding
root id 00:01:02:4b:d4:50 priority 32768
ifcost 400000 port 4 мөр нь root гүүр нь
дээр дурдсантай адил 00:01:02:4b:d4:50
бөгөөд энэ гүүрнээс 400000 гэсэн
замын өртөгтэй, root гүүр рүү хүрэх зам нь
fxp0 болох port 4-өөр
дамжина гэдгийг үзүүлж байна.
Гүүрний нэмэлт тохиргоо
Урсгалыг бүтээх/шинэчлэх
Гүүр нь монитор буюу хянах горимыг дэмждэг бөгөөд
энэ горимд пакетууд нь &man.bpf.4; процесс хийгдсэний дараа
хаягдаж цааш процесс хийгдэхгүй эсвэл дамжуулагдахгүй
болдог. Хоёр буюу түүнээс дээш тооны интерфэйсүүдийн оролтыг
нэгтгэж нэг &man.bpf.4; урсгал руу гаргахад үүнийг ашиглаж
болно. RX/TX дохионуудыг гадагш хоёр тусдаа интерфэйсээр дамжуулах
сүлжээний сонсогчид зориулсан урсгал бүтээхэд энэ нь ашигтай
байдаг.
Сүлжээний дөрвөн интерфэйсээс оролтыг нэг урсгал уруу уншихын
тулд:
&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0
Span портууд
Гүүрний хүлээн авсан Ethernet хүрээ бүрийн хуулбар
томилогдсон span порт уруу дамждаг. Гүүрэн дээр тохируулагдсан
span портуудын тоо хязгааргүй байдаг, хэрэв интерфэйс нь
span порт гэж томилогдсон бол энэ нь ердийн гүүрний порт маягаар
ашиглагдах боломжгүй байж болох юм. Энэ нь гүүрний аль нэг span порт руу
холбогдсон өөр нэг хост дээрээс гүүр хийгдсэн сүлжээг идэвхгүйгээр
хулгайгаар үзэхэд их ашигтай байдаг.
Бүх хүрээнүүдийн хуулбарыг fxp4 гэж
нэрлэгдсэн интерфэйс рүү илгээхийн тулд:
&prompt.root; ifconfig bridge0 span fxp4
Хувийн интерфэйсүүд
Хувийн интерфэйс нь бусад хувийн интерфэйсүүд рүү ямар ч урсгалыг
дамжуулдаггүй. Урсгал нь ямар нэг нөхцөлгүйгээр хаагддаг
бөгөөд ARP зэрэг ямар ч Ethernet хүрээнүүд дамжуулагдахгүй.
Хэрэв урсгал нь сонголтын дагуу хаагдах хэрэгтэй бол үүний оронд
галт хана ашиглах ёстой байдаг.
Наалттай интерфэйсүүд
Хэрэв гүүрний гишүүн интерфэйс нь наалттай гэж тэмдэглэгдсэн
бол динамикаар тогтоосон хаягийн оруулгуудыг дамжуулалтын
кэшд ороход статик гэж үздэг. Хаяг өөр интерфэйс дээр үзэгдсэн байлаа ч
гэсэн наалттай оруулгууд нь хэзээ ч кэшээс гарч хуучирдаггүй эсвэл
солигддоггүй. Энэ нь дамжуулалтын хүснэгтийг урьдчилан нутагшуулах
шаардлагагүй болгож статик хаягийн оруулгуудын ашгийг өгдөг бөгөөд
гүүрний тодорхой нэг сегмент дээр тогтоогдсон хэрэглэгчид өөр сегмент
рүү тэнүүчилж чаддаггүй.
Наалттай хаягуудыг ашиглах өөр нэг жишээ нь IP хаягийн
талбарыг дэмий үрэлгүйгээр хэрэглэгчийн сүлжээнүүд нь тусгаарлагдсан
чиглүүлэгчийг үүсгэхийн тулд гүүрийг VLAN-уудтай нэгтгэх
явдал юм. CustomerA нь vlan100
дээр CustomerB нь vlan101
дээр гэж үзье. Гүүр нь 192.168.0.1
гэсэн хаягтай бөгөөд бас интернэт чиглүүлэгч юм.
&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24
Хоёр клиент хоёулаа 192.168.0.1-г өөрсдийн анхдагч
гарц гэж харах бөгөөд гүүрний кэш нь наалттай болохоор
тэд өөрсдийн урсгалыг дундаас нь оруулах гэж нөгөө
хэрэглэгчийнхээ MAC хаягийг ашиглан хуурч чадахгүй юм.
VLAN-уудын хоорондох ямар ч холбоог хувийн интерфэйсүүд
(эсвэл галт хана) ашиглан хааж болно:
&prompt.root; ifconfig bridge0 private vlan100 private vlan101
Хэрэглэгчид нь нэг нэгнээсээ бүр мөсөн тусгаарлагдсан бөгөөд
бүх /24 хаягийн бүсийг дэд сүлжээ
болгон хуваалгүйгээр хуваарилж болно.
Хаягийн хязгаарууд
Интерфэйсийн цаана байгаа давтагдашгүй эх MAC хаягуудын
тоо хязгаартай байж болно. Тэр хязгаарт хүрэх үед мэдэгдэхгүй эх
хаягтай пакетууд нь тухайн үед байгаа хостын кэш оруулгын
хугацаа дуусах юм уу эсвэл устгагдах хүртэл хаягдсаар байх болно.
Доор дурдсан жишээ нь vlan100 дээр
байгаа CustomerA-д зориулж
Ethernet төхөөрөмжүүдийн хамгийн их тоог 10 болгон тохируулж
байна.
&prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10
SNMP монитор хийх
Гүүр интерфэйс болон STP параметрүүдийг &os;-ийн
үндсэн системд орсон байдаг SNMP демоны тусламжтайгаар
монитор хийж болно. Экспорт хийгдсэн гүүрний MIB-үүд нь
IETF-ийн стандартуудыг хангаж байдаг. Тийм болохоор дурын
SNMP клиент эсвэл монитор хийдэг багцыг өгөгдлийг хүлээн авахад
хэрэглэж болно.
Гүүр машин дээр /etc/snmp.config
файлд begemotSnmpdModulePath."bridge" =
"/usr/lib/snmp_bridge.so" мөрийг тайлбар болгосныг
болиулж bsnmpd дэмоныг
эхлүүлэх хэрэгтэй. Community буюу нийгмийн нэрс болон
хандалтын жагсаалтууд зэрэг бусад тохиргоонуудыг өөрчлөх
шаардлагатай байж болно. Дэлгэрэнгүй мэдээллийг
&man.bsnmpd.1; болон &man.snmp.bridge.3;-с үзнэ үү.
Доор дурдсан жишээнүүд нь гүүрэнд хүсэлт илгээхийн тулд
Net-SNMP програм хангамжийг (net-mgmt/net-snmp) ашиглаж байгаа
бөгөөд net-mgmt/bsnmptools портыг бас
ашиглаж болно. Гүүрний MIB тодорхойлолтуудыг
Net-SNMP руу оруулж ирэхийн тулд
SNMP клиент хост дээрээ $HOME/.snmp/snmp.conf файлд
доор дурдсан мөрүүдийг нэмэх хэрэгтэй:
mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIB
Ганц гүүрийг IETF BRIDGE-MIB
(RFC4188)-ээр монитор хийхийн тулд доор дурдсаныг хийнэ
&prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)
dot1dStpTopChanges.0-ийн утга хоёр бөгөөд
энэ нь STP гүүрний бүтэц хоёр удаа өөрчлөгдсөн гэдгийг харуулж
байна. Бүтцийн өөрчлөлт гэдэг нь сүлжээн дэх нэг буюу олон холбоосууд
өөрчлөгдсөн юм уу эсвэл амжилтгүй болсон бөгөөд шинэ мод тооцоологдсон
гэсэн үг юм. dot1dStpTimeSinceTopologyChange.0-ийн
утга ийм зүйл хэзээ болсныг харуулах болно.
Олон гүүрний интерфэйсийг монитор хийхийн тулд
хувийн BEGEMOT-BRIDGE-MIB-г ашиглаж болно:
&prompt.user; snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9
mib-2.dot1dBridge дэд модоор
монитор хийгдэж байгаа гүүрний интерфэйсийг солихын
тулд доор дурдсаныг хийнэ:
&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2
Эндрю
Томпсон
Бичсэн
Холбоос нэгтгэлт ба ослыг тойрон гарах (Link Aggregation and Failover)
lagg
failover
fec
lacp
loadbalance
roundrobin
Танилцуулга
&man.lagg.4; интерфэйс нь fault-tolerance буюу
алдаанд тэсвэртэй байдал болон өндөр хурдны холбоосуудыг
хангах зорилгоор сүлжээний олон интерфэйсүүдийг нэг виртуал интерфэйс
болгон нэгтгэх боломжийг олгодог.
Ажиллагааны горимууд
Failover
Зөвхөн мастер портоор урсгалыг илгээж хүлээн авна. Хэрэв
мастер порт байхгүй болвол дараагийн идэвхтэй порт ашиглагдана.
Эхний нэмэгдсэн интерфэйс нь мастер порт болох бөгөөд үүний дараа
нэмэгдсэнүүд нь ослыг тойрон гарах төхөөрөмжүүд болон ашиглагдах
болно.
&cisco; Fast ðerchannel;
&cisco; Fast ðerchannel; (FEC) нь статик тохируулга
бөгөөд нөгөө талтайгаа нэгтгэлт хийхэд тохиролцдоггүй эсвэл
холбоосыг монитор хийхийн тулд хүрээнүүд солилцдоггүй. Хэрэв шилжүүлэгч
LACP-г дэмждэг бол түүнийг ашиглах ёстой.
FEC нь хэш хийгдсэн протоколын толгойн мэдээлэл дээр үндэслэн
идэвхтэй портуудаар гарч байгаа урсгалыг тэнцвэржүүлж дурын идэвхтэй
портоос ирж байгаа урсгалыг хүлээн авна. Хэш нь Ethernet эхлэл болон
очих хаяг ба хэрэв байгаа бол VLAN хаяг болон IPv4/IPv6 эхлэл болон
очих хаягийг багтаадаг.
LACP
&ieee; 802.3ad Link Aggregation Control Protocol
(LACP) буюу Холбоос Нэгтгэлт Хянах Протокол болон Marker буюу
Тэмдэглэгээний Протокол. LACP нь нэгтгэж болох холбоосуудыг
нөгөө талтай нь нэг буюу хэд хэдэн Link Aggregated
Group буюу Холбоос Нэгтгэгдсэн бүлгүүд (LAG) болгон
тохиролцуулдаг. LAG бүр нь адил хурдтай, гүйцэд дуплекс
ажиллагаанд тохируулсан портуудаас тогтоно. Урсгал нь
LAG дахь портуудын дагуу хамгийн их нийт хурдаар тэнцвэржүүлэгдэх
бөгөөд ихэнх тохиолдолд бүх портуудыг агуулсан зөвхөн нэг LAG байх
болно. Физик холболт өөрчлөгдөхөд Холбоос Нэгтгэлт шинэ тохиргоо
уруу хурдан шилжих болно.
LACP нь хэш хийгдсэн протоколын толгойн мэдээлэл дээр үндэслэн
идэвхтэй портуудаар гарч байгаа урсгалыг тэнцвэржүүлж дурын идэвхтэй
портоос ирж байгаа урсгалыг хүлээн авна. Хэш нь Ethernet эхлэл болон
очих хаяг ба хэрэв байгаа бол VLAN хаяг болон IPv4/IPv6 эхлэл болон
очих хаягийг багтаадаг.
Loadbalance
Энэ нь FEC горимын хуулбар юм.
Round-robin
Тойрон эргэх хуваарилалтыг ашиглан гарч байгаа урсгалыг
бүх идэвхтэй портуудаар тарааж дурын идэвхтэй портоос ирж
байгаа урсгалыг хүлээн авна. Энэ горим нь Ethernet хүрээний
дарааллыг зөрчих бөгөөд болгоомжтой ашиглах шаардлагатай байдаг.
Жишээнүүд
&cisco; шилжүүлэгчтэй LACP нэгтгэлт
Энэ жишээ нь &os; машины хоёр интерфэйсийг шилжүүлэгч рүү
ачаалал тэнцвэржүүлсэн, алдаанд тэсвэртэй ганц холбоосоор холбож
байна. Дамжуулах чанар болон алдаанд тэсвэртэй байдлыг сайжруулах
зорилгоор илүү олон интерфэйсүүдийг нэмж болно. Ethernet холбоосууд
дээр хүрээний дараалал чухал байдаг учраас хоёр станцын хоорондох
ямар ч урсгал аль нэг интерфэйсийн хамгийн их хурдаар хязгаарлагдан
тэр физик холбоосоор үргэлж урсаж байдаг. Дамжуулах алгоритм нь
өөр өөр урсгалуудыг ялгаж, байгаа интерфэйсүүдээр тэдгээрийг
тэнцвэржүүлэхийн тулд аль болох их мэдээллийг ашиглахыг оролддог.
&cisco; шилжүүлэгч дээр FastEthernet0/1 болон
FastEthernet0/2 интерфэйсүүдийг
1 сувгийн бүлэгт нэмнэ.
interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacp
&os; машин дээр fxp0 болон
fxp1-г ашиглан &man.lagg.4;
интерфэйсийг үүсгэнэ:
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1
Доорх тушаалыг ажиллуулж интерфэйсийн төлвийг харна:
&prompt.root; ifconfig lagg0
ACTIVE гэж тэмдэглэгдсэн портууд нь
алсын шилжүүлэгчтэй тохиролцсон, идэвхтэй нэгтгэлтийн бүлгийн хэсэг бөгөөд
урсгал нь дамжуулагдаж хүлээн авагдах болно. LAG таних тэмдгүүдийг
үзэхийн тулд &man.ifconfig.8;-ийн дэлгэрэнгүй гаралтыг ашиглаарай.
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
Шилжүүлэгч дээр портын төлвийг харахын тулд
show lacp neighbor
тушаалыг ашиглах хэрэгтэй.
switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D
Дэлгэрэнгүйг харахыг хүсвэл show lacp neighbor
detail тушаалыг ашиглана.
Failover горим
Failover буюу ослыг тойрон гарах горимыг мастер интерфэйс дээр
холбоос тасарсан тохиолдолд хоёр дахь интерфэйс уруу шилжихэд
ашиглаж болно. fxp0 нь мастер интерфэйс,
fxp1 нь хоёр дахь интерфэйс байхаар
lagg0 интерфэйсийг үүсгэж тохируулна:
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1
Интерфэйс нь үүнтэй төстэй байх бөгөөд гол ялгаа нь
MAC хаяг болон төхөөрөмжийн нэрс байх
болно:
&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>
Урсгал fxp0 дээр хүлээн
авагдаж дамжих болно. Хэрэв холбоос fxp0 дээр
тасарсан бол fxp1 нь идэвхтэй холбоос
болно. Хэрэв холбоос нь мастер интерфэйс дээр сэргээгдсэн бол энэ нь
эргээд идэвхтэй холбоос болно.
Жан-Франсуа
Докье
Шинэчилсэн
Алекс
Дюпре
Дахин зохион байгуулж өргөтгөсөн
Дискгүй ажиллагаа
дискгүй ажлын станц
дискгүй ажиллагаа
FreeBSD машин сүлжээгээр ачаалан локал дискгүйгээр NFS
сервер дээр холбогдсон файлын системүүд ашиглаад ажиллаж чаддаг. Стандарт тохиргооны
файлуудаас өөр системийн өөрчлөлт шаардлагагүй. Ийм системийг харьцангуй хялбараар
тохируулж болдог. Учир нь шаардлагатай бүх элементүүд бэлэн байдаг:
Цөмийг сүлжээгээр ачаалах хоёр боломжит арга хамгийн багаар бодоход
байдаг:
PXE: &intel;-ийн Preboot eXecution
Environment буюу ачаалалт хийгдэхээс өмнөх ажиллуулах орчны систем нь
зарим сүлжээний картууд эсвэл эх хавтангуудад цуг бүтээгдсэн байдаг
ухаалаг ачаалах ROM-ийн нэг хэлбэр юм. Илүү дэлгэрэнгүйг
&man.pxeboot.8;-с үзнэ үү.
Etherboot
порт (net/etherboot) нь
цөмийг сүлжээгээр ачаалах ROM хийгдэх боломжтой код үүсгэдэг.
Код нь сүлжээний картан дээр ачаалах ROM уруу шарагдсан байх юм уу эсвэл
локал уян (эсвэл хатуу) дискний хөтчөөс эсвэл ажиллаж байгаа &ms-dos;
системээс дуудагдахаар байдаг. Олон сүлжээний карт дэмжигдсэн
байгаа.
Жишээ скрипт (/usr/share/examples/diskless/clone_root)
нь сервер дээр ажлын станцын root файлын системийг үүсгэх болон түүний ажиллагааг хангах
үйлдлийг хөнгөвчилдөг. Скрипт нь магадгүй жижиг өөрчлөлтийг шаардаж болох боловч
энэ нь таныг хурдан эхлүүлэх болно.
Дискгүй системийн эхлүүлэлтийг илрүүлж дэмжих стандарт системийн эхлүүлэгч
файлууд /etc санд байдаг.
swap хийх хэрэв шаардлагатай бол NFS файл эсвэл
локал диск уруу хийж болох юм.
Дискгүй ажлын станцуудыг тохируулах олон арга байдаг. Олон элементүүд үүнд
хамрагддаг бөгөөд өөрийн сонирхлоор ихэнхийг нь өөрчилж болно. Дараах нь
бүрэн системийг тохируулах талаар хувилбаруудыг тайлбарлах болно. Ингэхдээ
стандарт FreeBSD эхлүүлэх скриптүүдтэй хялбар, нийцтэй байхыг чухалчлах
болно. Тайлбарласан систем нь дараах шинжүүдтэй байна:
Дискгүй ажлын станцууд нь хуваалцсан, зөвхөн уншигдах
/ файлын систем болон хуваалцсан, зөвхөн уншигдах
/usr-г ашигладаг.
root файлын систем нь зөвхөн дискгүй ажиллагаатай холбоотой эсвэл
тэдгээрийн харьяалагдах ажлын станцтай холбоотой зарим тохиргооны
файлууд нь өөрчлөгдсөн стандарт FreeBSD root-ийн (ихэвчлэн серверийн)
хуулбар юм.
Бичигдэх боломжтой байх root-ийн хэсэг нь &man.md.4; файлын
системээр дээр тавигддаг (overlaid). Систем дахин ачаалахад хийгдсэн
өөрчлөлтүүд алга болох болно.
Цөм дамжуулагдаж Etherboot эсвэл
PXE-ийн аль нэгээр дуудагддаг бөгөөд зарим тохиолдолд
зөвхөн аль нэг аргыг ашиглахыг шаардаж болох юм.
Тайлбарласны дагуу энэ систем нь аюултай юм. Энэ нь сүлжээний
хамгаалагдсан талбарт байх ёстой бөгөөд бусад хостуудаас хандахааргүй
байх ёстой.
Энэ хэсгийн бүх мэдээллийг &os; 5.2.1-RELEASE ашиглан тест хийсэн болно.
Үндсэн мэдээлэл
Дискгүй ажлын станцуудыг тохируулах нь харьцангуй амархан боловч алдаанд
өртөх хандлагатай байдаг. Хэд хэдэн шалтгаанаас болоод эдгээрийг заримдаа
оношлох төвөгтэй байдаг. Жишээ нь:
Эмхэтгэлтийн үеийн тохируулгууд нь ажиллах үед өөрөөр ажиллахыг
тодорхойлж болох юм.
Алдааны мэдэгдлүүд нь ихэвчлэн нуугдмал эсвэл бүр байхгүй ч
байж болно.
Энд гарч болзошгүй асуудлуудыг шийдэхэд үндсэн арга замуудын зарим нэг
мэдлэгийг ашиглах нь маш ашигтай байдаг.
Амжилттайгаар эхлүүлэхийн тулд хэд хэдэн үйлдлүүдийг хийх хэрэгтэй:
Машин өөрийн IP хаяг, ажиллах файлын нэр, серверийн нэр, root зам
зэрэг эхний параметрүүдийг авах хэрэгтэй. Үүнийг DHCP эсвэл
BOOTP протоколуудыг ашиглан хийдэг. DHCP нь
BOOTP-ийн нийцтэй өргөтгөл бөгөөд адил портын дугаарууд болон үндсэн
пакетийн хэлбэршүүлэлтийг ашигладаг.
Зөвхөн BOOTP ашиглахаар системийг тохируулах боломжтой.
&man.bootpd.8; серверийн програм нь үндсэн &os; системд орсон
байдаг.
Гэхдээ DHCP нь BOOTP-ээс хэд хэдэн давуу
талтай байдаг (илүү сайхан тохиргооны файлууд, PXE
ашиглах боломж, дискгүй ажиллагаатай шууд холбоогүй бусад олон давуу талууд)
бөгөөд бид голчлон DHCP тохиргоог боломжтой бол
&man.bootpd.8; ашиглан таарах жишээнүүдтэй нь хамт тайлбарлах болно.
Жишээ тохиргоо нь ISC DHCP програм
хангамжийн багцыг (тест сервер дээр 3.0.1.r12 хувилбар суулгагдсан)
ашиглах болно.
Машин нь нэг буюу хэд хэдэн програмуудыг локал санах ой уруугаа дамжуулах
хэрэгтэй болно. TFTP юм уу эсвэл NFS
ашиглагдана. TFTP болон NFS-ийн
сонголтыг хэд хэдэн газар эмхэтгэх үеийн тохируулгаар хийдэг. Алдааны түгээмэл
эх үүсвэр нь буруу протоколд зориулж файлын нэрүүдийг заах явдал юм:
TFTP нь сервер дээрх ганц сангаас бүх файлуудыг
ихэвчлэн дамжуулдаг бөгөөд энэ сантай харьцангуй файлын нэрсийг хүлээдэг.
NFS-д файлын туйлын (абсолют) замууд хэрэгтэй
байдаг.
Боломжит дундын эхлүүлэх програмууд болон цөм нь эхлэн тохируулагдаж ажиллах
шаардлагатай. Энд хэд хэдэн чухал хувилбарууд байдаг:
PXE нь &os;-ийн гурав дахь шатны дуудагчийн
өөрчлөгдсөн хувилбар болох &man.pxeboot.8;-ийг ачаална. &man.pxeboot.8; нь
системийг эхлүүлэхэд шаардлагатай ихэнх параметрүүдийг авч хяналтыг дамжуулахаасаа
өмнө тэдгээрийг цөмийн орчинд үлдээх болно. Энэ тохиолдолд
GENERIC цөмийг ашиглах боломжтой.
Etherboot нь бага бэлтгэлтэйгээр
цөмийг шууд ачаалах болно. Та цөмийг тусгай тохируулгуудтай бүтээх
хэрэгтэй болно.
PXE болон Etherboot
нь адилхан ажиллана; гэхдээ цөмүүд нь &man.loader.8;-ийн тэдэнд зориулж
илүү ажил хийх боломжийг олгодог болохоор PXE нь
зохимжтой арга юм.
Хэрэв таны BIOS болон сүлжээний картууд нь
PXE-г дэмждэг бол та үүнийг ашиглах
хэрэгтэй байж болох юм.
Эцэст нь машин өөрийн файлын системүүдэд хандах хэрэгтэй болно.
NFS нь бүх тохиолдолд хэрэглэгдэнэ.
&man.diskless.8; гарын авлагын хуудсыг бас үзнэ үү.
Тохируулах зааврууд
ISC DHCP ашиглах тохиргоо
DHCP
дискгүй ажиллагаа
ISC DHCP сервер BOOTP болон
DHCP хүсэлтүүдэд хариулж чаддаг.
ISC DHCP 3.0 нь үндсэн системийн
хэсэг биш юм. Та эхлээд net/isc-dhcp30-server
порт юм уу эсвэл тохирох багцыг суулгах хэрэгтэй.
ISC DHCP суулгагдсаны дараа
ажиллахын тулд тохиргооны файл хэрэгтэй болно (ихэвчлэн
/usr/local/etc/dhcpd.conf гэж
нэрлэгддэг). Доор margaux хост Etherboot-ийг
ашигласан ба corbieres хост PXE-г ашиглаж байгаа
тайлбар хийгдсэн жишээ байна:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Энэ тохируулга нь
host зарлалтууд дахь утгыг дискгүй хостын
хувьд хостын нэр болгон илгээхийг dhcpd-д
хэлнэ. Өөр нэг арга нь option host-name
margaux мөрийг
host зарлалтуудын дотор нэмэх явдал юм.
next-server тохируулга нь дуудагч эсвэл цөмийн
файлыг дуудахад зориулж TFTP эсвэл
NFS серверийг ашиглахыг зааж өгнө (анхдагчаар
DHCP сервер байгаа хостыг ашиглана).
filename тохируулга нь Etherboot
эсвэл PXE-ийн дараагийн ажиллуулах алхамд дуудах
файлыг тодорхойлно. Үүнийг ашиглах дамжуулалтын аргын дагуу заасан байх
ёстой. Etherboot-ийг
NFS эсвэл TFTP
ашиглахаар эмхэтгэж болно. &os; порт нь NFS-ийг
анхдагчаар тохируулдаг. PXE нь
TFTP-г ашигладаг. Энд яагаад харьцангуй файлын
нэр хэрэглэгддэгийн учир нь тэр юм (энэ нь TFTP
серверийн тохиргооноос хамаарах боловч ерөнхийдөө нэлээн энгийн байх болно).
PXE нь цөмийг биш бас pxeboot-г
дууддаг. &os; CD-ROM
/boot сангаас
pxeboot-ийг дуудах зэрэг бусад сонирхолтой боломжууд
байдаг (&man.pxeboot.8; нь GENERIC цөмийг
ачаалж чаддаг бөгөөд энэ нь алсын CD-ROM-с ачаалахын тулд PXE-г
ашиглах боломжтой болгодог юм).
root-path тохируулга нь root файлын систем хүрэх
замыг энгийн NFS бичлэгээр тодорхойлдог.
PXE ашиглаж байгаа үед цөмийн тохиргоо BOOTP-г идэвхжүүлээгүй
байхад хостын IP-г орхигдуулах боломжтой байдаг. NFS
сервер дараа нь TFTP сервертэй адил
болох болно.
BOOTP ашиглах тохиргоо
BOOTP
дискгүй ажиллагаа
Энд bootpd-ийн адил тохиргоо
(нэг клиент болгож багасгасан) байна. Үүнийг /etc/bootptab
файлаас олж болно.
BOOTP-г ашиглахын тулд Etherboot-ийг
анхдагч биш тохируулга NO_DHCP_SUPPORT-тойгоор
эмхэтгэх ёстой бөгөөд PXE-д DHCP
хэрэгтэй гэдгийг санаарай. bootpd-ийн
цорын ганц илэрхий давуу тал бол үндсэн системд орсон байдаг явдал юм.
.def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
Ачаалах програмыг Etherboot-ээр бэлдэх
Etherboot
Etherboot-ийн вэб сайт
нь Линукс системд голчлон зориулагдсан боловч ашигтай мэдээлэл агуулсан
өргөтгөсөн баримтыг агуулдаг. Дараах нь FreeBSD систем дээр
Etherboot-г хэрхэн ашиглах талаар
тайлбарлах болно.
Та эхлээд net/etherboot багц юм уу эсвэл портыг
суулгах ёстой.
Etherboot-ийн тохиргоог
Etherboot-ийн эх байгаа сан дахь
Config файлыг засварлаж (өөрөөр хэлбэл
NFS-ийн оронд TFTP-г
ашиглахын тулд) өөрчилж болно.
Бидний тохиргооны хувьд бид ачаалах уян дискийг ашиглах болно.
Бусад аргуудын хувьд (PROM, эсвэл &ms-dos; програм)
Etherboot-ийн баримтаас лавлана уу.
Ачаалах уян дискийг хийхийн тулд Etherboot
суулгасан машин дээрх хөтөч уруугаа уян дискээ хийгээд Etherboot
мод дахь src сан уруу болгож одоогийн сангаа солиод
доор дурдсан тушаалыг бичнэ:
&prompt.root; gmake bin32/devicetype.fd0
devicetype нь дискгүй ажлын
станц дахь Ethernet картын төрлөөс хамаарна.
Зөв devicetype буюу төхөөрөмжийн
төрлийг тодорхойлохын тулд тэр сан дахь NIC
файлд хандана.
PXE-ээр ачаалах
Анхдагчаар &man.pxeboot.8; дуудагч нь NFS-ээр
цөмийг дууддаг. /etc/make.conf файлд
LOADER_TFTP_SUPPORT тохируулга заахын оронд
TFTP-г ашиглахаар эмхэтгэгдэж болно.
Заавруудын талаар /usr/share/examples/etc/make.conf
файл дахь тайлбаруудыг үзнэ үү.
Цуваа консол дискгүй машин тохируулахад ашигтай байж болох
make.conf файлын өөр хоёр тохируулга байдаг: эдгээр нь
BOOT_PXELDR_PROBE_KEYBOARD, болон
BOOT_PXELDR_ALWAYS_SERIAL юм.
Машин эхлэхэд PXE-г ашиглахын тулд та өөрийн
BIOS-ийн тохируулгаас Boot from network
буюу Сүлжээнээс ачаалах сонголтыг сонгох юм
уу эсвэл PC-г эхлүүлж байх үед функцийн товчлуурыг дарах хэрэгтэй.
TFTP болон NFS серверүүдийг тохируулах
TFTP
дискгүй ажиллагаа
NFS
дискгүй ажиллагаа
Хэрэв та TFTP ашиглахаар тохируулсан
PXE юм уу эсвэл Etherboot-г
ашиглаж байгаа бол файл сервер дээрээ tftpd-г
идэвхжүүлэх хэрэгтэй:
tftpd-д зориулж файлууд байх
сан үүсгэнэ, өөрөөр хэлбэл /tftpboot.
Энэ мөрийг өөрийн
/etc/inetd.conf файлд нэмнэ:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
Зарим нэгэн PXE хувилбарууд нь
TFTP-ийн TCP хувилбарыг
хүсдэг байна. Энэ тохиолдолд dgram udp мөрийг
stream tcp болгон сольж хоёр дахь мөрийг
нэмнэ.
inetd-д өөрийн тохиргооны файлаа
дахин уншихыг хэлээрэй. Энэ тушаалыг зөв ажиллуулахын тулд
/etc/rc.conf файлд
тохируулга заагдсан
байх ёстой:
&prompt.root; /etc/rc.d/inetd restart
Та tftpboot санг серверийнхээ хаана ч
байрлуулж болно. inetd.conf болон
dhcpd.conf файлууд дээрээ байрлалаа
заасан эсэхээ шалгаарай.
Аль ч тохиолдолд та бас NFS-ээ идэвхжүүлж
NFS сервер дээрээ тохирох файлын системээ экспорт хийх
хэрэгтэй юм.
Үүнийг /etc/rc.conf-д нэмнэ:
nfs_server_enable="YES"
Доор дурдсаныг /etc/exports файл уруу нэмж
дискгүй root сан байгаа файлын системээ экспорт хийнэ (эзлэхүүний холбох
цэгийг тааруулж margaux corbieres
гэснийг дискгүй ажлын станцуудын нэрсээр солих хэрэгтэй):
/data/misc -alldirs -ro margaux corbieres
mountd-д өөрийн тохиргооны файлаа
дахин уншихыг хэлнэ. Хэрэв та эхний шатандаа NFS-г
/etc/rc.conf файлд идэвхжүүлэх хэрэгтэй
болсон бол харин дахин ачаалахыг хүсэж болох юм.
&prompt.root; /etc/rc.d/mountd restart
Дискгүй цөмийг бүтээх
дискгүй ажиллагаа
цөмийн тохиргоо
Хэрэв Etherboot-г ашиглаж байгаа
бол дискгүй клиентдээ зориулж дараах тохируулгуудтайгаар (ердийн тохируулгуудын хамтаар)
цөмийн тохиргооны файл үүсгэх хэрэгтэй:
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root file system using BOOTP info
Та бас BOOTP_NFSV3,
BOOT_COMPAT болон BOOTP_WIRED_TO
(NOTES файлаас лавлана уу) тохируулгуудыг ашиглахыг хүсэж болох
юм.
Эдгээр тохируулгуудын нэрс нь уламжлалт бөгөөд тэдгээр нь яг үнэндээ
DHCP болон BOOTP-ийн өөр хэрэглээг цөм дотор идэвхжүүлдэг
болохоор нэлээн төөрөгдөлд хүргэж болох юм (зөвхөн BOOTP эсвэл DHCP-ийн
хэрэглээг ашиглахаар болгох бас боломжтой байдаг).
Цөмийг бүтээж (-г үзнэ үү),
dhcpd.conf файлд заасан байрлал уруу
хуулах хэрэгтэй.
PXE-г ашиглаж байгаа үед дээрх тохируулгуудтайгаар
цөмийг бүтээх нь заавал шаардлагагүй (хэдийгээр зөвлөдөг боловч).
Тэдгээрийг идэвхжүүлэх нь цөмийг эхлүүлэх явцад илүү олон DHCP
хүсэлтүүдийг үүсгэж шинэ утгууд болон зарим тусгай тохиолдлуудад &man.pxeboot.8;-ийн
авсан утгуудын хооронд нийцэмжгүй байдлын жижиг эрсдэл гаргахад хүргэдэг.
Тэдгээрийг ашиглахын давуу тал нь буруу нөлөөллөөс болоод хостын нэр тохируулагддаг
явдал юм. Үгүй бол та хостын нэрийг өөр аргаар, жишээ нь клиентэд тусгайлан зориулсан
rc.conf файлд тохируулах хэрэгтэй болно.
Etherboot-ээр дуудагдах боломжтой
байхын тулд цөмд төхөөрөмжийн бяцхан зааврууд эмхэтгэгдсэн байх хэрэгтэй
байдаг. Ингэхдээ та дараах тохируулгыг тохиргооны файлдаа тохируулах
болно (NOTES тохиргооны тайлбаруудын файлыг
үзнэ үү):
hints "GENERIC.hints"
Root файлын системийг бэлдэх
root файлын систем
дискгүй ажиллагаа
Дискгүй ажлын станцад зориулж dhcpd.conf
файлд root-path гэж жагсаагдсан байрлалд
root файлын системийг та үүсгэх хэрэгтэй.
root-ийг суурьшуулахын тулд make world тушаал ашиглах
Энэ арга нь хурдан байх бөгөөд бүрэн онгон системийг (зөвхөн root файлын
систем биш) DESTDIR уруу суулгах болно.
Та дараах скриптийг л ердөө ажиллуулах хэрэгтэй болно:
#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make buildworld && make buildkernel
cd /usr/src/etc; make distribution
Үүнийг хийсний дараа танд өөрийнхөө хэрэгцээний дагуу
DESTDIR-д байрлуулагдсан өөрийн
/etc/rc.conf болон
/etc/fstab файлуудаа өөрчлөн тохируулах
шаардлага гарч болох юм.
Swap-ийг тохируулах
Шаардлагатай бол сервер дээр байрласан swap файлд
NFS-ээр хандаж болно.
NFS Swap
Цөм нь ачаалах үед NFS swap-ийг
идэвхжүүлэхийг дэмждэггүй. Бичигдэх файлын системийг холбож
swap файлыг үүсгэн идэвхжүүлэх замаар эхлүүлэх скриптүүдээр
swap нь идэвхжүүлэгдэх ёстой. Зохих хэмжээ бүхий swap файлыг
үүсгэхдээ та ингэж хийж болно:
&prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000
Үүнийг идэвхжүүлэхийн тулд та дараах мөрийг өөрийн
rc.conf файлд нэмэх хэрэгтэй:
swapfile=/path/to/swapfile
Бусад асуудлууд
Зөвхөн уншигдах /usr сантайгаар ажиллах
дискгүй ажиллагаа
/usr зөвхөн уншигдах
Хэрэв дискгүй ажлын станц нь X-ийг ажиллуулахаар тохируулагдсан бол
анхдагчаар /usr-т алдааны бүртгэлийг
хийдэг XDM тохиргооны файлыг
та тааруулах хэрэгтэй болно.
FreeBSD биш сервер ашиглах
root файлын системд зориулсан сервер нь FreeBSD-г ажиллуулаагүй бол
та FreeBSD машин дээр root файлын систем үүсгээд хэрэгтэй байрлал
уруу нь tar эсвэл cpio тушаал
ашиглан хуулах хэрэгтэй болно.
Энэ тохиолдолд бүхэл тооны их/бага (major/minor) хэмжээнүүдийн ялгаанаас
болоод /dev дахь тусгай файлуудад заримдаа
асуудал гардаг. Энэ асуудлын шийдэл нь FreeBSD биш серверээс
уг санг экспорт хийж энэ сангаа FreeBSD машин дээр холбон хэрэглэгчийн
хувьд төхөөрөмжийн цэгүүдийг харагдахгүйгээр (transparently) хуваарилахын тулд
&man.devfs.5;-ийг ашиглах явдал юм.
ISDN
ISDN
ISDN технологи болон тоног төхөөрөмжийн тухай мэдээллийн сайн эх үүсвэр нь
Дан Кегелийн ISDN
хуудас юм.
ISDN-ий тухай хялбар заавруудыг доор дурдав:
Хэрэв та Европд амьдарч байгаа бол ISDN картын хэсгийг та магадгүй
шалгахыг хүсэж болох юм.
Хэрэв та Интернэт уруу Интернэтийн үйлчилгээ үзүүлэгчтэй
dial-up-аар байнгын бишээр холбогдохдоо ISDN-ийг голчлон хэрэглэхээр төлөвлөж байгаа
бол та Терминал Хувиргагчдыг үзэж болох юм. Хэрэв та үйлчилгээ үзүүлэгчдээ солих бол
энэ нь асуудлууд хамгийн багатайгаар хамгийн уян хатан чанарыг танд өгөх болно.
Хэрэв та хоёр LAN-ийг хооронд нь холбож байгаа бол эсвэл Интернэт уруу
зориулагдсан ISDN холболтоор холбогдож байгаа бол зориулагдсан чиглүүлэгч/гүүр
сонголтыг бодолцож болох юм.
Аль шийдлийг сонгохыг тодорхойлоход чухал хүчин зүйл нь өртөг юм. Дараах сонголтуудыг
хамгийн бага өртөгтэйгөөс нь эхлээд хамгийн их өртөгтэй хүртэл жагсаав.
Хэлмут
Михаелис
Хувь нэмэр болгон оруулсан
ISDN картууд
ISDN
картууд
FreeBSD-ийн ISDN шийдэл нь идэвхгүй картыг ашиглаад зөвхөн
DSS1/Q.931 (буюу Euro-ISDN) стандартыг дэмждэг. Firmware нь
бас бусад дохионы протоколуудыг дэмждэг зарим идэвхтэй картуудыг
дэмждэг; энэ нь бас хамгийн эхэнд дэмжигдсэн Primary Rate (PRI) буюу
Анхдагч Хурд бүхий ISDN картыг оруулдаг.
isdn4bsd програм хангамж нь
бусад ISDN чиглүүлэгчүүдтэй түүхий HDLC дээгүүрх IP юм уу эсвэл
синхрон PPP: өөрчлөн засварласан &man.sppp.4; драйвер
isppp-тэй цөмийн PPP юм уу эсвэл хэрэглэгчийн талбарын &man.ppp.8;
ашиглан холбогдох боломжийг олгодог. Хэрэглэгчийн талбарын &man.ppp.8; ашиглан
хоёр буюу түүнээс дээш ISDN B-сувгуудын суваг холболтыг (channel bonding)
хийх боломжтой байдаг. Утас хариулагч машины хэрэглээ бас байдаг
байдаг бөгөөд бас програм хангамжийн 300 baud модем зэрэг олон хэрэгслүүд
байдаг.
FreeBSD дээр дэмжигдсэн зарим PC ISDN картуудын тоо өсөн нэмэгдэж байгаа
бөгөөд энэ нь бүх л Европ болон дэлхийн бусад олон хэсэгт амжилттайгаар ашиглагдаж
байгаа мэдээллүүд байдаг.
Дэмжигдсэн идэвхгүй (пассив) ISDN картууд нь ихэвчлэн
Infineon (хуучин Siemens) ISAC/HSCX/IPAC ISDN бичил схемтэй
байдаг, гэхдээ бас Cologne Chip-ийн (зөвхөн ISA шугамд) бичил схемүүдтэй
ISDN картууд, Winbond W6692 бичил схемүүдтэй PCI картууд,
Tiger300/320/ISAC бичил схемийн хослолуудтой зарим картууд болон
AVM Fritz!Card PCI V.1.0 болон AVM Fritz!Card PnP зэрэг зарим нэгэн
үйлдвэрлэгчээс хамааралтай бичил схем бүхий картууд ордог.
Одоогоор идэвхтэй дэмжигдсэн ISDN картууд нь AVM B1
(ISA болон PCI) BRI картууд болон AVM T1 PCI PRI картууд юм.
isdn4bsd-ийн баримтын талаар
өөрийн FreeBSD систем дээрээ /usr/share/examples/isdn/
сангаас эсвэл бяцхан зөвлөгөө, алдааны мэдээлэл болон isdn4bsd
гарын авлага зэрэг илүү баримтыг заасан
isdn4bsd-ийн эх хуудас isdn4bsd
хаягаас үзээрэй.
Хэрэв та өөр ISDN протокол, одоогоор дэмжигдээгүй байгаа ISDN PC картанд
зориулж дэмжлэг нэмэх эсвэл isdn4bsd-ийг өргөжүүлэх
сонирхолтой байгаа бол &a.hm;-тай холбоо барьна уу.
isdn4bsd-ийн суулгалт, тохиргоо болон
алдааг олж засварлах тухай асуултуудад зориулагдсан &a.isdn.name;
захидлын жагсаалт байдаг.
ISDN Терминал Хувиргагчид
Терминал хувиргагчид (TA) нь модемууд нь ердийн утасны шугамд зориулагдсан байдаг
шиг ISDN-ий хувьд зориулагдсан байдаг.
модем
Ихэнх TA нь стандарт Hayes модемийн AT тушаалын олонлогийг ашигладаг бөгөөд
модемийг шууд солих зориулалтаар ашиглаж болно.
TA нь ерөнхийдөө модемтой адил ажилладаг. Ялгаатай тал нь холболт болон
дамжуулах хурдны хувьд таны хуучин модемоос хамаагүй хурдан байдаг явдал юм.
Та модемийн тохиргоотой яг адил PPP-г
тохируулах хэрэгтэй болно. Цуваа хурдыг хамгийн өндрөөр аль болох тавьсан эсэхээ
шалгаарай.
PPP
TA-г ашиглахын гол давуу тал нь динамик PPP-ээр хийж болдогтой адил Интернэтийн
үйлчилгээ үзүүлэгчтэй холбогдох явдал юм. IP хаягийн хэмжээ өдөр ирэх тутам багасаж байгаа
өнөө үед ихэнх үйлчилгээ үзүүлэгчид танд статик IP өгөх хүсэлгүй байдаг. Ихэнх зориулагдсан
чиглүүлэгчид динамик IP хуваарилалттай зохицож чаддаггүй.
TA-уудын боломжууд болон холболтын тогтвортой байдалд зориулан таны ажиллуулж байдаг
PPP дэмонд TA-ууд нь бүрэн найддаг. Хэрэв та PPP-г аль хэдийн тохируулсан бол энэ нь
FreeBSD машин дээр модемийг ашиглаж байгаад ISDN уруу хялбараар сайжруулах боломжийг
олгодог. Гэхдээ танд тулгарсан PPP програм дээр байсан асуудлууд бас хэвээр үлдэх
болно.
Хэрэв та максимум тогтвортой байдлыг хүсэж байгаа бол хэрэглэгчийн талбарын PPP биш цөмийн PPP тохируулгыг ашиглаарай.
Дараах TA-ууд нь FreeBSD-тэй ажилладаг:
Motorola BitSurfer болон Bitsurfer Pro
Adtran
Ихэнх бусад TA-ууд нь магадгүй бас ажиллах байх. TA үйлдвэрлэгчид нь
өөрсдийнхөө бүтээгдэхүүнийг стандарт модемийн AT тушаалын олонлогийн ихэнхийг
хүлээн авч чаддагаар хийхийг оролддог.
Гадаад TA-ийн жинхэнэ асуудал нь модемуудын адил таны компьютер дээр
сайн цуваа карт хэрэгтэй явдал юм.
Та цуваа төхөөрөмжүүдийн тухай дэлгэрэнгүй ойлголт болон асинхрон ба
синхрон цуваа портуудын ялгаануудын талаар FreeBSD Цуваа Тоног
Төхөөрөмжийн заавраас унших шаардлагатай.
Стандарт PC цуваа порт (асинхрон) дээр ажиллаж байгаа TA нь таныг
128 Kbs холболттой байсан ч гэсэн 115.2 Kbs хурдаар хязгаарладаг.
ISDN-ий чаддаг 128 Kbs хурдыг бүрэн ашиглахын тулд та TA-г синхрон
цуваа карт уруу шилжүүлэх шаардлагатай.
Дотоод TA худалдан авч синхрон/асинхрон асуудлаас тойрон гарчихлаа гэж
битгий тэнэгтээрэй. Дотоод TA-ууд нь ердөө л өөр дээрээ бүтээгдсэн стандарт PC цуваа
портын бичил схемтэй байдаг. Энэ нь ердөө л өөр цуваа кабель худалдан авч өөр хоосон
цахилгаан сокет олох асуудлыг хөнгөвчилдөг.
TA-тэй синхрон карт нь ядаж дангаараа зориулагдсан чиглүүлэгчтэй адил хурдан
байдаг бөгөөд түүнийг энгийн FreeBSD хайрцаг удирдаж байгаа нь магадгүй илүү уян хатан
юм.
Синхрон карт/TA болон зориулагдсан чиглүүлэгчийн алийг сонгох нь голчлон сүсэг бишрэлийн
асуудал байдаг. Энэ талаар зарим хэлэлцүүлэг захидлын жагсаалтуудаар явагдсан байгаа.
Бүрэн хэлэлцүүлгийг архивуудаас
хайхыг бид санал болгож байна.
Зориулагдсан ISDN Гүүрнүүд/Чиглүүлэгчид
ISDN
зориулагдсан гүүрнүүд/чиглүүлэгчид
ISDN гүүрнүүд эсвэл чиглүүлэгчид нь зөвхөн FreeBSD эсвэл бусад
үйлдлийн системийн хувьд биш юм. Чиглүүлэлт болон гүүр хийх технологийн
талаар илүү дэлгэрэнгүй тайлбарыг сүлжээний ямар нэг номноос үзнэ үү.
Энэ хэсгийн хувьд чиглүүлэгч болон гүүр гэсэн ухагдахуунууд нь харилцан
солигдож ашиглагдана.
Доод зэрэглэлийн ISDN чиглүүлэгчид/гүүрнүүдийн үнэ багасаж байгаа
болохоор энэ нь улам илүү түгээмэл сонголт болох юм. ISDN чиглүүлэгч нь
таны локал Ethernet сүлжээ уруу шууд залгагддаг жижиг хайрцаг байдаг
бөгөөд бусад гүүр/чиглүүлэгчтэй хийх өөрийн холболтоо удирддаг. Энэ нь
PPP болон бусад түгээмэл протоколуудын тусламжтай холболт хийх өөртөө
цуг бүтээгдсэн програм хангамжтай байдаг.
Чиглүүлэгч нь бүрэн ISDN холболтыг ашиглах болохоор стандарт TA-аас
хамаагүй илүү хурдан дамжуулах боломжийг олгодог.
ISDN чиглүүлэгчид болон гүүрнүүдийн гол асуудал нь үйлдвэрлэгчид
хоорондын харилцан ажиллах боломж асуудал хэвээр байгаа явдал юм.
Хэрэв та Интернэтийн үйлчилгээ үзүүлэгчтэй холбогдохоор төлөвлөж байгаа бол
тэд нартай өөрийн хэрэгцээний талаар хэлэлцэх нь зүйтэй юм.
Хэрэв та өөрийн гэрийн LAN-ийг оффисийн LAN-тай холбох зэргээр хоёр LAN
сегментийг хооронд нь холбохоор төлөвлөж байгаа бол энэ нь хамгийн хялбар
ажиллагаа багатай шийдэл юм. Та холболт хийгдэх гэж байгаа хоёр талдаа
хоёуланд нь зориулан төхөөрөмж авах болохоор холболт ажиллах тал дээр
итгэлтэй байж болно.
Жишээ нь гэрийн компьютер эсвэл салбар оффисийн сүлжээг гол оффисийн
сүлжээтэй холбохын тулд дараах тохируулгыг ашиглаж болно:
Салбар оффис эсвэл Гэрийн сүлжээ
10 base 2
Сүлжээ нь 10 base 2
Ethernet (thinnet
) сүлжээний шугаман хэлбэрийг
ашиглана. Шаардлагатай бол чиглүүлэгчийг сүлжээний кабельтай
AUI/10BT хувиргагчаар холбоно.
---Sun workstation
|
---FreeBSD box
|
---Windows 95
|
Stand-alone router
|
ISDN BRI line
10 Base 2 Ethernet
Хэрэв таны гэр/салбар оффис нь зөвхөн нэг компьютер бол та зориулагдсан
чиглүүлэгчийг холбохын тулд эрчилсэн хос зөрсөн кабелийг (twisted pair crossover
cable) ашиглаж болно.
Гол оффис эсвэл бусад LAN
10 base T
Сүлжээ нь 10 base T Ethernet
(Twisted Pair
) сүлжээний од хэлбэрийг
ашиглана.
-------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Stand-alone router
|
ISDN BRI line
ISDN Сүлжээний зураг
Ихэнх чиглүүлэгчид/гүүрнүүдийн нэг том давуу тал нь нэг зэрэг
2 тусдаа сайт уруу 2 тусдаа чөлөөтэй PPP холболтуудтай
байх боломжийг олгодог явдал юм. Хоёр цуваа порттой тусгай (ихэвчлэн үнэтэй) загваруудыг
тооцохгүй бол энэ нь ихэнх TA-ууд дээр дэмжигдээгүй байдаг. Үүнийг суваг холболт (channel
bonding), MPP зэрэгтэй андуурч болохгүй.
Жишээ нь хэрэв та оффис дээрээ зориулагдсан ISDN холболттой бөгөөд
түүнийг чагнахыг хүсэж байгаа боловч өөр нэг ISDN шугам авахыг хүсэхгүй байгаа
бол энэ нь маш ашигтай боломж байж болох юм. Оффист байгаа чиглүүлэгч нь
Интернэт уруу хийх зориулагдсан B сувгийн холболтыг (64 Kbps) удирдаж
тусдаа өгөгдлийн холболтод зориулж өөр B сувгийг ашиглаж чадна. Хоёр дахь
B суваг нь гаднаас залгах, гадагш залгах юм уу эсвэл илүү өргөн зурваст зориулж
эхний B сувагтай цуг динамикаар холболт (bonding) хийхэд (MPP зэрэг)
ашиглагдаж болно.
IPX/SPX
Ethernet гүүр нь зөвхөн IP урсгал биш бас өөр илүүг дамжуулах боломжийг танд
олгодог. Та IPX/SPX эсвэл өөрийн ашигладаг бусад протоколуудынхаа алийг ч бас илгээж
болох юм.
Шерн
Ли
Хувь нэмэр болгон оруулсан
Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт
Тойм
natd
FreeBSD-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлтийн дэмон нь
&man.natd.8; гэгддэг бөгөөд ирж байгаа түүхий IP пакетуудыг хүлээн авч эх хаягийг
локал машиныхаар сольж эдгээр пакетуудыг гарч байгаа IP пакетийн урсгалд буцааж
дахин оруулдаг. &man.natd.8; нь өгөгдлийг буцаан хүлээн авахад өгөгдлийн анхны байрлалыг
тодорхойлж чаддаг байхаар эхлэл IP хаяг болон портыг өөрчилж түүнийг анхлан хүсэгчид буцааж
дамжуулдаг.
Интернэтийн холболт хуваалцах
NAT
NAT-ийн хамгийн түгээмэл хэрэглээ бол Интернэтийн холболт хуваалцах гэгддэгийг
хийж гүйцэтгэх явдал юм.
Анхны тохируулга
IP хаягийн хэмжээ багасаж байгаа болон кабель эсвэл DSL зэрэг өндөр хурдны хэрэглэгчийн
шугамууд ашиглах хэрэглэгчдийн тоо ихэссэнээс болоод хүмүүст Интернэтийн холболт хуваалцах шийдлийн
хэрэгцээ нэмэгдэх болсон билээ. Хэд хэдэн компьютеруудыг шууд нэг холболтоор холбох чадвар болон
IP хаяг нь &man.natd.8;-г боломжийн сонголт болгодог.
Хамгийн түгээмэл тохиолдол нь хэрэглэгч кабель эсвэл DSL шугаманд нэг IP хаягтай холбогдсон
машинтай бөгөөд LAN-аар дамжуулан хэд хэдэн компьютеруудад Интернэтийн хандалт өгөхийн тулд
энэ холбогдсон нэг компьютераа ашиглахыг хүсдэг явдал юм.
Үүнийг хийхийн тулд Интернэт дэх FreeBSD машин нь гарц маягаар ажиллах ёстой.
Энэ гарц машин нь хоёр NIC-тэй байх ёстой—нэг нь Интернэтийн чиглүүлэгч уруу холбогдохын
тулд, нөгөөх нь LAN уруу холбогдохын тулд ашиглагдах ёстой. LAN дахь бүх машинууд нь
холбох төхөөрөмж (hub) юм уу эсвэл шилжүүлэгчээр (switch) холбогдсон байна.
&os; гарцаар LAN-ийг Интернэттэй холбох олон арга замууд байдаг.
Энэ жишээ нь хамгийн багаар бодоход хоёр NIC-тэй гарцыг зөвхөн тайлбарлах
болно.
_______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|
Network Layout
Үүнтэй адил тохиргоог Интернэтийн холболтыг хуваалцахын тулд түгээмэл
ашигладаг. LAN машинуудын нэг нь Интернэтэд
холбогдсон. Бусад машинууд нь тэр гарц
машинаар
Интернэтэд ханддаг.
boot loader
configuration
Ачаалагч дуудагчийн тохиргоо
&man.natd.8;-ийн тусламжтайгаар хийх сүлжээний хаягийн хөрвүүлэлтэд
зориулсан цөмийн боломжууд GENERIC цөмд
идэвхжүүлэгдээгүй байдаг боловч /boot/loader.conf
файлд хоёр тохиргоо нэмж тэдгээрийг ачаалах явцад дуудахаар
тохируулж болдог:
ipfw_load="YES"
ipdivert_load="YES"
Мөн
net.inet.ip.fw.default_to_accept
тохиргоог 1 болгож болно:
net.inet.ip.fw.default_to_accept="1"
Галт хана болон NAT гарцыг анх удаа тохируулахдаа энэ
тохиргоог тохируулах нь зүйтэй байдаг. Ингэснээр
&man.ipfw.8;-ийн анхдагч бодлого нь илүү хаалттай deny ip from
any to any гэсэн бодлого биш харин allow ip from any to
any гэсэн илүү нээлттэй бодлого болох бөгөөд дахин
ачаалалтын дараа системд хандах боломж хэвээр байх юм.
Цөмийн тохиргоо
цөм
тохиргоо
Модулиудыг сонгодгоор биш эсвэл бүх шаардлагатай боломжуудыг
цөмд оруулж бүтээхийг хүсэж байгаа бол
дараах тохируулгууд цөмийн тохиргооны файлд байх ёстой:
options IPFIREWALL
options IPDIVERT
Мөн нэмэлтээр дараах нь бас тохиромжтой байж болох юм:
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
Системийн эхлүүлэх тохиргоо
Галт хана болон NAT дэмжлэгийг ачаалах явцад идэвхжүүлэхийн тулд
дараах мөрүүдийг /etc/rc.conf файлд оруулж өгөх ёстой:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags=""
Машиныг гарц маягаар ажиллахыг тохируулна.
sysctl net.inet.ip.forwarding=1 тушаалыг ажиллуулах
нь бас адил үр дүнтэй.
/etc/rc.firewall файл дахь галт ханын
дүрмүүдийг ачаалах үед идэвхжүүлнэ.
Энэ нь урьдчилан тодорхойлсон байдаг бүгдийг оруулахыг зөвшөөрдөг галт ханын
дүрмийн олонлогийг заана. Нэмэлт төрлүүдийн талаар
/etc/rc.firewall файлаас үзнэ үү.
Аль интерфэйс пакетуудыг нэвтрүүлэн дамжуулахыг заана
(Интернэтэд холбогдсон интерфэйс).
Ачаалах үед &man.natd.8;-д дамжуулах нэмэлт тохиргооны сонголтууд.
Өмнөх тохируулгуудыг /etc/rc.conf файлд
тодорхойлсноор natd -interface fxp0 тушаалыг
ачаалах үед ажиллуулна. Үүнийг гараар бас ажиллуулж болно.
Их олон сонголтуудыг дамжуулах бол &man.natd.8;-д зориулж тохиргооны
файлыг ашиглаж бас болно. Энэ тохиолдолд дараах мөрийг
/etc/rc.conf файлд нэмж тохиргооны файлыг
тодорхойлох шаардлагатай:
natd_flags="-f /etc/natd.conf"
/etc/natd.conf файл нь тохиргооны сонголтуудын
жагсаалтыг нэг мөрөнд нэгийг байхаар агуулдаг. Жишээ нь дараах хэсгийн хувьд
доорх файлыг ашиглах болно:
redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80
Тохиргооны файлын тухай дэлгэрэнгүй мэдээллийг &man.natd.8;
гарын авлагын хуудасны тохируулгын талаар
бичсэнээс лавлана уу.
LAN-ий ард байгаа машин болон интерфэйс бүр RFC 1918-д
тодорхойлогдсон хувийн сүлжээний хаягаас заагдсан IP хаягтай,
natd машины дотоод IP хаягийг анхдагч
гарц болгон заасан байх ёстой.
Жишээ нь LAN-ий цаана байгаа клиент A болон
B нь 192.168.0.2 болон 192.168.0.3 гэсэн IP хаягтай байх бол
natd машины LAN интерфэйс нь 192.168.0.1 гэсэн IP хаягтай байна.
Клиент A болон B-ийн анхдагч
гарц natd машины 192.168.0.1-ээр тохируулагдах
ёстой. natd машины гадаад
буюу Интернэтийн интерфэйс нь &man.natd.8;-г ажиллуулахын тулд
ямар нэгэн тусгайлсан өөрчлөлтийг шаарддаггүй.
Порт дахин чиглүүлэлт
&man.natd.8;-ийн сул тал нь LAN клиентүүдэд Интернэтээс хандах боломжгүй
байдаг. LAN дахь клиентүүд нь гаднах ертөнц уруу чиглэсэн гадагшаа холболтуудыг
хийж чадах боловч ирж байгааг хүлээн авч чаддаггүй. LAN клиент машинуудын аль нэгэн
дээр Интернэтийн үйлчилгээнүүдийг ажиллуулахыг оролдох үед энэ нь асуудал үүсгэдэг.
Үүнийг тойрох хялбар арга бол natd машины
сонгосон Интернэтийн портуудыг LAN клиент уруу дахин чиглүүлэх явдал юм.
Жишээ нь A клиент дээр IRC сервер,
B клиент дээр вэб сервер ажиллаж байна гэж үзье. Эдгээр нь
зөв ажиллахын тулд 6667 (IRC) болон 80 (вэб) портууд дээр хүлээн авсан холболтууд нь
тохирох машинууд уруу дахин чиглүүлэгдэх ёстой юм.
&man.natd.8; уруу тохируулга зохих
сонголтуудтай дамжуулагдах ёстой. Зөв бичих дүрэм нь ийм байна:
-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]
Дээрх жишээний хувьд нэмэлт өгөгдөл нь ийм байх ёстой:
-redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80
Энэ нь зөв tcp портуудыг LAN клиент машинууд уруу дахин
чиглүүлэх болно.
нэмэлт өгөгдлийг порт тус бүрийг
заахад ашиглахаас гадна бас бүлэг портуудыг заахад хэрэглэж болно. Жишээ нь
tcp
192.168.0.2:2000-3000 2000-3000 нь 2000-аас 3000 хүртэлх
портууд дээр хүлээн авсан бүх холболтуудыг A клиентийн
2000-аас 3000 хүртэлх портууд уруу дахин чиглүүлэх болно.
Эдгээр тохируулгуудыг &man.natd.8;-г шууд ажиллуулж байх үед
/etc/rc.conf файлд
natd_flags="" тохируулга дотор оруулж
ашиглаж болохоос гадна тохиргооны файлын тусламжтай дамжуулж
болно.
Тохиргооны сонголтуудын талаар &man.natd.8;-с лавлана уу
Хаяг дахин чиглүүлэлт
хаяг дахин чиглүүлэлт
Хаягийн дахин чиглүүлэлт нь хэд хэдэн IP хаягууд байгаа бөгөөд тэдгээр нь
нэг машин дээр байх ёстой үед ашигтай байдаг. Үүнийг ашиглаад
&man.natd.8; нь өөрийн LAN клиент бүрдээ өөрийн гадаад IP хаягуудыг
өгч чаддаг. Дараа нь &man.natd.8; нь LAN клиентүүдээс ирэх гадагш
чиглэсэн пакетуудыг зөв гадаад IP хаягаас болгон дахин бичиж тухайн IP хаяг
дээр ирж байгаа бүх урсгалыг тохирох LAN клиент уруу дахин чиглүүлдэг.
Энэ нь бас статик NAT гэж нэрлэгддэг. Жишээ нь 128.1.1.1,
128.1.1.2, болон
128.1.1.3 гэсэн IP хаягууд нь
natd гарц машинд харьяалагдаж байна
гэж үзье. 128.1.1.1 нь
natd гарц машины гадаад IP хаяг болон
ашиглагдаж болох бол 128.1.1.2 болон
128.1.1.3 нь A болон
B LAN клиентүүд уруу буцааж дамжуулагдахаар байж болно.
бичлэг нь дараах маягийн байна:
-redirect_address localIP publicIP
localIP
LAN клиентийн дотоод IP хаяг.
publicIP
LAN клиентэд тохирох гадаад IP хаяг.
Энэ жишээний хувьд энэхүү нэмэлт өгөгдөл нь ингэж уншигдаж болно:
-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3
тохируулгын нэгэн адил эдгээр
нэмэлт өгөгдлүүдийг /etc/rc.conf файлын
natd_flags="" тохируулгад хийж өгч болохоос
гадна тохиргооны файлаар дамжуулж болно. Хаягийн дахин чиглүүлэлт дээр
тухайн нэг IP хаяг дээр хүлээн авсан бүх өгөгдөл дахин чиглүүлэгддэг учраас
портын дахин чиглүүлэлт шаардлагагүй байдаг.
natd машины гадаад IP хаягууд нь идэвхтэй байж
гадаад интерфэйсийн нэрээр нэрлэгдсэн байх ёстой. Үүнийг хийхийн тулд &man.rc.conf.5;-г
үзнэ үү.
Parallel Line IP (PLIP) буюу Зэрэгцээ Шугамын IP
PLIP
Parallel Line IP
PLIP
PLIP нь параллел буюу зэрэгцээ портуудын хооронд TCP/IP ажиллуулах
боломж олгодог. Энэ нь сүлжээний картгүй машинууд дээр эсвэл зөөврийн компьютер
дээр суулгахад ашигтай байдаг. Энэ хэсэгт бид дараах зүйлсийг хэлэлцэх
болно:
Зэрэгцээ (laplink) кабелийг хийх.
PLIP-ээр хоёр компьютерийг холбох.
Зэрэгцээ кабелийг хийх
Та зэрэгцээ кабелийг ихэнх компьютерийн хангамжийн дэлгүүрээс худалдан
авч болно. Хэрэв та тэгж чадахгүй бол эсвэл та зүгээр л яаж хийгддэгийг мэдэхийг
хүсэж байгаа бол дараах хүснэгт нь ердийн зэрэгцээ хэвлэгчийн кабелиас
тийм кабель хэрхэн хийхийг харуулж байна.
Сүлжээнд зориулж зэрэгцээ кабель хийх нь
A-нэр
A-Төгсгөл
B-Төгсгөл
Тайлбар
Post/Bit
DATA0
-ERROR
2
15
15
2
Өгөгдөл
0/0x01
1/0x08
DATA1
+SLCT
3
13
13
3
Өгөгдөл
0/0x02
1/0x10
DATA2
+PE
4
12
12
4
Өгөгдөл
0/0x04
1/0x20
DATA3
-ACK
5
10
10
5
Strobe
0/0x08
1/0x40
DATA4
BUSY
6
11
11
6
Өгөгдөл
0/0x10
1/0x80
GND
18-25
18-25
GND
-
PLIP-ийг тохируулах
Эхлээд та laplink кабель олж авах хэрэгтэй.
Дараа нь хоёр компьютер хоёулаа &man.lpt.4; драйверийн
дэмжлэгтэй цөмтэй эсэхийг шалгаарай:
&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
Зэрэгцээ порт нь тасалдлаар удирдагддаг порт байх ёстой
бөгөөд та өөрийн /boot/device.hints
файлдаа доор дурдсантай төстэй мөрүүдтэй байх ёстой:
hint.ppc.0.at="isa"
hint.ppc.0.irq="7"
Дараа нь цөмийн тохиргооны файлд device plip
мөр байгаа эсэх эсвэл цөмийн plip.ko модуль
дуудагдсан эсэхийг шалгана. Аль ч тохиолдолд таныг &man.ifconfig.8; ашиглан
үзүүлэх үед зэрэгцээ сүлжээний интерфэйс гарч ирэх ёстой:
&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
Компьютер бүрийн зэрэгцээ интерфэйс уруу laplink кабелиа
залгана.
Сүлжээний интерфэйсийн өгөгдлүүдийг хоёр талын хоёулан дээр
root хэрэглэгчээр тохируулна. Жишээ нь хэрэв та
host1 хостыг өөр host2 машинтай
холбохыг хүсвэл:
host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2
host1 дээрх интерфэйсийг доор дурдсаныг хийж тохируулна:
&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2
host2 дээрх интерфэйсийг доор дурдсаныг хийж тохируулна:
&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1
Та одоо ажилладаг холболттой болсон байх ёстой. Дэлгэрэнгүй мэдээллийг
&man.lp.4; болон &man.lpt.4; гарын авлагын хуудаснуудаас уншина уу.
Та хоёр хостыг хоёуланг нь /etc/hosts файлд
нэмэх хэрэгтэй:
127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domain host2
Холболт ажиллаж байгааг баталгаажуулахын тулд хост бүр уруу очоод
нөгөө тал уруу ping хийнэ. Жишээ нь host1 дээр:
&prompt.root; ifconfig plip0
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 plip0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
Аарон
Каплан
Анхлан бичсэн
Том
Рөүдс
Дахин бүтцийг өөрчилж нэмсэн
Брэд
Дэйвис
Өргөтгөсөн
IPv6
IPv6 (бас IPng IP next generation
буюу дараа үеийн IP гэгддэг) нь
олонд танигдсан IP протоколын (бас IPv4 гэгддэг) шинэ хувилбар юм.
Одоогийн бусад *BSD системүүдийн адил FreeBSD нь KAME IPv6 лавлагаа шийдлийг
агуулдаг. Тэгэхээр таны FreeBSD систем таныг IPv6-г туршихад хэрэгтэй бүхнийг агуулсан
байдаг. Энэ хэсэг нь IPv6-г тохируулж ажиллуулах талаар анхаарлаа хандуулах болно.
1990 оны эхэн үеэс хүмүүс IPv4-ийн хаягийн хэмжээ хурдацтай багасаж
байгааг мэдэх болсон. Интернэтийн өсөлтийн хурдаас хамаараад хоёр гол асуудал
гарч ирсэн:
Хаяггүй болж эхэлсэн. RFC1918 хувийн хаягийн талбар
(10.0.0.0/8,
172.16.0.0/12, болон
192.168.0.0/16) болон
Network Address Translation (NAT) буюу
Сүлжээний хаягийн хөрвүүлэлтийг ашигладаг болсон болохоор өнөөдөр энэ нь
тийм ч чухал асуудал байхаа больсон.
Чиглүүлэгчийн хүснэгтийн оруулгууд хэтэрхий ихсэж байгаа явдал.
Энэ нь өнөөдөр асуудал хэвээр байгаа билээ.
IPv6 нь эдгээр асуудлууд болон өөр бусад олныг шийддэг:
128 битийн хаягийн талбар. Өөрөөр хэлбэл онолын хувьд
340,282,366,920,938,463,463,374,607,431,768,211,456 хаяг байна.
Энэ нь манай гариг дээрх нэг квадрат метр бүрт ойролцоогоор 6.67 * 10^27 IPv6 хаяг
байна гэсэн үг юм.
Чиглүүлэгчүүд нь зөвхөн сүлжээний нийлбэр хаягуудыг өөрсдийн чиглүүлэлтийн
хүснэгтүүдэд хадгалах бөгөөд ингэснээр чиглүүлэлтийн хүснэгтийн дундаж хэмжээг
8192 хүртэл бууруулдаг.
IPv6-ийн бусад ашигтай олон боломжууд бас байдаг, тэдгээрээс дурдвал:
Хаягийн автомат тохиргоо (RFC2462)
Anycast хаягууд (one-out-of many
буюу олноос ганц)
Зайлшгүй шаардлагатай (mandatory) multicast хаягууд
IPsec (IP security буюу нууцлаг)
Хялбаршуулсан толгойн бүтэц
Хөдөлгөөнт IP
IPv6-to-IPv4 шилжилтийн арга замууд
Дэлгэрэнгүй мэдээллийн талаар доороос үзнэ үү:
playground.sun.com
дэх IPv6-ийн тухай тойм
KAME.net
IPv6 хаягуудын тухай суурь мэдээлэл
IPv6 хаягуудын өөр өөр төрлүүд байдаг: Unicast, Anycast, болон
Multicast.
Unicast хаягууд нь бидний мэддэг хаягууд юм. Unicast хаяг уруу илгээсэн
пакет нь яг тэр хаягт харгалзах интерфэйс дээр ирдэг.
Anycast хаягуудыг unicast хаягуудаас ялгах боломжгүй байдаг боловч
тэдгээр нь бүлэг интерфэйсүүдийг хаягладаг. Anycast хаяг уруу чиглэсэн пакет
хамгийн ойрын (чиглүүлэгчийн хэмжилтийн хувьд) интерфэйс дээр ирэх болно.
Anycast хаягуудыг зөвхөн чиглүүлэгчид ашиглаж болох юм.
Multicast хаягууд нь бүлэг интерфэйсүүдийг таньдаг. Multicast хаяг уруу
чиглэсэн пакет нь multicast бүлэгт харьяалагдах бүх интерфэйсүүд дээр
ирэх болно.
IPv4 цацах (broadcast) хаяг (ихэвчлэн xxx.xxx.xxx.255) нь
IPv6-ийн multicast хаягуудаар илэрхийлэгддэг.
Нөөц IPv6 хаягууд
IPv6 хаяг
Prefixlength буюу угтварын урт (битээр)
Тайлбар
Тэмдэглэл
::
128 бит
тодорхойлогдоогүй
харьцуулбал IPv4 дэх 0.0.0.0
::1
128 бит
loopback буюу буцах хаяг
харьцуулбал IPv4 дэх 127.0.0.1
::00:xx:xx:xx:xx
96 бит
суулгагдсан IPv4
Бага 32 бит нь IPv4 хаяг юм. Бас
IPv4 нийцтэй IPv6 хаяг
гэгддэг
::ff:xx:xx:xx:xx
96 бит
IPv4-р илэрхийлэгдсэн IPv6 хаяг
Бага 32 бит нь IPv4 хаяг юм.
IPv6-г дэмждэггүй хостуудад зориулсан.
fe80:: - feb::
10 бит
link-local
харьцуулбал IPv4 дэх loopback буюу буцах хаяг
fec0:: - fef::
10 бит
site-local
ff::
8 бит
multicast
001 (хоёртын системээр)
3 бит
глобал unicast
Бүх глобал unicast хаягууд нь энэ цөөрмөөс заагдана.
Эхний 3 бит нь 001
байна.
IPv6 хаягуудыг унших нь
Дүрмийн дагуу ийм хэлбэртэй байна: x:x:x:x:x:x:x:x хэлбэрийн
байх бөгөөд x
бүр нь 16 битийн арван зургаат утга байна. Жишээ нь
FEBC:A574:382B:23C1:AA49:4592:4EFE:9982
Хаяг нь ихэнхдээ дандаа тэгүүдээс тогтох урт дэд хэсгүүдээс тогтож болох бөгөөд хаягийн тийм
хэсгийг ::
гэж хураангуйлж болно. Дөрвөн арван зургаат тооны
гурав хүртэлх эхний 0
-үүдийг орхиж бас болно.
Жишээ нь fe80::1 нь дүрэмд заасан хэлбэрээр бол
fe80:0000:0000:0000:0000:0000:0000:0001 байна.
Гурав дахь хэлбэр нь сүүлийн 32 бит хэсгийг бидний мэддэг (аравтын) IPv4
загварын цэгүүдээр .
тусгаарлаж бичих явдал юм.
Жишээ нь 2002::10.0.0.1 нь
(арван зургаатын) дүрэмд зааснаар
2002:0000:0000:0000:0000:0000:0a00:0001
болох бөгөөд үүнийг бас 2002::a00:1
гэж бичиж болох юм.
Энэ хүртэл уншигч доор дурдсаныг ойлгож чадаж байх ёстой:
&prompt.root; ifconfig
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: active
fe80::200:21ff:fe03:8e1%rl0 нь
автоматаар тохируулагдсан link-local хаяг юм. Энэ нь MAC хаягаас автомат тохиргооны
хэсэг болон үүсгэгддэг.
IPv6 хаягуудын бүтцийн тухай дэлгэрэнгүй мэдээллийг
RFC3513 хаягаас
үзнэ үү.
Холбогдох нь
Одоогоор бусад IPv6 хостууд болон сүлжээнүүдтэй холбогдох дөрвөн арга байдаг:
IPv6 үйлчилгээ үзүүлдэг эсэхийг мэдэхийн тулд
өөрийн Интернэтийн үйлчилгээ үзүүлэгчид хандах хэрэгтэй.
SixXS нь
дэлхий даяар эцсийн хэрэглэгчдийн хооронд туннелийн
үйлчилгээ үзүүлдэг.
6-аас-4 уруу туннель хийх (RFC3068)
Хэрэв та dial-up холболт дээр байгаа бол
net/freenet6 портыг ашиглах
хэрэгтэй.
IPv6 ертөнц дэх DNS
IPv6-д зориулсан хоёр төрлийн DNS бичлэг байдаг. IETF нь A6 бичлэгийг
хуучин, хэрэгцээнээс гарсан гэж зарласан. AAAA бичлэгүүд нь одоо стандарт
болсон байгаа.
AAAA бичлэгүүдийг ашиглах нь амархан. Өөрийн хостын нэрийг дөнгөж авсан шинэ
IPv6 хаягт зааж доор дурдсаныг:
MYHOSTNAME AAAA MYIPv6ADDR
өөрийн анхдагч бүсийн DNS файл уруу нэмж өгнө. Та өөрийн DNS
бүсүүдийг удирддаггүй бол өөрийн DNS үйлчилгээ үзүүлэгчээс
асуух хэрэгтэй. bind (8.3 ба 9 хувилбар)
болон dns/djbdns-ийн (IPv6 засвартай)
одоогийн хувилбарууд AAAA бичлэгүүдийг дэмждэг.
/etc/rc.conf файлд хэрэгцээтэй өөрчлөлтүүдийг хийх нь
IPv6 клиентийн тохиргоонууд
Эдгээр тохиргоонууд нь таны LAN-д байх машиныг чиглүүлэгч биш клиент маягаар
ажиллуулахаар тохируулахад танд туслах болно. Таны интерфэйсийг ачаалах үед автоматаар
&man.rtsol.8;-оор тохируулуулахын тулд таны нэмэх ёстой зүйл бол дараах мөр юм:
ipv6_enable="YES"
2001:471:1f11:251:290:27ff:fee0:2093 зэрэг
IP хаягийг өөрийн fxp0 интерфэйсд
статикаар өгөхийн тулд доор дурдсаныг нэмнэ:
ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"
2001:471:1f11:251::1 анхдагч
чиглүүлэгчийг зааж өгөхдөө доор дурдсаныг /etc/rc.conf
файлд нэмнэ:
ipv6_defaultrouter="2001:471:1f11:251::1"
IPv6 чиглүүлэгч/гарцын тохиргоонууд
Энэ нь таны туннелийн үйлчилгээ үзүүлэгчийн өгсөн чиглэлүүдийг авч тэдгээрийг дахин ачаалсан ч
гэсэн үлдэхээр болгож тохиргоо болгон хөрвүүлэхэд танд туслах болно. Эхлүүлэх үед
өөрийн туннелийг сэргээхийн тулд доор дурдсантай төстэйг /etc/rc.conf
файлд ашиглана:
Тохируулах Ердийн Туннель хийх интерфэйсүүдийг жагсаана. Жишээ нь
gif0:
gif_interfaces="gif0"
MY_IPv4_ADDR гэсэн локал төгсгөлтэй
интерфэйсийг REMOTE_IPv4_ADDR гэсэн алсын төгсгөл
уруу тохируулахын тулд:
gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"
Өөрийн IPv6 туннелийн төгсгөл болгон ашиглахаар таны зааж өгсөн IPv6
хаягийг хамааруулахын тулд доор дурдсаныг нэмнэ:
ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"
Тэгээд таны хийх зүйл чинь IPv6-д зориулж анхдагч чиглүүлэлт тохируулах
явдал юм. Энэ нь IPv6 туннелийн нөгөө тал байх болно:
ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"
IPv6 туннелийн тохиргоонууд
Хэрэв сервер нь таны бусад сүлжээ болон гадаад ертөнцийн хооронд
IPv6-г чиглүүлэх бол дараах /etc/rc.conf
тохируулга бас хэрэгтэй болно:
ipv6_gateway_enable="YES"
Чиглүүлэгчийн зарлалт ба Хостын автомат тохиргоо
Энэ хэсэг нь IPv6 анхдагч чиглүүлэлтийг зарлахын тулд &man.rtadvd.8;-г
тохируулахад тань туслах болно.
&man.rtadvd.8;-г идэвхжүүлэхийн тулд таны /etc/rc.conf
файлд дараах тохиргоо хэрэгтэй болно:
rtadvd_enable="YES"
IPv6 чиглүүлэгчийн төлөөлөлт хийгдэх интерфэйсийг заах нь чухал юм. Жишээ нь
&man.rtadvd.8;-д fxp0-г ашиглахыг хэлж өгөхийн
тулд доор дурдсаныг нэмнэ:
rtadvd_interfaces="fxp0"
Одоо бид /etc/rtadvd.conf тохиргооны
файл үүсгэх ёстой. Энд жишээ байна:
fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:
fxp0-г өөрийн ашиглах интерфэйсээр солих
хэрэгтэй.
Дараа нь 2001:471:1f11:246::-г
өөрийн хуваарилалтын угтвараар солиорой.
Хэрэв та /64 дэд сүлжээг зориулсан
бол өөр бусад ямар ч өөрчлөлт хийх хэрэггүй. Хэрэв тийм биш бол та
prefixlen# буюу угтварын уртыг зөв утгаар өөрчлөх шаардлагатай.
Харти
Брандт
Хувь нэмэр болгон оруулсан
Asynchronous Transfer Mode (ATM) буюу Асинхрон Дамжуулах Горим
ATM дээгүүр классик IP тохируулах нь (PVC-нүүд)
Classical IP over ATM (CLIP) буюу
ATM дээгүүрх классик IP нь Asynchronous Transfer Mode (ATM)
буюу Асинхрон Дамжуулах Горимыг IP-тай ашиглах хамгийн энгийн
арга юм. Энэ нь switched буюу шилжүүлэгдсэн (SVC-нүүд) ба permanent буюу
байнгын (PVC-нүүд) холболтуудтай ашиглагдаж болдог. Энэ хэсэг нь
сүлжээн дээр тулгуурласныг PVC-нүүд дээр хэрхэн тохируулах талаар
тайлбарладаг.
Бүрэн тор хэлбэрийн тохиргоонууд
CLIP-ийг PVC-нүүдтэй тохируулах эхний арга нь
машин бүрийг сүлжээн дэх бусад машин бүртэй зориулагдсан PVC-ээр холбох явдал
юм. Үүнийг тохируулах хялбар байдаг боловч их олон тооны машинууд дээр
бүтэшгүй байдаг. Энэ жишээ нь сүлжээнд бидэнд дөрвөн машин байгаа бөгөөд
машин бүр ATM
сүлжээнд ATM
хувиргагч картын тусламжтай холбогдсон гэж үздэг. Эхний алхам нь IP хаягууд болон
машинуудын хооронд ATM холболтуудыг төлөвлөх явдал юм.
Бид доор дурдсаныг ашиглана:
Хост
IP хаяг
hostA
192.168.173.1
hostB
192.168.173.2
hostC
192.168.173.3
hostD
192.168.173.4
Бүрэн тор хэлбэрийн сүлжээг бүтээхийн тулд машинуудын хослол бүрийн хооронд
нэг ATM холболт бидэнд хэрэгтэй:
Машинууд
VPI.VCI хослол
hostA - hostB
0.100
hostA - hostC
0.101
hostA - hostD
0.102
hostB - hostC
0.103
hostB - hostD
0.104
hostC - hostD
0.105
Холболтын төгсгөл бүр дэх VPI болон VCI утгууд нь мэдээж ялгаатай
байх боловч амархан байлгах үүднээс бид тэдгээрийг адил гэж үзнэ. Дараа нь
бид ATM интерфэйсүүдийг хост бүр дээр тохируулах хэрэгтэй болно:
hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 up
Ингэхдээ бүх хостууд дээр ATM интерфэйс нь hatm0
гэж үзэх болно. Одоо PVC-нүүд нь hostA дээр тохируулагдах
шаардлагатай (бид тэдгээрийг ATM шилжүүлэгч дээр аль хэдийн тохируулагдсан гэж
үзнэ, үүнийг хэрхэн хийхийг шилжүүлэгчийн гарын авлагаас лавлах хэрэгтэй).
hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr
Мэдээж хэрэг UBR-с бусад урсгалын хэлэлцээнүүд хэрэв ATM хувиргагч тэдгээрийг
дэмждэг бол ашиглагдаж болно. Энэ тохиолдолд урсгалын хэлэлцээний нэр нь урсгалын
нэмэлт өгөгдлүүдийн дараа орж байна. &man.atmconfig.8; хэрэгсэлд зориулсан
тусламжийг дараах тушаалыг ашиглан:
&prompt.root; atmconfig help natm add
авч болох бөгөөд эсвэл &man.atmconfig.8; гарын авлагаас авч болно.
Үүнтэй адил тохиргоог /etc/rc.conf
ашиглан бас хийж болно. hostA-ийн хувьд энэ нь
иймэрхүү харагдана:
network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"
Бүх CLIP чиглүүлэлтүүдийн тухайн үеийн төлвийг дараах
тушаалаар авч болно:
hostA&prompt.root; atmconfig natm show
Том
Рөүдс
Хувь нэмэр болгон оруулсан
Common Address Redundancy Protocol (CARP)
CARP
Common Address Redundancy Protocol
Common Address Redundancy Protocol буюу CARP нь
олон хостуудад нэг IP хаяг хуваалцах боломжийг олгодог.
Зарим тохиргоонуудын хувьд үүнийг байнгын бэлэн байдал юм уу эсвэл ачаалал тэгш хуваарилахад
ашиглаж болох юм. Энд дурдсан жишээний адилаар хостууд нь бас өөр өөр
IP хаягууд ашиглаж болох юм.
CARP-ийн дэмжлэгийг идэвхжүүлэхийн тулд
&os; цөмийг дараах тохируулгатайгаар бүтээсэн байх хэрэгтэй:
device carp
CARP боломж нь одоо хүртээмжтэй болсон байх
ёстой бөгөөд түүнийг хэд хэдэн sysctl-ийн OID-уудын
тусламжтайгаар тааруулж болно:
OID
Тайлбар
net.inet.carp.allow
Ирж байгаа CARP пакетуудыг хүлээж авах.
Анхдагчаар идэвхжсэн байдаг.
net.inet.carp.preempt
Энэ тохируулга нь хост дээрх бүх CARP
интерфэйсүүдийг аль нэг нь зогссон тохиолдолд зогсоодог.
Анхдагчаар идэвхжээгүй байдаг.
net.inet.carp.log
0 гэсэн утга нь бүртгэлийг идэвхжүүлдэггүй.
1 гэсэн утга нь муу CARP
пакетуудын бүртгэлийг идэвхжүүлдэг. 1-ээс
их утгууд нь CARP интерфэйсүүдийн хувьд
төлвийн өөрчлөлтүүдийн бүртгэлийг идэвхжүүлдэг. Анхдагч
утга нь 1 байна.
net.inet.carp.arpbalance
ARP ашиглан дотоод сүлжээний
урсгалыг тэнцвэржүүлнэ. Анхдагчаар идэвхжээгүй байдаг.
net.inet.carp.suppress_preempt
Preemption буюу өөр илүү өндөр давуу эрх бүхий бодлого/урсгалаар
солигдох боломжийг хаасан хориглолтын төлвийг үзүүлэх
зөвхөн уншигдах OID. Хэрэв интерфэйс дээрх
холбоос босоогүй бол илүү өндөр давуу эрх бүхий бодлого/урсгалаар
солигдох боломжийг хааж болно. 0 утга нь
илүү өндөр давуу эрх бүхий бодлого/урсгалаар солигдох боломж
хаагдаагүй гэсэн утгатай. Асуудал бүр энэ OID-ийг
нэгээр ахиулж нэмэгдүүлнэ.
CARP төхөөрөмжүүдийг ifconfig
тушаалаар үүсгэж болно:
&prompt.root; ifconfig carp0 create
Жинхэнэ амьдрал дээр эдгээр интерфэйсүүдэд VHID гэгддэг
давхардахгүй дугаарууд хэрэгтэй болно. Энэ VHID буюу
Виртуал Хостын Үнэмлэх нь сүлжээн дэх хостыг ялгахад хэрэглэгдэх болно.
Серверт хандах боломжийг байнга хангахын тулд CARP-ийг ашиглах нь (CARP)
Дээр дурдсан CARP-ийн нэг хэрэглээ нь серверийн
бэлэн байдалд зориулагджээ. Энэ жишээ нь өөр өөр IP
хаягуудтай, ижил вэбийн агуулга бүхий гурван хостын хувьд байнгын
бэлэн байдалд байх дэмжлэгийг харуулах болно. Эдгээр машинууд нь
Тойрон Эргэх DNS тохиргоотойгоор ажиллах болно.
Амжилтгүй болсон үед хандах нөөц машин нь хоёр нэмэлт CARP
интерфэйстэй байх бөгөөд агуулгын сервер бүрийн IP-ний
хувьд ашиглагдана. Хандалт амжилтгүй болоход амжилтгүй болсон машины
IP хаягийг нөөц сервер авах ёстой. Энэ нь
хэрэглэгчид амжилтгүй болсон нь мэдэгдэхгүй гэсэн үг юм. Нөөц сервер нь ачааллыг
авах ёстой бол бусад агуулгын серверүүдтэй ижил агуулга болон үйлчилгээнүүдтэй
байх ёстой.
Хоёр машин нь өгөгдсөн хостын нэр болон VHID-үүдээс
бусдаараа адилхан тохируулагдсан байх ёстой. Энэ жишээн дээр
эдгээр машинуудыг hosta.example.org болон
hostb.example.org гэж нэрлэсэн байгаа. Эхлээд
CARP-ийн тохиргоонд шаардлагатай мөрүүдийг
rc.conf файлд нэмэх хэрэгтэй.
hosta.example.org хостын хувьд
rc.conf файл доор дурдсан мөрүүдийг агуулсан байх ёстой:
hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"
hostb.example.org дээр доор дурдсан мөрүүдийг
rc.conf файл агуулсан
байх ёстой:
hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"
Хамгийн чухал нь ifconfig тушаалд тохируулгаар
заагдсан нууц үгс нь адил байх ёстой. carp
төхөөрөмжүүд нь зөвхөн зөв нууц үг бүхий машинуудаас ирэх зарлалтуудыг сонсох
болно. VHID нь машин бүрийн хувьд өөр өөр байх ёстой.
Гурав дахь provider.example.org машиныг
аль нэг хост руу хандахад амжилтгүй болоход хандаж болохоор болгож бэлдэх хэрэгтэй.
Энэ машинд хоёр carp төхөөрөмж хэрэгтэй болох
бөгөөд нэг нэгээрээ хоёр хосттой ажиллах юм. rc.conf-ийн
зөв тохиргооны мөрүүд доор дурдсантай төсөөтэй байх болно:
hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"
Хоёр carp төхөөрөмжтэй байх нь
хариу өгөхөө байсан аль нэг машиныг мэдэж IP хаягийг нь
авах боломжийг provider.example.org хостод олгох болно.
Анхдагч &os; цөм дээр preemption буюу өөр илүү өндөр давуу эрх бүхий бодлого/урсгалаар
солигдох боломж идэвхжсэн байж болох юм.
Хэрэв тийм бол provider.example.org нь
IP хаягийг анхдагч агуулгын сервер рүү суллахгүй
байж болох юм. Энэ тохиолдолд администратор мастер уруу буцааж
IP-г хүчилж болох юм. Дараах тушаалыг provider.example.org
дээр ажиллуулах шаардлагатай:
&prompt.root; ifconfig carp0 down && ifconfig carp0 up
Хостод тохирох carp интерфэйс дээр
үүнийг хийх ёстой.
Энэ хүрэхэд CARP бүрмөсөн идэвхжиж
тест хийхэд бэлэн болсон байх ёстой. Сүлжээг дахин эхлүүлэх буюу эсвэл
машинуудыг дахин ачаалаад тест хийгээрэй.
Дэлгэрэнгүй мэдээллийг &man.carp.4; гарын авлагын хуудаснаас олж
болно.
diff --git a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
index c4183c9f37..b9b1f3a396 100644
--- a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
@@ -1,2554 +1,2554 @@
Крис
Шамвэй
Дахин бичсэн
Шагдарын
Нацагдорж
Орчуулсан
Юниксийн үндэс
Ерөнхий агуулга
Дараах бүлгүүд нь FreeBSD үйлдлийн системийн үндсэн
тушаал мөн гүйцэтгэлүүдийг хамрах болно. Энэ материалын
ихэнх хэсэг нь &unix;-төрлийн үйлдлийн системтэй хамаатай.
Хэрэв та юникс төрлийн үйлдлийн системтэй танил бол энэ бүлгийг
алгасаж болно. Харин та FreeBSD-г шинээр сурагч бол энэ бүлгийг
тун анхааралтай унших хэрэгтэй.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
FreeBSD-н виртуал консолыг
хэрхэн
хэрэглэх.
&os; дээрх файлын тугийг ойлгосноор &unix;-н файлын
зөвшөөрөл хэрхэн ажилладгийг мэдэх.
Үндсэн &os; файл системийн байрлуулалтыг мэдэх.
&os; диск зохион байгуулалт.
Файл системийг хэрхэн холбох болон салгах.
Процесс, далд чөтгөр дэмон, мөн дохионууд гэж юу болох.
Бүрхүүл гэж юу болох, мөн хэрхэн анхны нэвтрэх орчноо өөрчлөх.
Үндсэн текст засварлагчийг хэрхэн хэрэглэх.
Төхөөрөмж болох төхөөрөмжийн цэг гэж юу болох.
&os;-д ямар хоёртын хэлбэр хэрэглэгддэг болох.
Нэмэлт мэдээллийг товч гарын авлагаас хэрхэн харах.
Виртуал консол болон терминал
виртуал консол
терминал
FreeBSD нь олон аргаар хэрэглэгдэж чадна. Тэдний нэг нь
тушаалуудыг текст терминал дээр бичиж хэрэглэх юм. Хэрэв та
FreeBSD-г ингэж хэрэглэвэл, &unix;-н маш олон боломж болон
хүч таны гарт байна гэсэн үг.
Энэ бүлэг танд, терминал
болон консол
гэж юу болох, мөн тэд нарыг FreeBSD дээр хэрхэн хэрэглэх талаар
танд тодорхойлж өгөх болно.
Консол
консол
Хэрэв та FreeBSD-г эхлэх үедээ автоматаар график горимд
эхлүүлэхээр тохируулаагүй бол, систем нь эхлэлтийн гүйцэтгэдэг
бичиглэлүүдээ дуусгасны дараа танд нэвтрэх хуудас харуулдаг.
Та нэг иймэрхүү хуудас харах байх:
Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:
Энд харуулсан текстүүд нь таны систем дээр жаахан
өөр байж магадгүй ч, ерөнхийдөө үүнтэй ижил байх ёстой.
Сүүлийн хоёр мөр нь бидэнд одоогоор чухал мөрүүд. Сүүлээсээ
хоёр дахь мөр нь ингэж уншигдаж байна:
FreeBSD/i386 (pc3.example.org) (ttyv0)
Энэ мөр нь таны дөнгөж сая эхлүүлсэн системийн тухай
товч мэдээллийг агуулсан байна. Та x86 архитектуртай тохиромжтой
Интел юм уу тохирох систем дээр ажиллаж буй FreeBSD
консолыг харж байна
i386 гэдэг нь үүнийг илэрхийлж байгаа юм. Тэмдэглэж хэлэхэд, хэрэв та FreeBSD-г Интел 386 процессор дээр
ажиллуулаагүй байсан ч энэ нь i386 гэж гарна. Энэ нь процессорын төрлийг биш харин процессорын архитектурыг
харуулж байгаа юм.
. Энэ машины нэр нь (&unix; машин болгон
өөрийн нэртэй ) pc3.example.org, бөгөөд
та энэ системийн консолын — ttyv0
нэртэй терминалыг харж байна.
Эцэст нь, сүүлийн мөр бол үргэлж:
login:
Энэ хэсэг нь, таны FreeBSD уруу нэвтрэх
хэрэглэгчийн-нэрээ
бичдэг хэсэг. Дараагийн
хэсэгт энэ талаар тодорхойлсон байгаа.
FreeBSD уруу нэвтрэх
FreeBSD бол олон хэрэглэгчийн бас олон үйлдлийн систем.
Энэ нь, нэг машин уруу олон хүмүүс зэрэг холбогдож
нэгэн зэрэг олон үйлдэл хийж болдог системийн ерөнхий тодорхойлолт
юм.
Олон хэрэглэгчийн систем нь ямар нэгэн аргаар нэг
хэрэглэгчийг
бусдаас нь ялгаж чаддаг байх ёстой.
FreeBSD дээр (мөн бусад &unix;-төрлийн системүүд дээр) энэ нь,
хэрэглэгч ямар нэгэн програм ажиллуулахаасаа өмнө систем уруу
нэвтрэх үйлдэл
хийж хэрэгждэг. Хэрэглэгч бүрд
гоц нэр (
хэрэглэгчийн-нэр
) мөн хувийн нууц үг (
нууц-үг
) харгалзах ёстой. Хэрэглэгчийг програм
хэрэглэж эхлэхээс өмнө FreeBSD энэ хоёрыг асуух болно.
эхлэлийн бичлэг
Дөнгөж FreeBSD эхлэх үедээ эхлүүлэгч бичлэгүүдийг
Эхлэх бичлэгүүд гэдэг нь
FreeBSD эхлэх үед автоматаар ажилладаг програмууд. Тэдгээрийн
үндсэн үүрэг нь, ажиллах ёстой програмуудыг тохируулах, мөн хэрэв ар талд далд ажилладаг ямар нэгэн үр ашигтай үйлдэл хийж байдаг
таны тохируулсан үйлчилгээнүүд байвал тэднийг
эхлүүлэх зэрэг үйлдлүүд юм.
гүйцэтгэж дуусаад танаас зөв
хэрэглэгчийн нэр оруулахыг лавлаж асууна:
login:
Энэ жишээнд зориулаад бүгдээрээ таны хэрэглэгчийн нэрийг
john гэж бодоцгооё. Лавлаж асуусан
мөрөнд john гэж бичээд
Enter товч дарна. Ингээд дараа нь танаас
password
гэж нууц үг асуух болно:
login: john
Password:
john-ны нууц үгийг оруулаад
Enter товч дарна. Нууц үгийг танд
харуулдаггүй! Энэ талаар та одоохондоо санаагаа
зовоох хэрэггүй. Нууцлалын шалтгаанаар ингэж байгаа юм гэж
хэлэхэд хангалттай.
Хэрэв та нууц үгээ зөв оруулсан бол ингээд FreeBSD
уруу нэвтрэх бөгөөд боломжтой бүх програмуудыг туршиж болохоор
боллоо.
Та MOTD эсвэл тухайн өдрийн мэдээллийг
тушаал бичигчийн араас харах болно ( тушаал бичигч нь
#,
$, эсвэл % гэсэн
тэмдэгтүүдийн нэг нь байдаг). Энэ нь таныг FreeBSD уруу
амжилттай нэвтэрснийг илэрхийлдэг.
Олон консолууд
&unix; тушаалуудыг нэг консол дээр гүйцэтгэх нь ердийнх, гэхдээ FreeBSD олон програмыг нэг дор ажиллуулж чадна. FreeBSD
олон програмыг нэг дор нэг цагт ажиллуулж чадаж байхад, нэг консол
дээр олон тушаал өгч суух нь цаг алдахын л нэмэр. Ийм үед л
виртуал консолын
тусламж хэрэг болдог.
FreeBSD нь танд олон төрлийн виртуал консол хэрэглүүлэхээр
тохируулагдаж чаддаг. Нэг виртуал консолоос нөгөөх уруу нь
гарын хэдхэн товчлуур дараад л шилжиж болдог. Консол бүр өөрийн
төрөл бүрийн гаралтын сувагтай бөгөөд FreeBSD нь таныг нэг
консолоос нөгөө консол уруу сэлгэх үед гарын оруулга болон дэлгэцийн
гаралтыг тухайн консолд тохируулж дамжуулж өгдөг.
Гарын тусгай товчлолууд нь FreeBSD дээр консол сэлгэхэд зориулж
нөөцлөгдсөн байдаг
FreeBSD консол мөн гарын тохируулгын тухай нэлээн
дэлгэрэнгүй техникийн мэдээллийг та
&man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1;
мөн &man.kbdcontrol.1; зэрэг гарын авлагуудаас харж болно. Бид
нар энд задалж нарийвчлахгүй бөгөөд сонирхсон хүмүүс нь гарын авлагуудаас хэрхэн ажилладаг заавар тайлбарыг уншиж болно.
. Та
AltF1,
AltF2, аас
AltF8 хүртэлх товчлуурыг дарж FreeBSD дээр консолуудын хооронд шилжиж болно.
Таныг нэгээс нөгөөх уруу нь шилжих үед, FreeBSD таны дэлгэцийн
гаралтыг хадгалж санаа тавьдаг. Ингэсний үр дүнд гарнаас тушаал оруулж програмуудыг
ажиллуулж болдог маш олон виртуал
дэлгэцүүдтэй
мэт үзэгддэг. Нэг виртуал консол дээр таны ажиллуулсан програм нь уг консолоос сэлгээд өөр консол дээр сэлгэсэн ч гэсэн зогсохгүй
ажиллаж л байдаг.
/etc/ttys Файл
FreeBSD анхны тохируулгаараа найман виртуал
консолтой эхэлдэг. Энэ нь хатуу тогтоосон тохируулга биш бөгөөд
хэрэв та хүсвэл олон юм уу цөөн болгож амархан өөрчлөх боломжтой. Виртуал консолын тоо болон тохируулга нь
/etc/ttys файлд байдаг.
Та /etc/ttys файлыг хэрэглэж FreeBSD
дээрх виртуал консолуудыг тохируулж болно. Энэ файлын тайлбар
тавиагүй мөр болгон
( # тэмдгээр эхлээгүй мөрүүд) виртуал
консол эсвэл ганц терминалын тохируулгыг агуулж байдаг.
Энэ файл FreeBSD-тэй анх цуг ирэхдээ есөн виртуал
консолтой гэж тохируулагдаж ирдэг бөгөөд тэдний наймыг нь
хэрэглэж болохыг зөвшөөрсөн байдаг. Тэдгээр нь
ttyv гэж эхэлсэн байдаг:
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
Виртуал консолыг тохируулдаг энэ файлын баганууд
мөн нэмэлт сонголтуудын дэлгэрэнгүй
тайлбарыг та &man.ttys.5; гарын авлагаас харна уу.
Ганц хэрэглэгчийн горимын консол
Ганц хэрэглэгчийн горим
гэж юу болох талаар дэлгэрэнгүй мэдээлэл -д буй.
FreeBSD дээр ганц хэрэглэгчийн горимд ажиллаж байхад
зөвхөн нэг консол байдаг гэдгийг мэдэх хэрэгтэй. Энэ үед
ямар ч виртуал консолууд боломжгүй. Ганц хэрэглэгчийн
горимын тохируулгыг бас /etc/ttys файл
дотор хийж болно. console гэж эхэлсэн
мөрүүдийг харна уу:
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure
Дээрх console гэсэн мөрний
дээд хэсэгт бичсэн тайлбарт бичсэний дагуу та secure гэдгийг
insecure гэж өөрчилж болно. Хэрэв та ингэвэл,
FreeBSD ганц хэрэглэгчийн горимд эхэлсэн ч гэсэн танаас
root нууц үг асуух болно.
Үүнийг
insecure гэж солихдоо та тун болгоомжтой
байх хэрэгтэй. Хэрэв та хэзээ нэгэн цагт
root нууц үгээ мартаад ганц хэрэглэгчийн
горимд орвол жаахан хүндрэлтэй байх болно. Энэ нь гэхдээ шийдэж
болохоор хүндрэл боловч FreeBSD-н эхлэх үйлдэл болон хамрагдсан
програмуудад нь дасаагүй хүнд бол жаахан хүндрэлтэй байж магадгүй.
Консолын Видео горимуудыг өөрчлөх нь
FreeBSD-ийн консолын анхдагч видео горимыг 1024x768,
1280x1024, эсвэл таны график бичил схем болон дэлгэц дэмжиж
чадах дурын хэмжээгээр тохируулж болох юм. Өөр видео горимыг
ашиглахын тулд та эхлээд өөрийн цөмөө дахин эмхэтгэж хоёр нэмэлт
тохируулгыг оруулах хэрэгтэй:
options VESA
options SC_PIXEL_MODE
Цөм эдгээр хоёр тохируулгатай дахин эмхэтгэгдсэний дараа
таны тоног төхөөрөмж ямар видео горимуудыг дэмждэгийг
&man.vidcontrol.1; хэрэгсэл ашиглан та тодорхойлж болно.
Дэмжигдсэн видео горимуудын жагсаалтыг авахын тулд доор дурдсан
тушаалыг бичнэ:
&prompt.root; vidcontrol -i mode
Энэ тушаалын үр дүн нь таны тоног төхөөрөмжийн дэмждэг
видео горимуудын жагсаалт байх болно. Та дараа нь
root консол дээр шинэ
видео горимыг сонгон &man.vidcontrol.1; уруу өгч болно:
&prompt.root; vidcontrol MODE_279
Хэрэв шинэ видео горим боломжийн бол
/etc/rc.conf файлд
ачаалахад үүнийг үргэлж сонгодог байхаар тохируулж
болно:
allscreens_flags="MODE_279"
Зөвшөөрлүүд
UNIX
FreeBSD нь BSD &unix;-ээс уламжилж байх үедээ, &unix;-н
үндсэн хэдэн бүтэц дээр суурилсан. Эхний бөгөөд хамгийн
чухал тунхаглал нь FreeBSD бол олон хэрэглэгчийн
үйлдлийн систем юм.
Систем нь олон хэрэглэгчийн хоорондоо хамааралгүй олон үйлдлийг
ачаалж чаддаг. Хэрэглэгч болгонд шаардагдах компьютерийн төхөөрөмж, санах ой мөн процессорын давтамжийг зөв шударга
хуваарилахыг систем хариуцдаг.
Систем олон хэрэглэгчтэй ажиллах болохоор, системийн
хийх ёстой зүйл нь хэн тухайн нөөцийг унших, бичих,
гүйцэтгэх вэ гэдгийг зохицуулах юм. Эдгээр зөвшөөрлүүд нь
гурав гурваараа нийлүүлэгдсэн гурван хэсэг тоо байдаг. Нэг нь
файлын эзэмшигчид, нөгөөх нь файлын хамаарагддаг бүлэгт, үлдсэн нь
хүн болгонд гэж хуваарилагдана. Энэ тоон дараалал нь дараах
маягаар ажилладаг.:
зөвшөөрөл
файлын зөвшөөрөл
Утга
Зөвшөөрөл
Жагсаах харуулалт
0
Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэхгүй
---
1
Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэнэ
--x
2
Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэхгүй
-w-
3
Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэнэ
-wx
4
Уншигдана, бичигдэхгүй, гүйцэтгэгдэхгүй
r--
5
Уншигдана, бичигдэхгүй, гүйцэтгэгдэнэ
r-x
6
Уншигдана, бичигдэнэ, гүйцэтгэгдэхгүй
rw-
7
Уншигдана, бичигдэнэ, гүйцэтгэгдэнэ
rwx
ls
сангууд
Та &man.ls.1; тушаалыг сонголттой
хэрэглэж файлын эзэмшигч, бүлэг, мөн хүн болгонд хуваарилсан
зөвшөөрлийг харуулсан баганатай дэлгэрэнгүй мэдээллийг харж
болно. Жишээлбэл,
ls -l тушаалыг нэг сан дотор гүйцэтгэвэл дараах маягаар харагдана:
&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...
Энд ls -l тушаалын эхний баганыг авч үзье:
-rw-r--r--
Хамгийн эхний (зүүн талын) тэмдэг нь үүнийг ердийн файл
юм уу, эсвэл сан, онцгой тэмдэг төхөөрөмж, сокет, эсвэл ямар
нэгэн холбоост файл мөн эсэхийг илэрхийлдэг. Энэ тохиолдолд
- нь ердийн файлыг зааж байна.
Дараагийн гурван тэмдэгт
rw- нь энэ тохиолдолд энэ файлын эзэмшигчид
зөвшөөрөл өгч байна. Дараагийн гурван тэмдэгт r-- нь файлын хамаарах бүлэгт эрх өгч байна.
Сүүлийн гурван тэмдэгт r-- нь бусад бүх хүмүүст
эрх өгч байна. Зураас нь зөвшөөрөл өгөөгүйг
илэрхийлдэг. Энэ файлын тохиолдолд, файлыг унших бичих эрхийг эзэмшигчид нь өгөөд, бүлэг нь файлыг унших эрхтэй, бусад хүмүүс
энэ файлыг зөвхөн унших эрхтэй гэж заагдсан байна.
Дээр тайлбарласан хүснэгтийн дагуу, энэ файлын зөвшөөрөл нь
644 гэж дээрх гурван төрөлд заагдаж байна.
Энэ бол сайн бөгөөд сайхан хэрэг, гэхдээ төхөөрөмж рүү хандах
зөвшөөрлийг систем яаж хянах вэ? FreeBSD бараг ихэнх
төхөөрөмжийг нээж уншиж өгөгдөл бичдэг файл мэт хандаж уншиж
бичдэг. Тэдгээр онцгой төхөөрөмжүүд нь
/dev сан дотор байрладаг.
Сангууд ч гэсэн бас файл мэт хандагддаг. Тэд нарт бас
уншигдах, бичигдэх, гүйцэтгэгдэх зөвшөөрлүүд байдаг.
Сангийн гүйцэтгэгдэх тэмдэг нь файлаас арай өөрөөр хэрэгждэг.
Хэрэв сан нь гүйцэтгэгдэнэ гэж тэмдэглэгдсэн бол, энэ сан нь
дамжиж өнгөрүүлэгдэж болох буюу cd
тушаалыг
(сан сольдог) хэрэглэж ийшээ орж болно гэсэн үг. Энэ нь мөн
сан дотор харагдаж байгаа файлууд уруу хандаж болно гэсэн үг. (бас нэг зүйл, мэдээжээр, файлууд бас өөр дээрээ зөвшөөрөл агуулсан байгаа).
Ерөнхийдөө бол, сан доторх файлуудыг жагсааж харахыг хүсвэл,
уг санд уншигдах зөвшөөрөл суугдсан байх ёстой. Хэрэв санд байгаа
файлыг устгана гэвэл бичигдэх
болон гүйцэтгэгдэх зөвшөөрлүүд уг санд
суугдах ёстой.
Мөн нэмээд хэдэн зөвшөөрлийн битүүд байдаг, гэхдээ тэдгээр нь
ажилладаг файлын setuid дугаар болон sticky сан зэрэг тусгай
зориулалтаар хэрэглэгддэг. Файлын зөвшөөрлийн талаар
нэмэлт мэдээлэл авахыг хүсвэл &man.chmod.1; гарын авлага
хуудаснаас хараарай.
Том
Рөүдс
Хамтарч бичсэн
Тэмдэгт зөвшөөрлүүд
зөвшөөрлүүдүсгэн
Сан эсвэл файлд тоон утганы оронд заримдаа тэмдгэн зөвшөөрлийг
хэрэглэдэг. Тэмдгэн зөвшөөрлийг бичихдээ (хэн) (үйлдэл)
(зөвшөөрөл) гэсэн дарааллаар бичих бөгөөд дараах утгуудыг авдаг:
Сонголт
Үсэг
Илэрхийлэл нь
(хэн)
u
Хэрэглэгч
(хэн)
g
Бүлгийн эзэмшигч
(хэн)
o
Бусад
(хэн)
a
Бүгд (ертөнц
)
(үйлдэл)
+
Зөвшөөрөл нэмэх
(action)
-
Зөвшөөрлийг устгах
(үйлдэл)
=
зөвхөн тухайн зөвшөөрлийг суулгах
(зөвшөөрөл)
r
Унших
(зөвшөөрөл)
w
Бичих
(зөвшөөрөл)
x
Гүйцэтгэх
(зөвшөөрөл)
t
Sticky бит
(зөвшөөрөл)
s
UID эсвэл GID суулгах
Эдгээр утгууд нь өмнөх жишээ шиг &man.chmod.1; тушаалтай
хэрэглэгддэг бөгөөд гэхдээ үсэг хэрэглэнэ. Жишээлбэл, та
FILE уруу бусад хэрэглэгчид
хандахыг хориглохдоо:
&prompt.user; chmod go= FILE
Файлд нэгээс олон өөрчлөлт хийх шаардлага гарвал таслалаар
тусгаарласан мөр бичиж болно. Жишээлбэл, дараах тушаал нь
бүлэг болон дэлхийг
FILE дээр бичих эрхийг нь аваад дараа нь хүн болгонд гүйцэтгэж
болно гэсэн эрх өгч байна:
&prompt.user; chmod go-w,a+x FILE
Том
Рөүдс
Хамтран бичсэн
&os; файлын туг
Өмнө ярилцсан файлын зөвшөөрлөөс гадна &os; нь
файлын туг
хэрэглээгээр хангагдсан байдаг. Эдгээр туг
нь файлд нэмэлт нууцлалын болон хяналтын түвшин тогтоож өгдөг, гэхдээ
санд бол үгүй.
Эдгээр файлын тугнууд нь файлд нэмэлт түвшний хяналт тогтоож
өгснөөрөө зарим тохиолдолд
root хэрэглэгч хүртэл файлыг устгах
юм уу өөрчилж чадахгүй болгож тусалдаг.
Файлын тугнууд нь энгийн загвартай &man.chflags.1;
багажаар ашиглагддаг. Жишээлбэл,
file1 файл дээр устгагдахгүй гэсэн
туг хатгахыг системд зөвшөөрүүлэхийн тулд дараах тушаалыг гүйцэтгэнэ:
&prompt.root; chflags sunlink file1
Хэрэв устгагдахгүй тугийг буцааж авна гэвэл өмнөх тушаал дээрээ
-ын өмнө no
залгаж
ажиллуулна:
&prompt.root; chflags nosunlink file1
Энэ файлын тугийг харахын тулд &man.ls.1; тушаалыг
сонголттой хамт ажиллуулна:
&prompt.root; ls -lo file1
Тушаалын гаралт нь дараах маягаар харагдах ёстой:
-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1
Нэлээн хэдэн тугнууд нь файлд зөвхөн
root хэрэглэгчээр нэмэгдэж устгагдана.
Бусад тохиолдолд файлын эзэмшигч нь тугийг суулгах боломжтой.
Администраторуудыг &man.chflags.1; болон &man.chflags.2; гарын
авлагуудыг уншихыг зөвлөж байна.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
setuid, setgid, болон sticky буюу наалдамхай зөвшөөрлүүд
Өмнө хэлэлцсэн зөвшөөрлүүдээс гадна бүх администраторуудын
мэдэх ёстой өөр гурван тусгай тохиргоо байдаг. Эдгээр нь
setuid, setgid
болон sticky буюу наалдамхай
зөвшөөрлүүд юм.
Эдгээр тохиргоонууд нь ерөнхийдөө энгийн хэрэглэгчдэд зөвшөөрөгддөггүй
ажиллагаагаар хангадаг бөгөөд &unix;-ийн зарим нэг үйлдлүүдэд чухал байдаг.
Эдгээрийг ойлгохын тулд жинхэнэ хэрэглэгчийн ID болон хүчинтэй хэрэглэгчийн
ID-ийн ялгааг дурдах хэрэгтэй.
Жинхэнэ хэрэглэгчийн ID нь процессийг эзэмшдэг юм уу эсвэл
процессийг эхлүүлдэг UID юм. Хүчинтэй хэрэглэгчийн
UID нь процессийн ажиллаж байгаа тэр хэрэглэгчийн
ID юм. Жишээ нь &man.passwd.1; хэрэгсэл нь хэрэглэгч өөрсдийн нууц үгээ
сольж байгаа болохоор жинхэнэ хэрэглэгчийн ID-аар ажиллах боловч
нууц үгийн санд өөрчлөлт хийхийн тулд root
хэрэглэгчийн хүчинтэй ID-аар ажилладаг. Ингэснээр энгийн хэрэглэгчдэд
Permission Denied буюу зөвшөөрөл хаалттай
гэсэн алдааг харуулалгүйгээр өөрсдийн нууц үгсийг солих боломжийг
олгодог.
nosuid &man.mount.8; тохиргоо нь
эдгээр хоёртын файлуудыг дуугай амжилтгүй болоход хүргэдэг.
Энэ нь хэрэглэгчдэд мэдэгдэлгүйгээр ажиллагаа амжилтгүй болно
гэсэн үг юм. &man.mount.8; гарын авлагын дагуу энэ тохиргоо нь
nosuid гүйцэтгэл хялбаршуулагчийн хамгаалж болох шиг
бүрэн найдвартай бас биш юм.
setuid зөвшөөрлийг зөвшөөрлийн цуглуулгын өмнө
дөрвийн тоог (4) доорх жишээн дээрх шигээр тавьж
тохируулж болно:
&prompt.root; chmod 4755 suidexample.sh
suidexample.sh
файл дээрх зөвшөөрлүүд нь одоо доорх шиг харагдах ёстой:
-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh
Энэ жишээн дээр s нь ажиллуулах битийг
сольж файлын эзэмшигчид зориулсан зөвшөөрлүүдийн цуглуулгын хэсэг
болж байгаа нь харагдах ёстой. Энэ нь passwd
зэрэг дээшлүүлсэн зөвшөөрлүүдийг шаарддаг хэрэгслүүдийг
зөвшөөрдөг.
Жинхнээр нь үүнийг харахын тулд хоёр терминал нээ. Нэг дээр нь
энгийн хэрэглэгчээр passwd процессийг
эхлүүл. Шинэ нууц үг хүлээж байхад нь процессийн хүснэгтийг
шалгаад passwd тушаалын хэрэглэгчийн
мэдээллийг хар.
Терминал A дээр:
Changing local password for trhodes
Old Password:
Терминал B дээр:
&prompt.root; ps aux | grep passwd
trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd
Дээр харуулснаар passwd нь
энгийн хэрэглэгчээр ажиллаж байгаа боловч root
хэрэглэгчийн хүчинтэй UID ашиглаж байна.
setgid зөвшөөрөл нь setuid
зөвшөөрөлтэй адил үүргийг гүйцэтгэдэг, гэхдээ бүлгийн тохиргоог
өөрчилдөг. Програм юм уу эсвэл хэрэгсэл нь энэ тохиргоотойгоор ажиллахдаа
процессийг эхлүүлсэн хэрэглэгч биш файлыг эзэмшиж байгаа бүлэг дээр
тулгуурласан зөвшөөрлүүдийг олгодог.
Файл дээр setgid зөвшөөрлийг тохируулахдаа
дараах жишээн дээрх шиг chmod тушаалыг өмнөө
хоёртой (2) өгнө:
&prompt.root; chmod 2755 sgidexample.sh
Шинэ тохиргоог өмнөх шигээ харж болох бөгөөд
s нь одоо бүлгийн зөвшөөрлийн тохиргоонд
зориулагдсан талбарт байгааг анхаараарай:
-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh
Эдгээр жишээнүүд дээр бүрхүүлийн скрипт нь хэдийгээр
ажиллах боломжтой файл боловч өөр EUID
буюу хүчинтэй хэрэглэгчийн ID-аар ажиллахгүй.
Энэ нь яагаад гэвэл бүрхүүлийн скрипт нь &man.setuid.2;
системийн дуудлагуудад хандаж чадахгүйтэй холбоотой юм.
Бидний хэлэлцсэн эхний хоёр тусгай зөвшөөрлийн битүүд нь
(setuid болон setgid
зөвшөөрлийн битүүд) дээшлүүлсэн зөвшөөрлүүдийг зөвшөөрч системийн
аюулгүй байдлыг доошлуулж болох юм. Системийн аюулгүй байдлыг
чангатгаж чадах гурав дахь тусгай зөвшөөрлийн бит байдаг нь
sticky bit буюу наалдамхай бит юм.
sticky bit нь санд тавигдсан үед
файл устгалтыг зөвхөн файлыг эзэмшигчид зөвшөөрдөг. Энэ
зөвшөөрлийн цуглуулга нь
/tmp
зэрэг нийтийн сангаас файлыг эзэмшдэггүй хэрэглэгч уг файлыг устгахаас
хамгаалахад ашиг тустай байдаг. Энэ зөвшөөрлийг ашиглахын тулд
зөвшөөрлийн урд нэгийг (1) тавьж өгнө. Жишээ нь:
&prompt.root; chmod 1777 /tmp
Одоо үр дүнг ls тушаал ашиглан
харах боломжтой:
&prompt.root; ls -al / | grep tmp
drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
sticky bit буюу наалдамхай бит зөвшөөрөл нь
цуглуулгын хамгийн сүүлд байгаа t-ээс ялгаатай
юм.
Сангийн бүтэц
сангийн зохион байгуулалт
FreeBSD ийн сангийн бүтэц нь уг системийг ойлгоход тун
чухал үүрэг гүйцэтгэнэ. Хамгийн чухал бөгөөд үндсэн
ойлголт бол root буюу хамгийн дээд эх сан
/
юм. Энэ сан нь систем эхлэх үед хамгийн
түрүүнд танигдах ёстой бөгөөд олон хэрэглэгчид зориулсан
үйлдлийн системийг бэлдэхэд чухал үүрэгтэй. Энэ дээд эх сан
нь олон хэрэглэгчийн ажиллагаанд шилжих үед холбогдох бусад файлын системүүдийн
холболтын цэгүүдийг бас агуулж байдаг.
Холболтын цэг нь үндсэн файл систем уруу (ихэвчлэн эх root файл систем) нэмэлт файлын системүүдийг холбож
нэмдэг цэг юм.
Энэ тухай цаашид -д тайлбарласан
байгаа.
Үндсэн холбох цэгүүд нь
/usr, /var, /tmp,
/mnt, мөн /cdrom
сангуудыг агуулж байдаг.
Эдгээр сангууд нь голдуу
/etc/fstab файлд заагдсан байдаг. /etc/fstab файл нь төрөл бүрийн файл системүүдийг
системд ойлгуулах гэж бичсэн хүснэгт бичлэг.
/etc/fstab файлд байгаа ихэнх файл
системүүд компьютер эхэлж ачаалагдах үед автоматаар &man.rc.8;
гүйцэтгэгддэг бичлэгээс таниулагддаг. Гэхдээ хэрэв
гэсэн сонголтыг агуулсан бол
автоматаар таниулагддаггүй.
Дэлгэрэнгүй мэдээлэл хэсэгт буй.
Файл системийн бүтцийн тухай бүрэн мэдээллийг
&man.hier.7;-с харж болно. Одоохондоо байнга хэрэглэгддэг
сангуудыг товч тайлбарлахад хангалттай.
Сан
Тодорхойлолт
/
Файл системийн Root буюу хамгийн дээд эх сан.
/bin/
Ганц болон олон хэрэглэгчийн орчны үндсэн
хэрэгслийн сан.
/boot/
Үйлдлийн систем эхлэж ачаалагдах үеийн програмууд болон тохируулга файлууд.
/boot/defaults/
Анхдагч ачаалах үеийн тохируулгын файлууд; дэлгэрэнгүйг
&man.loader.conf.5; хуудаснаас харна уу.
/dev/
Төхөөрөмжүүд байдаг сан; &man.intro.4; хуудаснаас харна уу.
/etc/
Системийн тохируулгын файлууд болон гүйцэтгэх бичлэгүүд.
/etc/defaults/
Анхдагч системийн тохируулгын файлууд; дэлгэрэнгүйг &man.rc.8; хуудаснаас хараарай.
/etc/mail/
&man.sendmail.8; мэтийн захиа илгээгчдийн
тохируулгын файлууд.
/etc/namedb/
named-н тохируулгын файл;
&man.named.8; хуудаснаас дэлгэрэнгүйг харна уу.
/etc/periodic/
&man.cron.8;-г ашиглаж өдрөөр, сараар, эсвэл жилээр
гэх мэт давтамжаар ажиллаж чаддаг бичлэгүүд ; дэлгэрэнгүйг &man.periodic.8; хуудаснаас харна уу.
/etc/ppp/
ppp тохируулга файлууд;
&man.ppp.8;-с харна уу.
/mnt/
Администратор голдуу түр зуур бусад файл систем эсвэл
төхөөрөмжийг таниулахад хэрэглэдэг хоосон сан.
/proc/
Процесийн файл систем; &man.procfs.5; болон
&man.mount.procfs.8;-с харна уу.
/rescue/
Эвдэрч гэмтсэн үед сэргээхэд хэрэглэгддэг
програмууд &man.rescue.8;-с харна уу.
/root/
root хэрэглэгчийн гэрийн сан.
/sbin/
Ганц болон олон хэрэглэгчийн орчинд хэрэглэж болохоор
системийн програм ба администраторын үндсэн хэрэгслүүд.
/tmp/
Түр зуурын файлууд.
/tmp сан доторх файлууд нь систем шинээр ачаалагдах үед хадгалагдалгүйгээр устгагдана. Санах ойгоос ажилладаг файл системүүд голцуу
/tmp
санд таниулагдаж байрлуулагддаг.
Энэ үйлдэл нь &man.rc.conf.5;-тай холбоотой tmpmfs-төрлийг ашиглаж автоматжуулагдаж болдог
(эсвэл /etc/fstab дотор буй
оруулгууд бүгдээрээ; &man.mdmfs.8;-с харна уу).
/usr/
Програм болон хэрэглэгчийн хэрэглэдэг үндсэн хэрэгслүүд.
/usr/bin/
Үндсэн хэрэгслүүд, програмын багажууд, мөн програмууд.
/usr/include/
Стандарт C-ийн include файлууд.
/usr/lib/
Програмын шахаж бэлдсэн багцууд.
/usr/libdata/
Төрөл бүрийн хэрэгслийн өгөгдлийн файлууд.
/usr/libexec/
Системийн далд чөтгөр буюу дэмон болон системийн
хэрэгслүүд (бусад програмаас дуудагдаж ажилладаг).
/usr/local/
Дотоод гүйцэтгэгддэг болон програмын сангууд гэх мэт програмууд байдаг. Мөн FreeBSD-н портуудын анхны байрлуулах газар болж өгдөг. /usr/local -ийн доторх нь,
&man.hier.7;-аар
/usr сангийн дотор байгааг байрлуулсан шиг
зохион байгуулагдах хэрэгтэй. Гэхдээ энэнд хамаарахгүй
сангууд нь man гэж /usr/local/share сан дотор биш
/usr/local дотор байрладаг сан,
мөн
share/doc/port
дотор байдаг портуудын бичиг баримт байдаг сан юм.
/usr/obj/
Архитектураасаа хамаараад /usr/src санг хөрвүүлэх үед бүтээгддэг сан..
- /usr/ports
+ /usr/ports/
FreeBSD Портын цуглуулга (сонгомол).
/usr/sbin/
Системийн дэмон болон системийн хэрэгслүүд (хэрэглэгчдээр гүйцэтгэгдэнэ).
/usr/share/
Архитектуртаа хамаатай файлууд.
/usr/src/
BSD болон/эсвэл дотоод эх файлууд.
/usr/X11R6/
X11R6 цогцолборын гүйцэтгэж болдог програмууд,
програмын сан зэргүүд
(сонгомол).
/var/
Олон зорилгоор хэрэглэгддэг бүртгэл бичлэг, түр зуурын, дараалал зэргийн файлууд.
Санах ойд тулгуурлаж ажилладаг зарим файлын системүүд
/var дотор
танигдаж үүсгэгддэг.
Энэ үйлдэл нь &man.rc.conf.5;-тай холбоотой varmfs-төрлийг ашиглаж автоматжуулагдаж болдог
(эсвэл /etc/fstab дотор буй
оруулгууд бүгдээрээ; &man.mdmfs.8;-с харна уу).
/var/log/
Системийн төрөл бүрийн бүртгэл бичлэгийн файлууд.
/var/mail/
Хэрэглэгчийн ирсэн захиаг хадгалах файлууд.
/var/spool/
Төрөл бүрийн хэвлэгч болон захианы системийн дарааллыг удирдах сангууд.
/var/tmp/
Түр зуурын файлууд.
Энэ санд буй файлууд нь голдуу системийг эхлэх үед
зориулагдахаар нөөцлөгдсөн байдаг. Гэхдээ, хэрэв
/var
нь санах ойд тулгуурласан файлын систем бол өмнө хэлсэн зүйл хүчингүй.
- /var/yp
+ /var/yp/
NIS maps.
Диск зохион байгуулалт
FreeBSD нь файл олохын тулд хэрэглэдэг хамгийн жижиг
хэрэгсэл бол файлын нэр юм. Файлын нэрний том болон бага үсэгнүүд нь
бас ялгаатай. Энэ нь юу гэсэн үг вэ гэвэл
readme.txt болон README.TXT гэсэн хоёр файл нь хоорондоо ялгаатай файл гэсэн үг.
FreeBSD нь файлын төрлийг програм, бичиг баримт, эсвэл бусад төрлийн
файл байна гэж ялгахын тулд
(.txt) гэх мэтийн өргөтгөл хэрэглэдэггүй.
Файлууд сан дотор хадгалагддаг. Сан нь зуу зуун файл агуулж
болох бөгөөд эсвэл хоосон байж болно. Сан нь сангаа агуулж бас болох ба ингэж сангийн угсарсан
модлог бүтэц үүсгэж болно. Ингэвэл та файлуудаа илүү амархан зохицуулах болно.
Файл ба сангууд нь / тэмдгийн араас шаардлагатай бол сангуудын нэрийг бичиж өгөгдсөн нэрээрээ хандагдана.
Хэрэв танд foo нэртэй сан нь
bar санг агуулдаг бөгөөд уг сан дотор
readme.txt файл байгаа бол, файлын хандах
бүтэн нэр буюу
зам нь
foo/bar/readme.txt гэж бичигдэнэ.
Сан болон файлууд нь файл системд хадгалагддаг. Файл систем болгон хамгийн эхний дээд хэсэгт заавал нэг сан агуулдаг бөгөөд, түүнийг уг файл системийн
root сан буюу дээд эх сан гэж нэрлэдэг.
Тэгээд энэ эх сан нь цаашаагаа өөр сангуудыг агуулж явдаг.
Энэ хүртэл таны уншсан зүйлүүд нь таны бусад мэддэг үйлдлийн
системтэй ижил байж магадгүй. Гэхдээ жаахан ялгаанууд бий. Жишээлбэл
&ms-dos; үйлдлийн систем нь файл болон санг тусгаарлахдаа
\ тэмдэг хэрэглэдэг байхад &macos; үйлдлийн
систем нь : тэмдгийг хэрэглэдэг.
FreeBSD дискэнд үсэглэж нэр өгдөггүй бөгөөд үсгээр нэр өгөгдсөн файлын замыг хэрэглэдэггүй. Та FreeBSD дээр c:/foo/bar/readme.txt гэж бичиж болохгүй.
Харин түүний оронд нэг файл системийг нэг root
файл систем гэж ангилдаг. Уг root буюу эх файл системийн эх сан нь
/ гэж хандагдана. Бусад өөр файл системүүд энэ root буюу эх файл систем дотор
холбогддог. Та FreeBSD систем дээрээ
хэдэн ч дисктэй байсан, сан болгонууд нь нэг дискний хэсэг мэт
харагддаг.
Жишээлбэл A,
B, мөн C гэсэн гурван
файл систем танд байна гэж бодъё. Файл систем бүр нь өөртөө хоёр сан агуулсан тус тусын эх сантай гэж үзье. Тэдгээр сангууд нь дараах нэртэй байг.
A1, A2 (гэх мэтчилэн
B1, B2 мөн
C1, C2).
A-г эх сан гэж үзнэ. Хэрэв та
ls тушаалаар энэ сангийн дотор байгааг харвал, A1 ба
A2 гэсэн хоёр санг та харах болно. Энэ сангийн модлог загвар нь ингэж харагдаж байна:
/
|
+--- A1
|
`--- A2
Хэрэв файл систем өөр файл системд холбогдохоор бол, холбогдож байгаа системийнхээ нэг сан дор холбогдоно. Тэгвэл одоо
B файл системийг A1 санд холбоно гэж үзье. Тэгвэл B-ийн эх сан нь A1-ээр орлуулагдаж,
B доторх файлууд дараах маягаар харагдана:
/
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2
Хэрэв B1 эсвэл
B2 сан доторх файлууд шаардлага гаран
хандагдахаар бол
/A1/B1 эсвэл /A1/B2 гэсэн зам хэрэглэгдэж бичигдэнэ. Хэрэв /A1 дотор файлууд байсан бол тэдгээрийг түр зуур нуудаг. B файл систем A системээс салгагдсан үед л тэр файлууд харагдана.
Хэрэв B файл систем A2
дор холбогдсон бол дараах маягаар харагдана:
/
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2
мөн файл уруу хандах зам нь /A2/B1 болон
/A2/B2 гэж тус тусдаа хандагдах болно.
Файл системүүд нэг нэгнийхээ дээр холбогдож болдог. Сүүлийн жишээгээ үргэлжлүүлээд C файл системийг B файл систем доторх
B1 сангийн дээд хэсэгт холбож өгвөл дараах зохион байгуулалт үүсэж байна:
/
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2
Эсвэл C файл систем
A файл систем дотор A1
санд холбогдож болно:
/
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2
Хэрэв та &ms-dos; системийг гадарладаг бол энэ нь join тушаалтай төсөөтэй боловч яг адилхан биш.
Угтаа бол энэ нь тийм их анхаарлаа хандуулаад байхаар зүйл биш.
Ердийн үед та FreeBSD суулгах үедээ нэг файл систем үүсгээд хаана холбохыг нь шийдэж холбоод, шинэ диск нэмэхгүй л бол түүнийгээ хэзээ ч өөрчлөх шаардлага гардаггүй.
Өөр файл систем үүсгэлгүйгээр нэг бүхэл эх файл систем үүсгэж болдог. Ийм үед зарим сул талууд гарч ирдэг бөгөөд нэг л давуу тал үүснэ.
Олон файл системүүдийн давуу талууд
Олон төрлийн файл системүүд нь олон төрлийн холбох нөхцөлтэй. Жишээлбэл, сайн төлөвлөсний
дараагаар, эх файл систем нь зөвхөн уншигдахаар холбогдож, ингэснээр санамсаргүй юм уу алдаа ослын шалтгаанаар чухал файлуудыг устгахаас сэргийлж болно. Хэрэглэгчдээр бичигдэж болдог файл систем, жишээ нь
/home мэтийн бусад системээс тусгаарлаж
nosuid төрлийн гэж холбож болно; энэ сонголт нь файл систем дээр буй гүйцэтгэж болдог файлд suid/guid бит утга тавигдахаас сэргийлж аюулгүй байдлыг хангаж өгдөг.
FreeBSD файл систем ямар зорилгоор хэрэглэгдэхээс нь
хамаараад файл систем дээр файлын зохион байгуулалтыг автоматаар
хийдэг. Тийм болохоор байнга бичигдэж байдаг олон жижигхэн файлуудын
байгаа файл систем дээр цөөхөн бичигддэг том файл агуулсан
файл системийг бодвол олон бичигдэхэд зориулж арай
өөр файлын зохион байгуулалт хийгддэг. Ганц том эх файл системд ийм зохион байгуулалт хийх боломжгүй.
FreeBSD-н файл систем нь цахилгаан тэжээлээс огцом салгагдсан үед ч дискний алдаа үүсгэдэггүй найдвартай байдаг. Гэвч маш ноцтой үед цахилгаан тэжээлээс огцом салгагдахад файл системийн бүтэц эвдэрч болзошгүй юм. Өгөгдлүүдээ олон файл системд хувааж байрлуулах нь дараа нь эвдрэлээс буцааж сэргээхэд амар байдаг.
Нэг файл системтэй байх үеийн давуу тал
Энэ файл систем нь тогтсон хэмжээтэй байдаг. Хэрэв та FreeBSD-ийг суулгах үедээ тодорхой зааж өгсөн файл систем үүсгээд, сүүлд нь түүнийгээ өргөжүүлэхийг хүсвэл, энэ нь тийм амархан биелэхгүй. Та эхлээд байгаа файл системийнхээ файлуудыг нөөцөлж хадгалаад дараа нь файл системдээ шинэ хэмжээ өгч өргөтгөөд дараа нь нөөцөөсөө файлуудаа буцааж сэргээж хадгалах болно.
FreeBSD-н &man.growfs.8; тушаал нь дээрх
хүндрэлийг алга болгож, файлыг нөөцлөх
шаардлагагүйгээр шууд файл системийг өргөтгөж болдог болсон.
Дискний хуваалт дотор файл систем оршиж байдаг. &os; нь юниксээс
уламжилсан болохоор диск хуваалтын ойлголт нь ердийн хэрэглээтэй
ижилхэн биш (жишээлбэл, &ms-dos; диск зохион байгуулалт). Дискний
хуваагдал бүр a үсэгнээс эхлээд
h хүртэл үсгээр тэмдэглэгддэг. Хуваагдал бүр зөвхөн ганцхан файл систем агуулах ёстой. Ийм болохоор файл систем нь агуулж байгаа диск хуваалтынхаа үсгээр илэрхийлэгдэх бөгөөд хэрэв өөр файл системд холбогдвол, холбосон сан нь уг файл системийг илэрхийлнэ.
FreeBSD мөн swap
-д зориулж дискэнд зай бэлддэг. Swap хэмжээ нь FreeBSD-н
виртуал санах ой юм. Ингэснээр таны компьютер
байгаа бодит хэмжээнээсээ илүү санах ой хэрэглэж байгаа мэт ажилладаг.
Хэрэв зарим програм FreeBSD дээр ажиллаад санах ойноос хэтрэх хүндрэл
гарвал, хэрэглэгдэхгүй байгаа хэсгийг swap зай руу зөөж, шаардлагатай
үед буцааж санах ой руу зөөх зарчмаар хэрэглэгддэг.
Зарим дискний хуваалт нь тогтсон журамтай байдаг.
Хуваалт
Тогтсон журам
a
Ихэнхдээ root файл системийг агуулж байдаг
b
Ихэнхдээ swap хэмжээг агуулдаг
c
Ихэнх үед агуулж буй зүсмэлийнхээ хэмжээтэй
ижил хэмжээтэй байдаг. Энэ нь ямар нэгэн хэрэгслүүдийг
(жишээлбэл, дискний эвдэрсэн хэсгийг шалгагч)
c хуваалт дээрх зүсмэл дээр бүхэлд
нь ажиллаж болох зөвшөөрөл өгдөг. Ердийн үед
та үүн дээр файл систем үүсгэх шаардлага байхгүй.
d
Урьд нь d хуваалт онцгой үүрэгтэй байсан
боловч одоо тийм биш, харин ердийн хуваалт шиг хэрэглэгдэж болно.
FreeBSD дээр файл систем агуулж байгаа хуваалтыг
зүсмэл гэж нэрлэдэг. Хуваалтын ерөнхий нэр нь
FreeBSD дээр зүсмэл гэж яригдах бөгөөд FreeBSD-ийн &unix; гаралд
цаад утга учир нь бий. Зүсмэл нь 1 -ээс эхлээд 4 хүртэлх тоогоор
дугаарлагдана.
зүсмэл
хуваалт
аюултай зориулалт
Зүсмэлийн дугаар нь төхөөрөмжийн нэрний араас
s үсгээр эхэлж бичигддэг.
Тэгэхээр da0s1
гэдэг нь,
эхний SCSI диск дээрх эхний зүсмэлийг илэрхийлж байна.
Диск дээр физик чанараараа зөвхөн дөрвөн ширхэг зүсмэл байрлуулж
болно. Харин логик зүсмэлийг та физик зүсмэл дотор дурын хэмжээтэй
үүсгэж болно. Ингэж өргөтгөж нэмсэн зүсмэлүүд нь 5 гэсэн
дугаараар эхэлж цаашаагаа тоологддог. Тэгэхээр
ad0s5
гэдэг нь эхний IDE
диск дээрх эхний өргөтгөсөн зүсмэлийг хэлж байна.
Ингэж өргөтгөсөн зүсмэлүүд нь файл систем агуулж, систем дээр
ердийн зүсмэл мэт харагдаж ажиллана.
Зүсмэлүүд нь физик диск дээр аюултай зориулалт
аар
буюу өөрөөp хэлбэл хүчээр байрлуулагддаг. Харин бусад дискнүүд нь
a -с эхлээд h хүртэл нэрлэсэн
хуваалт агуулж болдог.
Эдгээр үсэгнүүд нь төхөөрөмжийн ард залгагдаж бичигддэг ба
da0a
гэдэг нь
эхний da диск дээр байгаа a хуваалтыг илэрхийлж байна.
ad1s3e
бол хоёр дахь IDE диск дээр байгаа
гурав дахь зүсмэлийн тав дахь хуваалтыг илэрхийлж байна.
Эцэст нь хэлэхэд, диск болгон системд танигдах ёстой.
Дискний нэр нь дискний төрлийг илэрхийлсэн үсгээр эхлээд
тэгээд араас нь хэд дэх диск вэ гэдгийг нь илэрхийлсэн дугаартай
байдаг. Зүсмэлээс ялгарах зүйл нь, дискний дугаар 0 -ээс эхэлдэг.
Ерөнхий хэрэглээний жишээг
хүснэгтээс харна уу.
Хуваалт уруу хандах үед FreeBSD уг хуваалтыг
агуулсан зүсмэл болон дискийг тодорхойлохыг шаарддаг. Тэгээд
зүсмэл рүү хандах үед зүсмэлийг агуулсан дискний нэрийг шаардах
болно. Тэгэхээр та дискний нэр, s, зүсмэлийн дугаар,
тэгээд хуваалтын үсэг гэсэн дарааллаар нэрлэх нь байна.
Жишээнүүдийг -д харуулав.
Танд ойлгоход тань дөхөм болгож
жишээн дээр дискний зохион байгуулалтын тогтсон загварыг харуулж байна.
FreeBSD суулгахын тулд та эхлээд дискний зүсмэлийг тохируулна,
дараа нь зүсмэл дотор FreeBSD-н хэрэглэх хуваалт үүсгээд, дараа нь
хуваалт бүрд файл систем (эсвэл swap зайг) үүсгэж эцэст нь
хаана холбогдохыг нь (mount) зааж өгдөг.
Диск төхөөрөмжийн нэрнүүд
Нэр
Утга
ad
ATAPI (IDE) disk
da
SCSI direct access disk
acd
ATAPI (IDE) CDROM
cd
SCSI CDROM
fd
Floppy disk
Диск, Зүсмэл, Хуваалтын нэрлэх жишээ
Нэр
Утга
ad0s1a
Эхний IDE диск (ad0) дээрх эхний
зүсмэлийн (s1) эхний хуваалт (a).
da1s2e
Хоёр дахь SCSI диск (da1) дээрх
хоёр дахь (s2) зүсмэлийн тав дахь
(e) хуваалт.
Дискний тогтсон загвар
Дараах загвар нь системд буй IDE диск
FreeBSD дээр хэрхэн харагдаж байгааг харуулж байна.
Дискний хэмжээг 4 ГБ-н хэмжээтэй гэж үзээд хоёр ширхэг
2 ГБ зүсмэл байна (нэг зүсмэл дээр нь &ms-dos; хуваалт байгаа).
Эхний зүсмэл нь &ms-dos;-н C: диск агуулсан,
харин хоёр дахь зүсмэл дээр FreeBSD суугдсан.
Энэ жишээн дээр FreeBSD нь гурван өгөгдлийн хуваалт мөн swap хуваалт хэрэглэж
байна.
Гурван хуваалт нь тус тусдаа файл систем агуулж байгаа.
a хуваалт root файл системд зориулагдаж,
e хуваалт /var санд, мөн
f хуваалт
/usr санд тус тус зориулагдсан.
.-----------------. --.
| | |
| DOS / Windows | |
: : > First slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partition a, mounted as / |
| | > referred to as ad0s2a |
| | | |
:-----------------: ==: |
| | | Partition b, used as swap |
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
| | | Partition e, used as /var > file system, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partition f, used as /usr |
: : > referred to as ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'
Файл системийг холбох болон салгах
Файл систем нь / гэсэн
эхээс эхлэн модлог хэлбэрээр маш сайн харагддаг.
/dev, /usr, мөн
бусад сангууд нь root буюу эх сангаасаа салбарласан
салаа мөчир бөгөөд цаашаа уг мөчир нь бас
/usr/local гэж салаалах зэргээр
өргөжиж салаалж болдог.
root файл систем
Эдгээр сангуудын заримыг нь өөр файл системд
байрлуулах маш олон шалтгаан бий. /var
сан нь жишээлбэл log/,
spool/, гэх зэрэг янз бүрийн түр зуурын
файлуудыг агуулдаг бөгөөд түргэн дүүрэх магадлалтай. Эх сан буюу
root файл систем түргэн дүүрнэ гэдэг бол тийм ч сайн юм биш.
Тийм болохоор /var санг
/ сангаас тусад нь өөр газар байрлуулах нь
тун хэрэгтэй.
Тодорхой хэдэн сангуудыг тусад нь өөр файл систем дээр
байрлуулах хүндтэй шалтгаан бол, хэрвээ уг сангууд нь
өөр физик диск дээр, тусдаа виртуал диск дээр, Сүлжээний файл систем дээр,
эсвэл CDROM дээр байх явдал юм.
fstab файл
файл систем
fstab ашиглаж диск холбогдох
/etc/fstab файлд жагсаагдсан
файл системүүд нь системийн ачаалах явцад автоматаар холбогддог (гэхдээ хэрэв тэдгээр нь
сонголт хэрэглээгүй үед).
/etc/fstab нь дараах маягийн
жагсаалтыг агуулж байдаг:
төхөөрөмж /холбох-цэг файл-системийн-төрөл сонголтууд dumpfreq passno
төхөөрөмж
Төхөөрөмжийн нэр (заавал байх ёстой).
хуудсанд тайлбарласан байгаа.
mount-point буюу холбох цэг
Файл системийг байрлуулах
сангийн нэр (заавал байх ёстой).
файл-системийн-төрөл
&man.mount.8; хуудсанд тайлбарласан байгаа тул алгасав.
FreeBSD-н анхдагч файл систем бол
ufs.
сонголтууд
Уншиж бичигдэх файл системийг заасан
эсвэл зөвхөн уншигдах файл системд
зориулсан сонголт байж болох бөгөөд
цаашаагаа мөн нэмэлт сонголтууд агуулж болно.
Ердийн сонголт бол бөгөөд
ингэснээр систем эхлэх үед уг файл систем холбогддоггүй.
Бусад сонголтууд &man.mount.8; гарын авлагад тодорхой
бичигдсэн байгаа.
dumpfreq
Энэ сонголт нь &man.dump.8; хэрэгслээр
хэрэглэгддэг бөгөөд аль файл системд нөөц хадгалалт хийх вэ гэдгийг
тодорхойлж өгдөг. Хэрэв энэ сонголтыг бичээгүй бол
хоосон утгыг агуулж байдаг.
passno
Энэ сонголтыг ашиглан ямар дарааллаар файл системүүдийг
шалгах вэ гэдгийг зааж өгдөг.
Шалгалгүйгээр алгасна гэсэн файл системүүд нь
passno талбардаа 0 утгатай байх ёстой.
root буюу эх файл системийн (энэ файл систем нь хамгийн түрүүнд
шалгагддаг) passno талбарын утга нь
1 байдаг бөгөөд бусад системийн passno
нь нэгээс их байх ёстой.
Хэрэв нэгээс илүү олон файл системүүд passno
талбартаа ижил утгатай бол &man.fsck.8; нь тэдгээр файл системийг
хэрэв боломжтой зэрэг шалгахыг оролдох болно.
/etc/fstab файлын бүтэц болон тохируулдаг сонголтуудын тухай дэлгэрэнгүй мэдээллийг &man.fstab.5; гарын авлагаас харна уу.
mount тушаал
файл систем
mounting буюу файл систем холбох
&man.mount.8; тушаал нь файл системийг
холбоход хэрэглэгддэг цорын ганц тушаал юм.
Таны хамгийн өргөн хэрэглэх хэлбэр бол:
&prompt.root; mount төхөөрөмж-буюу-диск холбох-цэг
&man.mount.8;-н гарын авлагад зааснаар бол маш олон
сонголт байдаг бөгөөд өргөн хэрэглэгддэг нь:
Холбох тохируулгууд
/etc/fstab файлд
жагсааж бичсэн бүх файл системийг холбоно. Гэхдээ
noauto
гэж тэмдэглэснийг,
гэж туг хатгасныг, эсвэл
өмнө нь холбогдчихсон файл системүүдийг холбохгүй.
Дуудаж ажиллуулж байгаа файл системээсээ бусдад нь
дурын үйлдлээ хийнэ. Энэ сонголтыг
тугтай хамт хэрэглэж
&man.mount.8;-г юу хийж байгааг нь харж болдог.
Бохир файл систем
(аюултай), эсвэл файл системийн унших-бичигдэх төлвөөс
зөвхөн-унших төлөв рүү шилжүүлэн бичих эрхийг хасаж
холбох үед хүчээр холбодог.
Файл системийг зөвхөн-унших төлвөөр холбоно.
Энэ нь сонголтийг
утгатай
(5.2-с өмнөх үед хэрэглэдэг
байсан )
хэрэглэсэнтэй ижил.
fstype
Өгөгдсөн файл системйиг өгөгдсөн төрлөөр холбоно.
Эсвэл сонголт өгөгдсөн бол зөвхөн
өгөгдсөн төрлөөр холбоно.
ufs
нь анхдагч файл систем юм.
Файл системд холболтын сонголтыг шинэчилнэ.
Болж байгаа үйл явцыг харуулж мэдэгдэнэ.
Файл системийг унших-бичих төлвөөр холбоно.
сонголт нь дараах зүйлүүдийг таслалаар тусгаарлаж хэрэглэж болно:
noexec
Энэ нь файл систем дээр хоёрлосон файл буюу ачаалагдаж ажиллаж болдог файл ажиллахыг үл зөвшөөрнө. Энэ нь мөн аюулгүй байдлын зорилгоор хэрэгтэй.
nosuid
Файл систем дээр setuid эсвэл setgid тугуудыг бүү хэрэглэ. Мөн аюулгүй байдлын шалтгаанаар.
umount тушаал
файл систем
файл систем салгах
&man.umount.8; тушаал нь ардаа холбосон цэг, төхөөрөмжийн нэр зэргийг авдаг бөгөөд мөн
сонголт эсвэл бас
сонголтуудыг авч болдог.
Бүх хэлбэрүүд нь сонголтыг хүчээр салгах үед болон сонголтыг явцын мэдээллийг харахад хэрэглэдэг.
сонголт нь тийм сайн санаа биш гэдгийг анхааруулмаар байна. Хүчээр файл системийг салгах нь файл эсвэл системийн эвдрэлд хүргэж болзошгүй.
болон сонголтууд нь холбогдсон бүх файл системийг салгахад хэрэглэгддэг. Эсвэл мөн
сонголтоор өөрчлөгдсөн файл системүүдийг салгахад хэрэглэнэ. Гэхдээ
сонголт нь
root файл системийг салгах гэж оролддоггүй.
Процесс буюу програмын явц
FreeBSD бол олон үйлдэл зэрэг хийх чадвартай систем. Энэ нь олон програм нэг дор зэрэг ажиллана гэсэн үг. Програмын тухайн үед ажиллаж байгааг нь процесс буюу програмын явц гэдэг.
Таны ажиллуулсан тушаал болгон шинэ процесс эхлүүлдэг бөгөөд систем дээр
бүхэлдээ тэр чигээрээ процессууд үргэлж ажиллаж системийн ажиллагааг бүрэлдүүлж байдаг.
Програмын явц бүр
процесс ID, эсвэл PID гэсэн дугаар агуулж байдаг бөгөөд файлтай бас ижилхэн өөрийн гэсэн эзэмшигч болон бүлэгт харъяалагдаж байдаг. Эзэмшигч ба бүлгийн
мэдээлэл нь уг процесс файлд хандах эрхийг нь хэрэглэж файлтай хэрхэн
хандах вэ гэдгийг тодорхойлж өгдөг. Ихэнх процесс нь мөн эцэг процесстой байдаг. Эцэг процесс нь тэдгээр процессийг эхлүүлж өгдөг.
Жишээлбэл, хэрэв та тушаалуудыг бүрхүүлд бичиж гүйцэтгэвэл, бүрхүүл ч процесс, тушаалууд ч процесс болдог бөгөөд таны бичсэн тушаал болгон процесс болдог. Ийм маягаар ажиллуулаад байвал бүрхүүл нь тэдгээр процессуудын эцэг нь болно. Үүнээс өөр онцгой процесс байдаг ба түүнийг
&man.init.8; процесс гэж нэрлэдэг. init
бол хамгийн эхний процесс байдаг бөгөөд үүний PID дугаар үргэлж
1 байдаг. FreeBSD эхлэх үед init процесс
автоматаар эхэлдэг.
Системд гүйцэтгэгдэж байгаа процессуудыг хардаг хоёр тушаал бол
&man.ps.1; ба &man.top.1; хоёр юм. ps тушаал нь одоо ажиллаж байгаа процессуудыг PID дугаартай нь харуулж, мөн хичнээн санах ойн хэмжээ хэрэглэж байгаа, ямар тушаалаар гүйцэтгэгдэж байгаа зэргийг нь харуулдаг. top тушаал нь ажиллаж байгаа
бүх процессуудыг харуулдаг бөгөөд хэдэн секунд тутамд шинэчлэгдэж байдаг. Ингэснээр таны компьютер тухайн үед юу хийж байгааг харж болно.
Анхдагч горимондоо, ps тушаал нь зөвхөн таны эзэмшиж байгаа процессуудыг харуулдаг. Жишээлбэл:
&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfish
Дээрх жишээнд харуулснаар, &man.ps.1; тушаалын гаралт нь
хэд хэдэн баганаар харуулагдаж байна. PID бол өмнө ярьсны дагуу процессийн ID дугаар. PID дугаарууд нь 1 гэж эхлээд 99999 хүртэл дугаарлагддаг бөгөөд хэтрээд ирэхээрээ эхнээсээ эхэлж тоологддог (PID нь ашиглагдаж байгаа бол дахин олгогддоггүй).
TT багана нь, уг програмын ажиллаж байгаа tty буюу терминалыг нь харуулдаг бөгөөд одоохондоо хэрэгсэх шаардлага байхгүй. STAT нь програмын төлвийг харуулдаг бөгөөд мөн одоохондоо хэрэгсэхгүй байж болно.
TIME нь процессор дээр хэр удаан ажиллаж байгааг нь заадаг бөгөөд гэхдээ энэ нь програм эхэлснээс хойш тооцож эхэлсэн цаг биш. Ихэнх програм нь процессор дээр гүйцэтгэх гэж хэсэг хугацаа зарцуулж хүлээдэг.
Эцэст нь, COMMAND нь тухайн програмыг ажиллуулсан тушаалыг харуулдаг.
Харуулах мэдээллээ өөрчилж болдог хэд хэдэн нэмэлт сонголт &man.ps.1; тушаалд бий. Байнга хэрэглэгддэг сонголтуудын багц бол
auxww юм. сонголт нь зөвхөн өөрийн эзэмшдэг процесс биш харин ажиллаж байгаа бүх процессийг харуулдаг.
сонголт нь процессийг эзэмшиж байгаа хэрэглэгчийн нэрийг харуулдаг бөгөөд мөн хэрэглэж байгаа санах ойг нь харуулдаг.
сонголт нь далд ажиллаж байгаа буюу дэмон эсэхийг нь харуулдаг.
сонголт нь процессуудыг ажиллуулсан тушаалын бүтэн нэрийг нь харуулдаг. Бусад үед, хэрэв тушаалын нэр нь дэлгэцэнд багтахгүй урт байх тохиолдолд хасаж харуулдаг.
&man.top.1; тушаалын гаралт нь өмнөх жишээтэй ижилхэн. Жишээ болгож нэг гаралтыг харцгаая:
&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...
Тушаалын гаралт хоёр хэсэгт хуваагдсан байна. Толгой хэсэг
(эхний таван мөр) нь сүүлд ажиллаж байгаа PID дугаарыг, системийн ачаалалтын дунджууд
(энэ нь системийг хэр завгүй байгааг илтгэдэг), системийн асаалттай байгаа хугацаа (унтраалгүй хэр удсан эсэхийг) мөн одоогийн цаг зэргийг харуулдаг. Бусад илэрхийллүүд нь, хичнээн процессууд ажиллаж байгаа (энэ тохиолдолд 47 ), хичнээн санах ойн хэмжээ болон swap хэмжээ хэрэглэгдэж байгаа, мөн хичнээн хугацааг процессорын бусад төлөв байдалд зарцуулсан зэргийг илэрхийлж байна.
Доорх баганууд нь &man.ps.1; тушаалтай ойролцоо мэдэгдлүүдийг харуулж байна. Эхлээд PID дугаар дараа нь хэрэглэгчийн нэр, процессороос хэрэглэсэн хугацаа, ажиллуулсан тушаал гэх мэт.
&man.top.1; тушаал нь анхдагч тохируулгаараа, процессийн хэрэглэж байгаа санах ойн хэмжээг харуулдаг. Тэр хэсэг нь хоёр баганад харуулагддаг бөгөөд эхнийх нь нийт хэмжээ дараагийх нь тухайн үеийнх нь хэмжээ юм. Нийт хэмжээ гэдэг нь програм ажиллахад хэд хэрэгтэйг хэлдэг бөгөөд тухайн үеийнх нь хэмжээ нь одоогоор хэдийг хэрэглэж байгааг заадаг. Энэ жишээн дээр
&netscape; програм бараг 30 МБ хэмжээг RAM санах ойд шаардлагатай гэсэн боловч одоогоор 9 МБ хэмжээ хэрэглэж байна гэж заасан байна.
&man.top.1; нь энэ харуулалтыг хоёр секунд тутам шинэчилдэг бөгөөд үүнийг тохируулгаар өөрчилж болно.
Далд чөтгөр буюу дэмонууд, дохионууд, мөн процессуудыг зогсоох нь
Та хэрэв ямар нэг текст засварлагч дээр ажиллаж байхдаа файл нээх, хаах, хадгалах гэх мэт уг програмыг сайн хянаж чаддаг. Та яагаад тэгж
чадаж байна вэ гэвэл, уг програм нь терминал дээр холбогдон ажиллаж танд тийм боломж олгож байгаа билээ.
Зарим програм тэгэхэд үргэлж хүн гарнаас оруулалт хийх шаардлагагүй зориулалтаар бүтээгдсэн байдаг бөгөөд хамгийн эхний боломж гарангуут терминалаас салангид ажилладаг. Жишээлбэл вэб серверүүд өдөржин хүмүүсээс ирсэн хүсэлтэд хариулт өгч байдаг бөгөөд ердийн үед танаас оруулга шаарддаггүй. Ийм төрлийн бас нэг програм бол захиа илгээгч програм юм.
Бид ийм програмыг далд чөтгөр буюу дэмон гэж нэрлэдэг. Дэмонууд нь Грекийн домогт байдаг сайн муугийн аль нь ч биш бөгөөд жижигхэн мөртлөө хүмүүст хэрэгтэй юм хийж байдаг сүнсийг хэлдэг.
Вэб сервер болон захианы серверүүд үүнтэй ижил хүмүүст тустай юм хийдэг. Тийм болохоор BSD нь спорт шаахайтай, жижигхэн, сэрээ барьсан чөтгөрийг олон жилээр дуртайяа өөрийнхөө билэг тэмдэг болгож байгаа билээ.
Далд ажиллаж байгаа буюу дэмон болж ажиллаж байгаа програмын нэрний ард d
үсэг залгаж бичдэг зарчим бий. BIND програмын бүтэн нэр нь
Berkeley Internet Name Daemon бөгөөд үндсэн далд ажилладаг
програмын нэр нь
named, мөн Apache вэб серверийн далд ажилладаг програмын нэр нь httpd, хэвлэх дарааллыг далд ажиллаж зохицуулж байдаг програмын нэр нь lpd гэх мэт нэртэй байдаг.
Энэ нь ерөнхийдөө ингэж зарчим гаргасан болохоос хатуу тогтоосон дүрэм биш; жишээлбэл захиа илгээгч үндсэн програм Sendmail-н далд ажилладаг програмыг та maild гэж төсөөлж байгаа бол эндүүрэх бөгөөд харин
sendmail гэж нэрлэдэг.
Заримдаа та эдгээр дэмон процессуудтай холбогдож харилцах хэрэг гарна. Ингэх нэг арга нь түүн рүү (эсвэл бусад ажиллаж байгаа процесс уруу)
дохио гэгддэг зүйл илгээх явдал юм. Маш олон төрлийн илгээж болох дохионууд байдаг — зарим дохионууд онцгой зориулалттай нийтэд нь хэрэгждэг, зарим нь тухайн програмдаа зориулж өөр өөрөөр хөрвүүлэгддэг бөгөөд програмын заавар дээр ямар дохиог яаж хөрвүүлэн ойлгох вэ гэдгийг заасан байдаг. Та өөрийнхөө эзэмшиж байгаа процесс уруугаа дохио илгээж болно. Хэрэв та бусдын эзэмшдэг процесс уруу &man.kill.1; эсвэл &man.kill.2; гэх зэрэг дохио илгээвэл таны эрх дутаж хэрэгждэггүй.
Гэхдээ ийм эрхээр дутагддаггүй хэрэглэгч бол
root хэрэглэгч бөгөөд хүн болгоны процесс уруу дохио илгээж чаддаг.
Мөн FreeBSD-ээс програм уруу зарим тохиолдолд дохио илгээдэг. Жишээлбэл, хэрэв муу зохиогдсон нэг програм санах ойг зориулсан хэмжээнээсээ илүү хэрэглээд эхэлбэл FreeBSD уг програм уруу Хэсгийн буруу
хэрэглээ дохио илгээдэг (SIGSEGV). Мөн хэрэв ямар нэгэн програм нь &man.alarm.3; гэдэг системийн сануулах програмыг ашигласан бол тухайн хугацаа нь хэтрэх үед Сэрүүлэг дохио уг програмд ирэх
(SIGALRM) зэрэг олон дохио бий.
Процесийг зогсоох хоёр дохио байдаг,
SIGTERM ба SIGKILL хоёр.
SIGTERM нь арай эелдэг аргаар процессийг зогсоодог; процесс нь эхлээд дохиог хүлээж аваад өөрийг нь хаах гэж байгаад мэдээд нээлттэй байгаа бүртгэл бичлэг файлуудаа хаагаад тэгээд хийж байгаа ерөнхий үйлдлээ зогсоодог. Зарим тохиолдолд уг процесс нь таслагдаж болохооргүй үйлдэл хийж байх үедээ
SIGTERM дохиог хэрэгсэхгүй байдал үүсдэг.
SIGKILL дохиог ямар ч процесс хэрэгсэхгүй байж чаддаггүй. Өөрөөр хэлбэл энэ нь
Чиний юу хийж байх нь надад хамаагүй, одоо шууд зогсоо
гэсэн дохио юм. Хэрэв та SIGKILL дохиог процесс уруу илгээвэл
FreeBSD уг процессийг зогсоодог
Бас тэр чигээрээ үнэн биш—учир нь зарим таслагдаж болдоггүй нөхцлүүд байдаг. Жишээлбэл, хэрэв сүлжээнд байгаа компьютерийн нэг файлаас унших үйлдэл хийж байгаа процесс нь, хэрэв холбогдсон компьютер нь тодорхойгүй шалтгаанаар холбогдохгүй болох үед (цахилгаан тэжээлээс салгагдах, эсвэл сүлжээ эвдрэх), уг процесс нь
тасрахгүй
нөхцөлд байдаг. Магадгүй хэсэг хугацааны дараа хүлээх хугацаа нь дуусна. Ингэж хүлээх хугацаа нь дууссаны дараа л уг процесс зогсох болно.
.
Таны хэрэглэж болохоор бусад дохионууд нь
SIGHUP, SIGUSR1, мөн
SIGUSR2. Эдгээр дохио нь ерөнхий зориулалтаар хэрэглэгддэг бөгөөд эдгээр дохиог хүлээж авсан програмууд тус тусдаа өөр өөр хариу үйлдэл хийдэг.
Жишээлбэл, та вэб серверийнхээ тохируулгын файлд өөрчлөлт хийгээд уг серверийг тохируулгын файлаа дахин шинээр уншуулахыг хүссэн гэж бодъё. Та httpd дэмоноо зогсоогоод дахин шинээр эхлүүлж болох боловч ажиллаж байгаа вэб серверийг зогсоож болохгүй нөхцөл байж болно. Ихэнх дэмонууд нь
SIGHUP дохиог хүлээж авбал өөрийнхөө тохируулгынхаа файлыг уншина гэж тохируулагдсан байдаг. Тэгэхээр httpd дэмоноо зогсоогоод шинээр ачаалж байхын оронд
SIGHUP дохиог илгээхэд хангалттай. Учир нь энэ дохионд тэгж хариулна гэсэн тогтоосон арга зам байхгүй тул дэмон болгон өөр өөр үйлчлэл үзүүлдгийг ойлгож тухайн дэмоны заавар бичгийг нь судлах хэрэгтэй.
дохио илгээхдээ &man.kill.1; тушаалыг ашигладаг.
Процесс уруу дохио илгээх
Энэ жишээ нь &man.inetd.8; уруу хэрхэн дохио илгээхийг харуулах болно.
inetd -н тохируулгын файл
/etc/inetd.conf гэж байрласан бөгөөд inetd-ийг тохируулгын файлаа дахин уншуулахын тулд SIGHUP дохиог илгээх болно.
Илгээх процессийн процесс ID дугаарыг мэдэх хэрэгтэй. Ингэхийн тулд &man.ps.1; ба &man.grep.1; тушаалуудыг ашиглана. &man.grep.1;
тушаал нь өмнөх тушаалынхаа гаралтаас хайлт хийхэд хэрэглэгддэг бөгөөд хайх мөрөө зааж өгдөг. Энэ тушаал нь энгийн хэрэглэгчээс гүйцэтгэгдэж болох бөгөөд харин &man.inetd.8; програм нь
root хэрэглэгчээр гүйцэтгэгдсэн тул &man.ps.1; тушаалыг сонголттой цуг гүйцэтгэх ёстой.
&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wW
За тэгэхээр, &man.inetd.8;-ийн PID дугаар нь 198 гэж энэ тохиолдолд хэлж байна. Зарим тохиолдолд
grep inetd гэсэн тушаал нь өөрөө энэ гаралтад байж байдаг. Учир нь, &man.ps.1; програм нь уг тушаалыг ажиллуулж байгаа процессийг олсон үед тэгж гаргаж харуулдаг.
&man.kill.1; тушаалыг хэрэглэж дохио илгээнэ. &man.inetd.8; нь
root хэрэглэгчээр гүйцэтгэгдэж байгаа болохоор, та эхлээд &man.su.1; тушаалыг ашиглан
root хэрэглэгч болох хэрэгтэй.
&prompt.user; su
Password:
&prompt.root; /bin/kill -s HUP 198
Ихэнх &unix; системийн тушаалуудын адил, &man.kill.1; тушаал нь хэрэв амжилттай хэрэгжвэл ямар нэгэн төлвийн мэдээлэл харуулдаггүй. Хэрэв та өөрийнхөө эзэмшдэггүй процесс уруу дохио илгээвэл kill:
PID: Operation not
permitted буюу энэ үйлдлийг хийх эрх байхгүй байна гэсэн мэдэгдэл гарч ирнэ. Хэрэв та PID дугаараа буруу бичих, эсвэл буруу процесс уруу дохио илгээвэл, азгүй тохиолдолд уг дохио нь тухайн процесс уруу илгээгдэх бөгөөд, уг процесс нь азаар байхгүй байгаа тохиолдолд kill:
PID: No such process буюу тийм процесс алга байна гэсэн мэдэгдэл гарч ирнэ.
Яагаад /bin/kill тушаалыг хэрэглэх хэрэгтэй вэ?
Ихэнх shells буюу бүрхүүлүүд kill тушаалыг өөртөө агуулсан байдаг бөгөөд /bin/kill тушаалыг бичихийн оронд шууд бүрхүүлд буй тушаалыг нь гүйцэтгэх нь шулуухан байдаг.
Энэ нь амарчилсан ашигтай арга боловч бүрхүүл болгон өөрсдийн илгээх дохионы өөр өөр нэртэй байдгийг мэдэх хэрэгтэй. Тийм болохоор бүрхүүл болгоны дохионы бичлэгийг судлахын оронд шууд
/bin/kill ... тушаалыг хэрэглэх нь зөв арга юм.
Бусад дохио илгээх үйлдлүүд нь үүнтэй тун ижил бөгөөд
TERM эсвэл KILL дохионуудын оронд шаардлагатай дохиогоо бичих хэрэгтэй.
Санаанд орсон тоотой дохио болгоныг устгана гэдэг бол буруу санаа юм. &man.init.8; процесс ялангуяа 1 гэсэн процесс ID байх нь онцгой тохиолдол. Тийм болохоор
/bin/kill -s KILL 1 гэвэл системийг шууд унтраана. &man.kill.1; тушаалыг гүйцэтгэхээсээ өмнө Return товч дарахынхаа өмнө үргэлж ямар процесс уруу ямар дохио илгээж байгаагаа давхар шалгах хэрэгтэй.
Shell буюу бүрхүүл
бүрхүүл
тушаал өгөх орчин
FreeBSD дээр маш олон ажил тушаал бичиж оруулдаг shell буюу бүрхүүл хэмээх орчинд хийгддэг. Бүрхүүлийн гол үүрэг нь гарнаас оруулсан тушаалыг гүйцэтгэх юм. Өдөр болгон гүйцэтгэхэд шаардагддаг файл зохицуулах, тушаал оруулагч мөрийг засварлах, тушаалын багц, орчны хувьсагч зэрэг туслах тушаалуудыг олон бүрхүүлүүд агуулж байдаг. FreeBSD нь
sh буюу Bourne Shell, мөн tcsh буюу
сайжруулсан C-shell зэрэг багц бүрхүүлүүдтэй хамт ирдэг. zsh болон bash зэрэг маш олон бүрхүүлүүд FreeBSD-ийн портын цуглуулганд ирдэг.
Та ямар бүрхүүл хэрэглэдэг вэ? Энэ бол тухайн хүний дур сонирхолтой хамаатай. Хэрэв та C програмын хэл дээр програм бичдэг бол C-тэй адилхан бичигддэг tcsh төрлийн бүрхүүлд дуртай болж болох юм. Хэрэв та Linux системээс ирсэн юм уу эсвэл &unix;-ийн тушаалуудтай дөнгөж танилцаж байгаа шинэ хүн бол bash бүрхүүлээр эхлэх нь амар байж болох юм.
Хамгийн гол нь бүрхүүл болгон өөрийн гэсэн онцгой шинж чанартай болохоор өөрийнхөө хүсэл зорилгод тааруулж бүрхүүлээ сонгож дадах нь чухал.
Бүрхүүлийн хамгийн энгийн чадвар бол файлын нэрийн автомат гүйцэтгэл юм. Тушаал юм уу файлын эхний хэдхэн үсгийг бичээд гарын Tab товчийг дарахад уг үсгээр эхэлсэн файлын нэрийг танд гүйцээж бичиж өгдөг. Энд нэг жишээ авч үзье.
Танд foobar болон foo.bar гэсэн хоёр файл байгаа гэж бодъё. Та
foo.bar файлыг устгахыг хүсэв. Тэгвэл та компьютерийнхаа гаран дээр ингэж бичих болно: rm fo[Tab].[Tab].
Бүрхүүл танд ингэж харуулна rm
foo[BEEP].bar.
[BEEP] гэдэг нь консолоос гаргаж байгаа хонхны дуу бөгөөд ингэж эхэлсэн файлын нэр нэгээс олон байгааг танд мэдэгдэж байгаа юм. foobar болон
foo.bar хоёр хоёулаа fo гэж эхэлж байгаа ч гэсэн
foo гэж танд дүүргэж өгдөг. Хэрэв та
. гэж бичээд Tab дахин дарвал бүрхүүл танд уг хүссэн файлын тань нэрийг гүйцээж өгдөг.
орчны хувьсагчид
Бүрхүүлийн бас нэг шинж чанар бол орчны хувьсагчийн хэрэглээ юм.
Орчны хувьсагч гэдэг нь бүрхүүлийн орчинд хадгалагддаг, нэрэнд утга өгсөн хослол байдаг. Энэ бүрхүүлийн орчин нь уг бүрхүүлээс гүйцэтгэгдэж байгаа бүх програм болон програмын тохируулгад харагдаж байдаг. Байнга хэрэглэгддэг ерөнхий орчны хувьсагчдыг дор жагсааж тайлбарлав:
environment variables
Хувьсагч
Тодорхойлолт
USER
Холбогдсон байгаа тухайн хэрэглэгчийн нэр.
PATH
Ачаалагдаж болдог хоёртын файлуудыг агуулдаг сангуудыг таслалаар тусгаарлаж бичсэн жагсаалт.
DISPLAY
Хэрэв холбогдох боломжтой бол, X11 дэлгэцийн сүлжээгээр холбогдох цэг.
SHELL
Хэрэглэж байгаа shell буюу бүрхүүл.
TERM
Хэрэглэгчийн терминалын төрлийн нэр. Терминалын шинж чанарыг тодорхойлоход хэрэглэгддэг.
TERMCAP
Төрөл бүрийн терминалуудад алгасах ёстой кодуудын өгөгдлийн бааз.
OSTYPE
Үйлдлийн системийн төрөл. жишээ нь, FreeBSD.
MACHTYPE
Системийн ажиллаж байгаа процессорын архитектур.
EDITOR
Хэрэглэгчийн эрхэмлэж хэрэглэгддэг текст засварлагч.
PAGER
Хэрэглэгчийн эрхэмлэж хэрэглэдэг пэйжер.
MANPATH
Таслалаар тусгаарлаж жагсаасан, гарын авлагын хуудсуудыг агуулсан хайх сангууд.
Bourne shells
Бүрхүүл болгонд орчны хувьсагчаа өөр өөр тохируулдаг. Жишээлбэл, C-маягийн бүрхүүл
tcsh болон csh дээр, та
setenv тушаалыг ашиглаж орчны хувьсагчийг зааж өгдөг.
Bourne төрлийн бүрхүүлүүд болох sh болон
bash дээр, та
export тушаалыг ашиглаж орчны хувьсагчийг зааж өгнө. Жишээ нь, орчны хувьсагч
EDITOR-г өөрчлөх юм уу зааж өгөхийн тулд csh юм уу эсвэл
tcsh бүрхүүл дээр
EDITOR хувьсагчид
/usr/local/bin/emacs утгыг өгөхийн тулд:
&prompt.user; setenv EDITOR /usr/local/bin/emacs
Bourne бүрхүүлүүд дээр:
&prompt.user; export EDITOR="/usr/local/bin/emacs"
Ихэнх бүрхүүлийн орчны хувьсагчийн утгыг харахын тулд хувьсагчийн нэрний урд
$ тэмдгийг хэрэглэж харна. Жишээ нь, echo $TERM гэсэн тушаал нь
$TERM хувьсагчид ямар утга байгааг консол дээр харуулна. Учир нь, бүрхүүл
$TERM дотор буй утгыг echo тушаалд дамжуулж өгснөөр консол дээр харуулагддаг.
Бүрхүүл маш олон тэмдэгтийг тусгай зориулалтаар өгөгдлийг илэрхийлэхдээ хэрэглэдэг бөгөөд тэдгээр тэмдэгтийг мета-тэмдэгтүүд гэж нэрлэдэг. Байнга хэрэглэгддэг тэмдэгтийн нэг нь
* юм. Энэ тэмдэгт нь файлын нэрэнд байгаа тэмдэгтүүдийг хэд ч байсан хамаагүй орохыг илэрхийлдэг. Тэдгээр мета-тэмдэгтүүд нь файлын нэрийг орлуулахад байнга хэрэглэгддэг. Жишээлбэл,
echo * гэсэн тушаал нь
ls тушаалтай ижилхэн үүрэг гүйцэтгэх бөгөөд, яагаад гэвэл бүрхүүл нь * тэмдэгтэд тохирох бүх файлуудыг авч
echo тушаал руу дамжуулж харуулдаг.
Бүрхүүл дээр мета-тэмдэгтүүдийг хэрэв тухайн онцгой тохиолдлоор нь биш харин зүгээр тэмдэгт хэлбэрээр нь хэрэглэхийг хүсвэл, уг тэмдэгтийн урд ташуу зураасыг
(\) бичиж өгдөг. echo
$TERM гэсэн тушаал нь ямар терминал заагдсан байгааг харуулна. Харин
echo \$TERM тушаал нь ердөө $TERM гэж харуулна.
Өөрийнхөө бүрхүүлийг солих
Бүрхүүлээ буюу shell-ээ солих хамгийн амархан арга бол
chsh тушаалыг хэрэглэх юм. chsh тушаал нь
таныг EDITOR орчны хувьсагчид заагдсан засварлагч уруу оруулдаг бөгөөд
хэрэв энэ хувьсагчид утга заагдаагүй байвал шууд
vi засварлагчийг ажиллуулдаг. Тэгээд та Shell:
мөрөнд
буй утгыг өөрчилж бүрхүүлээ өөрчилнө.
Та мөн chsh тушаалыг
сонголттой хэрэглэж болох бөгөөд ингэсэн үед
нэмэлт засварлагч нээлгүйгээр шууд бүрхүүлийг өөрчилдөг.
Жишээ нь та өөрийнхөө бүрхүүлийг bash бүрхүүлээр
солихыг хүсвэл дараа тушаалыг өгөх болно:
&prompt.user; chsh -s /usr/local/bin/bash
Таны хэрэглэхийг хүсэж байгаа бүрхүүл тань
/etc/shells файл дотор заавал
байх ёстой. Хэрэв та портын цуглуулгаас
бүрхүүл суулгасан бол энэ нь автоматаар хийгдчихдэг. Харин та
гар аргаар ямар нэг бүрхүүл суулгавал энэ файлд өөрөө нэмэх хэрэгтэй.
Жишээ нь та bash бүрхүүлийг гар аргаар суулгаад
/usr/local/bin байршилд байрлуулсан бол дараах тушаалыг
өгөх хэрэгтэй:
&prompt.root; echo "/usr/local/bin/bash" >> /etc/shells
Тэгээд дараа нь chsh тушаалыг хэрэглэх хэрэгтэй.
Текст засварлагчид
текст засварлагчид
засварлагчид
FreeBSD дээр текст файлуудыг засварлаж маш олон тохиргоонуудыг хийдэг.
Тийм болохоор та текст засварлагч дээр гаршиж сурах нь чухал.
FreeBSD нь үндсэн хэдэн засварлагчтай хамт ирдэг бөгөөд портын цуглуулга
дээрээ бол олон зуун засварлагчтай.
ee
засварлагчид
ee
Хамгийн амархан бөгөөд сурахад хялбар засварлагч бол
ee бөгөөд easy editor буюу хялбар засварлагч гэдгийг
товчилсон нэр юм. ee-г эхлүүлэхийн тулд тушаал бичих
мөрөнд ee файлын-нэр гэж бичих бөгөөд
файлын-нэр нь засварлагдах файлын нэр.
Жишээ нь, /etc/rc.conf файлыг засварлахын тулд
ee /etc/rc.conf гэж бичнэ.
ee засварлагч дотроо дээд хэсэгт нь програмыг хэрэглэх
заавар нь бичээстэй байдаг. ^ гэсэн тэмдэг нь гарын
Ctrl товчийг илэрхийлдэг бөгөөд ^e гэдэг нь
Ctrle гэсэн
гарын товчлол юм.
ee програмаас гарахын тулд Esc товч
дараад leave editor буюу засварлагчаас гарна гэдгийг сонгох хэрэгтэй.
Хэрэв файлд өөрчлөлт орсон бол гарахаас өмнө хадгалах эсэхийг лавлаж асуух болно.
vi
засварлагчид
vi
emacs
editors
emacs
Мөн FreeBSD нь
vi гэсэн хүчирхэг засварлагчийг системийн
үндсэн хэсэгтэй цуг зөөвөрлөдөг бөгөөд бас
Emacs болон vim зэрэг
зaсварлагчдыг FreeBSD Портын цуглуулгадаа багтаасан байдаг
(editors/emacs болон editors/vim).
Эдгээр засварлагчид нь ажиллах хүчин чадвараараа илүү боловч сурахад арай илүү төвөгтэй байдаг.
Гэвч та текст файлыг засварлахад маш их хөдөлмөр гаргахаар бол
vim эсвэл Emacs
програмуудыг сурснаар таны цаг болон хөдөлмөрийг цаашид улам илүү хөнгөвчлөх болно.
Файлууд засварладаг эсвэл бичихийг шаарддаг олон програм
текст засварлагчийг автоматаар нээдэг. Ашиглагдах анхдагч засварлагчийг
өөрчлөхийн тулд EDITOR орчны хувьсагчийг
тохируулах хэрэгтэй. Дэлгэрэнгүйг Бүрхүүлүүд
хэсгээс үзнэ үү.
Төхөөрөмж ба төхөөрөмжийн цэгүүд
Төхөөрөмж гэдэг ойлголт нь голдуу
системд буй төхөөрөмж болох диск, хэвлэгч, график карт,
мөн гар зэрэг ордог. FreeBSD эхэлж ачаалах үедээ,
гол чухал таньсан төхөөрөмжүүдээ харуулдаг.
Ингэж эхлэхдээ харуулсан бичлэгийг та дахин харахыг хүсвэл
/var/run/dmesg.boot файлыг хараарай.
Жишээ нь, acd0 гэдэг нь
эхний IDE CDROM төхөөрөмж байхад, kbd0
гэдэг нь гарыг илэрхийлж байдаг.
&unix; үйлдлийн систем нь эдгээр төхөөрөмж уруу хандахдаа
төхөөрөмжийн цэг гэж нэрлэгдэх тусгай файл уруу ханддаг. Эдгээр
төхөөрөмжийн цэгүүд нь
/dev санд байдаг.
Төхөөрөмжийн цэг үүсгэх
Хэрэв системд шинэ төхөөрөмж нэмэгдвэл, эсвэл нэмэлт
төхөөрөмжид зориулсан шаардлага гарвал шинэ төхөөрөмжийн цэг үүсгэх ёстой.
DEVFS (DEVice File System буюу төхөөрөмжийн файл систем)
Төхөөрөмжийн файл систем буюу DEVFS нь ерөнхий файлын
системийн нэрийн талбарын цөм дахь төхөөрөмжийн нэрийн талбарт хандах боломжийг өгдөг.
Төхөөрөмжийн цэгийг үүсгэх эсвэл өөрчлөх зэрэг үйлдлийг
DEVFS нь бидэнд хийж өгч амар болгож өгдөг.
&man.devfs.5; гарын авлагаас нэмэлт мэдээллийг харна уу.
Хоёртын хэлбэрүүд
&os; яагаад &man.elf.5; хэлбэр хэрэглэдгийг ойлгохын тулд, та
ачаалагдаж ажилладаг файлын төрлөөс &unix; дээр ноёлдог
гурван
хэлбэрийг мэдэх ёстой:
&man.a.out.5;
&unix;-н хамгийн хуучин бөгөөд сонгодог
ачаалагддаг файлын хэлбэр. Энэ нь эхэн хэсэгтээ өөрийнхөө
хэлбэрийг таниулах зориулалттай шидэт дугаар агуулж байдаг
(&man.a.out.5; хуудаснаас дэлгэрэнгүй мэдээлэл авна уу).
Ачаалагдсан үедээ санах ойд гурван хэсэгт хуваагддаг:
.text, .data, мөн .bss бөгөөд дээрээс нь хэрэглэгдэх
обьектуудыг агуулсан хүснэгт мөн мөрийн хүснэгтийг агуулж байдаг.
COFF
SVR3 обьект хэлбэр. Толгой хэсэгтээ тодорхой зориулалттай
хүснэгт агуулж байдаг. Тийм болохоор зөвхөн .text, .data,
болон .bss хэсгүүдээс гадна нэмэлт зүйлс агуулж чадна.
&man.elf.5;
COFF-н дараагийн үе. Энэ нь
олон хэсэг агуулахаас гадна 32-бит эсвэл 64-битийн утга агуулах
чадвартай. Нэг муу тал бий: ELF нь тухайн системийн
архитектурт зөвхөн ганцхан ABI байгаа гэж авч үздэг.
SYSV ертөнц (хамгийн багадаа гурван ABI агуулж байдаг: SVR4, Solaris, SCO)
байсаар байхад ингэж авч үзэх нь буруу юм.
FreeBSD нь энэ хүндрэлийг, ABI-н мэдээлэл агуулсан
ачаалагддаг ELF файлуудыг зохицуулдаг
branding хэрэгслийг ашиглаж сайжруулахыг боддог.
Нэмэлт мэдээллийг
&man.brandelf.1; хуудаснаас харна уу.
FreeBSD нь хуучны сонгодог
отгоос салбарлаж гарсан тул
&man.a.out.5; хэлбэрийг хэрэглэж байсан бөгөөд энэ хэлбэрээ 3.X салбар
гарах хүртэл маш олон BSD хувилбартаа ашиглаж байжээ.
Хэдийгээр FreeBSD дээр өмнө нь ELF хоёртын хэлбэрийг
хөрвүүлж мөн ажиллуулж (цөм дээр ч гэсэн) болдог байсан ч,
FreeBSD нь анхнаасаа ELF хэлбэрийг анхдагч хэлбэрээ
болгохыг татгалзсан
билээ. Яагаад? Учир нь,
Линукс систем нь хуваалцдаг кодын сан буюу Shared-Libraries
-д зориулсан үсэрч ажилладаг хүснэгт, мөн түүнийг
хөгжүүлэгчид болон байгууллагад хүндрэлтэй байдаг шалтгаанаар
a.out хэлбэрээс зайлсхийж ELF
хэлбэр рүү шилжих гэж нүсэр хүнд хөдөлмөр зарсан юм.
ELF хэлбэр нь хуваалцдаг кодын сан буюу Shared-Libraries
хүндрэлийг давах боломж олгосон хэрэгслүүдийг санал болгосон бөгөөд тэгээд ч хөгжлийн
явцад нэг алхам урд нь
явж байгааг бодож мөн нэг хэлбэрээс
нөгөө хэлбэрт шилжүүлэх үйл явцад гарах хүнд зардал байсан ч шилжүүлэхээр шийдсэн юм.
FreeBSD-н кодын санг хуваалцах зарчим нь Sun-н
&sunos; загвартай ижил бөгөөд хэрэглэхэд тун хялбар.
Тэгэхээр, яагаад ийм олон хэлбэр байдаг юм бэ?
Энэ асуултанд хариулахын тулд хуучны, энгийн ажиллах зарчимтай төхөөрөмж
хэрэглэж байсан бүүдгэр өнгөрсөн цаг уруу буцацгаая.
Энэ энгийн төхөөрөмж нь энгийн жижигхэн систем дээр л ажиллахыг хүснэ.
a.out нь (PDP-11) төрлийн иймэрхүү энгийн систем
дээр бүгдийг нь хангаж байлаа. Хүмүүс &unix; системийг ийм энгийн
системээс үүсгэсэн болохоор
хуучны загвар болох Motorola 68k, VAXen зэрэг системтэй зохицохын тулд
a.out хэлбэрийг үлдээсэн юм.
Тэгтэл дараа нь нэг сүрхий инженер хөвүүн,
зохиогдсон төхөөрөмжийн зарим ажиллах сул талыг нөхөж процессорыг илүү хурдан
ажиллуулах хөнгөхөн програм бичжээ.
Энэ програм нь шинэ төрлийн архитектурт (тэр үедээ RISC гэж
нэрлэгддэг байсан архитектур) зориулан ажиллахаар бичигдсэн болохоор a.out
хэлбэр нь энэ төхөөрөмжид тохиромжгүй болон хангахуйц сайн биш болж ирэв.
Тийм болохоор энэ шинэ төхөөрөмжтэй илүү үр дүнтэй ажиллахын тулд
илүү олон хэлбэрүүд шинэ загварт зориулж зохиогдож байсан бөгөөд хуучин төрөлд бол
энгийн a.out төрлийг санал болгож болох юм.
COFF, ECOFF мөн өөр илүү хэд хэдэн
хэлбэр нь алдаануудаа нөхөн дэс дараалан үүсгэгдсээр
ELF хүртэл хөгжжээ.
Мөн цаашлаад програмын хэмжээ хэдийгээр ихэссэн ч дискний (мөн
санах ойн) хэмжээ харьцангуй бага байсан болохоор хуваалцаж
болдог кодын сангийн Shared-Libraries
санаа үүссэн юм.
Мөн VM системүүд сайн
хөгжиж эхлэв. Хэдийгээр эдгээр сайжруулалт болгон
a.out хэлбэрийг хэрэглэж байсан ч, шинэ
боломжууд үүсэх тоолонд энэ хэлбэрийг хэрэглэхгүй болж ирэх нь
улам ихэссэн билээ. Мөн түүнчлэн, санах ойг хэмнэх үүднээс
эхлэн ачаалсны дараа өөр тийшээ үсрэх юм уу эсвэл явцын дунд
код нэмэгдэж болох загваруудыг хүмүүс сонирхож эхлэв.
Програмын хэлүүд улам сайжирч хүмүүс програмын үндсэн хэсгийг автоматжуулсан
код хүсэх болжээ. Энэ бүх боломжуудыг биелүүлэх гэж
a.out хэлбэрийг маш их олон янзаар яргалсан бөгөөд хэсэгтээ
л энэ нь ажилладаг байв. Нэг мэдэхэд a.out
хэлбэр нь ихсэж буй бүх хүндрэлийг зохицуулж чадахааргүй
бичлэгийн төвөгтэй болон хэрэглэхэд хэцүү байдалд хүрсэн байна.
Хэдийгээр энэ хүндрэлүүдийг ELF хэлбэр нь
давдаг боловч шилжих явц нь маш хүндрэлтэй байдаг.
Тийм болохоор ELF хэлбэр руу шилжих төвөг нь
a.out хэлбэрийг хэрэглэх төвгөөс их байвал
ELF хэлбэр нь хүлээгдэхээс өөр аргагүй болжээ.
Гэвч цаг хугацаа өнгөрсөөр, FreeBSD ба түүний уламжилж гарсан системийн
хөрвүүлэх хэрэгсэл нь (ялангуяа ассемблер болон дуудагч буюу loader) хоёр замаар
зэрэг хөгжсөөр байв. FreeBSD салаа нь кодын хуваалцдаг санг нэмж мөн зарим алдааг
нь залруулсан байна. Үүнийг анх бичсэн GNU-н ард түмэн уг кодоо шинэчилж дахин
бичээд янз бүрийн хэлбэрүүдийг нэмж болдог болгоод мөн хөрвүүлэгчээс
хамааралгүй хөрвүүлэгддэг болгох зэрэг цааш нь хөгжүүлжээ.
Хэдийгээр маш олон хүн FreeBSD дээр хөрвүүлэгчээс хамаарахгүй
хөрвүүлэхийг хүссэн боловч FreeBSD-н as болон
ld-д зориулсан хуучин кодноос болоод
азгүйтжээ. GNU-н шинэ хэрэгслүүд нь (binutils)
хөрвүүлэгчээс хамааралгүй, ELF,
кодын хуваалцдаг сан, C++ өргөтгөл зэргүүдийг хөрвүүлж чаддаг болжээ.
Мөн цаашлаад маш олон байгууллагууд
ELF хэлбэртэй хоёртын програмуудыг гаргаж эхэлсэн тул
тэдгээрийг хэрэглэхийн тулд FreeBSD уг хэлбэрийг дэмжих нь зөв гэж шийдсэн юм.
ELF хэлбэр нь a.out хэлбэрийг бодвол
илүү өргөн хүрээтэй бөгөөд үндсэн системийг илүү өргөжүүлдэг.
ELF хэрэгслүүд нь маш сайн зохион байгуулагдсан бөгөөд
хөрвүүлэгчээс хамаардаггүй болохоор хүмүүсийн хүсэлд яг тохирдог.
ELF нь a.out хэлбэрийг бодвол жаахан
удаан байж болох боловч үүнийг хэмжиж тодорхойлно гэдэг нь хэцүү билээ.
Мөн энэ хоёрыг санах ойд хуудас зохицуулах, эхлэн ажиллах зарчим зэргийг нь харьцуулсан
маш олон шинж чанарууд байдаг. Тэдгээр шинж чанарууд нь тийм ч чухал биш бөгөөд
энэ нь зөвхөн ялгаа нь билээ. Одоо бол
a.out хэлбэр нь GENERIC
цөмөөс хасагдсан бөгөөд a.out хэлбэрийг ажиллуулдаг байсан цөм нь
хуучны цөмд тооцогдоно.
Нэмэлт мэдээлэл олж авах нь
Гарын авлага
гарын авлага
Ихэнх дэлгэрэнгүй мэдээллүүд нь FreeBSD дээр гарын авлага хэлбэрээр
оршиж байдаг. Систем дээр ажиллаж байгаа бараг бүх програмууд нь ажиллах болон
авдаг шинж чанараа тодорхойлсон товч заавар буюу гарын авлагатай хамт ирдэг.
Тийм гарын авлагыг man тушаалаар харна.
man тушаалын хэрэглээ нь тун хялбар:
&prompt.user; man тушаал
тушаал нь судалж уншихыг хүссэн тушаалын нэр байх ёстой.
Жишээлбэл ls тушаалын тухай мэдээлэл харахыг хүсвэл:
&prompt.user; man ls
Гарын авлага нь дотроо дараах хэсгүүдэд дугаарлагдаж хуваагддаг:
Хэрэглэгчийн тушаал.
Системийн дуудлага болон алдааны дугаар.
C програмын хэлний санд байрлах функц нь.
Төхөөрөмжийн драйвер.
Файлын хэлбэр.
Тоглоом болон бусад салбар.
Төрөл бүрийн бусад мэдээлэл.
Системээс санаа тавьж үйлдэх тушаал.
Цөм хөгжүүлэгч.
Зарим тохиолдолд гарын авлагын зарим бүлэг нь саяны хуваасан хэсэгт бүрд
ижил байдаг. Жишээлбэл chmod тушаалыг хэрэглэгч нэг янзаар хэрэглэж
байхад систем бас chmod() тушаалыг өөр зорилгоор хэрэглэдэг.
Энэ тохиолдолд та системд аль сэдвээ сонгож байгаагаа ойлгуулахын
тулд харгалзах дугаарыг нь өгөх ёстой:
&prompt.user; man 1 chmod
Энэ тохиолдолд chmod тушаалыг хэрэглэгч яаж дуудаж хэрэглэх
тухай харуулна. Гарын авлагын тухайн хэсгийг нь харахын тулд голдуу
хаалт дотор тухайн хэсгийн дугаарыг нь бичиж ханддаг. Тэгэхээр &man.chmod.1; гэвэл
хэрэглэгчид хамаатай хэсэг нь, &man.chmod.2; гэвэл системд хамаатай хэсэг харуулагдана.
Хэрэв та тушаалынхаа нэрийг мэдэж байвал энэ аргаар маш амархан
хэрэглэх зааврыг уншиж чадахаар боллоо. Гэтэл та тушаалынхаа нэрийг мэдэхгүй
тохиолдолд яах вэ? Энэ үед та man тушаалд тухайн хэрэгтэй
тушаалын зааварт хайх түлхүүр үгийг сонголт ашиглан зааж өгч болдог.
:
&prompt.user; man -k mail
Энэ тохиолдолд, заавартаа mail
гэдэг үг агуулсан
тушаалуудыг жагсааж танд харуулна. Энэ арга нь үндсэндээ
apropos тушаалын үүрэгтэй ижил болно.
За тэгэхээр, таны
/usr/bin санд маш их олон тушаалууд байгааг та мэддэг мөртлөө
ямар үйлдэл хийдгийг нь сайн мэдэхгүй тохиолдолд яах вэ? Хамгийн амархан арга бол:
&prompt.user; cd /usr/bin
&prompt.user; man -f *
эсвэл
&prompt.user; cd /usr/bin
&prompt.user; whatis *
энэ хоёр хоёулаа ижилхэн үйлдэл хийдэг.
GNU Info файлууд
Free Software Foundation
FreeBSD нь Free Software Foundation (FSF) буюу Чөлөөт Програмын Сангаас
бүтээсэн маш олон програмуудыг агуулж байдаг. Гарын авлага хуудаснаас гадна
эдгээр програмууд нь мөн нэмэлт текст загвартай
info файл агуулж байдаг бөгөөд уг төрлийн мэдээлэл нь
info тушаалаар харуулагддаг. Хэрэв та
emacs-г суулгасан бол
emacs-н info горимд бас харж болно.
&man.info.1; тушаалыг хэрэглэхийн тулд ердөө:
&prompt.user; info тушаал
Товч тайлбарыг нь харахын тулд h дарна. Тушаалын
түргэн зааврыг харахын тулд ? гэж дараарай.
diff --git a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
index 943c0ef5df..1e28c8291d 100644
--- a/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/cutting-edge/chapter.sgml
@@ -1,3025 +1,3025 @@
Жим
Мок
Бүтцийг дахин өөрчлөн зохион байгуулж зарим хэсгүүдийг шинэчилсэн
Жордан
Хаббард
Анхлан эхийг бичсэн
Поул-Хэннинг
Камп
Жон
Полстра
Ник
Клэйтон
Цагаанхүүгийн
Ганболд
Орчуулсан
&os;-г шинэчилж сайжруулах нь
Ерөнхий агуулга
&os; нь өөрийн хувилбаруудын хооронд байнгын хөгжүүлэлтийн доор оршин тогтнож
байдаг. Зарим хүмүүс албан ёсоор гаргасан хувилбаруудыг ашиглах хүсэлтэй
байдаг бол зарим хүмүүс хамгийн сүүлийн үеийн хөгжүүлэлтийг дагах сонирхолтой
байдаг. Гэхдээ албан ёсны хувилбарууд хүртэл аюулгүй байдлын болоод бусад
чухал засваруудаар шинэчлэгдэж байдаг. Ямар хувилбар ашиглаж байгаагаас үл
хамаараад &os; нь таны системийг шинэ байлгахад шаардлагатай бүх л хэрэгслүүд
болон хувилбар хооронд хялбараар шинэчлэх боломжоор хангадаг.
Энэхүү бүлэг нь хөгжүүлэлтийн системийг дагахыг хүсэх эсвэл гаргасан
хувилбартай үлдэх эсэхийг шийдэхэд танд туслах болно. Таны системийг шинэчлэхэд
зориулсан үндсэн хэрэгслүүдийг бас харуулах болно.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Систем болон портын цуглуулгыг ямар хэрэгслүүд
ашиглан шинэчилж болох талаар.
freebsd-update,
CVSup,
CVS, эсвэл
CTM програмуудын тусламжтай өөрийн системийг
хэрхэн хамгийн сүүлийн хэлбэрт авчрах талаар.
Суулгагдсан системийн төлвийг мэдэгдэж байгаа сайн хуулбартай
хэрхэн харьцуулах талаар.
CVSup эсвэл баримтжуулах порт ашиглан өөрийн баримтуудыг
хэрхэн сүүлийн хувилбарт байлгаж байх талаар.
&os.stable; болон &os.current; хөгжүүлэлтийн
салбаруудын ялгаа.
Бүх үндсэн системийг make buildworld
(гэх мэт) ашиглан хэрхэн дахин бүтээж суулгах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
Өөрийн сүлжээний холболтыг зөв тохируулах ().
Нэмэлт гуравдагч програм хангамжуудыг
хэрхэн суулгахыг мэдэх ().
Энэ бүлэгт &os;-ийн эхийг авч шинэчлэхийн тулд
cvsup тушаалыг ашиглагдсан. Үүнийг хэрэглэхийн
тулд net/cvsup-without-gui
гэсэн порт буюу багцыг та суулгах хэрэгтэй. Хэрэв та &os; 6.2-RELEASE
юм уу эсвэл түүнээс хойшхи хувилбар хэрэглэж байвал үндсэн системийн
хэсэг болсон &man.csup.1; тушаалаар үүнийг орлуулж хэрэглэж болно.
Том
Рөүдс
Бичсэн
Колин
Персивал
Тэмдэглэгээ бичсэн
FreeBSD-ийн шинэчлэлт
Updating and Upgrading
freebsd-update
updating-upgrading
Аюулгүй байдлын засваруудыг хийнэ гэдэг компьютерийн програм
хангамж ялангуяа үйлдлийн системийг арчлалтын чухал хэсгийн нэг юм.
Удаан хугацааны туршид &os; дээр энэ процесс хялбар биш байлаа.
Засваруудыг эх код руу хийж кодыг хоёртын хэлбэр рүү дахин бүтээж
дараа нь хоёртын файлуудыг дахин суулгах шаардлагатай байлаа.
Энэ нь одоо тийм биш болсон бөгөөд &os; нь
freebsd-update гэгддэг хэрэгслийг агуулдаг.
Энэ хэрэгсэл нь хоёр тусдаа функцээр хангадаг. Нэгдүгээрт энэ нь
бүтээлт болон суулгах шаардлагагүйгээр хоёртын аюулгүй байдал болон
алдааны шинэчлэлтүүдийг &os;-ийн үндсэн системд оруулах боломжийг
олгодог. Хоёрдугаарт уг хэрэгсэл бага болон том хувилбарын шинэчлэлтүүдийг
дэмждэг.
Аюулгүй байдлын багаар дэмжигдсэн бүх архитектур болон
хувилбаруудын хувьд хоёртын шинэчлэлтүүд байдаг боловч &os; үйлдлийн
системийн шинэчлэлтүүд зэрэг зарим нэг боломжууд нь &man.freebsd-update.8;-ийн
хамгийн сүүлийн хувилбар болон &os; 6.3 болон түүнээс дээших хувилбарыг шаарддаг. Шинэ хувилбар
руу шинэчлэхээс өмнө хүссэн хувилбарт чинь хамаатай чухал мэдээлэл байж
болох учир одоогийн хувилбарын зарлалуудыг дахин үзэх хэрэгтэй. Тэдгээр
зарлалуудыг дараах холбоосоос үзэж болно:
.
Хэрэв crontab нь freebsd-update-ийн
боломжуудыг хэрэглэж байвал дараах үйлдлийг эхлэхээс өмнө түүнийг болиулах
хэрэгтэй.
Тохиргооны файл
Процессийг илүү хянах боломжтой болгож зарим хэрэглэгчид
тохиргооны файлыг өөрчлөхийг хүсэж болох юм. Тохиргоонууд нь
маш сайн баримтжуулагдсан байдаг боловч дараах хэдэн зүйлийг
арай илүү тайлбарлах шаардлагатай байж болох юм:
# Components of the base system which should be kept updated.
Components src world kernel
Энэ өгөгдөл нь &os;-ийн аль хэсгийг шинэчлэхийг хянадаг.
Анхдагчаар эх код, үндсэн систем бүтнээрээ ба цөмийг шинэчлэх
байдаг. Бүрэлдэхүүн хэсгүүд нь суулгах явцад байдагтай адил
байдаг бөгөөд жишээ нь "world/games" гэдгийг энд нэмэхэд
тоглоомын засваруудыг хийх боломжийг олгоно. "src/bin" гэдгийг
ашиглах нь src/bin
дахь эх кодыг шинэчлэх боломжийг олгодог.
Хамгийн сайн тохиргоо бол үүнийг анхдагчаар нь үлдээх бөгөөд
тусгай зүйлс оруулж үүнийг өөрчилснөөр хэрэглэгчид өөрсдийн шинэчлэхийг
хүссэн зүйл болгоноо жагсааж оруулах шаардлагатай болно. Ингэснээр
эх код болон хоёртын файлуудын хоорондох уялдаа алдагдаж гамшигт
үр дагаварт хүргэж болно.
# Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths
/bin эсвэл
/sbin зэрэг замуудыг
нэмж эдгээр тусгай сангуудыг шинэчлэх процессийн явцад
оролдохгүй орхиж болно. Энэ тохиргоо нь
freebsd-update локал өөрчлөлтүүдийг
дарж бичихээс хамгаалахад хэрэглэж болно.
# Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
Заагдсан сангууд дахь тохиргооны файлууд өөрчлөгдөөгүй
тохиолдолд шинэчилнэ. Хэрэглэгчийн хийсэн өөрчлөлтүүд эдгээр
файлуудын автомат шинэчлэлтийг хүчингүй болгоно.
freebsd-update-г нийлүүлэх явцад
өөрчлөлтүүдийг хадгалахыг тушаах KeepModifiedMetadata
гэсэн өөр нэг тохиргоо байдаг.
# When upgrading to a new &os; release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /var/named/etc/
freebsd-update-ийн нийлүүлэхийг оролдох
тохиргооны файлуудтай сангуудын жагсаалт. Файл нийлүүлэх процесс нь
цөөн тохиргоотой &man.mergemaster.8;-тай төстэй &man.diff.1; засварууд
бөгөөд нийлүүлэлтийг эсвэл хүлээн авах юм уу эсвэл засварлагч нээж эсвэл
freebsd-update ажиллагаагаа зогсоох болно. Эргэлзэж
байвал /etc санг нөөцөлж аваад
нийлүүлэлтүүдийг хүлээн авах хэрэгтэй. mergemaster тушаалын
талаар дэлгэрэнгүй мэдээллийг -с үзнэ үү.
# Directory in which to store downloaded updates and temporary
# files used by &os; Update.
# WorkDir /var/db/freebsd-update
Энэ сан нь бүх засварууд болон түр зуурын файлууд байх сан
юм. Хэрэглэгч хувилбар шинэчлэлт хийж байвал энэ байрлал нь хамгийн
багаар бодоход гигабайт дискийн зайтай байх шаардлагатай.
# When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which &os; Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no
yes гэж тохируулсан үед
freebsd-update нь Components буюу
бүрэлдэхүүн хэсгүүдийн жагсаалт бүрэн гэж тооцох бөгөөд жагсаалтаас гадна өөрчлөлт
хийхийг оролдохгүй. freebsd-update нь
Components-ийн жагсаалтад хамаарах файл
бүрийг шинэчлэхийг оролдох болно.
Аюулгүй байдлын засварууд
Аюулгүй байдлын засварууд нь алсын машин дээр хадгалагддаг
бөгөөд дараах тушаал ашиглан татан авч суулгаж болно:
&prompt.root; freebsd-update fetch
&prompt.root; freebsd-update install
Хэрэв цөмийн ямар нэг засвар хийгдсэн бол системийг дахин
ачаалах хэрэгтэй. Хэрэв бүгд зөв явагдсан бол систем нь засвар хийгдсэн
байх ёстой бөгөөд freebsd-update-ийг
&man.cron.8; ажлаас шөнө бүр ажиллуулж болно. Энэ ажлыг хийхэд
дараах мөрийг /etc/crontab-д хийхэд
хангалттай байх болно:
@daily root freebsd-update cron
- Энэ мөр нь өдөр бүр freebsd-update-г
+ Энэ мөр нь өдөр бүр freebsd-update хэрэгслийг
ажиллуулахыг зааж байна. Ийм аргаар -ий нэмэлт
өгөгдлийг ашиглан freebsd-update нь зөвхөн
шинэчлэлт байгаа эсэхийг шалгах болно. Хэрэв засварууд байвал тэдгээрийг
автоматаар диск рүү татаж авах бөгөөд гэхдээ засваруудыг хийхгүй.
root хэрэглэгч рүү захиа илгээгдэх бөгөөд
дараа нь тэд гараар суулгаж болох юм.
Хэрэв ямар нэг зүйл буруу болбол freebsd-update нь
дараах тушаалаар сүүлийн өөрчлөлтүүдийг буцаах чадвартай байдаг:
&prompt.root; freebsd-update rollback
Дууссаны дараа цөм эсвэл цөмийн модулиуд өөрчлөгдсөн бол
системийг дахин эхлүүлэх хэрэгтэй. Энэ нь шинэ хоёртын файлуудыг санах
ой руу дуудах боломжийг &os;-д олгоно.
freebsd-update хэрэгсэл нь автоматаар
зөвхөн GENERIC цөмийг шинэчилж чаддаг.
Хэрэв өөрчлөн тохируулсан цөм ашиглагдаж байвал freebsd-update нь
шинэчлэлтийг хийж дууссаны дараа цөмийг дахин бүтээж суулгах шаардлагатай.
Гэхдээ freebsd-update нь /boot/GENERIC (хэрэв байгаа бол)
дахь GENERIC цөмийг системийн тухайн үеийн (ажиллаж байгаа)
цөм биш байсан ч гэсэн олж шинэчилдэг.
/boot/GENERIC дахь
GENERIC цөмийн хуулбарыг үргэлж хадгалах нь ер нь зүйтэй
байдаг. Энэ нь төрөл бүрийн асуудлуудыг шинжлэх болон
-т тайлбарласны дагуу
freebsd-update-г ашиглан
хувилбар шинэчлэлтийг хийхэд ач тустай байх болно.
/etc/freebsd-update.conf дахь анхдагч тохиргоо
өөрчлөгдөөгүй л бол freebsd-update шинэчлэгдсэн
цөмийн эхийг бусад шинэчлэлттэй цуг суулгах болно. Дараа нь өөрийн өөрчлөн
тохируулсан цөмийг дахин бүтээж суулгахдаа энгийн сурсан аргаараа хийж
болно.
freebsd-update-аар түгээгдсэн шинэчлэлтүүд нь
цөмтэй үргэлж холбоотой байдаггүй. freebsd-update install
тушаалаар цөмийн эх өөрчлөгдөөгүй бол өөрийн өөрчлөн тохируулсан цөмийг дахин
бүтээх шаардлагагүй юм. Гэхдээ freebsd-update
тушаал /usr/src/sys/conf/newvers.sh файлыг
үргэлж шинэчлэх болно. Тухайн үеийн нөхөөсийн түвшинг (uname -r
тушаалаас гарсан -p дугаараар заагдсан) энэ файлаас
авдаг. Өөр бусад юмс өөрчлөгдөөгүй байсан ч гэсэн өөрийн өөрчлөн тохируулсан
цөмийг дахин бүтээх нь системийн тухайн үеийн нөхөөсийн түвшинг зөв гаргах
боломжийг &man.uname.1;-д олгоно. Энэ нь олон системийг арчилж байгаа үед
ялангуяа ач тустай байдаг бөгөөд ингэснээр тэр системүүд дээр суулгагдсан
шинэчлэлтүүдэд түргэн шуурхай үнэлгээ өгөх боломжийг олгодог.
Major ба Minor буюу Том ба Бага шинэчлэлтүүд
Энэ процесс нь ихэнх гуравдагч талын прорамуудыг эвдэх
хуучин обьект файлууд болон сангуудыг устгах болно.
Бүх суулгагдсан портуудыг устгаж дахин суулгах эсвэл
ports-mgmt/portupgrade
хэрэгсэл ашиглан сүүлд нь шинэчлэхийг зөвлөдөг. Дараах тушаалыг
ашиглан ихэнх хэрэглэгчид тест бүтээлтийг ажиллуулахыг хүснэ:
&prompt.root; portupgrade -af
Энэ нь бүгдийг зөв дахин суулгах баталгаа болох юм.
BATCH орчны хувьсагчийг yes
гэж тохируулснаар энэ процессийн явцад гарч ирэх хүлээх мөрөнд
yes гэж хариулан бүтээх процессийн
үед оролцох шаардлагыг үгүй болгоно.
Хэрэв өөрчлөн тохируулсан цөм ашиглагдаж байгаа бол шинэчлэх
процесс арай илүү ажиллагаатай. GENERIC цөмийн
хуулбар шаардлагатай бөгөөд /boot/GENERIC-д байрлуулах
шаардлагатай. Хэрэв GENERIC цөм системд байхгүй
бол үүнийг доор дурдсан аргуудын аль нэгийг ашиглан олж авч болно:
Хэрэв өөрчлөн тохируулсан цөм зөвхөн нэг удаа бүтээгдсэн бол
/boot/kernel.old дахь
цөм нь GENERIC цөм юм. Энэ санг
/boot/GENERIC гэж
өөрчлөхөд л болно.
Машинд физикээр хандах боломжтой гэж тооцвол
GENERIC цөмийн хуулбарыг CD-ROM зөөвөрлөгчөөс
суулгаж болно. Өөрийн суулгац дискийг хийж дараах тушаалуудыг
ашиглана:
&prompt.root; mount /cdrom
&prompt.root; cd /cdrom/X.Y-RELEASE/kernels
&prompt.root; ./install.sh GENERIC
X.Y-RELEASE-г
өөрийн ашиглаж байгаа хувилбараар солих хэрэгтэй. GENERIC
цөм анхдагчаар /boot/GENERIC-д суулгагдах болно.
Дээр дурдсан бүгдийг хийх боломжгүй бол GENERIC
цөмийг эхээс нь дахин бүтээж суулгаж болох юм:
&prompt.root; cd /usr/src
&prompt.root; env DESTDIR=/boot/GENERIC make kernel
&prompt.root; mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
&prompt.root; rm -rf /boot/GENERIC/boot
Энэ цөмийг freebsd-update хэрэгсэлд
GENERIC гэж харуулахын тулд GENERIC
тохиргооны файлыг ямар ч тохиолдолд өөрчилсөн байх ёсгүй. Бас ямар нэг
тусгай сонголтуудгүйгээр (аль болох хоосон /etc/make.conf
файлтайгаар) бүтээгдсэн байх ёстойг зөвлөдөг.
Энэ үед GENERIC цөм рүү дахин ачаалах
шаардлагагүй юм.
Том ба бага хувилбарын шинэчлэлтүүдийг
freebsd-update тушаалд хувилбарын дугаарыг өгч
гүйцэтгэж болно, жишээ нь дараах тушаал &os; 6.4 руу
шинэчилнэ:
&prompt.root; freebsd-update -r 6.4-RELEASE upgrade
Тушаал хүлээн авсны дараа freebsd-update
системийг шинэчлэхэд шаардлагатай мэдээллийг цуглуулахын тулд
тохиргооны файл болон одоогийн системийг шалгана. Ямар бүрэлдэхүүн
хэсгүүд илрүүлэгдсэн болон ямар бүрэлдэхүүн хэсгүүд илрүүлэгдээгүй
гэдгийг дэлгэц дээр үзүүлнэ. Жишээ нь:
Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
world/base world/info world/lib32 world/manpages
The following components of FreeBSD do not seem to be installed:
kernel/generic world/catpages world/dict world/doc world/games
world/proflibs
Does this look reasonable (y/n)? y
Энд хүрэхэд freebsd-update шинэчлэлтэд
шаардлагатай бүх файлуудыг татан авахаар оролдох болно. Зарим
тохиолдолд хэрэглэгчээс юу суулгах эсвэл хэрхэн цааш үргэлжлүүлэх
талаар асуултууд асууж болох юм.
Өөрчлөн тохируулсан цөмийг ашиглаж байх үед дээрх алхам
дараахтай төстэй анхааруулгыг харуулах болно:
WARNING: This system is running a "MYKERNEL" kernel, which is not a
kernel configuration distributed as part of FreeBSD 6.3-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install"
Энэ анхааруулгыг энэ үед орхигдуулахад аюулгүй байдаг. Шинэчлэгдсэн
GENERIC цөм шинэчлэлтийн явцад завсрын алхам
болон ашиглагдах болно.
Бүх засварууд локал систем рүү татагдсаны дараа тэдгээрийг
хийж өгөх болно. Машины хурд болон ачааллаас хамаарч энэ процесс нь
хугацаа шаардаж болох юм. Тохиргооны файлуудыг нийлүүлэх болно.
Файл нийлүүлэгдэх юм уу эсвэл гараар нийлүүлэхэд зориулж засварлагч
дэлгэц дээр гарч ирч болох учир процессийн энэ хэсэг хэрэглэгчийн
оролцоо шаардана. Амжилттай нийлүүлэлт болгоны үр дүн хэрэглэгчид
харуулагдаж процесс үргэлжлэх болно. Амжилтгүй болсон эсвэл орхигдсон
нийлүүлэлт нь процессийг зогсоох болно. Хэрэглэгчид нь
/etc сангийн нөөцийг
хийж master.passwd эсвэл
group зэрэг чухал файлуудыг гараар сүүлд нь
нийлүүлэхийг хүсэж болох юм.
Систем нь өөрчлөгдөөгүй байгаа бөгөөд бүх засвар оруулалт
болон нийлүүлэлт өөр сан дотор болж байгаа болно. Бүх засварууд
амжилттай хийгдэж бүх тохиргооны файлууд нийлүүлэгдэж процесс
тэгш явагдаж байгаа мэт санагдвал хэрэглэгч өөрчлөлтүүдийг хийх
хэрэгтэй.
Энэ процесс дууссаны дараа шинэчлэлтийг дараах тушаалыг ашиглан
диск рүү хийж болно.
&prompt.root; freebsd-update install
Цөм болон цөмийн модулиудад эхлээд засвар хийнэ. Энэ үед
машиныг дахих ачаалах ёстой. Хэрэв систем өөрчлөн тохируулсан цөмөөр
ажиллаж байгаа бол цөмийг /boot/GENERIC (шинэчлэгдсэн)
цөмөөр дараа нь ачаалахаар болгохын тулд &man.nextboot.8;-ийг
ашиглана:
&prompt.root; nextboot -k GENERIC
GENERIC цөмөөр ачаалахаас өмнө (хэрэв шинэчлэгдэж
байгаа машинд алсаас хандаж байгаа бол сүлжээнд холбогдон) таны систем зөв ачаалахын
тулд шаардлагатай бүх драйверуудыг агуулсан эсэхийг шалгах хэрэгтэй. Ялангуяа
хэрэв өмнө нь ажиллаж байсан өөрчлөн тохируулсан цөм ерөнхийдөө цөмийн модулиудаар
хангагдаж байдаг ажиллагааг өөртөө агуулсан бол /boot/loader.conf
боломжийг ашиглан эдгээр модулиудыг GENERIC цөмд түр зуур
ачаалахаа мартуузай. Шинэчлэх процесс бүрэн дуустал шаардлагагүй үйлчилгээнүүд, диск
болон сүлжээний холболтууд гэх мэтийг та бас хааж өгч болох юм.
Одоо машин шинэчлэгдсэн цөмөөр ачаалагдах ёстой:
&prompt.root; shutdown -r now
Систем буцаж ассаны дараа freebsd-update-г
дахин эхлүүлэх хэрэгтэй. Процессийн төлөв хадгалагдсан болохоор
freebsd-update эхнээсээ эхлэхгүй бөгөөд бүх
хуучин хуваалцсан сангууд болон обьект файлуудыг устгах болно.
Энэ шатыг үргэлжлүүлэхийн тулд дараах тушаалыг ажиллуулна:
&prompt.root; freebsd-update install
Сангуудын хувилбарын тоо дээшилсэн эсэхээс хамаарч
суулгах гурван шатны оронд хоёр шат байж болох юм.
Бүх гуравдагч талын програм хангамжийг дахин бүтээж дахин суулгах
хэрэгтэй. Суулгагдсан програм хангамж нь шинэчлэлтийн процессийн явцад
устгагдсан сангуудаас хамаарч болох учраас энэ нь шаардлагатай юм.
ports-mgmt/portupgrade тушаалыг
үүнийг автоматжуулахад ашиглаж болох юм. Энэ процессийг эхлүүлэхийн
тулд дараах тушаалыг хэрэглэж болно:
&prompt.root; portupgrade -f ruby
&prompt.root; rm /var/db/pkg/pkgdb.db
&prompt.root; portupgrade -f ruby18-bdb
&prompt.root; rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
&prompt.root; portupgrade -af
Үүнийг дууссаны дараа шинэчлэлтийн процессийг
freebsd-update-ийг сүүлийн удаа дуудаж
төгсгөнө. Шинэчлэлтийн процессийн сул байгаа бүх зүйлсийг гүйцээхийн
тулд дараах тушаалыг ажиллуулна:
&prompt.root; freebsd-update install
Хэрэв GENERIC цөм түр зуур ашиглагдаж байсан
бол өөрчлөн тохируулсан шинэ цөмийг ердийн хэвшсэн аргаар одоо бүтээж суулгах цаг
болжээ.
Машинаа &os;-ийн шинэ хувилбар руу дахин ачаалах хэрэгтэй.
Процесс дууслаа.
Системийн төлвийн харьцуулалт
freebsd-update хэрэгслийг
&os;-ийн суулгагдсан хувилбарын төлвийг байгаа зөв хуулбарын
эсрэг тест хийхэд хэрэглэж болно. Энэ сонголт нь системийн хэрэгслүүд
сангууд болон тохиргооны файлуудын одоогийн хувилбаруудыг шалгадаг.
Харьцуулалтыг эхлүүлэхийн тулд дараах тушаалыг ажиллуулна:
&prompt.root; freebsd-update IDS >> outfile.ids
Тушаалын нэр IDS боловч энэ нь
ямар ч тохиолдолд security/snort зэрэг
халдлага илрүүлэгч системийг солих зориулалттай биш юм.
freebsd-update нь өгөгдлийг диск дээр
хадгалдаг бөгөөд түүнийг өөрчлөх боломж тодорхой юм.
kern.securelevel тохиргоог ашиглах болон
freebsd-update-ийн өгөгдлийг зөвхөн уншигдах файлын
систем дээр ашиглагдаагүй тохиолдолд хадгалах нь энэ боломжийг
багасгах боловч илүү сайн шийдэл нь системийг DVD эсвэл
нууцлаг хадгалсан гадаад USB дискийн төхөөрөмж зэрэг
нууцлаг дисктэй харьцуулах явдал юм.
Систем нь одоо шалгагдах бөгөөд файлууд нь өөрсдийн
&man.sha256.1; утгуудын хамт, хувилбар дахь мэдэгдэж байгаа сайн утгууд болон
одоо суугдсан байгаа утгуудын хамт хэвлэгдэн харуулагдана.
Энэ нь яагаад гаралт outfile.ids файл руу
илгээгдсэн шалтгаан юм. Үүнийг нүдээр шалгахад хэтэрхий хурдан дээш
гүйж удалгүй консолын буфферийг дүүргэх болно.
Эдгээр мөрүүд нь бас хэтэрхий урт боловч гаралтын хэлбэрийг
хялбараар задлан ялгаж болно. Жишээ нь хувилбарт байгаагаас ондоо
бүх файлуудын жагсаалтыг авахын тулд дараах тушаалыг ажиллуулна:
&prompt.root; cat outfile.ids | awk '{ print $1 }' | more
/etc/master.passwd
/etc/motd
/etc/passwd
/etc/pf.conf
Энэ гаралт нь тайрагдсан бөгөөд олон файл байгаа болно.
Эдгээр файлуудын зарим нь төрөлхийн өөрчлөлтүүдтэй байна, жишээ нь
/etc/passwd нь хэрэглэгч системд нэмэгдсэн
болохоор өөрчлөгдсөн байна. Зарим тохиолдолд
freebsd-update нь шинэчилсэн байж болзошгүй учир
цөмийн модулиуд зэрэг бусад файлууд өөр байж болох юм.
Тусгай файлууд болон сангуудыг хасахын тулд тэдгээрийг
/etc/freebsd-update.conf файлын
IDSIgnorePaths тохиргоонд нэмж өгнө.
Өмнө хэлэлцсэн хувилбараас гадна нарийн нягт шинэчлэлтийн аргын
хэсэг болгон энэ системийг ашиглаж болно.
Том
Рөүдс
Бичсэн
Колин
Персивал
Тэмдэглэгээ бичсэн
Portsnap: Портын цуглуулгыг шинэчлэх хэрэгсэл
Updating and Upgrading
Portsnap
updating-upgrading
&os;-ийн үндсэн систем портын цуглуулгыг бас шинэчилдэг
&man.portsnap.8; хэрэгслийг агуулдаг. Ажиллуулсны дараа энэ нь
алсын сайт руу холбогдож нууц түлхүүрийг шалгаж портын цуглуулгын шинэ
хуулбарыг татан авдаг. Түлхүүр нь бүх татаж авсан файлууд татагдаж байхдаа
өөрчлөгдөөгүй эсэхийг хянан бүрэн бүтэн байдлыг шалгахад ашиглагддаг.
Хамгийн сүүлийн үеийн портын цуглуулгыг татаж авахын тулд дараах
тушаалыг ажиллуулна:
&prompt.root; portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
Fetching 3 metadata files... done.
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
Applying patches... done.
Fetching 133 new ports or files... done.
Энэ жишээ нь юу үзүүлж байна вэ гэхээр &man.portsnap.8;
одоо байгаа портын өгөгдөлд хэд хэдэн засварууд байгааг олж шалгаж байна.
Энэ нь бас уг хэрэгсэл өмнө нь ажилласныг харуулж байгаа бөгөөд
хэрэв эхний удаа ажилласан бол цуглуулга татагдан авагдах байсан
юм.
&man.portsnap.8; нь fetch үйлдлийг хийж
дууссаны дараа локал систем дээр байгаа портын цуглуулга болон дараа дараагийн
засваруудыг шалгалтад дамжуулна. Шинэчлэгдсэн файлуудыг дараахийг
бичиж суулгаж болно:
&prompt.root; portsnap extract
/usr/ports/.cvsignore
/usr/ports/CHANGES
/usr/ports/COPYRIGHT
/usr/ports/GIDs
/usr/ports/KNOBS
/usr/ports/LEGAL
/usr/ports/MOVED
/usr/ports/Makefile
/usr/ports/Mk/bsd.apache.mk
/usr/ports/Mk/bsd.autotools.mk
/usr/ports/Mk/bsd.cmake.mk
...
Процесс одоо дууссан бөгөөд портын цуглуулыг ашиглан
програмуудыг суулгаж эсвэл шинэчилж болно.
Хоёр процессийг дараалан цуг ажиллуулахын тулд дараах тушаалыг
ажиллуулна:
&prompt.root; portsnap fetch update
Баримтын цуглуулгыг шинэчлэх нь
Updating and Upgrading
Documentation
Updating and Upgrading
Үндсэн систем болон портын цуглуулгаас гадна
баримтууд нь &os; үйлдлийн системийн салшгүй хэсэг юм. Хэдийгээр
&os;-ийн хамгийн сүүлийн үеийн баримтын цуглуулга &os; вэб сайт дээр
үргэлж байдаг боловч зарим хэрэглэгчид удаан сүлжээний холболттой эсвэл
бүр тогтмол сүлжээний холболтгүй байж болох юм. Азаар &os;-ийн хамгийн
сүүлийн үеийн баримтын цуглуулгын локал хуулбарыг арчлан хувилбар бүртэй цуг
ирдэг баримтыг шинэчлэх хэд хэдэн арга байдаг.
Баримтыг шинэчлэхийн тулд CVSup-г ашиглах нь
Үндсэн системийг шинэчлэхтэй төстэй аргыг ашиглан
CVSup хэрэглэн эх болон &os;-ийн
баримтуудын суулгагдсан хуулбарыг шинэчилж болно
(). Энэ хэсэг дараах зүйлсийг
тайлбарладаг:
&os;-ийн баримтуудыг эхээс нь бүтээхэд шаардлагатай
хэрэгслүүд, баримтын хэрэгслүүдийг хэрхэн суулгах
талаар.
CVSup ашиглан
/usr/doc дахь
баримтын эхийн хуулбарыг хэрхэн татаж авах талаар.
&os;-ийн баримтыг эхээс нь хэрхэн бүтээж
/usr/share/doc дотор
суулгах талаар.
Баримтыг бүтээх системийн дэмждэг бүтээлтийн
зарим тохируулгууд, өөрөөр хэлбэл баримтын зарим нэг
хэл дээрх орчуулгыг зөвхөн бүтээдэг тохируулгууд эсвэл
тусгай гаралтын хэлбэржүүлэлтийг сонгодог тохируулгууд.
CVSup болон баримтын хэрэгслүүдийг суулгах нь
&os;-ийн баримтыг эхээс нь бүтээхэд нэлээн олон
тооны хэрэгслүүдийг шаарддаг. Эдгээр хэрэгслүүд нь
&os;-ийн үндсэн системийн хэсэг биш байдаг. Учир нь эдгээр нь
ихээхэн хэмжээний дискийн зай шаарддаг бөгөөд &os;-ийн бүх
хэрэглэгчдэд хэрэгтэй байдаггүй. Тэдгээр нь &os;-д зориулж
шинэ баримтууд идэвхтэй бичдэг эсвэл өөрсдийн баримтыг
эхээс нь байнга шинэчилдэг хэрэглэгчдэд зөвхөн хэрэгтэй
байдаг.
Бүх шаардлагатай хэрэгслүүд портын цуглуулгад байдаг.
Эдгээр хэрэгслүүдийн эхний суулгалт болон хожмын шинэчлэлтүүдийг
хялбаршуулах textproc/docproj порт нь &os;-ийг
баримтжуулах төслөөс хөгжүүлсэн мастер порт юм.
&postscript; эсвэл PDF баримт шаардлагагүй үед харин
textproc/docproj-nojadetex портыг
суулгаж болох юм. Баримтын хэрэгслийн энэ хувилбар нь
teTeX тайпсет хөдөлгүүрээс бусад
бүгдийг багтаасан байдаг. teTeX нь
маш олон хэрэгслүүдийн цуглуулга учир PDF гаралт үнэхээр
шаардлагагүй тохиолдолд суулгахгүй байх нь зохимжтой
байдаг.
CVSup-г суулгаж ашиглах талаарх
дэлгэрэнгүй мэдээллийг CVSup-г ашиглах хэсгээс үзнэ үү.
Баримтын эхийг шинэчлэх нь
CVSup нь
/usr/share/examples/cvsup/doc-supfile файлыг
тохиргооны загвар болгон ашиглаж баримтын эхийн цэвэр хуулбарыг татан
авч чаддаг. Анхдагч шинэчлэлтийн хост нь doc-supfile
файлд зааснаар байгаа боловч &man.cvsup.1; нь тушаалын мөрөөс хостын
нэрийг авдаг бөгөөд баримтын эхийг аль нэг CVSup
серверээс дараах тушаалыг бичин татан авч болно:
&prompt.root; cvsup -h cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile
cvsup.FreeBSD.org-г хамгийн ойр
CVSup серверээр солих хэрэгтэй. Толин
тусгал сайтуудын бүрэн жагсаалтыг -с үзнэ үү.
Баримтын эхийн эхний таталт хугацаа шаардаж болох юм. Дуустал нь
хүлээх хэрэгтэй.
Баримтын эхийн дараа дараагийн шинэчлэлтүүдийг дээрх тушаалыг
ашиглан татан авч болно. CVSup хэрэгсэл нь
хамгийн сүүлийн удаа ажилласнаашаа хойших шинэчлэлтүүдийг зөвхөн татан
авч хуулдаг учир эхний удаа бүрэн ажилласнаас хойш дараа дараагийн
удаа CVSup-г ажиллуулахад илүү хурдан
байдаг.
Эхийг татан авсныхаа дараа баримтыг шинэчлэх өөр нэг арга нь
/usr/doc сангийн
Makefile-аар дэмжигдсэн байдаг.
/etc/make.conf файлд
SUP_UPDATE, SUPHOST болон
DOCSUPFILE-ийг тохируулснаар доорхийг
ажиллуулах боломжтой болно:
&prompt.root; cd /usr/doc
&prompt.root; make update
/etc/make.conf-д зориулсан
&man.make.1;-ийн эдгээр тохируулгууд ийм байдаг:
SUP_UPDATE= yes
SUPHOST?= cvsup.freebsd.org
DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile
SUPHOST
болон DOCSUPFILE утгад ?=-г
өгснөөр бүтээх тушаалын мөрөөс өөрчлөх боломжийг бүрдүүлдэг.
Энэ нь make.conf-д тохируулгууд нэмэх
зөвлөсөн арга юм. Ингэснээр өөр өөр тохируулгын утгыг тест хийх
болгонд файлыг засварлах шаардлагагүй болгодог.
Баримтын эхийн тааруулж болох тохируулгууд
&os;-ийн баримтжуулалтыг бүтээж шинэчлэх систем нь баримтын
зөвхөн тодорхой хэсгийг шинэчлэх эсвэл тусгай орчуулгыг бүтээх
процессийг амарчлах хэдэн тохируулгыг дэмждэг. Эдгээр тохируулгуудыг
/etc/make.conf файлд бүхэл системийн
хувьд зааж өгөх юм уу эсвэл &man.make.1; хэрэгсэлд тушаалын
мөрийн тохиргоо маягаар зааж өгч болно.
Дараах тохируулгууд нь эдгээрийн зарим нь юм:
DOC_LANG
Бүтээж суулгах хэл ба кодчилолын жагсаалт, жишээ нь
Англи баримтад зөвхөн зориулсан en_US.ISO8859-1
байна.
FORMATS
Бүтээх ганц хэлбэржүүлэлт эсвэл гаралтын хэлбэржүүлэлтийн
жагсаалт. Одоогоор html,
html-split, txt,
ps, pdf,
болон rtf дэмжигдсэн байгаа.
SUPHOST
Шинэчлэхэд ашиглах CVSup
серверийн хостын нэр.
DOCDIR
Баримтыг суулгах газар. Анхдагчаар
/usr/share/doc байдаг.
&os; дээрх системийн тохируулга болон дэмжигдсэн бүтээлтийн
хувьсагчуудын талаар дэлгэрэнгүйг &man.make.conf.5;-с үзнэ үү.
&os;-ийн баримтжуулалт бүтээх системийн дэмждэг бүтээлтийн
хувьсагчуудын талаар дэлгэрэнгүйг
Шинэ хувь нэмэр оруулагчдад
зориулсан &os; баримтжуулах төслийн гарын авлагаас үзнэ үү.
&os;-ийн баримтуудыг эхээс суулгах нь
Баримтын эхийн хамгийн сүүлийн хормын хувилбарыг
/usr/doc санд татаж авснаар
суулгагдсан баримтын шинэчлэлтийг хийхэд бүх юм бэлэн болно.
DOC_LANG makefile-ийн тохиргоонд заагдсан
бүх хэлний бүрэн шинэчлэлтийг дараахийг бичин хийж болно:
&prompt.root; cd /usr/doc
&prompt.root; make install clean
Хэрэв make.conf нь зөв
DOCSUPFILE, SUPHOST
болон SUP_UPDATE тохиргоонуудтайгаар
тохируулагдсан бол суулгах алхмыг баримтын шинэчлэлттэй цуг
хамтатган ингэж хийж өгч болно:
&prompt.root; cd /usr/doc
&prompt.root; make update install clean
Хэрэв зөвхөн тусгай хэлний шинэчлэлт хэрэгтэй бол
/usr/doc-ийн тухайн хэлний
тусгай дэд санд &man.make.1;-ийг ажиллуулж болно, жишээ нь:
&prompt.root; cd /usr/doc/en_US.ISO8859-1
&prompt.root; make update install clean
Суулгах гаралтын хэлбэржүүлэлтийг FORMATS
бүтээлтийн хувьсагчийг зааж өгөн хийж өгч болно,
жишээ нь:
&prompt.root; cd /usr/doc
&prompt.root; make FORMATS='html html-split' install clean
Марк
Фонвил
Хувь нэмэр болгосон
Баримтжуулах портуудыг ашиглах нь
Updating and Upgrading
documentation package
Updating and Upgrading
Өмнөх хэсэгт &os;-ийн баримтжуулалтыг эхээс нь
шинэчлэх аргыг бид танилцуулсан. &os;-ийн бүх системүүдийн
хувьд эх дээр тулгуурласан шинэчлэлтүүд нь боломжтой эсвэл
практикийн биш байж болох юм. Баримтжуулалтын эхүүдийг
бүтээх нь нэлээн их хэмжээний хэрэгслийн цуглуулга буюу
баримтжуулалт бүтээх хэрэгслийн олонлог,
CVS-ийг тодорхой хэмжээгээр мэдэх,
репозиториос эхийг татаж авах болон татаж авсан эхээ
бүтээх хэд хэдэн шат дарааллуудыг шаарддаг. Энэ хэсэгт
бид &os;-ийн баримтжуулалтын суулгагдсан хуулбаруудыг
шинэчлэх өөр аргыг тайлбарлах болно. Энэ нь портын
цуглуулгыг ашиглах бөгөөд дараах боломжийг бүрдүүлнэ:
Бүгдийг бүтээлгүйгээр баримтжуулалтын урьдчилан
бүтээсэн хормын хувилбарыг татан авч суулгах
(ингэснээр баримтжуулалт бүтээх хэрэгслийн олонлогийг
бүхэлд нь суулгах шаардлагагүй болно).
Баримтжуулалтын эхийг татаж аван портын тогтолцоог
ашиглан бүтээх (татаж аван бүтээх алхмуудыг арай хялбар
болгодог).
&os;-ийн баримтжуулалтыг шинэчлэх эдгээр хоёр арга нь
&a.doceng;-ийн сар бүр шинэчилдэг баримтжуулалтын
портуудын цуглуулгаар дэмжигддэг. Эдгээр нь
&os;-ийн портын цуглуулгад docs
виртуал төрөлд байдаг.
Баримтжуулалтын портуудыг бүтээж суулгах нь
Баримтжуулалтын портууд нь баримтжуулалтын бүтээлтийг
хялбар болгохын тулд порт бүтээх тогтолцоог хэрэглэдэг.
&man.make.1;-ийг тохирох орчны тохиргоонууд болон тушаалын
мөрийн тохиргоонуудын хамтаар ажиллуулж баримтжуулалтын
эхийг татаж авах процессыг тэд автоматжуулдаг бөгөөд
баримтжуулалтын суулгалт болон устгалтыг &os;-ийн
бусад порт эсвэл багцын суулгалтын нэгэн адил хялбар
болгодог.
Мөн баримтжуулалтын портуудыг бүтээсний дараа тэд
хамааралтай баримтжуулалтыг бүтээх хэрэгслийн олонлогийн
портуудыг бүртгэдэг бөгөөд тэдгээрийг автоматаар бас
суулгадаг.
Баримтжуулалтын портуудын зохион байгуулалт нь
дараах хэлбэрийн байна:
Баримтжуулалтын портын файлууд байдаг
misc/freebsd-doc-en
мастер порт
байдаг. Энэ нь бүх
баримтжуулалтын портуудын үндэс болдог. Анхдагчаар
энэ нь Англи баримтжуулалтыг зөвхөн бүтээдэг.
Нэг портод бүгд багтсан
misc/freebsd-doc-all байдаг
бөгөөд энэ нь байгаа бүх хэл дээр бүх баримтжуулалтыг
бүтээж суулгадаг.
Эцэст нь орчуулга бүрийн хувьд зарц порт
байдаг, жишээ нь Унгар хэл дээрх баримтуудад зориулсан
misc/freebsd-doc-hu-г дурдаж
болно. Эдгээр нь бүгд мастер портоос хамаарах бөгөөд
тухайн хэлний орчуулсан баримтжуулалтыг суулгадаг.
Баримтжуулалтын портыг эхээс суулгахын тулд дараах
тушаалуудыг ажиллуулна (root эрхээр):
&prompt.root; cd /usr/ports/misc/freebsd-doc-en
&prompt.root; make install clean
Энэ нь Англи баримтжуулалтыг хуваагдсан HTML
хэлбэрээр ( дээр ашигладагийн адилаар)
бүтээж /usr/local/share/doc/freebsd санд
суулгадаг.
Нийтлэг Knob болон тохируулгууд
Баримтжуулалтын портуудын анхдагч байдлыг өөрчлөх
олон тохиргоо байдаг. Доор цөөхөн хэдэн жагсаалтыг
дурдав:
WITH_HTML
HTML хэлбэрээр бүтээхийг зөвшөөрдөг: баримт
бүрийн хувьд нэг HTML файл. Хэлбэршүүлсэн
баримтжуулалт нь тохирох article.html юм уу
эсвэл book.html гэсэн файлуудад зургийн
хамтаар хадгалагддаг.
WITH_PDF
&adobe; &acrobat.reader;,
Ghostscript эсвэл бусад PDF уншигчдыг
ашиглах &adobe;-ийн хөрвөх баримтын хэлбэрээр бүтээхийг
зөвшөөрдөг. Хэлбэршүүлсэн
баримтжуулалт нь тохирох article.pdf юм уу
эсвэл book.pdf гэсэн файлуудад
хадгалагддаг.
DOCBASE
Баримтжуулалтын суулгах байрлал. Энэ нь
анхдагчаар /usr/local/share/doc/freebsd
байдаг.
Анхдагч суулгах сан нь CVSup
аргын ашигладаг сангаас ялгаатайг санаарай.
Энэ нь яагаад гэвэл бид порт суулгаж байгаа
бөгөөд портууд нь ихэвчлэн /usr/local санд
суудаг. Үүнийг PREFIX хувьсагчийг
нэмэн өөрчилж болдог.
Энд Унгар баримтжуулалтыг Хөрвөх Баримтын Хэлбэрээр (PDF)
суулгахын тулд дээр дурдсан хувьсагчуудыг хэрхэн
ашиглахыг харуулсан жишээг үзүүлэв:
&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean
Баримтжуулалтын багцуудыг ашиглах нь
Өмнөх хэсэгт тайлбарласнаар баримтжуулалтын портуудыг
эхээс бүтээх нь баримтжуулалтыг бүтээх хэрэгслийн
олонлогийг суулгах болон портуудыг бүтээхэд тодорхой
хэмжээний дискийн зай шаарддаг. Баримтжуулалтын
хэрэгслүүдийг суулгахад эх үүсвэр хүрэлцэхгүй үед эсвэл
эхээс бүтээх нь ихээхэн хэмжээний дискийн зай эзлэх
бол баримтжуулалтын портуудын урьдчилан бүтээсэн
хормын хувилбаруудыг суулгах боломж бас байдаг.
&a.doceng; нь &os;-ийн баримтжуулалтын багцуудын
сар бүрийн хормын хувилбаруудыг бэлддэг. Эдгээр
хоёртын багцуудыг &man.pkg.add.1;,
&man.pkg.delete.1; гэх зэрэг багцын хэрэгслүүдийн
хамтаар ашиглаж болдог.
Хоёртын багцуудыг ашиглаж байгаа үед &os;-ийн
баримтжуулалт нь тухайн хэлний хувьд байгаа
бүх хэлбэрээр суудаг.
Жишээ нь дараах тушаал Унгар баримтжуулалтын
хамгийн сүүлийн урьдчилан бүтээсэн багцыг суулгах
болно:
&prompt.root; pkg_add -r hu-freebsd-doc
Багцууд нь харгалзах портын нэрнээсээ ялгаатай дараах
нэрийн хэлбэртэй байдаг:
lang-freebsd-doc.
Энд lang нь хэлний кодын богино
хэлбэр юм, жишээ нь hu нь Унгар, эсвэл
zh_cn нь хялбаршуулсан Хятад хэл юм.
Баримтжуулалтын портуудыг шинэчлэх нь
Өмнө нь суулгасан баримтжуулалтын портыг шинэчлэхийн
тулд портууд шинэчлэх аль ч хэрэгсэл байхад хангалттай.
Жишээ нь дараах тушаал суулгасан Унгар баримтжуулалтыг
ports-mgmt/portupgrade хэрэгслийн
тусламжтайгаар зөвхөн багцуудыг ашиглан шинэчилнэ:
&prompt.root; portupgrade -PP hu-freebsd-doc
Пав
Лукистник
Мэдээллээр хангасан
Docsnap-ийг ашиглах нь
Updating and Upgrading
Docsnap
Updating and Upgrading
Docsnap нь &os;-ийн баримтуудыг
хялбар, хурдан аргаар шинэчлэхэд зориулагдсан &man.rsync.1;
репозитор юм. Docsnap сервер
нь баримтын эхүүдийг дагаж тэдгээрийг цаг бүр HTML хэлбэрт бүтээж
байдаг. textproc/docproj нь
Docsnap-д хэрэггүй байдаг. Учир нь
зөвхөн бүтээсэн баримтад зориулсан нөхөөсүүд байдаг болохоор тэр юм.
Энэ техникийг ашиглахад шаардлагатай цорын ганц зүйл нь
net/rsync порт юм уу эсвэл багц
байдаг. Үүнийг нэмэхийн тулд дараах тушаалыг ашиглана:
&prompt.root; pkg_add -r rsync
Docsnap нь
/usr/share/doc-д суулгагдсан
баримтыг шинэчлэхэд зориулж анхлан хөгжүүлэгдсэн боловч дараах жишээнүүдийг
бусад сангуудын хувьд тохируулан ашиглаж болно. Хэрэглэгчийн сангуудын
хувьд энэ нь root эрхийг шаарддаггүй.
Баримтын цуглуулгыг шинэчлэхийн тулд дараах тушаалыг
ажиллуулна:
&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap /usr/share/doc
Одоогоор зөвхөн нэг Docsnap
сервер байгаа, docsnap.sk.FreeBSD.org дээр
харуулагдсан байгаа.
Энд тохируулыг ашиглах хэрэггүй,
учир нь make installworld тушаалын үеэр
/usr/share/doc
санд суулгагдсан зарим зүйлсийг санамсаргүйгээр устгаж болох юм.
Цэвэрлэхийн тулд энэ тушаалыг ашиглана:
&prompt.root; rsync -rltvz --delete docsnap.sk.FreeBSD.org::docsnap/??_??\.\* /usr/share/doc
Хэрэв баримтын хэсгийг шинэчлэх шаардлагатай бол жишээ нь
Англи баримтыг зөвхөн шинэчлэх бол дараах тушаалыг ашиглах
шаардлагатай:
&prompt.root; rsync -rltvz docsnap.sk.FreeBSD.org::docsnap/en_US.ISO8859-1 /usr/share/doc
]]>
Хөгжүүлэлтийн салбарыг дагах нь
-CURRENT
-STABLE
FreeBSD-ийн хоёр хөгжүүлэлтийн салбар байдаг: &os.current; болон
&os.stable;. Энэ хэсэгт эдгээр тус бүрийг тайлбарлаж өөрийн системийг тус
тусын модны хувьд хамгийн шинэ хэлбэрт байнга байлгах талаар тайлбарлах болно.
&os.current; эхлээд хэлэлцэгдэх бөгөөд дараа нь &os.stable;-ийн тухай
яригдах болно.
&os;-ийн одоо үеийн хэлбэрт байх нь
Та үүнийг уншихдаа &os.current; нь &os;-ийн хөгжүүлэлтийн
bleeding edge салбар буюу амжилт ололтын хамгийн тэргүүний
салбар
гэдгийг санаарай. &os.current; хэрэглэгчдийг техникийн өндөр
чадавхитай бөгөөд системийн хүнд хэцүү асуудлуудыг өөрсдөө шийдвэрлэх
чадвартай байна гэж тооцдог. Хэрэв та &os;-д анхлан суралцагч бол
үүнийг суулгахаасаа өмнө дахин сайн бодоорой.
&os.current; гэж юу вэ?
хормын агшны хувилбар
&os.current; нь &os;-ийн хамгийн сүүлийн үеийн ажлын эх юм.
Энэ нь хийгдэж байгаа ажлууд, туршилтын өөрчлөлтүүд болон програм хангамжийн
дараагийн албан ёсны хувилбарт байхгүй ч байж болох эсвэл байж ч болох
шилжилтийн аргуудыг багтаадаг. &os;-ийн олон хөгжүүлэгчид &os.current;-ийн
эх кодыг өдөр болгон эмхэтгэн хөрвүүлж байдаг боловч эхийг бүтээх боломжгүй үе бас
байдаг. Эдгээр асуудлууд нь боломжийн хэрээр хурдан шийдэгддэг боловч
&os.current; нь сүйрэл авчрах эсвэл тун их хүссэн ажиллагааг авчрах эсэх нь
та яг ямар агшинд эх кодыг татаж авснаас хамаарах юм!
&os.current; хэнд хэрэгтэй вэ?
&os.current; нь үндсэн 3 сонирхлын бүлэгт зориулагдан
хийгдсэн:
Эх модны зарим хэсэг дээр идэвхтэйгээр ажиллаж байгаа &os;-ийн хүрээний
гишүүд болон current буюу одоо үеийн хэлбэрт
байлгах нь
туйлын шаардлага болсон хүмүүст.
&os.current;-г аль болох ухаалаг байлгахыг хичээж асуудлуудыг шийдвэрлэхэд
цагаа зарах хүсэлтэй байдаг идэвхтэй тест хийгч &os;-ийн хүрээний гишүүд.
Эдгээр хүмүүс нь өөрчлөлтүүд болон &os;-ийн ерөнхий чиглэлд цаг үеийн
саналуудыг тусгахыг хүсэж тэдгээрийг шийдэх засваруудыг илгээдэг бас хүмүүс
юм..
Юу болж байгааг зөвхөн харж мэдэж байхыг хүссэн эсвэл одоо үеийн эхийг
лавлагааны зорилгоор ашиглахыг зөвхөн хүссэн хүмүүс (өөрөөр хэлбэл
ажиллуулах биш унших зорилгоор).
Эдгээр хүмүүс нь хааяа бас санал гаргаж кодонд хувь нэмэр оруулдаг.
&os.current; нь юу Биш вэ?
Та зарим нэг дажгүй шинэ боломж байгааг сонссон учраас бусдаас
түрүүлж урьдчилсан хувилбарын тэдгээр битүүдийг авах таны нэн тэргүүний
арга зам. Шинэ боломжийг авч эхэнд байна гэдэг нь та шинэ алдаанууд,
хорхойнуудыг бас авч эхэнд байна гэсэн үг юм.
Алдааны засваруудыг хурдан авах арга зам. &os.current;-ийн
өгөгдсөн дурын хувилбар нь илэрсэн алдаануудыг засахын хажуугаар бас
магадгүй шинэ алдаанууд бас гаргаж байдаг.
Аль ч үед албан ёсоор дэмжигдсэн
. Бид өөрсдийн
чадлын хирээр хууль ёсны
3 &os.current; бүлгийн
аль нэгэнд хүмүүст бодитоор туслахыг хичээдэг, гэхдээ бидэнд ердөө л
техникийн дэмжлэг үзүүлэх цаг байдаггүй.
Энэ нь бид хүмүүст туслах дургүй өөдгүй муухай хүмүүс учраас гэсэн үг
биш юм (хэрэв бид байгаагүй бол бид &os;-г хийж байхгүй байх байсан).
Бид ердөө л өдрийн хэдэн зуун захидлуудад хариулахын
хажуугаар FreeBSD дээр ажиллаж чаддаггүй!
&os;-г сайжруулах болон туршилтын кодон дээр тавигдсан маш олон
асуултуудад хариулах хоёр сонголтын эхнийхийг хөгжүүлэгчид сонгосон
юм.
&os.current; ашиглах нь
-CURRENT
ашиглах нь
&a.current.name; болон &a.svn-src-head.name; жагсаалтуудад элсэн орно уу.
Энэ нь зөвхөн сайн санаанаас гадна бас чухал
юм. Хэрэв та &a.current.name; жагсаалтад
ороогүй бол системийн одоогийн төлвийн талаар хүмүүсийн өгч байгаа санал
хүсэлтүүдийг харахгүй учраас бусдын аль хэдийн олоод шийдсэн маш их асуудлууд
дээр магадгүй та бүдрэн төөрөлдөж дуусах биз ээ. Бүр илүү чухал зүйл нь юу вэ гэвэл
таны системийн эрүүл мэндэд эгзэгтэй байж болох чухал мэдээнүүдээс та хоцрох
болно.
&a.svn-src-head.name; жагсаалт нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно. Хэрэв та
бүх л эх модон дахь өөрчлөлтийг дагах сонирхолтой байгаа бол
&a.svn-src-all.name; жагсаалтад бүртгүүлэхийг бид зөвлөж байна.
&os;-ийн толин тусгалаас
эхийг авна. Та үүнийг хоёр аргаар хийж болно:
cvsup
cron
-CURRENT
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэрт автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
Жишээ standard-supfile нь
&os.current;-ийн биш &os;-ийн аюулгүй байдлын тусгай
салбарыг дагахад хэрэглэгдэнэ. Танд энэ файлыг засварлаж дараах
мөрийг өөрчлөх хэрэгтэй болно:
*default release=cvs tag=RELENG_X_Y
Дээрх мөрийг дараах мөрөөр сольно:
*default release=cvs tag=.
Хэрэгцээтэй хаяг/шошгонуудын дэлгэрэнгүй тайлбарыг
гарын авлагын CVS хаяг/шошгонууд хэсгээс үзнэ үү.
-CURRENT
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв та маш муу холболттой (өндөр үнэтэй холболтууд эсвэл
зөвхөн цахим захидлын хандалт) бол CTM
нь сонголт болох юм. Гэхдээ энэ нь бөөн зовлон бөгөөд та эвдэрсэн
файлуудтай үлдэж болох юм. Энэ нь үүнийг ховор ашиглахад хүргэдэг бөгөөд
ингэснээр ажиллахгүй байх боломжийг нэлээн удаан хугацаагаар ихэсгэдэг.
Бид 9600 bps модем болон түүнээс хурдан холболттой хүмүүст
CVSup-г
ашиглахыг зөвлөдөг.
Хэрэв та эхийг зөвхөн харахаар биш ажиллуулахаар татаж авч байгаа бол
зөвхөн сонгосон хэсгүүдийг биш &os.current;-ийн бүх
эхийг татаж аваарай. Үүний шалтгаан нь эхийн төрөл бүрийн хэсгүүд нь бусад хаа нэгтээ байгаа
шинэчлэлтүүдээс хамаардаг бөгөөд зөвхөн хэсэг бүлэг эхийг хөрвүүлэхийг оролдох нь
таныг бараг л баталгаатайгаар асуудалтай учруулах болно.
-CURRENT
хөрвүүлэх
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Идэвхтэй бай! Хэрэв та &os.current; ажиллуулж байгаа бол
түүний талаар таныг юу хэлэхийг ялангуяа хэрэв танд өргөжүүлэлт эсвэл
алдааны засваруудын талаар санал хүсэлт байвал түүнийг бид мэдэхийг
хүсдэг юм. Хавсаргасан кодтой санал хүсэлтүүдийг хамгийн их урам зоригтойгоор
хүлээн авдаг билээ!
&os;-ийн тогтвортой хэлбэрт байх нь
&os.stable; гэж юу вэ?
-STABLE
&os.stable; нь үндсэн хувилбарууд гардаг бидний хөгжүүлэлтийн салбар юм.
Өөрчлөлтүүд нь эхлээд тест хийгдэх зорилгоор &os.current; уруу ордог гэсэн
ерөнхий төсөөлөл/таамаглалтайгаар янз бүрийн зөвшөөрлөөр энэ салбар уруу
ордог. Энэ нь одоо болтол хөгжүүлэлтийн салбар
бөгөөд гэхдээ энэ нь ямар ч үед &os.stable;-д зориулагдсан эх нь ямар ч зорилгод
тохирч эсвэл тохирохгүй байж болно гэсэн үг юм. Энэ нь эцсийн хэрэглэгчид
зориулагдсан эх үүсвэр бус ердөө л өөр нэг инженерчлэлийн хөгжүүлэлтийн арга зам
юм.
&os.stable; хэнд хэрэгтэй вэ?
Хэрэв та FreeBSD-ийн хөгжүүлэлтийн процессод хувь нэмэр оруулах сонирхолтой,
энэ нь ялангуяа FreeBSD-ийн дараагийн гарах
хувилбартай холбоотой байдаг,
эсвэл юу болж байгааг мэдэж байх сонирхолтой байгаа бол та дараах
&os.stable;-г бодолцох хэрэгтэй.
Аюулгүй байдлын засварууд бас &os.stable; салбар уруу орж байдаг нь
үнэн боловч та үүнийг хийхийн тулд &os.stable;-г заавал дагах
хэрэггүй. FreeBSD-ийн аюулгүй байдлын
зөвлөмжүүд нь тухайн хувилбарт хамааралтай асуудлыг хэрхэн засах тухай
тайлбарладаг
Энэ нь бүр яг үнэн биш юм. Бид FreeBSD-ийн хуучин хувилбаруудыг
үргэлж дэмжиж чадахгүй, гэхдээ бид тэдгээрийг олон жилийн турш дэмжсээр
ирсэн. FreeBSD-ийн хуучин хувилбаруудын одоогийн аюулгүй байдлын бодлогын
бүрэн тайлбарыг http://www.FreeBSD.org/security/-с
үзнэ үү.
бөгөөд зөвхөн аюулгүй байдлын үүднээс бүхэл бүтэн хөгжүүлэлтийн салбарыг
дагаж байна гэдэг бас зөндөө олон хүсээгүй өөрчлөлтүүдийг авчрах
магадлалтай юм.
Бид &os.stable; салбар үргэлж хөрвүүлэгдэн эмхэтгэгдэж дандаа ажилладаг байлгахаар
чармайж байдаг боловч энэ нь баталгаатай биш юм. Нэмж хэлэхэд код нь &os.stable;-д
орохоосоо өмнө &os.current;-д хөгжүүлэгдэж байдаг боловч &os.current;-г
ашиглан ажиллуулдгаас илүү &os.stable;-г хүмүүс ажиллуулдаг болохоор
&os.current;-ийн хувьд илэрхий биш байсан алдаанууд болон булангийн тохиолдлууд
&os.stable;-д илрэх нь заримдаа зайлшгүй юм.
Эдгээр шалтгаануудаас болоод бид &os.stable;-г сохроор дагахыг танд
зөвлөдөггүй бөгөөд энэ нь
өөрийн хөгжүүлэлтийн орчиндоо кодыг эхлээд сайтар тест хийлгүйгээр
үйлдвэрлэлд (production) ашиглаж байгаа серверүүдээ &os.stable;
уруу шинэчлэхгүй байхад танд ялангуяа чухал ач холбогдолтой юм.
Хэрэв танд үүнийг хийх эх үүсвэрүүд байхгүй бол бид FreeBSD-ийн хамгийн сүүлийн үеийн
хувилбарыг ажиллуулж хоёртын шинэчлэлт хийх аргыг хувилбараас хувилбар уруу шилжихдээ
ашиглахыг танд зөвлөж байна.
&os.stable; ашиглах нь
-STABLE
ашиглах нь
&a.stable.name; жагсаалтад элсэн орно уу. Энэ нь
&os.stable;-д илэрч болох бүтээлтийн хамаарлууд эсвэл
тусгайлсан анхаарал шаардлагатай өөр бусад асуудлуудын талаар
танд мэдээлж байх болно. Хөгжүүлэгчид нь зарим нэг маргаантай засвар
эсвэл шинэчлэлийн талаар бодож байгаа талаараа бас энэ захидлын жагсаалтад
мэдээлдэг бөгөөд ийнхүү санал болгож байгаа өөрчлөлтийн талаар хэрэглэгчдэд
ямар нэг асуудал байвал тэдэнд эргээд хариу өгөх боломж олгодог юм.
Өөрийн дагаж байгаа салбарын тохирох SVN
жагсаалтад элсэн орох хэрэгтэй. Жишээ нь хэрэв та 7-STABLE салбарыг дагаж
байгаа бол &a.svn-src-stable-7.name; жагсаалтад элсэн ороорой.
Энэ нь кодонд оруулсан өөрчлөлт бүрийн
бүртгэл оруулгыг болзошгүй сөрөг нөлөөнүүдийн талаар тохирсон мэдээллийн
хамтаар танд харах боломжийг олгодог.
Эдгээр жагсаалтууд эсвэл байгаа бусдын аль нэгэнд элсэхийн тулд
&a.mailman.lists.link; хаяг уруу орж элсэхийг хүссэн жагсаалтаа
сонгоорой. Дарааллын үлдсэн зааврууд тэнд байгаа болно. Хэрэв та
бүх л эх модон дахь өөрчлөлтийг дагах сонирхолтой байгаа бол
&a.svn-src-all.name; жагсаалтад бүртгүүлэхийг бид зөвлөж байна.
Хэрэв та шинэ систем суулгаж &os.stable;-ээс бүтээсэн сар бүрийн хормын
агшны хувилбарыг түүн дээр ажиллуулахыг хүсэж байгаа бол дэлгэрэнгүй
мэдээллийн талаар
Хормын агшны хувилбарууд вэб хуудаснаас шалгана уу.
Үүнээс гадна хамгийн сүүлийн үеийн &os.stable; хувилбарыг
толин тусгалын хаягуудаас
татан авч суулгах боломжтой бөгөөд доор дурдсан заавруудыг дагаж
өөрийн системийг хамгийн сүүлийн үеийн &os.stable; эх код уруу
шинэчилж болох юм.
Хэрэв та &os;-ийн урдны хувилбар аль хэдийн ажиллуулж байгаа бөгөөд
эхээс шинэчлэхийг хүсэж байгаа бол &os;-ийн
толин тусгал хуудасаас хялбараар
хийж болно. Үүнийг хоёр аргаар хийж болно:
cvsup
cron
-STABLE
CVSup ашиглан сүүлийн хэлбэрт аваачих
/usr/share/examples/cvsup санд байх
standard-supfile гэж нэрлэгдсэн
supfile-тай цуг
cvsup програм ашигла.
Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг
танд авах боломжийг олгодог хамгийн сайшаасан арга юм.
Олон хүмүүс cvsup-г cron-с
ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэр автоматаар
аваачдаг. Та дээр дурдсан жишээ supfile-г
өөрчлөн cvsup-г өөрийн орчны хувьд
тохируулах хэрэгтэй.
-STABLE
CTM ашиглан сүүлийн хэлбэрт аваачих
CTM хэрэгслийг ашигла.
Хэрэв танд Интернэт уруу холбогдсон хурдан хямд холболт байхгүй бол
энэ аргыг та ашиглах хэрэгтэй.
Гол нь хэрэв та эхэд хурдан, шаардлагын улмаас хандах хэрэгтэй болоод
холболтуудын зурвасын өргөн ач холбогдолгүй бол cvsup эсвэл
ftp ашиглаарай. Бусад тохиолдолд
CTM-г ашигла.
-STABLE
хөрвүүлэх нь
&os.current;-ийг хөрвүүлэхээсээ өмнө /usr/src
дахь Makefile-г анхааралтай уншина уу.
Эхний удаа та хамгийн багаар бодоход шинэчлэлтийн процессийн хэсэг болох шинэ цөмийг суулгаж ертенцийг дахин бүтээх хэсгээр
дамжих хэрэгтэй. &a.current; болон /usr/src/UPDATING
файлыг унших нь биднийг дараагийн хувилбар уруу шилжихэд заримдаа шаардлагатай
болдог бусад эхлүүлэх процедуруудын хувьд хамгийн сүүлийн мэдээлэлтэй байлгах
боломжийг бидэнд олгодог.
Өөрийн эхийг хамгийн сүүлийн хэлбэрт аваачих нь
Интернетийн (эсвэл цахим захидал) холболт ашиглан &os; төслийн эхүүдийн аль ч
хэсгийн хувьд эсвэл таны юу сонирхож байгаагаас хамааран бүх хэсгүүдийг
хамгийн шинэ байлгаж байх төрөл бүрийн аргууд байдаг. Бидний санал болгодог үндсэн
үйлчилгээнүүд бол Anonymous буюу нэргүй
CVS, CVSup болон CTM юм.
Өөрийн эх модны зөвхөн зарим хэсгийг шинэчлэх боломжтой боловч
цорын ганц шинэчлэх арга бол модыг бүтнээр нь шинэчилж хэрэглэгчийн талбар
(өөрөөр хэлбэл /bin болон
/sbin гэх мэт дэх хэрэглэгчийн талбарт ажилладаг
бүх програмууд) болон цөмийн эхүүдийг дахин эмхэтгэх явдал юм. Өөрийн эх модны
зөвхөн нэг хэсэг зөвхөн цөм эсвэл зөвхөн хэрэглэгчийн талбарыг шинэчлэх нь
асуудлууд гарахад ихэвчлэн хүргэдэг. Эдгээр асуудлууд нь эмхэтгэлтийн үеийн
алдаануудаас авахуулаад цөмийн сүйрлүүд эсвэл өгөгдлийн эвдрэлийг хүртэл
хамардаг.
CVS
anonymous буюу нэргүй
Нэргүй CVS болон
CVSup нь эхийг шинэчлэхдээ
татах загварыг хэрэглэдэг.
CVSup-ийн хувьд хэрэглэгч (эсвэл
cron скрипт) cvsup
програмыг эхлүүлэн хаа нэгтээ байгаа cvsupd
серверт хандаж таны өөрийн файлуудыг хамгийн шинэ хэлбэрт авчирдаг.
Таны хүлээн авах шинэчлэлтүүд нь хамгийн сүүлийн минут хүртэлх үеийнх
байх бөгөөд та тэдгээрийг зөвхөн өөрийн хүссэн тэр үедээ авдаг. Та өөрийн
шинэчлэлтүүдийг таны сонирхож байгаа тусгайлсан файлууд эсвэл сангуудаар
хялбараар хязгаарлаж болно. Шинэчлэлтүүд нь таны юуг авахыг хүссэн болон танд
юу байгаагаас хамааран серверээр тухайн үед үүсгэгддэг.
Нэргүй CVS нь алсын CVS repository
буюу кодын архиваас өөрчлөлтүүдийг шууд татахыг түүнд зөвшөөрдөг
CVS-ийн ердөө л нэг өргөтгөл бөгөөд
үүгээрээ CVSup-с арай илүү хялбар юм.
CVSup нь үүнийг хамаагүй илүү
үр дүнтэйгээр хийж чаддаг боловч Нэргүй CVS-г
ашиглахад илүү хялбар байдаг.
CTM
Нөгөө талаас CTM нь танд байгаа эхийг
мастер архив дахь эхтэй лавлаж асуух зарчмаар харьцуулдаггүй бөгөөд өөрөөр хэлбэл
тэдгээрийг татаж авдаггүй. Ингэхийн оронд харин өмнө нь ажиллуулснаас хойшх
файл дахь өөрчлөлтүүдийг таньдаг скрипт өдөрт хэд хэдэн удаа мастер CTM машин
дээр ажиллаж илэрсэн өөрчлөлтүүдийг шахаж дарааллын-дугаар тавин цахим
захидлаар дамжуулахад зориулан кодчилдог (зөвхөн хэвлэгдэх боломжтой ASCII
хэлбэрээр). Эдгээр CTM дельтануудыг
авсаны дараа
тэдгээрийг автоматаар декод хийж шалган хэрэгчид байгаа эхийн хуулбарт
өөрчлөлтүүдийг хийх &man.ctm.rmail.1; хэрэгсэл уруу өгдөг. Энэ процесс
нь CVSup-с хамаагүй илүү үр дүнтэй
бөгөөд энэ нь татах биш харин
түлхэх загвар учраас бидний серверийн эх үүсвэрт
бага ачаалал учруулдаг юм.
Мэдээж үүнээс гадна харилцан сул болон давуу талуудтай асуудлууд байдаг.
Хэрэв та санамсаргүйгээр өөрийн архивын хэсгийг устгачих юм бол
CVSup үүнийг илрүүлж эвдэрсэн хэсгүүдийг
дахин бүтээж өгдөг. CTM ингэж
хийдэггүй бөгөөд хэрэв та өөрийн эх модны зарим хэсгийг устгасан
(бас нөөцлөн аваагүй) бол та дахин шинээр эхнээс нь (хамгийн сүүлийн үеийн
CVS суурь дельтагаас
) эхэлж
CTM-ийн тусламжтайгаар бүгдийг дахин бүтээх
буюу эсвэл Нэргүй CVS-ийн тусламжтайгаар
муу битүүдийг ердөө л устгаж дахин сүүлийн хэлбэрт аваачих хэрэгтэй болно.
Ертөнц
ийг дахин бүтээх нь
Ертөнц
ийг дахин бүтээх нь
Та өөрийн локал эх модоо &os;-ийн тухайн хувилбарын (&os.stable;,
&os.current;, гэх зэрэг) хамгийн сүүлийн үеийн хэлбэрт аваачсаныхаа
дараа та эх модоо ашиглан системийг дахин бүтээж болно.
Нөөц хий
Та дээрхийг хийхээсээ өмнө өөрийн системийг
нөөцлөн авах нь ямар чухал болохыг энэ нь хангалттай хэлж өгч чаддаггүй.
Ертөнцийг дахин бүтээх нь (хэрэв та эдгээр заавруудыг дагасан тохиолдолд)
хялбар боловч таныг алдаа гаргахад эсвэл бусдын эх модонд хийсэн алдаанууд
нь таны системийг ачаалагдахгүй болгох нөхцөлд зайлшгүй хүргэдэг.
Нөөц хийж авсан эсэхээ шалгаарай. Засварлах уян диск эсвэл ачаалагдах
CD-г гарын дор байлгаарай. Магадгүй та үүнийг хэзээ ч хэрэглэхгүй байж болох
юм, гэхдээ харамсахаасаа өмнө аюулгүй байж байх нь илүү дээр юм!
Тохирох захидлын жагсаалтад бүртгүүл
захидлын жагсаалт
&os.stable; болон &os.current; салбарууд нь угаасаа
хөгжүүлэлтэд байдаг. &os;-д хувь нэмэр
оруулж байгаа хүмүүс нь хүн л учраас алдаанууд заримдаа гардаг.
Заримдаа эдгээр алдаанууд нь нэг их хор хөнөөлгүй бөгөөд ердөө л таны
системийг шинэ оношлогооны анхааруулга хэвлэхэд хүргэдэг. Эсвэл
өөрчлөлт нь сүйрлийн байж болзошгүй байдаг бөгөөд таны системийг ачаалагдахгүй
болгож эсвэл файлын системүүдийг чинь устгаж (эсвэл бүр муу юм болж) болох юм.
Эдгээртэй адил асуудлууд гарвал асуудлын учир шалтгаан болон аль систем дээр
энэ асуудал хамааралтайг тайлбарласан heads up буюу бүхний сонорт
хандсан зарлал тохирох захидлын жагсаалтад илгээгддэг. Тэгээд
all clear буюу бүгд цэвэр
зарлал асуудал шийдэгдсэний дараа
тавигддаг.
Хэрэв та &os.stable; эсвэл &os.current;-ийг дагахыг оролдож &a.stable;
эсвэл &a.current;-г харгалзуулан уншихгүй байгаа бол энэ нь та өөртөө гай төвөг асууж
байна л гэсэн үг юм.
make world тушаалыг бүү ашигла
Ихэнх хуучин баримтууд үүнд зориулан make world
тушаалыг ашиглахыг зөвлөдөг. Энэ тушаалыг ажиллуулснаар зарим нэг чухал алхмуудыг
алгасах бөгөөд та юу хийж байгаагаа мэдэж байгаа тохиолдолд үүнийг зөвхөн ашиглах
хэрэгтэй. Бараг ихэнх тохиолдолд make world хийх нь
буруу зүйл бөгөөд энд тайлбарласан процедурыг түүний оронд ашиглах ёстой юм.
Шалгагдсан аргаар өөрийн системийг шинэчлэх нь
Өөрийн системийг шинэчлэхийн тулд өөрт чинь байгаа эхийн хувилбарт шаардлагатай байгаа
бүтээхээс урьдах алхмууд та /usr/src/UPDATING
файлд байгаа эсэхийг шалгах хэрэгтэй бөгөөд үүний дараа энд дурдсан процедурыг
ашиглана.
Эдгээр шинэчлэлтийн алхмууд нь таныг хуучин хөрвүүлэгч, хуучин цөм, хуучин
ертөнц болон хуучин тохиргооны файлууд бүхий &os;-ийн хуучин хувилбар ашиглаж
байгаа гэж тооцдог. Ертөнц
гэдгийг бид энд системийн гол хоёртын
файлууд, сангууд болон програмын файлууд гэж ойлгоно. Хөрвүүлэгч нь
ертөнц
ийн хэсэг бөгөөд цөөн асуудлуудтай байдаг.
Таныг шинэ системийн эхийг аль хэдийн авсан байгаа гэж бид бас
энд тооцдог. Тухайн систем дээр байгаа эхүүд бас хуучин байвал шинэ хувилбар
руу шилжүүлэх талаар бичсэн -с дэлгэрэнгүйг
үзнэ үү.
Системийг эхээс шинэчлэх нь эхлээд санагдсанаасаа илүү нарийн байдаг
бөгөөд тойрон гарах боломжгүй, хамаарлууд бүхий шинэ асуудлууд гардгаас болоод
&os;-ийн хөгжүүлэгчид зөвлөдөг чиг хандлагаа жил ирэх тутам нэлээнээр
өөрчлөх шаардлагатай болсон. Энэ хэсгийн үлдсэн хэсэг нь одоогоор зөвлөж
байгаа шинэчлэх дарааллын талаар тайлбарлах болно.
Амжилттай болох шинэчлэх дараалал бүр дараах асуудлуудыг
шийдэх ёстой:
Хуучин хөрвүүлэгч шинэ цөмийг бүтээж чадахгүй байж болох
юм. (Хуучин хөрвүүлэгчид заримдаа алдаатай байдаг.) Тиймээс шинэ
цөмийг шинэ хөрвүүлэгчээр бүтээх ёстой. Ялангуяа шинэ цөм бүтээхээсээ
өмнө шинэ хөрвүүлэгчийг бүтээх хэрэгтэй. Энэ нь шинэ хөрвүүлэгчийг
заавал шинэ цөмөөс өмнө суулгасан байх ёстой
гэсэн үг биш юм.
Шинэ ертөнц шинэ цөмийн боломжууд дээр тулгуурлаж байж
болох юм. Тиймээс шинэ цөмийг шинэ ертөнцийг суулгахаасаа өмнө
суулгасан байх шаардлагатай.
Эдгээр хоёр асуудал нь бидний дараагийн хэсгүүдэд тайлбарлах
гол buildworld,
buildkernel,
installkernel,
installworld дарааллын үндэс болдог.
Энэ нь одоогоор зөвлөдөг шинэчлэлтийн просессийг та яагаад заавал
сонгох ёстойг харуулсан бүх шалтгаануудын бүрэн дүүрэн жагсаалт
биш юм. Зарим нэг тийм ч мэдээжийн биш зүйлсийг доор жагсаав:
Хуучин ертөнц шинэ цөм дээр зөв ажиллахгүй байж болох учир
та шинэ цөм суулгасныхаа дараа шинэ ертөнцийг даруйхан суулгах
ёстой.
Шинэ ертөнц суулгахаасаа өмнө зарим нэг тохиргооны өөрчлөлтүүдийг
хийх ёстой боловч зарим нь хуучин ертөнцийг эвдэж магадгүй юм. Тийм
болохоор хоёр өөр тохиргооны шинэчлэлтийн алхам ерөнхийдөө шаардлагатай
байдаг.
Ихэнх хэсгийн хувьд шинэчлэх процесс нь зөвхөн файлуудыг солих юм уу
эсвэл нэмдэг бөгөөд байгаа хуучин файлуудыг устгадаггүй. Цөөн тохиолдолд
энэ нь асуудал үүсгэж болох юм. Үүний дүнд шинэчлэх арга зам нь зарим нэг
алхам дээр гараар устгах тодорхой файлуудыг заримдаа зааж өгдөг. Үүнийг
ирээдүйд автоматчилах юм уу эсвэл үгүй ч байж болох юм.
Эдгээр зүйлс нь дараах зөвлөсөн дараалалд хүргэдэг. Тухайн шинэчлэлтүүдэд
зориулсан дэлгэрэнгүй дараалал нь нэмэлт алхмуудыг шаардаж болохыг санаарай.
Гэхдээ эдгээр гол процессууд тодорхой хугацаагаар өөрчлөгдөхгүй байх
ёстой юм:
make buildworld
Энэ нь эхлээд шинэ хөрвүүлэгч болон хамааралтай цөөн хэрэгслүүдийг
бүтээж дараа нь шинэ ертөнцийн бусдыг хөрвүүлэхийн тулд шинэ хөрвүүлэгчийг
ашигладаг. Үр дүн нь /usr/obj-д
хадгалагддаг.
make buildkernel
&man.config.8; болон &man.make.1;-ийг ашигладаг хуучин аргаасаа
ялгаатай нь энэ тушаал /usr/obj
санд байрлаж байгаа шинэ хөрвүүлэгчийг ашигладаг.
Энэ нь хөрвүүлэгч болон цөмийн хооронд тохиромжгүй байдал үүсэхээс таныг
хамгаалдаг.
make installkernel
Шинэ цөм болон цөмийн модулиудыг дискэд байрлуулж шинээр шинэчилсэн
цөмөөр ачаалах боломжийг бүрдүүлдэг.
Ганц хэрэглэгчийн горим руу ачаалан орно.
Ганц хэрэглэгчийн горим нь ажиллаж байгаа програм хангамжуудыг
шинэчлэхэд гарах асуудлуудыг багасгадаг. Энэ нь бас шинэ цөм дээр
хуучин ертөнцийг ажиллуулахад гарах асуудлыг багасгадаг.
mergemaster
Энэ нь шинэ ертөнцөд зориулж зарим нэг тохиргооны файлуудын эхний
шинэчлэлтүүдийг хийдэг. Жишээ нь энэ нь шинэ хэрэглэгчийн бүлгийг
системд нэмэх, эсвэл шинэ хэрэглэгчийн нэрсийг нууц үгийн мэдээллийн санд
нэмж болох юм. Сүүлийн шинэчлэлтээс хойш шинэ бүлгүүд эсвэл системийн
тусгай хэрэглэгчийн бүртгэлүүдийг нэмэх үед энэ нь ихэвчлэн шаардлагатай
байдаг. Ингэснээр installworld алхам нь
шинээр суулгагдсан системийн хэрэглэгч эсвэл системийн бүлгийн нэрсийг
ямар ч асуудалгүйгээр ашиглах боломжтой болох юм.
make installworld
/usr/obj сангаас
ертөнцийг хуулдаг. Та одоо диск дээрээ шинэ цөм болон шинэ ертөнцтэй
боллоо.
mergemaster
Нэгэнт диск дээрээ шинэ ертөнцтэй болсон болохоор та одоо
үлдсэн тохиргооны файлуудаа шинэчилж болно.
Дахин ачаална.
Шинэ цөм болон шинэ ертөнцийг шинэ тохиргооны файлуудтай
дуудахын тулд машиныг бүрэн дахин ачаалах хэрэгтэй.
Хэрэв та &os;-ийн нэг салбар дотор нэг хувилбараас илүү сүүлийн
хувилбар руу шинэчилж байгаа бол, өөрөөр хэлбэл 7.0-с 7.1 рүү шинэчилж
байгаа бол хөрвүүлэгч, цөм, хэрэглэгчийн талбар болон тохиргооны файлуудын
хооронд айхтар таарамжгүй байдлууд тантай бараг л тохиолдохгүй учир энэ
арга нь заавал шаардлагатай биш байж болох юм. Хуучин арга болох
make world болон шинэ
цөмийг бүтээж суулгах нь жижиг шинэчлэлтийн хувьд хангалттай сайн
ажиллаж болох юм.
Гэхдээ гол хувилбаруудын хооронд шинэчлэлт хийж байх үед энэ арга
замыг дагахгүй байгаа хүмүүст зарим асуудлууд учирч болох юм.
Олон шинэчлэлтүүд (өөрөөр хэлбэл 4.X-с
5.0 руу) тусгайлсан нэмэлт алхмуудыг (жишээ нь installworld хийхээс өмнө
тусгай файлуудын нэрийг өөрчлөх эсвэл устгах гэх мэт) шаардаж болохыг энд
тэмдэглэх нь зүйтэй юм. /usr/src/UPDATING файлыг
анхааралтай уншина уу, ялангуяа одоогоор зөвлөсөн байгаа шинэчлэх дарааллыг
тусгайлан тайлбарласан төгсгөл хэсгийг уншаарай.
Зарим нэг тохиромжгүй байдалтай холбоотой асуудлуудаас бүрэн
гүйцэд хамгаалах боломжгүйг хөгжүүлэгчид мэдсэнээр энэ арга нь цаг хугацааны
туршид сайжруулагдсаар ирсэн юм. Одоогийн арга замууд нь удаан хугацааны
туршид тогвортой байна гэдэгт найдаж байна.
&os; 3.X эсвэл илүү хуучны хувилбараас
шинэчлэхэд илүү нарийн төвөгтэй байдаг. Та энэ төрлийн шинэчлэлтийг
хийх шаардлагатай бол UPDATING файлыг анхааралтай
уншина уу.
Дүгнэхэд &os;-г эхээс шинэчлэхэд одоогоор зөвлөдөг арга
бол:
&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; shutdown -r now
buildworld алхмаас өмнө
mergemaster -p тушаалыг нэмж ажиллуулах
цөөн ховор тохиолдлууд байдаг. Эдгээрийн талаар UPDATING
файлд тайлбарласан байдаг. Хэрэв та &os;-ийн нэг буюу олон голлох
хувилбаруудын дагуу шинэчлэл хийхгүй байгаа бол ерөнхийдөө энэ алхмыг
эмээлгүйгээр орхиж болох юм.
installkernel амжилттай дууссаны
дараа та ганц хэрэглэгчийн горим уруу ачаалах хэрэгтэй (өөрөөр хэлбэл
boot -s тушаалыг дуудагч мөрөөс ашиглана).
Дараа нь доор дурдсан тушаалуудыг ажиллуулна:
&prompt.root; adjkerntz -i
&prompt.root; mount -a -t ufs
&prompt.root; mergemaster -p
&prompt.root; cd /usr/src
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; reboot
Тайлбаруудыг цааш уншина уу
Дээр тайлбарласан дараалал нь зөвхөн таныг эхлэхэд туслах богино
сэргээлт болох юм. Гэхдээ хэрэв та ялангуяа өөрчлөн тохируулсан
цөмийн тохиргоо ашиглахыг хүсэж байгаа бол дараах хэсгүүдийг уншиж
алхам бүрийг сайтар ойлгох хэрэгтэй.
/usr/src/UPDATING файлыг унш
Өөр юм хийж эхлэхээсээ өмнө та /usr/src/UPDATING-г
(эсвэл эх кодын хуулбар хаана байгаа тэндээс үүнтэй төстэй файлыг ) уншаарай.
Энэ файл нь танд учирч болзошгүй асуудлуудын талаар чухал мэдээлэл агуулдаг бөгөөд
эсвэл таны ажиллуулах зарим нэг тушаалуудын дарааллын талаар заасан байдаг.
Хэрэв UPDATING файл таны энд уншсантай зөрчилдөж
байвал UPDATING файлд заасныг дагах хэрэгтэй.
UPDATING файлыг унших нь өмнө нь тайлбарласнаар
зөв захидлын жагсаалтад бүртгүүлэхтэй харьцуулах юм бол хүлээн зөвшөөрч болохуйц
орлогч байж чадахгүй юм. Энэ хоёр шаардлага нь нэмэлт бөгөөд заавал шаардлагатай
биш юм.
/etc/make.conf файлыг шалга
make.conf
/usr/share/examples/etc/make.conf
болон /etc/make.conf файлыг шалгаарай.
Эхнийх нь зарим нэг анхдагч тодорхойлолтуудыг агуулдаг – тэдгээрийн
ихэнх нь тайлбар болон хаагдсан байдаг. Та системээ эхээс нь дахин бүтээх үедээ
тэдгээрийг ашиглахын тулд /etc/make.conf
файлд нэмэх хэрэгтэй. /etc/make.conf файлд
нэмсэн болгон make тушаалыг ажиллуулах бүрд
бас ашиглагддаг учир өөрийн системдээ зориулан тэдгээрийг боломжийн утгаар
тохируулж өгөх нь зүйтэй юм.
Ердийн хэрэглэгч /usr/share/examples/etc/make.conf
файлд байдаг CFLAGS болон
NO_PROFILE мөрүүдийг
/etc/make.conf уруу хуулж
тэдгээрийг тайлбар болгосныг болиулж нээхийг магадгүй хүсэж
болох юм.
Бусад тодорхойлолтуудыг (COPTFLAGS,
NOPORTDOCS гэх зэрэг) шалгаж танд хамаатай
эсэхээс хамаарч оруулах эсэхээ шийдээрэй.
/etc дэх файлуудыг шинэчил
/etc сан нь таны системийн тохиргооны мэдээллийн
ихэнх хэсгийг агуулдгаас гадна системийг эхлүүлэхэд ажилладаг скриптүүд энд байдаг.
Эдгээр скриптүүдийн зарим нь FreeBSD-ийн хувилбараас хувилбарт өөрчлөгддөг.
Тохиргооны файлуудын зарим нь бас системийг ажиллуулахад өдөр тутам хэрэглэгддэг.
Ялангуяа /etc/group-г дурдаж болно.
make installworld тушаалын суулгалт хийх хэсэг нь
зарим нэг хэрэглэгчийн нэр эсвэл бүлгүүд байж байна гэж тооцдог тохиолдлууд байдаг.
Шинэчлэл хийж байх үед эдгээр хэрэглэгчид эсвэл бүлгүүд ихэнхдээ байхгүй байдаг.
Энэ нь шинэчлэл хийхэд асуудал учруулдаг. Зарим тохиолдолд make buildworld
нь эдгээр хэрэглэгчид эсвэл бүлгүүд байгаа эсэхийг шалгана.
Үүний нэг жишээ нь smmsp хэрэглэгч нэмэгдсэн
тохиолдол юм. &man.mtree.8; нь /var/spool/clientmqueue-г
үүсгэхийг оролдох үед хэрэглэгчийн суулгалтын процесс энэ асуудлаас болж амжилтгүй
болж байсан.
Үүний шийдэл нь &man.mergemaster.8;-г ертөнцийг бүтээхээс урд
тохируулгатай ажиллуулах явдал юм. Энэ нь buildworld
эсвэл installworld тушаалыг амжилттай болгоход
зөвхөн шаардлагатай файлуудыг харьцуулдаг. Хэрэв таны хуучин mergemaster
хувилбар тохируулгыг дэмждэггүй бол эх модон дахь шинэ хувилбарыг
эхний удаа ажиллуулахдаа ашиглаарай:
&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -p
Хэрэв та ялангуяа хэтэрхий санаа зовж байгаа бол тухайн бүлэгт харьяалагдаж байгаа
нэрийг нь өөрчилж байгаа эсвэл устгаж байгаа ямар файлууд байгааг өөрийн системээс
шалгаарай:
&prompt.root; find / -group GID -print
дээрх нь GID (энэ бүлгийн нэр байж болно эсвэл
бүлгийн тоон ID байж болно) бүлгийн эзэмшдэг файлуудыг харуулна.
Ганц хэрэглэгчийн горимд шилж
ганц хэрэглэгчийн горим
Та системийг ганц хэрэглэгчийн горимд эмхэтгэхийг хүсэж болох юм.
Энэ нь шинэчлэлтийг арай илүү хурдасгах илэрхий ашиг тустайгаас гадна
системийг дахин суулгах нь системийн стандарт хоёртын файлууд,
libraries буюу туслах сангууд, оруулгын файлууд гэх зэрэг системийн
маш олон чухал файлуудыг хөнддөг. Ажиллаж байгаа систем дээр эдгээрийг
өөрчлөх нь (ялангуяа хэрэв тухайн үед таны систем дээр идэвхтэй хэрэглэгчид
байвал) гай төвгийг өөрөө эрж байна гэсэн үг юм.
олон хэрэглэгчийн горим
Өөр нэг арга бол системийг олон хэрэглэгчийн горимд эмхэтгэж дараа нь
суулгахдаа ганц хэрэглэгчийн горимд шилжин хийх явдал юм. Хэрэв та энэ замаар
хийхийг хүсэж байвал бүтээлт дуустал дараах алхмууд дээр хүлээж байгаарай.
Та installkernel эсвэл
installworld хийх хүртлээ ганц хэрэглэгчийн горимд
оролгүйгээр хүлээж байж болно.
Супер хэрэглэгч болоод та доор дурдсаныг:
&prompt.root; shutdown now
ажиллаж байгаа системээс ганц хэрэглэгчийн горим уруу оруулахдаа
ажиллуулж болно.
Өөр нэг арга нь системийг дахин ачаалаад ачаалалтын тушаал хүлээх мөрөн дээр
single user буюу ганц хэрэглэгч
тохируулгыг сонгоорой.
Ингэхэд систем ганц хэрэглэгчийг ачаална. Бүрхүүлийн тушаал хүлээх мөрөнд та
доор дурдсан тушаалуудыг ажиллуулах шаардлагатай:
&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -a
Энэ нь файлын системүүдийг шалгаж /-г
дахин унших/бичихээр дахин холбож бусад бүх UFS файлын системүүдийг
/etc/fstab-д заасны дагуу холбон дараа нь
swap-ийг идэмвхжүүлэх болно.
Хэрэв таны CMOS цаг нь GMT биш локал хугацаагаар тохируулагдсан бол
(хэрэв &man.date.1; тушаалын гаралт зөв цаг болон бүсийг харуулахгүй
бол энэ нь үнэн) та дараах тушаалыг бас ажиллуулах хэрэгтэй болж
болох юм:
&prompt.root; adjkerntz -i
Энэ нь таны локал цагийн бүсийн тохируулгуудыг зөвөөр тохируулж өгдөг —
үүнийг хийхгүй бол та дараа нь зарим асуудлуудтай тулгарч магадгүй.
/usr/obj-г устга
Системийн хэсгүүд дахин бүтээгдсэнийхээ дараа (анхдагчаар)
/usr/obj дахь сангуудад байршдаг. Эдгээр сангууд нь
/usr/src дотор байгааг халхалдаг.
Та make buildworld процессийг хурдасгаж болох бөгөөд
энэ санг бас устгаснаар хамаарлын зовлонгуудаас өөрийгөө магадгүй аврах болно.
/usr/obj доторх зарим файлуудад immutable
буюу хувиршгүй туг тавигдсан (дэлгэрэнгүй мэдээллийг &man.chflags.1;-с үзнэ үү )
байж болох бөгөөд түүнийг эхлээд арилгах хэрэгтэй.
&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *
Үндсэн системийг дахин эмхэтгэ
Гаралтыг хадгалах нь
&man.make.1;-г ажиллуулахдаа гарах үр дүнг өөр файл уруу хадгалах нь
зүйтэй юм. Хэрэв ямар нэг юм болохоо боливол та алдааны мэдэгдлийн хуулбартай
байх болно. Энэ нь танд юу буруутсаныг шинжлэхэд чинь тус болохгүй байж болох боловч
та өөрийн энэ асуудлаа &os;-ийн аль нэг захидлын жагсаалт уруу илгээсэн тохиолдолд
бусдад тус болж болох юм.
Үүнийг хамгийн амраар хийхийн тулд &man.script.1; тушаалыг бүх гаралтыг хадгалах
файлын нэрийг заасан параметрийн хамтаар ашиглана. Та үүнийг ертөнцийг дахин бүтээхээс
өмнөхөн нэн даруй хийж дараа нь процесс дууссаны дараа exit
гэж бичиж гарна.
&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET
… compile, compile, compile …
&prompt.root; exit
Script done, …
Хэрэв та үүнийг хийх бол гаралтыг /tmp дотор
битгий хадгалаарай. Энэ сан нь таныг дахин ачаалсны
дараа цэвэрлэгдэж болох юм. Энэ файлыг хадгалах арай илүү боломжийн газар нь
/var/tmp (өмнөх жишээн дээрх шиг) эсвэл
root хэрэглэгчийн гэр сан байж болох юм.
Үндсэн системийг эмхэтгэ
Та /usr/src сан дотор байх
шаардлагатай:
&prompt.root; cd /usr/src
(гэхдээ мэдээж таны код өөр газар байгаа тохиолдолд тэр сан уруугаа орох
хэрэгтэй).
make
Ертөнцийг дахин бүтээхдээ та &man.make.1; тушаалыг ашиглана. Энэ
тушаал нь &os;-ийн агуулсан програмууд ямар дарааллаар дахин хэрхэн бүтээгдэх зэргийг
тайлбарласан Makefile файлаас заавруудыг уншдаг.
Таны бичих тушаалын мөрийн ерөнхий хэлбэр нь дараах байдлаар байна:
&prompt.root; make -x -DVARIABLE target
Энэ жишээн дээр нь
&man.make.1; уруу таны дамжуулах тохируулга юм. &man.make.1;-н гарын авлагын хуудаснаас
та дамжуулж болох тохируулгуудын жишээг үзнэ үү.
тохируулга нь Makefile уруу хувьсагч дамжуулж байна.
Makefile-ийн ажиллагаа эдгээр хувьсагчуудаар
хянагдана. Эдгээр нь /etc/make.conf дотор
зааж өгсөн хувьсагчуудтай адил бөгөөд энэ нь тэдгээрийг тохируулах бас нэг өөр
арга юм.
&prompt.root; make -DNO_PROFILE target
тушаал нь профиль хийгдсэн сангууд бүтээгдэх ёсгүйг заах өөр нэг арга бөгөөд
энэ нь /etc/make.conf дахь дараах
NO_PROFILE= true # Avoid compiling profiled libraries
мөрд харгалзах юм.
target нь &man.make.1;-д
таны юу хийхийг хэлж өгдөг. Makefile болгон
өөр өөр targets буюу даалгаврын төрлүүдийг
тодорхойлдог
бөгөөд таны сонгосон төрөл юу болохыг тодорхойлдог.
Зарим төрлүүд Makefile-д жагсаагдсан байх
бөгөөд гэхдээ эдгээр нь таныг ажиллуулахад зориулагдаагүй. Харин тэдгээр нь
системийг дахин бүтээхэд шаардлагатай алхмуудыг хэд хэдэн дэд алхмуудад хуваахын
тулд бүтээх процессод хэрэглэгддэг.
Ихэнх тохиолдолд та &man.make.1; уруу ямар ч параметр дамжуулах
хэрэггүй бөгөөд тэгэхээр таны тушаал дараахтай ижил байж болно:
&prompt.root; make target
дээрх target нь олон бүтээх тохируулгуудын
нэг болно. Эхний төрөл нь үргэлж buildworld
байх ёстой.
Нэртэйгээ адилаар buildworld нь
/usr/obj дотор бүрэн гүйцэд шинэ модыг бүтээх бөгөөд
өөр нэг төрөл болох installworld нь
энэ модыг тухайн машин дээр суулгадаг.
Тусдаа тохируулгуудтай байх нь хоёр шалтгаанаар маш ач холбогдолтой юм.
Нэгдүгээрт энэ нь бүтээлтийг таны ажиллаж байгаа системийн ямар ч хэсэгт нөлөөлөхгүйгээр
аюулгүйгээр хийхийг танд зөвшөөрдөг. Бүтээлт нь өөр дээрээ хийгдэнэ (self hosted)
.
Ийм болохоор та buildworld тушаалыг олон
хэрэглэгчийн горимд ажиллаж байгаа машин дээр буруу нөлөөллөөс айлгүйгээр аюулгүйгээр
хийж болно. Гэхдээ installworld хэсгийн хувьд ганц
хэрэглэгчийн горимд хийхийг танд зөвлөдөг.
Хоёрдугаарт энэ нь сүлжээн дэх олон машинуудыг шинэчлэхэд
NFS холболтуудыг ашиглахыг танд зөвшөөрдөг. Хэрэв танд гурван машин байгаа бөгөөд
A, B болон C
машинуудыг шинэчлэхийг хүсвэл make
buildworld болон make installworld
тушаалыг A дээр ажиллуулна. Дараа нь B болон C
машинууд A дээрх /usr/src
болон /usr/obj сангуудыг NFS холболт хийн
make installworld-г ажиллуулж
бүтээлтийн үр дүнг B болон C дээр
суулгаж болох юм.
world төрөл байсаар байгаа хэдий ч
танд түүнийг ашиглахгүй байхыг зөвлөж байна.
Дараах тушаалыг ажиллуул
&prompt.root; make buildworld
Хэд хэдэн зэрэгцээ процессуудыг үүсгэх тохируулгыг
make тушаалд зааж өгөх боломжтой. Энэ нь олон CPU-тэй
машинууд дээр хамгийн их ашигтай. Гэхдээ эмхэтгэх процессийн ихэнх нь CPU дээр биш
IO дээр ажилладаг болохоор энэ нь бас нэг CPU-тэй машинууд дээр ашигтай юм.
Ердийн нэг CPU-тэй машин дээр та доор дурдсаныг ажиллуулж болох юм:
&prompt.root; make -j4 buildworld
&man.make.1; нь 4 хүртэлх процессийг нэгэн зэрэг ажиллуулах юм. Захидлын
жагсаалтуудад илгээгдсэн туршлагаас харахад энэ нь ерөнхийдөө ажиллагааг хамгийн сайн
хангаж хурдасгадаг байна.
Хэрэв та олон CPU машинтай бөгөөд SMP тохируулагдсан цөм ашиглаж байвал
утгыг 6-аас 10 хүртэл болгож хэр хурдсаж байгааг хараарай.
Хугацаа
ертөнцийг
дахин бүтээх нь
хугацаа
Бүтээхэд шаардагдах хугацаанд олон хүчин зүйлс нөлөөлдөг, гэхдээ
нэлээн сүүлийн үеийн машинуудын хувьд &os.stable; модыг процессийн явцад ямар нэгэн
заль мэх эсвэл дөт зам ашиглалгүйгээр бүтээхэд зөвхөн нэг юм уу эсвэл хоёр цаг л
шаардагдах болох юм. &os.current; модны хувьд арай удах болов уу.
Шинэ цөмийг эмхэтгэж суулга
цөм
суулгах нь
Та өөрийн шинэ системийн давуу талыг бүгдийг нь авахын тулд цөмөө дахин эмхэтгэх
хэрэгтэй. Зарим нэг санах ойн бүтцүүд өөрчлөгдсөн байх талтай бөгөөд
&man.ps.1; болон &man.top.1; зэрэг програмууд нь цөм болон эх кодын хувилбарууд
адил болтол ажилладаггүй болохоор эмхэтгэх нь үнэндээ чухал хэрэгцээтэй юм.
Үүнийг хамгийн хялбараар аюулгүйгээр хийхийн тулд GENERIC
дээр тулгуурласан цөмийг бүтээж суулгах явдал юм. GENERIC нь
таны системийн хувьд хэрэгцээтэй төхөөрөмжүүдийг агуулаагүй байж болох боловч
таны системийг ядаж ганц хэрэглэгчийн горимд ачаалахад шаардлагатай бүгдийг агуулсан
байх ёстой. Шинэ систем зөв ажиллуулахад энэ сайн тест болж өгдөг.
GENERIC-с ачаалж таны систем ажиллаж байгааг шалгасны
дараа та өөрийн ердийн цөмийн тохиргооны файл дээр тулгуурлан шинэ цөмөө бүтээж
болох юм.
&os; дээр шинэ цөм бүтээхээсээ өмнө ертөнцийг бүтээх нь чухал юм.
Хэрэв та өөрчлөн тохируулсан цөмийг бүтээхийг хүсэж тохиргооны файлаа аль
хэдийн үүсгэсэн бол доор дурдсантай адилаар
KERNCONF=MYKERNEL
гэж ашиглаарай:
&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNEL
Хэрэв та kern.securelevel хувьсагчийг
1-ээс дээш болгон ихэсгэсэн бөгөөд
noschg эсвэл түүнтэй адил тугуудыг өөрийн цөмийн хоёртын
файлд тавьсан бол installkernel хийхийн тулд
та ганц хэрэглэгчийн горимд шилжин орох шаардлагатай байж болох юм. Үгүй бол
та энэ хоёр тушаалыг олон хэрэглэгчийн горимоос ямар ч асуудалгүйгээр
ажиллуулах ёстой. kern.securelevel-ийн талаар
дэлгэрэнгүйг &man.init.8; болон төрөл бүрийн файлын тугуудын талаар дэлгэрэнгүйг
&man.chflags.1; гарын авлагын хуудаснуудаас үзнэ үү.
Ганц хэрэглэгчийн горим уруу дахин ачаалан ор
ганц хэрэглэгчийн горим
Та шинэ цөмийн ажиллагааг шалгахын тулд ганц хэрэглэгчийн горимд дахин
ачаалан орох хэрэгтэй. Үүнийг
дахь заавруудын дагуу хийнэ.
Шинэ системийн хоёртын файлуудыг суулга
Хэрэв та make buildworld тушаалыг ашигласан
саяхны &os;-ийн хувилбарыг бүтээж байгаа бол одоо шинэ системийн хоёртын
файлуудыг суулгахын тулд installworld
тушаалыг ашиглах шаардлагатай.
Доор дурдсаныг ажиллуулна
&prompt.root; cd /usr/src
&prompt.root; make installworld
Хэрэв та make buildworld тушаалын мөрөнд
хувьсагчуудыг зааж өгсөн бол тэдгээр хувьсагчуудыг
make installworld тушаалын мөрөнд бас адилаар
зааж өгөх хэрэгтэй. Энэ бусад тохируулгуудын хувьд заавал шаардлагатай биш
байж болох юм; жишээ нь тохируулга
installworld-той цуг хэзээ ч хэрэглэгдэх
ёсгүй.
Жишээ нь хэрэв та доор дурдсаныг ажиллуулсан бол:
&prompt.root; make -DNO_PROFILE buildworld
хоёртын файлуудыг дараах тушаалаар суулгана:
&prompt.root; make -DNO_PROFILE installworld
ингэхгүй бол make buildworld тушаалын ажиллах
явцад бүтээгдээгүй профиль хийгдсэн сангуудыг (libraries) суулгахыг оролдох болно.
make installworld тушаалаар шинэчлэгдээгүй файлуудыг шинэчил
Ертөнцийг дахин бүтээх нь зарим нэг сангуудыг (ялангуяа /etc,
/var болон /usr) шинэ болон
өөрчлөгдсөн тохиргооны файлуудаар шинэчилдэггүй.
Эдгээр файлуудыг хамгийн амархнаар шинэчлэх арга нь &man.mergemaster.8;-г
ашиглах явдал юм, гэхдээ та хэрэв хүсвэл үүнийг гараар ажиллуулах боломжтой юм.
Аль ч аргыг сонголоо гэсэн ямар нэгэн зүйл буруутсан тохиолдолд сэргээх боломжтойгоор
/etc-г нөөцөлж авах нь зүйтэй юм.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
mergemaster
mergemaster
&man.mergemaster.8; хэрэгсэл нь /etc дэх
таны тохиргооны файлууд болон /usr/src/etc эх модон дахь
тохиргооны файлуудын ялгааг тодорхойлоход танд тусалдаг Bourne скрипт юм.
Энэ нь системийн тохиргооны файлуудыг эх модон дахь тохиргооны файлуудаар шинэчлэх
зориулалттай бидний зөвлөдөг шийдэл юм.
Эхлэхийн тулд өөрийн тушаал оруулах мөрөнд ердөө л mergemaster-г
бичиж түүний эхлэхийг нь хараарай. mergemaster нь түр зуурын
root орчныг /-с доошлуулан бүтээж төрөл бүрийн системийн тохиргооны
файлуудаар дамждаг. Тэдгээр файлууд нь таны системд суулгагдсан файлуудтай харьцуулагддаг.
Энэ үед хоорондоо ялгаатай файлууд &man.diff.1; хэлбэрээр үзүүлэгддэг бөгөөд
тэмдэгтээр нэмэгдсэн эсвэл өөрчлөгдсөн мөрүүдийг
тэмдэгтээр устгагдсан эсвэл шинэ мөрөөр солигдсон мөрүүдийг
харуулдаг. &man.diff.1;-н синтакс болон файлын өөрчлөлтүүдийг хэрхэн үзүүлдэг талаар
дэлгэрэнгүй мэдээллийг &man.diff.1; гарын авлагын хуудаснаас үзнэ үү.
&man.mergemaster.8; нь зөрчилдөөнүүдийг үзүүлсэн файл болгоныг харуулдаг бөгөөд
энэ үед танд шинэ файлыг устгах (түр зуурын файл гэгддэг), түр зуурын файлыг өөрчлөлгүйгээр
суулгах, суусан байгаа файлтай түр зуурын файлыг нийлүүлэх эсвэл &man.diff.1;-н
гаралтыг дахин харах сонголтыг үзүүлэх болно.
Түр зуурын файлыг устгахыг сонгосноор бид одоо байгаа файлаа хэвээр өөрчлөлгүй үлдээж
шинэ хувилбарыг устгахыг хүсэж байгаагаа &man.mergemaster.8;-д хэлж байна гэсэн үг юм.
Хэрэв та одоо байгаа файлаа өөрчлөх шалтгааныг олж харахгүй байгаагаас бусад тохиолдолд
энэ сонголтыг хийхийг зөвлөдөггүй. Та ямар ч үед &man.mergemaster.8; тушаал хүлээх
мөрөн дээр ? гэж бичин тусламж авч болох юм. Хэрэв хэрэглэгч
файлыг орхихоор сонгосон бол энэ нь бусад бүх файлуудтай ажилсны дараа дахин үзүүлэгдэн
хэрэглэгчээс тушаал хүлээх болно.
Өөрчлөгдөөгүй түр зуурын файлыг суулгахыг сонгосноор одоо байгаа файлыг шинээр
сольдог. Ихэнх өөрчлөгдөөгүй файлуудын хувьд энэ нь хамгийн шилдэг сонголт юм.
Файлыг нийлүүлэхийг сонгосноор текст засварлагч болон хоёр файлын агуулгыг танд
харуулах болно. Та дэлгэцийн хоёр талд байрласан тэдгээр хоёр файлыг хоёуланг нь
шалган аль аль талаас нь хэрэгтэй хэсгүүдийг сонгон эцсийн бүтээгдэхүүн гаргаж аван
нийлүүлж болно. Файлууд нь дэлгэцийн хоёр талд байрлан харьцуулагдах явцад
l түлхүүр таны зүүн талын агуулгыг сонгодог бол
r түлхүүр нь таны баруун тал дахь агуулгыг сонгох юм.
Гарах эцсийн үр дүн нь хоёр файлын хоёулангийн хэсгүүдийг агуулсан файл болох бөгөөд
түүнийг дараа нь суулгах боломжтой болох юм. Энэ сонголтыг хэрэглэгчийн тохиргоонуудад
хийгдсэн өөрчлөлтүүдтэй файлуудын хувьд хэрэглэх нь зуршил болжээ.
&man.diff.1;-ээс гарах үр дүнг дахин харахыг сонгосноор өмнө нь
&man.mergemaster.8; файлын өөрчлөлтүүдийг харуулан таны сонголтыг хүлээсний
нэгэн адилыг дахин харуулдаг.
&man.mergemaster.8; системийн файлуудтай ажиллаж дууссаны дараа
танаас бусад сонголтуудыг хийхийг хүлээдэг. &man.mergemaster.8; тушаал
нууц үгийн файлыг дахин бүтээхийг хүсэж байгаа эсэхийг танаас асууж үлдсэн
түр зуурын файлуудыг устгах сонголтыг үзүүлэн дуусдаг.
Гараар шинэчлэх
Хэрэв та гараар шинэчлэхийг хүсвэл гэхдээ та /usr/src/etc
сангаас /etc сан уруу файлуудыг зүгээр л дарж хуулж ажиллуулж
чадахгүй. Зарим файлуудыг эхлээд суулгах
хэрэгтэй. Учир нь
/usr/src/etc сан таны /etc
сангийн хуулбар шиг байхаар харагддагүй. Мөн
/usr/src/etc санд байдаггүй хэрнээ
/etc сан дотор байх шаардлагатай зарим файлууд
байдаг.
Хэрэв та &man.mergemaster.8; (зөвлөсний дагуу) ашиглаж байвал та
дагаагийн хэсэг уруу
орж болно.
Үүнийг гараар хамгийн хялбар аргаар хийхийн тулд файлуудыг шинэ сан уруу
суулгаж нэг бүрчлэн өөрчлөлтүүдийг хайн ажиллах хэрэгтэй.
Өөрт байгаа /etc-г нөөцөл
Онолоор бол автоматаар энэ санд юу ч хүрдэггүй ч үүнд үргэлж итгэлтэй
байх хэрэгтэй. Тэгэхээр өөрийн байгаа /etc санг
хаа нэг аюулгүй газар хуулах хэрэгтэй. Доорхтой адилаар:
&prompt.root; cp -Rp /etc /etc.old
нь рекурсив хуулбар хийх бөгөөд
нь файлуудын хугацаа, эзэмшигч гэх мэтийг
хадгалдаг.
Та шинэ /etc болон бусад файлуудыг суулгахын тулд
хоосон сангууд бүтээх хэрэгтэй. /var/tmp/root нь
боломжийн сонголт болох бөгөөд энэ сангийн доор хэд хэдэн дэд сангууд бас
шаардлагатай болно.
&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution
Энэ нь шаардлагатай сангийн бүтцийг бүтээж файлуудыг суулгадаг.
/var/tmp/root дотор үүсгэгдсэн олон дэд сангууд
хоосон бөгөөд тэдгээрийг устгах шаардлагатай байдаг. Үүнийг хамгийн хялбараар
хийхийн тулд:
&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null
Энэ нь бүх хоосон сангуудыг устгана. (Хоосон биш сангуудын тухай анхааруулгуудыг
гаргахгүйн тулд стандарт алдаа нь /dev/null
уруу илгээгддэг.)
Одоо /var/tmp/root нь /-с
доор байрлах тохирох байрлалуудад байршуулах ёстой бүх файлуудыг агуулсан байх болно.
Та одоо эдгээр файл бүрийг шалгаж танд байгаа файлуудаас хэрхэн ялгаатай болохыг
тогтоох хэрэгтэй.
/var/tmp/root дотор суулгагдсан зарим файлуудын нэр
урдаа .
тэмдэгттэй байдгийг анхаарна уу. Энэ баримтыг бичиж байх үед
ийм файлуудтай адил файлууд /var/tmp/root/ болон
/var/tmp/root/root/ сан дахь бүрхүүлийн эхлүүлэх файлууд
байсан, гэхдээ (таны хэзээ үүнийг уншиж байгаагаас хамаарч) өөр бусад файлууд байхыг
үгүйсгэхгүй. Тэдгээрийг олж харахын тулд ls -a тушаалыг
заавал ашиглаарай.
Үүнийг хамгийн хялбар аргаар хийж хоёр файлыг харьцуулахын тулд &man.diff.1;
тушаалыг ашиглах явдал юм:
&prompt.root; diff /etc/shells /var/tmp/root/etc/shells
Энэ нь таны /etc/shells файл болон
шинэ /var/tmp/root/etc/shells файлын хоорондын
ялгааг харуулна. Эдгээрийг ашиглаж өөрийн хийсэн өөрчлөлтүүдийг нийлүүлэх эсвэл
өөрийн хуучин файл дээрээс хуулах эсэхээ шийдээрэй.
Хувилбаруудын Хоорондох Ялгаануудыг Хялбараар Харьцуулахын Тулд Та
Шинэ Root Сангаа Тухайн Үеийн Хугацаагаар Нэрлээрэй
Ертөнцийг байнга дахин бүтээнэ гэдэг нь /etc-г
та бас байнга шинэчилнэ гэсэн үг бөгөөд энэ нь ердөө л жижиг хэвшмэл ажил юм.
Та энэ процессийг /etc уруу нийлүүлсэн
өөрийн хамгийн сүүлийн өөрчлөгдсөн файлуудыг хадгалснаар хурдасгаж болох юм.
Дараах процедур үүнийг хэрхэн хийж болох нэг санааг өгч байна.
Ертөнцийг жирийнээр бүтээ. /etc болон
бусад сангуудыг шинэчлэхийг хүсэхдээ тухайн цаг дээр тулгуурласан нэр бүхий
санг өг. Хэрэв та үүнийг 1998 оны 2 сарын 14-нд хийж байгаа бол дараах
байдлаар хийнэ:
&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distribution
Энэ сангийн өөрчлөлтүүдийг дээр дурдсаны дагуу нийлүүл.
Та дууссаныхаа дараа /var/tmp/root-19980214
санг битгий устгаарай.
Та эхийн хамгийн сүүлийн хувилбарыг татан авч дахин бүтээхдээ 1-р алхмыг дага.
Энэ нь танд шинэ сан өгөх бөгөөд /var/tmp/root-19980221
гэж нэрлэгдсэн байж болох юм (хэрэв та шинэчлэлтүүдийг хийхдээ долоо хоног
хүлээсэн бол).
Та одоо &man.diff.1; ашиглан хоёр сангийн хооронд рекурсив diff үүсгэж
долоо хоногийн хооронд хийгдсэн өөрчлөлтүүдийг харж болно:
&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221
Ихэнхдээ энэ нь /var/tmp/root-19980221/etc болон
/etc хоёрын хоорондох өөрчлөлтүүдийг бодох юм бол
харьцангуй бага өөрчлөлтүүд байдаг. Өөрчлөлтүүд нь арай бага болохоор тэдгээр
өөрчлөлтүүдийг өөрийн /etc сан уруу шилжүүлэх нь
илүү хялбар байдаг.
Та одоо хоёр /var/tmp/root-* сангуудын аль хуучныг
устгаж болно:
&prompt.root; rm -rf /var/tmp/root-19980214
/etc уруу өөрчлөлтүүдийг
нийлүүлэх болгондоо энэ процессийг давтах хэрэгтэй.
Та &man.date.1;-г ашиглан сангийн нэрсийг автоматаар үүсгэж
болно:
&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`
Дахин ачаалах нь
Та ерөнхийдөө ингээд хийгээд дуусч байна. Та бүх зүйл байх ёстой байрандаа байгаа эсэхийг шалгасныхаа
дараа системийг дахин ачаалж болно. Энгийн &man.shutdown.8; үүнийг
хийх болно:
&prompt.root; shutdown -r now
Дууслаа
Одоо та өөрийн &os; системийг амжилттайгаар шинэчлээд дууссан байх
ёстой. Баяр хүргэе.
Хэрэв юмс шал буруугаар эргэвэл системийн тухайн хэсгийг дахин бүтээхэд амархан
байдаг. Жишээ нь хэрэв та шинэчлэлтийн явцад эсвэл /etc-г
нийлүүлэх явцад санамсаргүйгээр /etc/magic файлыг
устгасан бол &man.file.1; тушаал ажиллахаа больно. Ийм тохиолдолд дараах
засварыг ажиллуулж болох юм:
&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all install
Асуултууд
Өөрчлөлт бүрт зориулан ертөнцийг дахин бүтээх хэрэгтэй юу?
Үүнд хялбар хариулт байхгүй, учир нь өөрчлөлтийн цаад утга чанараас
хамаарна. Жишээ нь хэрэв та CVSup-г
дөнгөж ажиллуулахад дараах файлууд шинэчлэгдэж байгааг үзүүлж байгаа бол:
src/games/cribbage/instr.c
src/games/sail/pl_main.c
src/release/sysinstall/config.c
src/release/sysinstall/media.c
src/share/mk/bsd.port.mk
магадгүй бүхэл ертөнцийг дахин бүтээх хэрэггүй байж болох юм.
Та тохирох дэд сангууд уруу орж make all install
гэж тушаалыг өгөөд л болох юм. Хэрэв зарим нэг гол чухал зүйл жишээ нь
src/lib/libc/stdlib өөрчлөгдсөн бол
та ертөнцийг эсвэл хамгийн багаар бодоход статикаар холбогдсон (statically linked)
түүний тэдгээр хэсгүүдийг дахин бүтээх шаардлагатай болно.
Эцсийн эцэст энэ нь танаас л хамаарна. Та жишээ нь хоёр долоо хоног тутам
ертөнцийг дахин бүтээж тэр хоёр долоо хоногийн хугацаанд өөрчлөлтүүдийг
хуримтлуулж байгаадаа сэтгэл хангалуун байж болно. Эсвэл та зөвхөн өөрчлөгдсөн
зүйлсүүдийг дахин бүтээхийг хүсэж магадгүй бөгөөд бүх хамаарлуудыг шийднэ
гэдэгтээ итгэлтэй байх хэрэгтэй.
Тэгээд мэдээж энэ бүхэн таны ямар давтамжтайгаар шинэчлэхийг хүсдэг болон
&os.stable; эсвэл &os.current;-ийн алийг дагаж байгаагаас хамаарах
болно.
Миний эмхэтгэл маш олон дохио 11 (эсвэл бусад дохионы дугаар)
алдаагаар амжилтгүй болсон. Юу болсон юм бол?
дохио 11
Энэ нь ихэвчлэн тоног төхөөрөмжийн асуудлыг илэрхийлдэг.
Ертөнцийг (дахин) бүтээх нь өөрийн тоног төхөөрөмжийг ачаалах тест
хийх үр дүнтэй арга бөгөөд удаа дараа санах ойн асуудлууд байвал
тэдгээрийг илрүүлдэг. Эмхэтгэгч нь сонин/хачин дохионуудыг хүлээн авч
ид шидийн байдлаар амжилтгүй болсноор тэдгээр асуудлууд нь өөрсдийгөө
зарлан тунхагладаг.
Хэрэв та бүтээлтийг дахин эхлүүлээд тэр нь процессийн өөр өөр хэсэгт
амжилтгүй болж байвал энэ нь үүнийг тодоор зааж байна
гэсэн үг юм.
Энэ тохиолдолд та өөрийн машин дахь бүрэлдэхүүн хэсгүүдээ өөрчлөн
нэгээс нөгөөд сольж тавин аль нь ажиллахгүй байгааг олохоос өөр зүйл
хийж чадахгүй л болов уу.
Би дууссаныхаа дараа /usr/obj-г устгаж болох уу?
Товчхондоо бол болно.
/usr/obj нь эмхэтгэх үед бүтээгдсэн бүх
обьект файлуудыг агуулдаг. Жирийн үед make buildworld
процессийн эхний алхмуудын нэг нь энэ санг устгаад цоо шинээр эхлэх явдал
юм. Энэ тохиолдолд /usr/obj-г дууссаныхаа
дараа байлгаад байх нь ухаалаг биш бөгөөд үүнийг устгаснаар ихээхэн хэмжээний дискний зайг
суллах болно (одоогоор 340 MB орчим).
Гэхдээ хэрэв та юу хийж байгаагаа мэдэж байгаа бол make buildworld
хийхдээ энэ алхмыг алгасаж болно. Энэ нь дараа дараагийн бүтээлтийг илүү хурдасгадаг
бөгөөд учир нь ихэнх эхүүд дахин эмхэтгэх шаардлагагүй байдаг. Үүний сул тал нь
баригдашгүй хамаарлын асуудлууд илэрч таны бүтээлтийг хачин байдлаар амжилтгүй
болгодог. Хэн нэгэн илүү дөтлөх гэснээсээ болоод амжилтгүй болсныг мэдэлгүй өөрийн
бүтээлтийг амжилтгүй болсныг гомдоллосноор &os;-ийн захидлын жагсаалтуудад
хий дэмий шуугианыг удаа дараа үүсгэдэг билээ.
Тасалдсан бүтээлтүүдийг үргэлжлүүлж болох уу?
Энэ нь асуудлыг олох хүртлээ та хэр хол явснаас хамаарна.
Ерөнхийдөө (энэ нь хэцүү бас хурдан дүрэм биш)
make buildworld процесс нь үндсэн
багажуудын (&man.gcc.1;, болон &man.make.1; зэрэг) болон системийн
сангуудын шинэ хуулбаруудыг бүтээдэг. Тэдгээр багажууд болон сангууд нь
дараа нь суулгагддаг. Шинэ багажууд болон сангууд дараа нь
өөрсдийгөө дахин бүтээхэд ашиглагддаг бөгөөд дахин суулгагддаг. Бүхэл бүтэн
систем (одоо &man.ls.1; эсвэл &man.grep.1; зэрэг ердийн хэрэглэгчийн програмууд)
дараа нь шинэ системийн файлуудтайгаар дахин бүтээгддэг.
Хэрэв та сүүлийн шатанд байгаа бөгөөд та үүнийг мэдэж байгаа бол (та
хадгалж байгаа гаралтаас харсан болохоор) та дараах тушаалыг ажиллуулж
(бараг л аюулгүйгээр) болно:
… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN all
Энэ нь өмнөх make buildworld тушаалын
хийснийг буцаахгүй.
Хэрэв та доорх мэдэгдлийг :
--------------------------------------------------------------
Building everything..
--------------------------------------------------------------
make buildworld тушаалын гаралт дээр харсан
бол магадгүй тэгж хийх нь аюулгүй байж болох юм.
Хэрэв та тийм мэдэгдэл харахгүй байгаа бол эсвэл та итгэлтэй биш байгаа бол
харамсахаасаа өмнө аюулгүй байдлыг бодож бүтээлтийг бүр эхнээс нь дахин эхлүүлсэн нь
дээр юм.
Би ертөнцийг бүтээхийг хэрхэн хурдасгах вэ?
Ганц хэрэглэгчийн горимд ажиллуул.
/usr/src болон
/usr/obj сангуудыг тус тусдаа байх дискнүүд
дээр тус тусдаа байх файлын системүүд дээр байрлуул. Хэрэв боломжтой бол
эдгээр дискнүүдийг тус тусад нь дискний хянагчууд дээр байрлуул.
&man.ccd.4; (нийлүүлсэн дискний драйвер) төхөөрөмж ашиглан
эдгээр файлын системүүдийг олон дискнүүдийн дагуу байрлуулах нь бас
арай илүү хурдасгах юм.
Профиль хийгдэхийг (/etc/make.conf файлд
NO_PROFILE=true
гэж зааж өг) болиул. Танд энэ бараг
гарцаагүй хэрэггүй.
/etc/make.conf файлд бас
CFLAGS-г гэдэгтэй
адилаар заа. оновчлол нь илүү удаан байдаг бөгөөд
болон оновчлолын
ялгаа ихэвчлэн өчүүхэн байдаг. нь эмхэтгэгчид
холбооны зориулалтаар түр зуурын файлуудыг биш хоолойнуудыг ашиглахыг
зөвшөөрдөг бөгөөд энэ нь дискэнд хандах хандалтыг (санах ойг илүүтэй хэрэглэж)
багасгадаг.
тохируулгыг
&man.make.1;-д дамжуулж олон процессийг зэрэгцээгээр ажиллуул. Энэ нь
танд ганц эсвэл олон процессортой машин аль нь ч байсан ялгаагүйгээр ихэвчлэн тусалдаг.
/usr/src-г агуулж байгаа файлын
систем тохируулгаар холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь файлын систем файл уруу хандах хандалтын хугацааг бүртгэхийг
болиулдаг. Танд магадгүй энэ мэдээлэл бараг л хэрэггүй биз ээ.
&prompt.root; mount -u -o noatime /usr/src
Энэ жишээ /usr/src нь өөрийн файлын
систем дээр байгаа гэж тооцож байгаа болно. Хэрэв энэ нь тийм биш бол
(хэрэв энэ сан жишээ нь /usr-ийн хэсэг маягаар
байгаа бол) та /usr/src-г биш харин тэр
файлын системээ холболтын цэг болгон ашиглах хэрэгтэй.
/usr/obj-г агуулж байгаа файлын систем
тохируулгатай холболт хийгдэж (эсвэл салгагдаж)
болно. Энэ нь диск уруу хийх бичилтийг асинхроноор буюу зэрэг биш хийлгэдэг.
Өөрөөр хэлбэл бичилт нэн даруй хийгдээд өгөгдөл диск уруу цөөн секундын дараа
бичигддэг. Энэ нь бичилтүүдийг бүлэглэхийг зөвшөөрч маш их үр дүнтэйгээр
ажиллагааг хурдасгаж болох юм.
Энэ тохируулга нь таны файлын системийг илүү
эмзэг болгохыг санаарай. Тэжээл тасалдаж машин дахин ачаалах үед
файлын систем сэргээж болшгүй төлөвт орох магадлал энэ тохируулгатай
байхад илүү байдаг.
Хэрэв /usr/obj нь энэ файлын систем
дээрх цорын ганц зүйл бол энэ асуудал биш юм. Хэрэв танд уг файлын
систем дээр өөр, үнэтэй өгөгдөл байгаа бол энэ тохируулгыг
идэвхжүүлэхээсээ өмнө өөрийн нөөц чинь шинэ эсэхийг шалгаарай.
&prompt.root; mount -u -o async /usr/obj
Дээр дурдсан шиг хэрэв /usr/obj нь
өөрийн файлын систем дээр биш байх юм бол жишээн дээрхийг
тохирох холболт хийх цэгийн нэрээр солиорой.
Хэрэв ямар нэг юм буруутвал би юу хийх вэ?
Таны орчинд өмнөх бүтээлтүүдийн үеийн илүү үлдэгдлүүд
байхгүйд үнэхээр итгэлтэй байх хэрэгтэй. Энэ нь их амархан
юм.
&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandir
Тиймээ, make cleandir тушаалыг үнэндээ
хоёр удаа ажиллуулах шаардлагатай.
Тэгээд make buildworld
тушаалыг эхлүүлж бүх процессийг дахин эхлүүл.
Хэрэв та асуудалтай хэвээр байгаа бол алдаа болон
uname -a тушаалын дүнг &a.questions;
уруу явуулаарай. Өөрийн тохиргооныхоо талаар бусад асуултанд
хариулахад бэлэн байгаарай!
Майк
Мэйэр
Хувь нэмэр болгон оруулсан
Олон машины хувьд дагах нь
NFS
олон машин суулгах нь
Хэрэв та олон машинуудын хувьд ижил эх модыг дагахыг хүсэж бүгдийн хувьд
эхийг татан авахуулж бүгдийг дахин бүтээхийг хүсэж байгаа бол энэ нь дискний зай,
сүлжээний зурвасын өргөн болон
CPU циклүүд зэрэг эх үүсвэрүүдийг үр ашиггүйгээр ашиглахад хүргэхээр санагдаж
болох юм. Тиймээ, үүний шийдэл нь нэг машинаар ихэнх ажлыг хийлгэж
бусад машинууд нь тэр ажлыг NFS-ээр дамжуулан холбох явдал юм. Энэ хэсэгт
ингэж хийх аргыг тайлбарсан.
Бэлтгэл ажлууд
Эхлээд хоёртын адил файлуудыг ажиллуулах build set буюу
бүтээх олонлог гэж бидний нэрлэх машинуудыг олох хэрэгтэй.
Машин бүр өөрчлөн тохируулсан цөмтэй байж болох бөгөөд гэхдээ тэд ижил хэрэглэгчийн
талбарын хоёртын файлуудыг ажиллуулж байх ёстой. Тэр олонлогоос
бүтээх машиныг сонгох хэрэгтэй. Энэ нь
ертөнц болон цөм бүтээгдэх машин байх юм. Туйлын хүслээр бол энэ
нь make buildworld болон
make buildkernel тушаалуудыг ажиллуулахад
хангалттай нөөц CPU бүхий хурдан машин байх хэрэгтэй. Та мөн
үйлдвэрлэлд ашиглахаас өмнө програм хангамжуудыг тест хийдэг
тест машин сонгохыг бас хүсэж болох юм.
Энэ нь удаан хугацаагаар унтраастай эсвэл зогссон байж болох машин байх
ёстой. Энэ нь бүтээх машин байж болох юм, гэхдээ заавал
биш юм.
Энэ бүтээх олонлог дахь бүх машинууд нь өөр өөрийн машин дээрээсээ ижил цэг дээр
/usr/obj болон /usr/src-г
холболт хийх хэрэгтэй. Туйлын хүслээр бол энэ нь бүтээх машин дээрх хоёр өөр дискнүүд
байж болох бөгөөд гэхдээ эдгээр нь уг машин дээр NFS холболт бас хийгдэж болохоор
байж болох юм. Хэрэв танд олон бүтээх олонлогууд байгаа бол
/usr/src сан нь нэг бүтээх машин дээр байрлаж
бусад дээр нь NFS холболт хийгдсэн байх юм.
Төгсгөлд нь бүтээх олонлогийн бүх машинууд дээрх /etc/make.conf
болон /etc/src.conf файлууд бүтээх машиныхтай тохирч байгаа эсэхийг шалгаарай. Энэ нь бүтээх олонлогийн
машин бүрийн суулгах үндсэн системийн бүх хэсгүүдийг бүтээх машин хийх ёстой гэсэн
үг юм. Мөн бүтээх машин бүр өөрийн цөмийн нэрийг /etc/make.conf
файлд KERNCONF хувьсагчид заан өгөх ёстой бөгөөд бүтээх
машин бүр KERNCONF хувьсагчдаа өөрийн цөмийг эхэнд
оруулан дараа нь тэдгээрийг жагсаах ёстой байдаг. Бүтээх машин нь машин бүрийн
цөмийг бүтээхээр болох юм бол тэдгээрийн тохиргооны файлыг
/usr/src/sys/arch/conf
санд агуулсан байх шаардлагатай.
Үндсэн систем
Одоо бүх юм ингэж хийгдсэний дараа та бүгдийг бүтээхэд бэлэн боллоо.
Бүтээх машин дээр -д тайлбарласны
дагуу цөм болон ертөнцийг бүтээ, гэхдээ юуг ч битгий суулгаарай. Бүтээлт
дууссаны дараа тест машин дээр дөнгөж саяхан бүтээсэн цөмөө суулга.
Хэрэв энэ машин нь /usr/src
болон /usr/obj сангуудыг NFS-ээр холболт хийх
гэж байгаа бол та ганц хэрэглэгчийн горимд дахин ачаалахдаа сүлжээг нээж
тэдгээрийг холбож өгөх хэрэгтэй. Үүнийг хамгийн хялбараар хийхийн тулд
олон хэрэглэгчийн горимд ачаалан shutdown now
тушаалыг ажиллуулж ганц хэрэглэгчийн горимд орох явдал юм. Тэгэж орсныхоо
дараа та шинэ цөм болон ертөнцийг суулгаж жирийн үедээ хийдэг
mergemaster тушаалыг ажиллуулж болно.
Ингэж дууссаныхаа дараа энэ машины хувьд ердийн олон хэрэглэгчийн
үйлдлүүдэд дахин ачаалж орно.
Тест машин дээрх бүх зүйлс зөв ажиллаж байгааг мэдсэнийхээ дараа та
бүтээх олонлогийн бусад машин бүр дээр шинэ програм хангамж суулгахдаа
ижил процедурыг ашиглаарай.
Портууд
Үүнтэй адил санааг бас портуудын модонд ашиглаж болно. Эхний чухал
алхам бол нөгөө машин дээрх /usr/ports санг
бүтээх олонлогийн бусад машинууд дээр холбож өгөх явдал юм. Дараа нь та
/etc/make.conf файлыг distfiles
буюу түгээлтийн файлуудыг хуваалцахаар зөв тохируулж өгч болно.
Та DISTDIR хувьсагчийг таны NFS холболтуудад заагдсан
аль ч root хэрэглэгчийн хувьд бичигдэх боломжтой байх
нийтлэг хуваалцсан сангаар тохируулах шаардлагатай.
Машин бүр WRKDIRPREFIX хувьсагчийг локал
бүтээх сангаар зааж өгөх хэрэгтэй. Эцэст нь хэрэв та багцуудыг бүтээж түгээх
гэж байгаа бол PACKAGES хувьсагчийг
DISTDIR хувьсагчийн нэгэн адил сангаар зааж өгөх
хэрэгтэй.
diff --git a/mn_MN.UTF-8/books/handbook/filesystems/chapter.sgml b/mn_MN.UTF-8/books/handbook/filesystems/chapter.sgml
index 338c07160d..b941a17ba1 100644
--- a/mn_MN.UTF-8/books/handbook/filesystems/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/filesystems/chapter.sgml
@@ -1,611 +1,626 @@
Том
Рөүдс
Бичсэн
Файлын системийн дэмжлэг
Ерөнхий агуулга
File Systems
File Systems Support
File Systems
Файлын системүүд нь үйлдлийн системийн бүрэлдэхүүн хэсэг юм.
Тэдгээр нь хэрэглэгчдэд файл хуулж хадгалах, өгөгдөлд хандах боломжийг
бүрдүүлэх, тэгээд мэдээж хатуу хөтчүүдийг ашигтай болгодог. Өөр өөр
үйлдлийн системүүд нь нийтлэг нэг гол үзэлтэй бөгөөд тэр нь тэдгээрийн
эх файлын систем юм. &os; дээр энэ файлын систем нь бас
UFS гэгддэг эх Unix™ Файлын Систем дээр
бүтээгдсэн Түргэн Файлын Систем буюу FFS юм.
Энэ нь өгөгдөлд хандахад зориулж хатуу дискүүд дээр байрлуулагддаг
&os; дээрх эх файлын систем юм.
&os; нь бас бусад үйлдлийн системийн өгөгдөлд өөр дээрээсээ
өөрөөр хэлбэл холбогдсон USB хадгалалтын төхөөрөмжүүд,
флэш хөтчүүд болон хатуу дискүүд дээр хадгалагдсан өгөгдөлд хандах боломжийг
бүрдүүлэх зорилгоор төрөл бүрийн олон файлын системийг дэмждэг. Бас зарим эх бус
файлын системүүдэд зориулсан дэмжлэг байдаг. Эдгээр нь &linux;-ийн Extended
буюу Өргөтгөсөн Файлын Систем (EXT), болон &sun;-ий Z
Файлын Систем (ZFS) зэрэг өөр үйлдлийн системүүд
дээр хөгжүүлэгдсэн файлын системүүд юм.
&os; дээр төрөл бүрийн файлын системүүдэд зориулсан дэмжлэгийн
янз бүрийн түвшингүүд байдаг. Зарим нь цөмийн модулийг дуудахыг
шаарддаг бол зарим нь хэрэгслүүд суулгахыг шаардаж болох юм. Энэ бүлэг нь
&os;-ийн хэрэглэгчдэд өөрийн систем дээрээ &sun;-ий Z файлын системээс эхлээд
бусад файлын системүүдэд хандахад туслах зорилгоор хийгдсэн.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Эх болон дэмжигдсэн файлын системүүдийн ялгаа.
&os; дээр ямар файлын системүүд дэмжигдсэн талаар.
Эх бус файлын системүүдийг хэрхэн идэвхжүүлж, тохируулж
хандан ашиглах талаар.
Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:
&unix; болон &os;-ийн үндсүүдийг
() ойлгох.
Цөмийн тохиргоо/эмхэтгэлтийн
() үндсийг мэддэг байх.
&os; дээр гуравдагчдын програм хангамжийг суулгаж
() чаддаг байх.
&os; дээрх диск, хадгалалт болон төхөөрөмжийн нэрстэй
танилцсан байх ().
ZFS боломж нь туршилтын гэж тооцогддог.
Зарим тохиргоонууд ажиллагааны хувьд дутуу, зарим хэсэг нь ерөөсөө ажиллахгүй
байж болох юм. Цагийн явцад энэ боломж нь үйлдвэрлэлд ашиглагдахад
бэлэн гэж тооцогдох бөгөөд энэ баримт нь тэр тохиолдолд таарахаар
өөрчлөгдөх болно.
- Z Файлын Систем
+ Z Файлын Систем (ZFS)
&sun;-ий хөгжүүлсэн Z файлын систем нь цөөрөм хэлбэрийн
хадгалалтын аргыг ашиглахаар хийгдсэн шинэ технолог юм. Энэ нь
зай зөвхөн өгөгдөл хадгалалтад хэрэгтэй нөхцөлд ашиглагдана гэсэн
үг юм. Энэ нь өгөгдлийн хормын хувилбарууд, олон хуулбарууд, болон
өгөгдлийн хяналтын нийлбэрийг дэмжин өгөгдлийн максимум бүрэн бүтэн
байдалд зориулагдан бас хийгдсэн юм. RAID-Z
гэгддэг өгөгдлийн шинэ хуулбарлах загвар нэмэгдсэн.
RAID-Z загвар нь RAID5-тай
төстэй боловч өгөгдлийн бичилтийн эвдрэлтээс хамгаалахаар
хийгдсэн.
ZFS тааруулалт
ZFS дэд систем нь системийн эх үүсвэрүүдийн
ихэнхийг хэрэглэгдэг учир өдөр тутмын хэрэглээнд максимум үр ашгийг
хангахад шаардлагатай зарим нэг тааруулалт шаардлагатай байдаг. &os; дээр
туршилтын боломж гэгдэж байгаа боловч энэ нь ойрын ирээдүйд өөрчлөгдөж
болох юм. Гэхдээ одоогоор дараах алхмуудыг зөвлөдөг.
Санах ой
Нийт системийн санах ой хамгийн багаа бодоход нэг гигабайт
байх ёстой бөгөөд хоёр болон түүнээс дээшхийг зөвлөдөг. Энд байгаа
бүх жишээнүүдэд систем нь нэг гигабайт санах ойтой, хэд хэдэн бусад
тааруулах аргын хамтаар байх болно.
Зарим хүмүүс нэг гигабайт санах ойгоос бага санах ойг амжилттай ашиглаж
чадсан боловч тийм хязгаарлагдмал физик санах ойтой систем ачаалал ихтэй
үед &os; нь санах ойн шавхалтаас болж үймэх нь маш боломжийн байх
болно.
Цөмийн тохиргоо
Хэрэгцээгүй драйверууд болон тохиргоонуудыг цөмийн тохиргооны
файлаас устгахыг зөвлөдөг. Ихэнх төхөөрөмжүүд модуль хэлбэрээр
байдаг болохоор тэдгээрийг /boot/loader.conf
файлын тусламжтай дуудаж болно.
i386 архитектурын хэрэглэгчид өөрсдийн цөмийн тохиргооны файлдаа
дараах тохиргоог нэмж цөмөө дахин бүтээж дахин ачаалах хэрэгтэй:
options KVA_PAGES=512
Энэ тохиргоо нь vm.kvm_size тохируулгыг
одоо байгаа 1 GB (PAE-ийн хувьд 2 GB)
хязгаарыг давах боломжийг бүрдүүлж цөмийн хаягийн талбарыг
өргөтгөх болно. Энэ тохиргооны хувьд хамгийн тохиромжтой утгыг
олохын тулд мегабайтаар хүссэн хаягийн талбараа дөрөвт (4) хуваана.
Энэ тохиолдолд 2 GB-ийн хувьд 512
байна.
Дуудагчийн тохируулгууд
kmem хаягийн талбарыг &os;-ийн бүх
архитектур дээр ихэсгэх ёстой. Нэг гигабайт физик санах ойтой тест
систем дээр /boot/loader.conf файлд хийсэн
дараах тохируулгууд болон системийг дахин ачаалсны дараа амжилттай
болсон:
vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"
ZFS-тэй холбоотой тохируулгуудын талаар илүү дэлгэрэнгүй
зөвлөмжүүдийн жагсаалтыг
хаягаас үзнэ үү.
ZFS-г ашиглах нь
ZFS цөөрмүүдийг систем эхлэх
үед холбох боломжийг &os;-д олгох эхлүүлэх арга зам
байдаг. Үүнийг тохируулахын тулд дараах тушаалуудыг
ажиллуулна:
&prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf
&prompt.root; /etc/rc.d/zfs start
- Энэ баримтын үлдсэн хэсэг SCSI дискүүд байна
+ Энэ баримтын үлдсэн хэсэг 3 SCSI диск байна
гэж үзэх бөгөөд тэдгээр төхөөрөмжийн нэрс нь
- da0
- болон da1
+ da0,
+ da1 болон
+ da2
юм. IDE тоног төхөөрөмжийн хэрэглэгчид
SCSI-ийн оронд
ad төхөөрөмжүүдийг
ашигладаг.
Ганц дискийн цөөрөм
- Ганц диск төхөөрөмж дээр ZFS үүсгэхийн
+ Ганц дискийн төхөөрөмж ашиглан энгийн, нөөцгүй ZFS цөөрөм үүсгэхийн
тулд zpool тушаалыг ашиглана:
&prompt.root; zpool create example /dev/da0
Шинэ цөөрмийг харахын тулд df
тушаалын гаралтыг үзнэ:
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235230 1628718 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
example 17547136 0 17547136 0% /example
Энэ гаралт нь example цөөрөм
зөвхөн үүсгэгдээд зогсохгүй бас холбогдсон
гэдгийг тодорхой харуулж байна. Энэ нь энгийн файлын систем
шиг хандах боломжтой, үүн дээр файлууд үүсгэж хэрэглэгчид
дараах жишээн дээрх шиг үзэх боломжтой байна:
&prompt.root cd /example
&prompt.root; ls
&prompt.root; touch testfile
&prompt.root; ls -al
total 4
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile
Харамсалтай нь энэ цөөрөм ZFS-ийн
боломжуудын давуу талыг ашиглахгүй байна. Файлын системийг
энэ цөөрөм дээр үүсгэж түүн дээр шахалтыг идэвхжүүлнэ:
&prompt.root; zfs create example/compressed
&prompt.root; zfs set compression=gzip example/compressed
example/compressed нь одоо
ZFS шахагдсан файлын систем боллоо. Зарим нэг том файлуудыг
/example/compressed
хуулан түүн рүү хуулж үз.
Шахалтыг дараах тушаалаар болиулж болно:
&prompt.root; zfs set compression=off example/compressed
Файлын системийг салгахын тулд дараах тушаалыг ажиллуулж
df хэрэгслээр шалгана:
&prompt.root; zfs umount example/compressed
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235232 1628716 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
Файлын системийг дахин холбож дахин хандах боломжтой
болгоод df тушаалаар шалгана:
&prompt.root; zfs mount example/compressed
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressed
Цөөрөм болон файлын системийг mount
тушаалын гаралтыг шалган бас ажиглаж болно:
&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
example on /example (zfs, local)
example/data on /example/data (zfs, local)
example/compressed on /example/compressed (zfs, local)
Ажигласнаар ZFS файлын системүүд нь
үүсгэгдсэнийхээ дараагаар жирийн файлын системүүд шигээр
ашиглагдаж болно, гэхдээ өөр бусад олон боломжууд бас
байдаг. Дараах жишээн дээр шинэ файлын систем data
үүсгэгдэж байна. Чухал файлууд энд хадгалагдах учир файлын
систем нь өгөгдлийн блок бүрийн хоёр хуулбарыг хадгалахаар
тохируулагдсан:
&prompt.root; zfs create example/data
&prompt.root; zfs set copies=2 example/data
Одоо df-г дахин ажиллуулж
өгөгдөл болон зайн хэрэглээг харах боломжтой:
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressed
example/data 17547008 0 17547008 0% /example/data
Цөөрөм дээрх файлын систем бүр ижил хэмжээтэй зайтай байгааг
хараарай. Файлын системүүд нь зөвхөн хэрэгцээтэй зайгаа ашиглаж
ижил цөөрмөөс авч байгааг харуулахын тулд df тушаалыг энэ
жишээнүүд дээр ашигласан шалтгаантай юм. ZFS
файлын систем нь эзлэхүүн болон хуваалтууд гэх мэт ойлголтуудаас
ангид байж хэд хэдэн файлын систем нэг цөөрмийг эзлэхийг зөвшөөрдөг.
Файлын системүүдийг устгаад дараа нь цөөрмийг хэрэгцээгүй болсон
болохоор устгана:
&prompt.root; zfs destroy example/compressed
&prompt.root; zfs destroy example/data
&prompt.root; zpool destroy example
Дискүүд муудаж эвдрэх нь тойрох боломжгүй нөхцөл юм. Энэ диск
муудсан үед өгөгдөл алдагдах болно. Эвдэрсэн хатуу дискээс болоод
өгөгдлийн алдагдлаас хамгаалах нэг арга нь RAID-г
ашиглах явдал юм. ZFS нь энэ боломжийг
дараагийн хэсэгт тайлбарлах өөрийн цөөрмийн дизайндаа дэмжсэн
байдаг.
ZFS RAID-Z
- Өмнө хэлсэнчлэн энэ хэсэг нь хоёр
- SCSI байх бөгөөд
- da0 болон
- da1 гэж тооцно.
+ Өмнө хэлсэнчлэн энэ хэсэг нь гурван
+ SCSI диск байгаа гэж үзэх бөгөөд
+ da0
+ da1 болон
+ da2 (буюу эсвэл IDE диск ашиглагдаж
+ байвал ad0
+ гэх мэтээр) байна.
RAID-Z цөөрөм үүсгэхийн тулд
дараах тушаалыг өгнө:
- &prompt.root; zpool create storage raidz da0 da1
+ &prompt.root; zpool create storage raidz da0 da1 da2
+
+ &sun;-ий зөвлөснөөр RAID-Z тохиргоонд ашиглагдах
+ төхөөрөмжүүдийн тоо гурваас есийн хооронд байна. Хэрэв та 10 буюу түүнээс
+ олон дискээс тогтсон ганц цөөрөм үүсгэхийг хүсэж байгаа бол түүнийг
+ арай жижиг хэмжээтэй RAID-Z бүлгүүдэд хуваахыг бодох
+ хэрэгтэй. Хэрэв танд зөвхөн хоёр диск байгаа бөгөөд нөөцтэй байхыг хүсэж
+ байгаа бол ZFS толийг ашиглах хэрэгтэй. Дэлгэрэнгүйг
+ &man.zpool.8; гарын авлагын хуудаснаас үзнэ үү.
storage zpool үүсгэгдсэн байх ёстой.
Өмнөх шиг &man.mount.8; болон &man.df.1; тушаалуудыг ашиглан
үүнийг шалгаж болно. Дээрх жагсаалтын төгсгөлд өөр илүү дискийн
төхөөрөмжүүдийг нэмэн хуваарилж болно. Хэрэглэгчийн файлууд удахгүй
байрлах home гэгдсэн шинэ файлын системийг
цөөрөмд хийнэ:
&prompt.root; zfs create storage/home
Одоо шахалтыг идэвхжүүлж хэрэглэгчийн гэрийн сангууд болон файлуудын
илүү хуулбаруудыг хадгалах боломжтой. Үүнийг өмнөх шиг дараах тушаалуудыг
ашиглан хийж болно:
&prompt.root; zfs set copies=2 storage/home
&prompt.root; zfs set compression=gzip storage/home
Үүнийг хэрэглэгчдийн шинэ гэрийн сан болгохын тулд
хэрэглэгчийн өгөгдлийг энэ сан руу хуулж тохирох тэмдэгт
холбоосуудыг үүсгэнэ:
&prompt.root; cp -rp /home/* /storage/home
&prompt.root; rm -rf /home /usr/home
&prompt.root; ln -s /storage/home /home
&prompt.root; ln -s /storage/home /usr/home
Одоо хэрэглэгчдийн хувьд шинээр үүсгэгдсэн
/storage/home файлын
систем дээр тэдний өгөгдөл хадгалагдсан байх болно. Шинэ хэрэглэгч
нэмж тэр хэрэглэгчээр нэвтэрч үзээрэй.
Дараа нь буцааж болох хормын хувилбар үүсгэж үзээрэй:
&prompt.root; zfs snapshot storage/home@08-30-08
Хормын хувилбар тохиргоо нь гэрийн сан ч биш эсвэл файл ч
биш зөвхөн жинхэнэ файлын системийг авахыг анхаараарай.
@ тэмдэгт нь файлын системийн нэр эсвэл
эзлэхүүний нэрийн хооронд ашиглагдсан зааглагч юм. Хэрэглэгчийн
гэрийн сан устгагдах үед түүнийг доорх тушаалаар сэргээнэ:
&prompt.root; zfs rollback storage/home@08-30-08
Байгаа хормын хувилбаруудын жагсаалтыг авахын тулд
ls-г файлын системийн
.zfs/snapshot
сан дотор ажиллуулна. Жишээ нь өмнө нь авсан хормын хувилбарыг
харахын тулд дараах тушаалыг гүйцэтгэнэ:
&prompt.root; ls /storage/home/.zfs/snapshot
Хэрэглэгчийн өгөгдөл дээр сар бүрийн хормын хувилбар үүсгэх
скрипт бичих боломжтой боловч хожим хормын хувилбарууд нь
ихээхэн хэмжээний дискийн хэмжээ эзлэх болно. Түрүүчийн
хормын хувилбарыг дараах тушаал ашиглан устгаж болно:
&prompt.root; zfs destroy storage/home@08-30-08
Энэ бүх тестийн дараагаар
/storage/home
санг бид одоо байгаа төлөвт нь байлгаад байх шалтгаан байх
ёсгүй юм. Үүнийг жинхэнэ
/home файлын систем
болгох хэрэгтэй:
&prompt.root; zfs set mountpoint=/home storage/home
df болон
mount тушаалуудыг ажиллуулснаар систем бидний
файлын системийг жинхэнэ /home
сан гэж үзэж байгааг харуулна:
&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
storage on /storage (zfs, local)
storage/home on /home (zfs, local)
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235240 1628708 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
-storage 17547008 0 17547008 0% /storage
-storage/home 17547008 0 17547008 0% /home
+storage 26320512 0 26320512 0% /storage
+storage/home 26320512 0 26320512 0% /home
Ингэснээр RAID-Z тохиргоо дуусаж
байна. Шөнө бүрийн &man.periodic.8; ажиллах үед үүссэн
файлын системүүдийн талаар төлвийн шинэчлэлтүүдийг авахын тулд
дараах тушаалыг ажиллуулна:
&prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf
RAID-Z-г сэргээх нь
Програм хангамжийн RAID бүр
өөрсдийн төлвийг хянах аргатай байдаг.
ZFS нь ч мөн адил.
RAID-Z төхөөрөмжүүдийн төлвийг дараах
тушаалаар харж болно:
&prompt.root; zpool status -x
Хэрэв бүх цөөрмүүд эрүүл ба бүгд хэвийн бол дараах
мэдэгдэл гарна:
all pools are healthy
Хэрэв асуудал байвал магадгүй диск холболтгүй болчихвол
цөөрмийн төлөв иймэрхүү харагдах болно:
pool: storage
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da1 OFFLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errors
Энэ нь төхөөрөмжийг администратор салгасан гэдгийг
харуулж байна. Ялангуяа энэ жишээний хувьд энэ нь үнэн юм.
Дискийг салгахын тулд дараах тушаалыг ашиглажээ:
&prompt.root; zpool offline storage da1
Одоо системийг унтраасны дараа da1-г
солих боломжтой. Систем буцаж ассаны дараа дараах тушаалыг ажиллуулж
дискийг солино:
&prompt.root; zpool replace storage da1
Эндээс төлвийг дахин шалгаж болох бөгөөд энэ удаад
төлвийн мэдээллийг авахын тулд өгөгдөлгүйгээр
үзнэ:
&prompt.root; zpool status storage
pool: storage
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errors
Энэ жишээнээс харахад бүгд хэвийн харагдаж байна.
Өгөгдлийн шалгалт
Өмнө дурдсанчлан ZFS нь
хадгалагдсан өгөгдлийн бүрэн бүтэн байдлыг шалгахдаа
хяналтын нийлбэрийг ашигладаг.
Тэдгээр нь файлын системүүдийг үүсгэхэд автоматаар
идэвхждэг бөгөөд дараах тушаалыг ашиглан болиулж болно:
&prompt.root; zfs set checksum=off storage/home
Энэ нь ухаалаг санаа биш боловч хяналтын нийлбэрүүд нь
маш бага хадгалалтын зай эзэлдэг бөгөөд идэвжсэн байхдаа илүү
ашигтай байдаг. Бас тэдгээрийг идэвхжүүлснээр мэдэгдэхээр зардал
бас ажиглагддаггүй. Идэвхжсэн байх үед өгөгдлийн бүрэн бүтэн байдлыг
хяналтын нийлбэрийн шалгалт ашиглан ZFS
шалгах боломжтой байдаг. Энэ процессийг цэвэрлэх
гэж хэлдэг. storage цөөрмийн өгөгдлийн
бүрэн бүтэн байдлыг шалгахын тулд дараах тушаалыг ажиллуулна:
&prompt.root; zpool scrub storage
Энэ процесс хадгалагдсан өгөгдлийн хэмжээнээс хамаарч
ихээхэн хэмжээний хугацаа шаардаж болох юм. Энэ нь бас
эдгээр үйлдлүүдийн зөвхөн нэг нь тухайн үед ажиллаж болохоор тийм
ихээр I/O-г ашигладаг байна. Цэвэрлэлт
дууссаны дараа төлөв шинэчлэгдэж төлвийн хүсэлтийг илгээн
харж болно:
&prompt.root; zpool status storage
pool: storage
state: ONLINE
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
errors: No known data errors
Дууссан хугацаа энэ жишээн дээр цэврээр харуулагдаж байна.
Энэ боломж нь өгөгдлийн бүрэн бүтэн байдлыг урт хугацааны
турш хадгалахад баталгаа болж тусалдаг.
Z файлын системд зориулсан өөр олон тохиргоонууд
байдаг бөгөөд &man.zfs.8; болон &man.zpool.8; гарын авлагын
хуудсуудыг үзнэ үү.
diff --git a/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml b/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml
index dc3a4ba3e0..b60695cf89 100644
--- a/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/multimedia/chapter.sgml
@@ -1,1743 +1,1789 @@
Росс
Липперт
Засварласан
Цагаанхүүгийн
Ганболд
Орчуулсан
Мультимедиа
Ерөнхий агуулга
FreeBSD нь танд өөрийн компьютераас гарах өндөр чанарын гаралтад
сэтгэл ханамжтай байх боломжийг олгож төрөл бүрийн дууны картуудыг дэмждэг.
Энэ нь аудиог MPEG Аудио Давхарга 3 (MP3), WAV, болон Ogg Vorbis
зэрэг бусад олон хэлбэршилтүүдээр бичлэг хийх болон тоглуулах чадвартай
байдаг. FreeBSD-ийн портын цуглуулга нь таны бичигдсэн аудиог засварлах,
дууны нөлөөллүүдийг нэмэх болон залгагдсан MIDI төхөөрөмжүүд хянахыг
зөвшөөрөх програмуудыг бас агуулдаг.
Зарим нэг туршилтын тусламжтайгаар FreeBSD нь видео файлууд болон DVD-үүдийг
тоглуулахыг дэмжиж чаддаг. Төрөл бүрийн видео зөөвөрлөгчийг
кодчилох, хөрвүүлэх, болон тоглуулах програмуудын тоо дууны програмуудын
тоотой харьцуулах юм бол хязгаарлагдмал байдаг. Жишээ нь, үүнийг бичиж
байх үед, audio/sox-той адил
хэлбэршилтүүдийн хооронд хөрвүүлэхэд хэрэглэгдэх дахин кодчилох сайн програм
FreeBSD-ийн портын цуглуулгад байхгүй байгаа билээ. Гэхдээ энэ талбар дахь
програм хангамжийн байдал хурдацтай өөрчлөгдөж байна.
Энэ бүлэг нь таны дууны картыг тохируулахад шаардлагатай алхмуудыг
тайлбарлах болно. X11-ийн () тохиргоо болон
суулгац нь таны видео тоног төхөөрөмжийн асуудлуудыг аль хэдийн зохицуулсан
байдаг боловч илүү сайн тоглуулахын тулд зарим нэгэн нарийн тохируулгууд
хийх хэрэгтэй байж болох юм.
Энэ бүлгийг уншиж дууссаны дараа та дараах зүйлсийг мэдэх болно:
Таны дууны карт чинь танигдсан байхаар өөрийн системээ хэрхэн тохируулах
талаар.
Таны карт ажиллаж байгааг шалгах аргууд.
Өөрийн дууны тохиргооны алдааг хэрхэн олж засварлах талаар.
MP3-ууд болон бусад аудиог хэрхэн тоглуулах ба кодчилох талаар.
X серверээр видео хэрхэн дэмжигдсэн талаар.
Сайн үр дүн өгдөг зарим нэгэн тоглуулагч/кодчилогч портууд.
DVD-үүд, .mpg болон
.avi файлуудыг хэрхэн тоглуулах талаар.
CD болон DVD-ээс файлууд уруу агуулгыг хэрхэн авах талаар.
TV карт хэрхэн тохируулах талаар.
Дүрс скан хийгчийг хэрхэн тохируулах талаар.
Энэ бүлгийг уншихаасаа өмнө, та дараах зүйлсийг мэдэх шаардлагатай:
Шинэ цөмийг хэрхэн тохируулж суулгах талаар мэдэх ().
&man.mount.8; тушаалаар аудио CD-үүдийг холбохыг оролдох нь
хамгийн гайгүйдээ алдаанд, хамгийн муудаа цөмийн
сүйрэлд хүргэж болох юм. Эдгээр зөөвөрлөгчид нь
ердийн ISO файлын системүүдээс ялгаатай тусгай кодчилолуудтай
байдаг.
Мозес
Мур
Хувь нэмэр болгон оруулсан
Марк
Фонвил
&os; 5.X-д зориулж өргөжүүлсэн
Дууны картыг тохируулах
Системийг тохируулах
PCI
ISA
дууны картууд
Эхлэхээсээ өмнө та өөртөө байгаа картынхаа загвар, ашиглаж байгаа
бичил схем болон PCI эсвэл ISA картны алин болохыг мэдэх шаардлагатай.
FreeBSD нь төрөл бүрийн PCI эсвэл ISA картуудыг дэмждэг.
Тоног төхөөрөмжийн тэмдэглэгээний
дэмжигдсэн аудио төхөөрөмжүүдийн жагсаалтыг шалгаж өөрийн картыг
дэмжигдсэн эсэхийг үзээрэй. Тоног төхөөрөмжийн тэмдэглэгээ нь таны картыг ямар
драйвер дэмждэгийг бас хэлэх болно.
цөм
тохиргоо
Өөрийн дууны төхөөрөмжийг ашиглахын тулд тохирох төхөөрөмжийн драйверийг
та ачаалах хэрэгтэй болно. Үүнийг хоёр аргын аль нэгээр хийж болно.
Хамгийн амархан арга бол &man.kldload.8; тушаалаар өөрийн картныхаа
цөмийн модулийг тушаалын мөрөөс:
&prompt.root; kldload snd_emu10k1
гэж ачаалах юм уу эсвэл /boot/loader.conf
файлд тохирох мөрийг ингэж нэмэн дуудаж болно:
snd_emu10k1_load="YES"
Эдгээр жишээнүүд нь Creative &soundblaster; Live! дууны картанд
зориулагдсан юм. Бусад байгаа дуудагдаж болох дууны модулиуд
/boot/defaults/loader.conf-д жагсаагдсан
байдаг. Хэрэв та аль драйверийг ашиглахаа мэдэхгүй эргэлзэж байвал
snd_driver модулийг дуудаж үзэж болох юм:
&prompt.root; kldload snd_driver
Энэ нь хамгийн түгээмэл драйверуудыг нэг удаа ачаалдаг метадрайвер юм.
Энэ нь зөв драйверийг хайхыг хурдасгадаг. Дууны бүх драйверуудыг
/boot/loader.conf файлаар ачаалах
бас боломжтой байдаг.
snd_driver метадрайверийг дуудсаны дараа
та өөрийн дууны картдаа ямар драйвер сонгогдсоныг олохыг хүсвэл
/dev/sndstat файлыг cat /dev/sndstat
тушаалын тусламжтай шалгаж болох юм.
Хоёр дахь арга нь өөрийн дууны картын дэмжлэгийг өөрийн цөмдөө эмхэтгэх
явдал юм. Доорх хэсэг нь энэ аргаар өөрийн тоног төхөөрөмжид зориулан
дэмжлэг нэмэхэд шаардлагатай мэдээллийг өгнө. Өөрийн цөмийг дахин эмхэтгэх
тухай дэлгэрэнгүй мэдээллийг -с
үзнэ үү.
Дууны дэмжлэгтэй цөмийг тохируулах
Эхлээд хийх ёстой зүйл нь аудио тогтолцооны драйвер &man.sound.4;-г
цөм уруу нэмэх явдал юм. Ингэхийн тулд та дараах мөрийг цөмийн тохиргооны
файлдаа нэмэх хэрэгтэй болно:
device sound
Дараа нь та өөрийн дууны картдаа зориулж дэмжлэг нэмэх хэрэгтэй.
Тийм болохоор картыг ямар драйвер дэмждэгийг мэдэх хэрэгтэй.
Өөрийн дууны картын зөв драйверийг тодорхойлохын тулд
Тоног төхөөрөмжийн тэмдэглэгээний
дэмжигдсэн аудио төхөөрөмжүүдийн жагсаалтыг шалгах хэрэгтэй. Жишээ нь
Creative &soundblaster; Live! дууны карт нь &man.snd.emu10k1.4;
драйвераар дэмжигдсэн байдаг. Энэ картанд зориулж дэмжлэг нэмэхийн тулд
доор дурдсаныг ашиглана:
device snd_emu10k1
Хэрхэн ашиглах талаар драйверийн гарын авлагын хуудаснаас
уншихаа мартуузай. Дэмжигдсэн дууны драйверуудын цөмийн тохиргооны
зөв бичиглэлийг /usr/src/sys/conf/NOTES
файлаас бас олж болно.
PnP биш ISA дууны картууд нь цөмийг картын тохируулгуудын
(IRQ, I/O порт, гэх мэт) тухай мэдээлэлтэй нь танаас шаардаж
болох юм. Энэ нь бүх PnP биш ISA дууны картуудын хувьд үнэн
байдаг.
Үүнийг /boot/device.hints
файлын тусламжтай хийдэг. Системийг ачаалах үед &man.loader.8;
нь энэ файлыг уншиж тохируулгуудыг цөм уруу дамжуулдаг. Жишээ нь
хуучин Creative &soundblaster; 16 ISA PnP биш карт
&man.snd.sbc.4; драйверийг snd_sb16-тай цуг ашиглах
болно. Энэ картны хувьд дараах мөрүүдийг цөмийн тохиргооны файлд
нэмэх хэрэгтэй:
device snd_sbc
device snd_sb16
бөгөөд бас доор дурдсаныг /boot/device.hints-д
нэмэх хэрэгтэй:
hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"
Энэ тохиолдолд карт нь 0x220
I/O порт болон IRQ 5-ыг ашиглаж байна.
/boot/device.hints файлд ашигласан
зөв бичиглэлийн талаар &man.sound.4; драйверийн гарын авлагын хуудас болон
ашиглах гэж байгаа драйверийн гарын авлагын хуудсанд өгүүлсэн
байдаг.
Дээр үзүүлсэн тохируулгууд нь анхдагчууд юм. Зарим тохиолдолд
та IRQ юм уу эсвэл бусад тохируулгуудыг өөрийн картдаа тааруулан өөрчлөх
хэрэг гарч болох юм. Энэ картны талаар дэлгэрэнгүй мэдээллийг &man.snd.sbc.4; гарын авлагын
хуудаснаас үзнэ үү.
Дууны картыг тест хийх
Өөрчилсөн цөмийг дахин ачаалсны дараа эсвэл шаардлагатай модулийг
дуудсаны дараа дууны карт нь иймэрхүүгээр таны системийн мэдэгдлийн
буферт (&man.dmesg.8;) гарч ирэх ёстой:
pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>
Дууны картын төлөвийг /dev/sndstat
файлын тусламжтай шалгаж болно:
&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)
Таны системээс гарах гаралт өөр өөр байж болно. Хэрэв
ямар ч pcm төхөөрөмжүүд гарч ирэхгүй
байвал буцаад урьд нь юу хийснийгээ дахин шалгах хэрэгтэй.
Өөрийн цөмийн тохиргооны файлыг дахин шалгаж зөв төхөөрөмжийн драйвер сонгогдсон
эсэхийг шалгаарай. Нийтлэг асуудлууд хэсэгт жагсаагдсан байгаа.
Хэрэв бүгд зүгээр болвол одоо та ажиллагаатай дууны карттай байх ёстой.
Хэрэв таны CD-ROM эсвэл DVD-ROM хөтчийн дууны гаралтын холбогч таны дууны карттай зөв холбогдсон
бол та хөтөчдөө CD хийж түүнийг &man.cdcontrol.1;-оор тоглуулж болно:
&prompt.user; cdcontrol -f /dev/acd0 play 1
audio/workman зэрэг төрөл бүрийн
програмууд нь илүү нөхөрсөг интерфэйсийн боломжтой байдаг. Та
MP3 аудио файлууд сонсохын тулд
audio/mpg123 зэрэг
програмыг суулгахыг хүсэж болох юм.
Картыг хурдан тест хийх өөр нэг арга бол
/dev/dsp уруу өгөгдөл иймэрхүү маягаар
илгээх явдал юм:
&prompt.user; cat filename > /dev/dsp
Энд байгаа filename нь ямар ч
файл байж болно. Энэ тушаалын мөр нь шуугиан үүсгэх ёстой бөгөөд энэ нь
уг дууны карт ажиллаж байгааг баталж байгаа юм.
Дууны картын холигчийн түвшингүүдийг &man.mixer.8; тушаалаар
өөрчилж болно. Илүү дэлгэрэнгүйг &man.mixer.8; гарын авлагын хуудаснаас
олж болно.
Нийтлэг асуудлууд
төхөөрөмжийн цэгүүд
I/O порт
IRQ
DSP
Алдаа
Шийдэл
sb_dspwr(XX) timed out
I/O порт зөв тохируулагдаагүй.
bad irq XX
IRQ буруу тохируулагдсан. Тохируулагдсан IRQ болон
дууны IRQ адил байгаа эсэхийг шалгана.
xxx: gus pcm not attached, out of memory
Төхөөрөмжийн ашиглах хангалттай санах ой байхгүй байна.
xxx: can't open /dev/dsp!
Өөр програм төхөөрөмжийг онгорхой барьж байгаа
эсэхийг fstat | grep dsp тушаалаар шалгана.
Дурдахад илүүдэхгүй хэргийн эзэд бол esound болон KDE-ийн
дууны дэмжлэгүүд юм.
Муниш
Чопра
Хувь нэмэр болгон оруулсан
Дууны олон эхүүдийг хэрэглэх нь
esound эсвэл
artsd нь зарим нэг програмуудтай дууны
төхөөрөмжийг хуваалцахыг дэмждэггүй бөгөөд энэ тохиолдолд заримдаа зэрэг
тоглуулах чадвартай дууны олон эхүүдтэй байх туйлын сонирхол байдаг.
FreeBSD нь &man.sysctl.8; хэрэгслийн тусламжтай идэвхжүүлж
болох Виртуал Дууны Сувгуудын тусламжтай үүнийг
хийх боломжийг танд олгодог. Виртуал сувгууд нь цөмд дууг холих замаар
өөрийн дууны картын тоглуулалтыг олон болгохыг танд зөвшөөрдөг.
Виртуал сувгуудын тоог тохируулах хоёр sysctl-ийн хувьсагч байдаг бөгөөд
хэрэв та root хэрэглэгч бол иймэрхүү маягаар үүнийг
тохируулж болно:
&prompt.root; sysctl dev.pcm.0.play.vchans=4
&prompt.root; sysctl dev.pcm.0.rec.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4
Дээрх жишээ нь дөрвөн виртуал сувгийг хуваарилж байгаа бөгөөд энэ тоо нь
өдөр тутмын хэрэглээнд зориулагдсан практик тоо юм.
dev.pcm.0.play.vchans=4 болон
dev.pcm.0.rec.vchans=4 нь pcm0-ийн
тоглуулах болон бичих виртуал сувгуудын тоо бөгөөд төхөөрөмжийг
залгасны дараа тохируулах боломжтой
болдог. hw.snd.maxautovchans нь &man.kldload.8;
ашиглан залгагдах үед шинэ аудио төхөөрөмжид өгөгдөх виртуал сувгуудын тоо юм.
pcm төхөөрөмж нь тоног төхөөрөмжийн драйверуудаас
тусдаа дуудагдаж болох учраас hw.snd.maxautovchans нь
дараа нь залгагдах төхөөрөмжүүдэд өгөгдөх виртуал сувгуудын тоог хадгалдаг.
Дэлгэрэнгүй мэдээллийг &man.pcm.4; гарын авлагын хуудаснаас үзнэ үү.
Төхөөрөмжийг ашиглаж байхад та виртуал сувгуудын тоог өөрчилж чадахгүй.
Эхлээд хөгжим тоглуулагчид юм уу эсвэл дууны дэмонууд зэрэг төхөөрөмжийг ашиглаж
байгаа програмуудыг хаах хэрэгтэй.
Хэрэв та &man.devfs.5;-ийг ашиглахгүй байгаа бол өөрийн програмуудаа
/dev/dsp0.x
уруу зааж өгөх хэрэгтэй болох бөгөөд дээрх жишээн дээрх шиг
dev.pcm.0.rec.vchans 4 гэж тохируулагдсан бол
x нь 0-ээс 3-ийн хооронд байна.
&man.devfs.5; ашиглаж байгаа систем дээр дээрх нь /dev/dsp0-ийг
хүсэх програмд мэдэгдэлгүйгээр автоматаар хуваарилагдах болно.
Жозеф
Эл-Рэйэс
Хувь нэмэр болгон оруулсан
Холигчийн сувгуудын анхдагч утгуудыг тохируулах
Өөр өөр холигчийн сувгуудын анхдагч утгууд нь &man.pcm.4; драйверийн
эх кодонд бичигдэж хийгдсэн байдаг. Холигчийн ажиллуулах явцад санагдсан
утгуудыг тохируулах боломжийг олгодог олон төрлийн програмууд болон дэмонууд
байдаг боловч энэ нь цэвэр шийдэл биш юм. Холигчийн анхдагч утгуудыг драйверийн түвшинд
тохируулж болдог. Үүнийг /boot/device.hints
файлд тохирох утгуудыг тодорхойлон хийдэг. Өөрөө хэлбэл:
hint.pcm.0.vol="50"
Энэ нь &man.pcm.4; модуль ачаалагдах үед дууны сувгийн чангыг
анхдагч утга 50 гэж тохируулах болно.
Шерн
Ли
Хувь нэмэр болгон оруулсан
MP3 аудио
MP3 (MPEG Давхарга 3 Аудио) нь CD-тэй ойролцоо дууны чанарт хүрдэг
бөгөөд энэ боломжийг таны FreeBSD ажлын станц ашиглахгүйгээр үлдэх ямар нэг
шалтгаан байх ёсгүй юм.
MP3 тоглуулагчид
Хамгийн алдартай X11 MP3 тоглуулагч бол XMMS
(X Multimedia System) юм. Nullsoft-ийн Winamp-тай
GUI нь бараг л адилхан болохоор Winamp-ийн
арьснуудыг XMMS-д ашиглаж болдог.
XMMS нь өөрийн гэсэн залгаасын дэмжлэгтэй
бас байдаг.
XMMS нь multimedia/xmms
портоос эсвэл багцаас суулгагдаж болдог.
XMMS-ийн интерфэйс нь хялбар бөгөөд
тоглуулах жагсаалт, графикийн тэнцүүлэгч болон өөр олон боломжуудтай байдаг.
Winamp-ийг мэддэг хүмүүс
XMMS-ийг ашиглахад хялбарыг
олж мэдэх болно.
audio/mpg123 нь өөр нэг, тушаалын
мөрийн MP3 тоглуулагч юм.
mpg123-ийг тушаалын мөрөөс
дууны төхөөрөмж болон MP3 файлыг зааж өгөн
ажиллуулж болно. Таны дууны төхөөрөмж
/dev/dsp1.0 бөгөөд MP3 файл
Foobar-GreatestHits.mp3-ийг тоглуулахыг
хүсэж байгаа гэж үзвэл дараах тушаалыг ажиллуулна:
&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
CD Аудио замуудыг авах нь
CD эсвэл CD замыг MP3 уруу кодчилохоосоо өмнө CD дээрх аудио өгөгдлийг
хатуу хөтөч уруугаа авах ёстой. Түүхий CDDA (CD Digital Audio) өгөгдлийг
WAV файлууд уруу хуулан үүнийг хийдэг.
sysutils/cdrtools
цуглуулгын cdda2wav хэрэгсэл нь CD-үүдээс аудио
мэдээлэл болон тэдгээртэй холбоотой мэдээллийг авахад хэрэглэгддэг.
Хөтөчид аудио CD байхад дараах тушаалыг (root-ээр)
ажиллуулж бүх CD-г тус тусдаа (зам тус бүрийг) WAV файлуудад авч
болно:
&prompt.root; cdda2wav -D 0,1,0 -B
cdda2wav нь ATAPI (IDE) CDROM
хөтчүүдийг дэмжих болно. IDE хөтчөөс авахын тулд SCSI нэгжийн дугааруудын
оронд төхөөрөмжийн нэрийг заах хэрэгтэй. Жишээ нь 7-р замыг IDE хөтчөөс
авахын тулд:
&prompt.root; cdda2wav -D /dev/acd0 -t 7
тохируулга нь cdrecord
-scanbus тушаалын гаралттай таарч байгаа
SCSI төхөөрөмж 0,1,0-ийг заана.
Замуудыг авахын тулд тохируулгыг
доор үзүүлсэн шиг ашиглана:
&prompt.root; cdda2wav -D 0,1,0 -t 7
Энэ жишээ нь аудио CDROM-ийн долдугаар замыг авч байна. Хэсэг
замуудыг авахын тулд, жишээ нь, нэгээс долоо хүртэлх замыг авахын тулд
хүрээг зааж өгнө:
&prompt.root; cdda2wav -D 0,1,0 -t 1+7
&man.dd.1; хэрэгсэл ATAPI хөтчүүд дээрх аудио замуудыг
гаргаж авахад бас ашиглагдаж болно. Энэ боломжийн талаар дэлгэрэнгүйг
-с уншина уу.
MP3-уудыг кодчилох
Өнөө үед сонгож байгаа mp3 кодчилогч бол Lame юм.
Lame нь audio/lame
портын модноос олдож болно.
Авсан WAV файлуудыг ашиглан дараах тушаал
audio01.wav-г
audio01.mp3 болгон хөрвүүлнэ:
&prompt.root; lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3
128 кбит нь ашиглагдаж байгаа стандарт MP3 битийн хурд юм
шиг байгаа юм. Олон хүмүүс илүү өндөр чанарын 160 эсвэл 192 гэсэн
хурдуудад сэтгэл ханамжтай байдаг. Битийн хурд өндөр болох тусам
MP3 илүү их дискний хэмжээг ашиглах боловч чанар өндөр болдог.
тохируулга нь илүү өндөр чанартай боловч
бага зэрэг удаан
горимыг идэвхжүүлдэг.
-ээр эхэлсэн тохируулгууд ID3 мэдээллүүдийг заадаг
бөгөөд энэ нь MP3 файл дотор оруулах дууны мэдээллийг ихэвчлэн агуулдаг.
Нэмэлт кодчилох тохируулгуудыг lame-ийн гарын авлагын хуудаснаас лавлан
олж болно.
MP3-уудыг декод хийх
Аудио CD-г MP3-уудаас шарахын тул тэдгээр нь шахагдаагүй WAV хэлбэршилт уруу
хөрвүүлэгдэх ёстой. XMMS болон
mpg123 нь MP3-ийн гаралтыг
шахаагүй файлын хэлбэршилт уруу гаргахыг дэмждэг.
XMMS-ээр диск уруу бичихдээ:
XMMS-ийг ажиллуулна.
Цонхон дээр баруун товчлуурыг дарж XMMS-ийн
цэсийг гаргана.
Options-оос
Preference-ийг сонгоно.
Гаралтын Залгаасыг (Output Plugin) Disk Writer
Plugin
болгон өөрчилнө.
Configure-г дарна.
Шахагдаагүй файлуудыг бичих санг оруулна
(эсвэл browse-ийг сонгоно).
MP3 файлыг XMMS
уруу, дууны чангыг 100% болгон EQ тохиргоонуудыг
хааж ердийнхөөрөө дуудна.
Play-г дарна —
XMMS нь MP3 тоглуулж байгаа
юм шигээр гарах бөгөөд гэхдээ хөгжим сонсогдохгүй. Энэ нь үнэндээ
MP3-ийг файл уруу тоглуулж байгаа юм.
MP3-уудыг дахин сонсохын тулд анхдагч Гаралтын Залгаасыг буцааж
өмнө нь байсан шигээр тохируулахаа мартуузай.
mpg123-аар stdout уруу бичих:
mpg123 -s audio01.mp3
> audio01.pcm тушаалыг ажиллуулна
XMMS нь файлыг WAV хэлбэршилтээр
бичдэг бол mpg123 нь MP3-ийг түүхий
PCM аудио өгөгдөл болгон хөрвүүлдэг. Эдгээр хэлбэршилтүүдийг
cdrecord-д аудио CD-үүд хийхийн тулд
ашиглаж болно. Та түүхий PCM-ийг &man.burncd.8;-д ашиглах ёстой.
Хэрэв та WAV файлуудыг ашиглавал зам болгоны эхэнд богино тик гэсэн чимээг
мэдрэх бөгөөд энэ чимээ нь WAV файлын толгой юм. Та WAV файлын
толгойг SoX хэрэгсэл ашиглан арилгаж болно
(үүнийг audio/sox портоос эсвэл
багцаас суулгаж болно):
&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.raw
FreeBSD дээр CD шарагчийг ашиглах тухай илүү дэлгэрэнгүй мэдээллийг
-с уншина уу.
Росс
Липперт
Хувь нэмэр болгон оруулсан
Видео тоглуулах
Видео тоглуулах нь маш шинэ, хурдацтай хөгжиж байгаа хэрэглээний талбар
юм. Хүлээцтэй байгаарай. Дууны хувьд хийгдсэн шиг бүгд асуудалгүй ажиллахгүй
байж болох юм.
Эхлэхээсээ өмнө өөрийн видео картын загвар болон ашиглаж байгаа
бичил схемийг та мэдэх шаардлагатай. &xorg; болон &xfree86;
нь төрөл бүрийн видео картуудыг дэмждэг боловч цөөхөн нь сайн
тоглуулах ажиллагаатай байдаг. Өөрийн картыг ашиглан X серверийн
дэмжсэн өргөтгөлүүдийн жагсаалтыг авахын тулд X11-ийг ажиллаж байхад
нь &man.xdpyinfo.1; тушаалыг ашиглах хэрэгтэй.
Ер нь богино хэмжээний MPEG файлтай байх нь зүйтэй бөгөөд
төрөл бүрийн тоглуулагч болон тохируулгуудыг шалгахад тест файл
маягаар ашиглагдаж болох юм. Зарим нэгэн DVD тоглуулагчид анхдагчаар
/dev/dvd-д DVD зөөвөрлөгчийг хайх юм уу
эсвэл энэ төхөөрөмжийн нэрийг тэдгээрт бичигдсэн байх ёстой гэж үздэг
болохоор та симболын холбоосыг тохирох төхөөрөмжүүд уруу хийж
өгөх нь ашигтай байж болох юм:
&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvd
&man.devfs.5;-ийн хийгдсэн чанараас хамаараад эдгээр шиг гараар
хийгдсэн холбоосууд нь системийг дахин ачаалахад үлддэггүй. Өөрийн
системийг ачаалахад автоматаар симболын холбоосууд үүсгэхийн тулд
дараах мөрүүдийг /etc/devfs.conf файлд
нэмнэ:
link acd0 dvd
link acd0 rdvd
Мөн тусгай DVD-ROM функцуудыг ажиллуулахыг шаарддаг DVD
шифрлэлтийг буцаах үйлдэл нь DVD төхөөрөмж дээр бичих зөвшөөрлийг
шаарддаг.
Хуваалцсан санах ойн X11 интерфэйсийг өргөтгөж сайжруулахын тулд
зарим &man.sysctl.8; хувьсагчдын утгуудыг ихэсгэх шаардлагатай
байдаг:
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
Видео боломжуудыг тодорхойлох нь
XVideo
SDL
DGA
X11 дээр видеог үзүүлэх хэд хэдэн боломжит аргууд байдаг.
Яг юу ажиллах нь голчлон тоног төхөөрөмжөөс хамаарна.
Доор тайлбарласан арга бүр тоног төхөөрөмжөөс хамаараад
чанарын хувьд янз бүр байна. Хоёрдугаарт X11 дээр
видеог амь оруулах нь сүүлийн үед маш их анхаарал татаж
байгаа сэдэв бөгөөд &xorg;, юм уу эсвэл &xfree86;-ийн
хувилбар бүрт чухал сайжруулалт хийгдсэн байж болох юм.
Нийтлэг видео интерфэйсүүдийг дурдвал:
X11: хуваалцсан санах ойг ашиглах ердийн X11 гаралт.
XVideo: Дурын X11-ийн дүрслэгдэх боломжтой зүйл дээр
видеог дэмждэг X11 интерфэйсийн өргөтгөл.
SDL: Simple Directmedia Layer буюу энгийн Directmedia давхарга.
DGA: Direct Graphics Access буюу шууд графикийн хандалт.
SVGAlib: доод түвшний консолын график давхарга.
XVideo
&xorg; болон &xfree86; 4.X
нь видеог тусгай хурдасгуураар дүрслэгдэхүйц обьектууд дээр шууд үзүүлэхийг
зөвшөөрдөг XVideo (бас Xvideo, Xv, xv гэгддэг)
гэгддэг өргөтгөлтэй байдаг. Энэ өргөтгөл нь доод түвшний чанар муутай машин
дээр ч гэсэн видеог сайн чанартай тоглуулах боломжийг олгодог.
Өргөтгөл ажиллаж байгаа эсэхийг шалгахын тулд
xvinfo тушаалыг ашиглана:
&prompt.user; xvinfo
Хэрэв үр дүн иймэрхүү харагдвал XVideo нь таны картны хувьд
дэмжигдсэн байна:
X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0
Жагсаагдсан хэлбэршилтүүд (YUV2, YUV12, гэх мэт) нь
XVideo-ийн шийдэл бүрт байдаггүй бөгөөд тэдгээрийн энэ
байхгүй явдал нь зарим нэг тоглуулагчдад саад болж болохыг
санаарай.
Хэрэв үр дүн иймэрхүү харагдаж байвал:
X-Video Extension version 2.2
screen #0
no adaptors present
XVideo таны картын хувьд дэмжигдээгүй байх магадлалтай.
Хэрэв XVideo нь таны картын хувьд дэмжигдээгүй байвал
амилуулж байгаа видео тооцоололтын шаардлагуудыг
таны дэлгэц хангах нь улам илүү хэцүү болно гэсэн
үг юм. Таны видео карт болон процессороос хамаараад
магадгүй та сэтгэл ханахуйц үр дүнд хүрч болох юм.
Ажиллагааг сайжруулах аргуудын талаар та хэсгээс нэмэлт уншлага
хийх шаардлагатай болж болох юм.
Simple Directmedia Layer буюу Энгийн Directmedia давхарга
Simple Directmedia Layer буюу SDL нь
µsoft.windows;, BeOS, болон &unix;-ийн хооронд
хөрвүүлэх давхарга байхаар зориулагдсан бөгөөд ингэснээр дуу болон
графикийн үр ашигтай хэрэглээг бий болгож тавцан хооронд
ажиллах програмуудыг хөгжүүлэх боломжтой болсон юм.
SDL давхарга нь тоног төхөөрөмжийг доод түвшинд хийсвэрлэх боломжийг олгодог
бөгөөд энэ нь заримдаа X11 интерфэйсээс илүү үр дүнтэй байдаг.
SDL нь devel/sdl12-с олдож болно.
Direct Graphics Access буюу Шууд Графикийн Хандалт
Direct Graphics Access буюу Шууд Графикийн Хандалт нь
X11 өргөтгөл бөгөөд програмд X серверийг орхин өнгөрч framebuffer-ийг
шууд өөрчлөх боломжийг олгодог. Энэ нь энэ хуваалцалд нөлөөлөх
доод түвшний санах ойн тааруулалт дээр тулгуурладаг болохоор
үүнийг ашиглаж байгаа програмууд root-ээр
ажиллах ёстой байдаг.
DGA өргөтгөл нь &man.dga.1;-аар тест хийгдэж хурд, ажиллагааны
хувьд шалгагдаж болно. dga ажиллаж байхад
товчлуур дарах болгонд дэлгэцийн өнгөнүүдийг өөрчилдөг. Гарахын тулд
q-г дарна.
Видеотой холбоотой портууд болон багцууд
видео портууд
видео багцууд
Энэ хэсэг нь FreeBSD-ийн портын цуглуулга дахь видео тоглуулахад ашиглаж
болох програм хангамжуудыг хэлэлцэх болно. Видео тоглуулах нь програм
хангамжийн хөгжүүлэлтийн маш идэвхтэй талбар бөгөөд төрөл бүрийн програмуудын
боломжууд нь энд өгсөн тайлбараас зарим талаараа зөрж болох юм.
Эцэст нь FreeBSD дээр ажилладаг олон видео програмууд нь Линуксийн
програмууд маягаар хөгжүүлэгдсэн байдгийг мэдэх нь чухал юм. Эдгээр програмуудын
олонхи нь бета чанарых хэвээр байгаа билээ. FreeBSD дээр видео багцуудад
учирч болох асуудлуудын заримыг дурдвал:
Ямар нэг програмын үүсгэсэн файлыг өөр нэг нь тоглуулж чадахгүй байх.
Өөрийн үүсгэсэн файлыг тоглуулж чадахгүй байх.
Тухайн машин бүр дээр бүтээгдсэн, хоёр өөр машин дээрх нэг програм
ижил файлыг өөрөөр тоглуулах.
Дүрсний хэмжээг өөрчлөх зэрэг маш хялбар шүүлт нь алдаатай хэмжээ
өөрчлөх дэг журмаас болж маш муу үзэгдлүүдэд хүргэдэг.
Програм байнга core үүсгэдэг.
Баримт порттой цуг суугддаггүй бөгөөд түүнийг нэг бол вэб дээрээс юм уу эсвэл
портын work сангаас
олж болдог.
Эдгээр програмуудын олонхи нь Линукс-изм
ийг харуулдаг.
Линукс тархацууд дахь зарим стандарт сангуудын хийгдсэн арга эсвэл
програм зохиогчдын тооцсон Линуксийн цөмийн зарим боломжуудаас болоод
асуудлууд гарч болно гэсэн үг юм. Эдгээр асуудлууд нь заримдаа анзаарагддаггүй
бөгөөд порт арчлагчид эдгээрийг тойрон гарсан шийдлүүдийг хийсэн байдаг.
Гэхдээ энэ нь доорх асуудлуудад хүргэж болзошгүй юм:
Процессорын шинж чанаруудыг илрүүлэх /proc/cpuinfo-ийн
хэрэглээ.
Дуусахдаа програмыг бүрмөсөн төгсгөхийн оронд гацаадаг урсгалуудын (threads)
буруу хэрэглээ.
Програмтай цуг ихэвчлэн ашиглагддаг програм хангамж FreeBSD-ийн портын
цуглуулгад байхгүй байх.
Одоогоор эдгээр програмуудын хөгжүүлэгчид нь порт хийхэд шаардагдах
тойрон гарах арга замуудыг багасгахын тулд порт арчлагчидтай хамтран ажиллаж байгаа билээ.
MPlayer
MPlayer нь саяхан хөгжүүлэгдсэн бөгөөд
хурдацтай хөгжүүлэгдэж байгаа видео тоглуулагч юм. MPlayer
багийн зорилго нь хурд болон Линукс ба бусад Юниксууд дээрх уян хатан чанар
юм. Энэ төсөл нь багийг үндэслэгч тэр үед байсан тоглуулагчуудын муу тоглуулах
ажиллагаанаас залхсан үед үүссэн байна. Зарим нь дизайныг сайжруулж график
интерфэйс хийгдсэн гэж хэлж болох юм. Гэхдээ та тушаалын мөрийн тохируулгууд
болон товчлууруудын хяналтад дасаад ирэхэд энэ нь харин маш сайн ажилладаг.
MPlayer-ийг бүтээх
MPlayer
бүтээх
MPlayer нь multimedia/mplayer санд байрладаг.
MPlayer нь бүтээх явцад төрөл бүрийн
тоног төхөөрөмжийн шалгалтуудыг гүйцэтгэж нэг системээс нөгөөд хөрвүүлэгдэхгүй
хоёртьн файлыг гаргадаг. Тиймээс хоёртын багцыг ашиглалгүйгээр
портоос бүтээх нь чухал юм. Мөн Makefile-д тайлбарласнаар
бүтээлтийн эхэнд make тушаалд хэд хэдэн тохируулгуудыг зааж
өгч болдог:
&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
Ихэнх хэрэглэгчдэд анхдагч портын тохируулгууд хангалттай байх ёстой.
Гэхдээ хэрэв танд XvID кодек хэрэгтэй бол тушаалын мөрөнд WITH_XVID
тохируулгыг зааж өгөх хэрэгтэй. Анхдагч DVD төхөөрөмжийг бас WITH_DVD_DEVICE
тохируулгаар тодорхойлж болох бөгөөд анхдагчаар /dev/acd0
ашиглагдах болно.
Үүнийг бичиж байх үед MPlayer порт нь
өөрийн HTML баримт болон хоёр ажиллах файл mplayer, болон
mencoder тушаалуудаа бүтээдэг байсан бөгөөд сүүлийн
тушаал нь видеог дахин кодчилох хэрэгсэл юм.
MPlayer-ийн HTML баримт нь маш мэдээлэл сайтай
байдаг. Хэрэв уншигч энэ бүлэгт дурдсан видео тоног төхөөрөмж болон интерфэйсүүдийн тухай мэдээлэл дутуу
байгааг мэдвэл MPlayer-ийн баримт нь харин
маш бүрэн гүйцэд нэмэгдэл болох юм. Хэрэв та &unix; дээрх видео дэмжлэгийн
талаар мэдээлэл хайж байгаа бол MPlayer-ийн баримтыг
цаг зав гарган заавал ч үгүй унших хэрэгтэй.
MPlayer ашиглах
MPlayer
use
MPlayer-ийн ямар ч хэрэглэгч өөрийн
гэрийн сандаа .mplayer дэд санг үүсгэх ёстой.
Энэ шаардлагатай дэд санг үүсгэхийн тулд та дараах тушаалыг бичиж болно:
&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-user
mplayer-ийн тушаалын тохируулгууд гарын авлагын
хуудсанд дурдсан байдаг. Бүр илүү дэлгэрэнгүйг HTML баримтаас үзэж болно.
Энэ хэсэгт бид цөөн хэдэн нийтлэг хэрэглээг тайлбарлах болно.
testfile.avi
зэрэг файлыг тоглуулахын тулд тохируулгаар төрөл бүрийн
видео интерфэйсүүдийн аль нэгийг оруулж өгнө:
&prompt.user; mplayer -vo xv testfile.avi
&prompt.user; mplayer -vo sdl testfile.avi
&prompt.user; mplayer -vo x11 testfile.avi
&prompt.root; mplayer -vo dga testfile.avi
&prompt.root; mplayer -vo 'sdl:dga' testfile.avi
Эдгээр бүх тохируулгуудыг бүгдийг туршиж үзэх нь зүйтэй. Эдгээрийн
харьцангуй ажиллагаа нь олон хүчин зүйлүүдээс шалтгаалдаг бөгөөд тоног төхөөрөмжөөс
ихээхэн хамаарч өөр өөр байна.
DVD-ээс тоглуулахын тулд testfile.avi-г
мөрөөр солих хэрэгтэй.
Энд байгаа N нь тоглуулах гарчгийн дугаар бөгөөд
DEVICE нь
DVD-ROM-д зориулсан төхөөрөмжийн цэг юм. Жишээ нь /dev/dvd-ийн
3-р гарчгийг тоглуулахын тулд доор дурдсаныг ажиллуулна:
&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvd
Анхдагч DVD төхөөрөмжийг MPlayer
портыг WITH_DVD_DEVICE тохируулгаар бүтээж
байх үед тодорхойлж болдог. Анхдагчаар энэ төхөөрөмж нь
/dev/acd0 юм. Илүү дэлгэрэнгүй
мэдээллийг портын Makefile файлаас
олж болно.
Зогсоох, пауз авах, урагшлуулах гэх мэтийг хийхийн тулд товчлууруудын
талаар үзэх хэрэгтэй бөгөөд ингэхийн тулд mplayer -h
тушаалыг ажиллуулах юм уу эсвэл гарын авлагын хуудсыг унших нь зүйтэй юм.
Тоглуулахад хэрэгтэй чухал нэмэлт тохируулгууд нь:
бүрэн дэлгэцийн горимд шилжүүлдэг
болон ажиллагаанд тусалдаг тохируулгууд
юм.
mplayer-ийн тушаалын мөрийг их урт болгохгүйн тулд .mplayer/config
файл үүсгээд анхдагч тохируулгуудыг тэнд тохируулах хэрэгтэй:
vo=xv
fs=yes
zoom=yes
Төгсгөлд нь mplayer нь DVD гарчгийг
.vob файл уруу гаргахад хэрэглэгдэж болдог.
DVD-ээс хоёр дахь гарчгийг гаргаж авахын тулд үүнийг бичнэ:
&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
Гаралтын файл out.vob нь MPEG
байх бөгөөд энэ хэсэгт тайлбарлагдсан бусад багцуудаар удирдагдаж
болох юм.
mencoder
mencoder
mencoder-ийг ашиглахаасаа өмнө HTML
баримтаас тохируулгуудтай танилцах нь зүйтэй юм. Гарын авлагын хуудас
байдаг боловч HTML баримтгүйгээр энэ нь тийм ч тустай биш юм.
Чанар, битийн бага хурдыг сайжруулах болон хэлбэршилтүүдийг өөрчлөх
тоолж баршгүй аргууд байдаг бөгөөд эдгээр аргуудын зарим нь
сайн, муу ажиллагааны хооронд ялгаа гаргаж болох юм. Танд туслах
хэд хэдэн жишээ энд байна. Эхлээд энгийн хуулбар:
&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.avi
Тушаалын мөрийн буруу хослолууд нь mplayer-ээр ч
тоглуулах боломжгүй файл гаргахад хүргэж болох юм. Тиймээс
хэрэв та файл уруу гаргаж авахыг хүсвэл mplayer-ийн
-ийг ашиглаарай.
input.avi-г MPEG4 кодек уруу MPEG3 аудио кодчилолтойгоор
хөрвүүлэхийн тулд (audio/lame шаардлагатай):
&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
Энэ нь mplayer
болон xine тоглуулах боломжтой гаралтыг үүсгэнэ.
DVD гарчгийг шууд дахин кодчилохын тулд input.avi файлын оронд
мөрийг тавьж
root эрхээр ажиллуулах хэрэгтэй. Эхний удаадаа
та өөрийн хийсэн зүйлдээ сэтгэл ханамжгүй байх магадлалтай болохоор
гарчгийг файл уруу гаргаж файл дээрээ ажиллахыг зөвлөдөг.
xine видео тоглуулагч
xine видео тоглуулагч нь
аль ч талаасаа зөвхөн бүгдийг багтаасан видео шийдэл байх зорилготой төсөл биш
бөгөөд энэ нь бас дахин ашиглагдах боломжтой үндсэн сан болон
залгаасуудаар өргөтгөх боломжтой модульчлагдсан ажиллах файлуудыг
үүсгэх зорилготой төсөл юм. Энэ нь багц болон multimedia/xine гэсэн порт хэлбэрээр байдаг.
xine тоглуулагч нь бас л бүрэн
гүйцэд боловсроогүй байгаа билээ. Хэдий тийм ч гэсэн сайнаар эхэлж
байгаа юм. Практикт xine нь
хурдан видео карттай CPU юм уу аль эсвэл XVideo өргөтгөлийн дэмжлэгийг
шаарддаг. GUI нь ашиглагдаж болохоор боловч болхи юм.
Үүнийг бичиж байх үед CSS кодчилол хийгдсэн DVD-үүдийг тоглуулах
xine-тай цуг ирдэг оролтын
модуль байгаагүй. Үүнд зориулан бүтээгдсэн модулиудтай гуравдагч талын
бүтээлтүүд байдаг боловч эдгээрийн аль нь ч FreeBSD-ийн портын цуглуулгад
байдаггүй.
MPlayer-тэй харьцуулах юм бол
xine нь хэрэглэгчийн хувьд илүүг хийдэг
боловч нөгөө талаараа хэрэглэгчид зарим нэг илүү нарийн тааруулах хяналтын
боломжийг өгдөггүй юм. xine видео тоглуулагч
нь XVideo интерфэйсүүд дээр хамгийн сайн ажилладаг.
Анхдагчаар xine тоглуулагч нь
график хэрэглэгчийн интерфэйс эхлүүлэх болно. Дараа нь тухайн файлыг онгойлгохдоо
цэсүүдийг ашиглаж болно:
&prompt.user; xine
Өөрөөр, GUI-гүйгээр дараах тушаал ашиглан файлыг нэн даруй тоглуулахаар
ажиллуулж болно:
&prompt.user; xine -g -p mymovie.avi
transcode буюу код хооронд хөрвүүлэгч хэрэгслүүд
transcode програм хангамж нь тоглуулагч биш, харин
видео болон аудио файлуудыг дахин кодчилоход зориулагдсан хэрэгслүүдийн цуглуулга юм.
stdin/stdout урсгалын интерфэйсүүдийн хамтаар тушаалын
мөрийн хэрэгслүүдийг ашиглан transcode-оор видео файлуудыг
нийлүүлэх, эвдэрсэн файлуудыг засах боломжтой болдог.
multimedia/transcode портыг бүтээж байх
явцад олон тооны тохируулгуудыг зааж өгч болдог бөгөөд бид дараах тушаалын
мөрийг transcode-ийг бүтээхэд ашиглахыг
зөвлөдөг:
&prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yes
Санал болгогдсон тохируулгууд ихэнх хэрэглэгчдийн хувьд хангалттай байх ёстой.
transcode-ийн багтаамжуудыг харуулахын
тулд DivX файлыг PAL MPEG-1 файл (PAL VCD) уруу хэрхэн хөрвүүлэхийг
харуулах нэг жишээг үзүүлье:
&prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
Гарах MPEG файл output_vcd.mpg-г
MPlayer-ээр тоглуулах боломжтой байна.
Та файлыг бүр Видео CD хийхийн тулд CD-R зөөвөрлөгч уруу шарж болох
бөгөөд энэ тохиолдолд та multimedia/vcdimager болон sysutils/cdrdao програмуудыг суулгаж
ашиглах хэрэгтэй болно.
transcode-д зориулсан гарын авлагын хуудас
байдаг боловч та илүү мэдээлэл болон жишээнүүдийн талаар
transcode
wiki-с бас лавлах хэрэгтэй.
Нэмэлт унших зүйлс
FreeBSD-д зориулсан төрөл бүрийн видео програм хангамжийн багцууд
хурдацтай хөгжиж байна. Ойрын ирээдүйд энд дурдсан асуудлуудын
олонхи нь шийдэгдэх магадлал тун өндөр юм. Тэр болтол
FreeBSD-ийн A/V боломжуудыг аль болох ихээр авахыг хүсэж
байгаа хүмүүс цугтаа хэд хэдэн FAQ болон заавруудаас уншсан зүйлсээрээ
мэдлэгээ хуваалцаж өөр өөр цөөн хэдэн програмууд ашиглах хэрэгтэй юм.
Энэхүү хэсэг нь тийм нэмэлт мэдээллүүдийг уншигчдад өгөх зорилгоор
бичигдсэн юм.
MPlayer-ийн баримт
нь техникийн хувьд маш сайн мэдээлэлтэй юм. &unix;-ийн видеоны
талаар өндөр түвшний туршлагатай болохыг хүссэн хэн бүхэн эдгээр баримтуудаас
зөвлөгөө авах нь зүйтэй юм. MPlayer-ийн
захидлын жагсаалт нь баримтыг уншаагүй хүмүүст тийм ч нөхөрсөг бус байдаг
учраас тэдэнд алдааны мэдэгдлүүдийг илгээхээр төлөвлөж байгаа бол түр азнаад
RTFM (read the fine manual эсвэл read the fucking manual).
xine HOWTO
нь бүх тоглуулагчийн хувьд ерөнхий байдаг ажиллагааны сайжруулалтын
тухай бүлгийг агуулдаг.
Төгсгөлд нь уншигчдын туршиж болох зарим ирээдүйтэй програмууд байдаг:
multimedia/avifile порт хэлбэрээр
бас байдаг Avifile.
multimedia/ogle порт хэлбэрээр
бас байдаг Ogle.
Xtheater
DVD агуулгыг зохиоход зориулагдсан нээлттэй эх багц multimedia/dvdauthor.
Жозеф
Эл-Рэйэс
Анхлан хувь нэмэр болгон оруулсан
Марк
Фонвил
Өргөжүүлж тохируулсан
ТВ картуудыг тохируулах
ТВ картууд
Танилцуулга
ТВ картууд нь өөрийн компьютер дээр цацаж байгаа юм уу эсвэл
кабелийн ТВ үзэх боломжийг танд олгодог. Тэдгээрийн ихэнх нь
нийлмэл видеог RCA юм уу эсвэл S-видео оролтоор хүлээн авдаг бөгөөд
эдгээр картуудын зарим нь ФМ радио тааруулагчтай (tuner) ирдэг.
&os; нь Brooktree Bt848/849/878/879 эсвэл
Conexant CN-878/Fusion 878a Видео Барих (capture) бичил схемийг
&man.bktr.4; драйвертай цуг ашиглан PCI дээр суурилсан ТВ картуудын
дэмжлэгийг хангадаг. Та дэмжигдсэн тааруулагчтай цуг ирсэн хавтанг бас
шалгах хэрэгтэй. Дэмжигдсэн тааруулагчдын жагсаалтын талаар
&man.bktr.4; гарын авлагын хуудаснаас лавлана уу.
Драйвер нэмэх
Өөрийн картыг ашиглахын тулд &man.bktr.4; драйверийг дуудах
хэрэгтэй болох бөгөөд дараах мөрийг /boot/loader.conf
файлд ингэж нэмэн үүнийг хийж болно:
bktr_load="YES"
Өөрөөр, ТВ картын дэмжлэгийг өөрийн цөмд статикаар эмхэтгэж
болох бөгөөд энэ тохиолдолд өөрийн цөмийн тохиргоондоо дараах мөрүүдийг
нэмнэ:
device bktr
device iicbus
device iicbb
device smbus
Картын бүрэлдэхүүнүүд I2C шугамаар хоорондоо холбогддог болохоор
эдгээр нэмэлт төхөөрөмжийн драйверууд нь шаардлагатай байдаг. Дараа нь
шинэ цөмөө бүтээж суулгах хэрэгтэй.
Дэмжлэг таны системд нэмэгдсэний дараа та өөрийн машиныг дахин
ачаалах хэрэгтэй. Ачаалах процессийн үеэр таны ТВ карт доор дурдсантай
төстэйгөөр гарч ирэн харагдах ёстой:
bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.
Мэдээж эдгээр мэдэгдлүүд нь таны тоног төхөөрөмжөөс хамаарч
өөр байж болно. Гэхдээ та тааруулагч зөв олдсон эсэхийг шалгах
ёстой; зарим нэг олдсон параметрүүдийг &man.sysctl.8; MIB-үүд
болон цөмийн тохиргооны файлын тохируулгуудаар дарж өөрчлөх
боломжтой хэвээр байдаг. Жишээ нь хэрэв та тааруулагчийг
Philips SECAM тааруулагч уруу болгохыг хүсвэл өөрийн цөмийн
тохиргооны файлдаа дараах мөрийг нэмэх хэрэгтэй:
options OVERRIDE_TUNER=6
эсвэл та &man.sysctl.8;-ийг шууд ашиглаж болно:
&prompt.root; sysctl hw.bt848.tuner=6
Байдаг тохируулгуудын талаар дэлгэрэнгүйг &man.bktr.4;
гарын авлагын хуудас болон /usr/src/sys/conf/NOTES
файлаас үзнэ үү.
Ашигтай програмууд
Өөрийн ТВ картыг ашиглахын тулд та дараах програмуудын аль нэгийг
суулгах хэрэгтэй:
multimedia/fxtv
нь цонхон-дээрх-ТВ болон дүрс/аудио/видео барих (capture) боломжуудыг
олгодог.
multimedia/xawtv
нь бас ТВ програм бөгөөд fxtv-тэй
адил боломжуудтай байдаг.
misc/alevt нь
Видеотекст/Телетекстийг декод хийн үзүүлдэг.
audio/xmradio нь
зарим нэг ТВ карттай цуг ирдэг ФМ радио тааруулагчийг ашиглах
програм юм.
audio/wmtune нь
радио тааруулагчуудад зориулсан ширээний эвтэйхэн програм юм.
Илүү олон програмууд &os;-ийн портын цуглуулгад байдаг.
Алдааг олж засварлах
Та өөрийн ТВ картандаа ямар нэг асуудал олох юм бол та эхлээд
видео барих бичил схем ба тааруулагч нь &man.bktr.4; драйвераар
яг дэмжигдсэн эсэх болон та зөв тохиргооны сонголтуудыг дамжуулсан эсэхээ
шалгах хэрэгтэй. Өөрийн ТВ картын тухай төрөл бүрийн асуултууд болон
илүү дэмжлэгийн талаар та &a.multimedia.name; захидлын жагсаалтад
хандаж түүний архивыг нь ашиглаж болох юм.
Марк
Фонвил
Бичсэн
Дүрс скан хийгчид
image scanners
Танилцуулга
&os; дээр дүрс скан хийгчдэд хандах боломжийг &os;-ийн
портын цуглуулгад байдаг SANE
(Scanner Access Now Easy буюу Скан хийгчид хандах Хандалт Одоо Амархан гэгдэх)
API
олгодог. SANE нь &os;-ийн зарим
төхөөрөмжийн драйверууд ашиглан скан хийгчийн техник хангамжид
ханддаг.
&os; нь SCSI болон USB скан хийгчдийг дэмждэг. Ямар нэг тохиргоо хийхээсээ
өмнө таны скан хийгч SANE-ээр дэмжигдсэн
эсэхийг шалгаарай. SANE нь
скан хийгчийн дэмжлэг болон түүний төлвийн тухай мэдээллээр таныг
хангах дэмжигдсэн
- төхөөрөмжүүдийн жагсаалттай байдаг. &man.uscanner.4;
+ төхөөрөмжүүдийн жагсаалттай байдаг. &os; 8.X-ээс өмнөх хувилбарууд
+ дээр &man.uscanner.4;
гарын авлагын хуудас нь дэмжигдсэн USB скан хийгчдийн жагсаалтыг
бас агуулдаг.
Цөмийн тохиргоо
Дээр дурдсанаар SCSI болон USB интерфэйсүүд нь дэмжигдсэн байдаг.
Таны скан хийгчийн интерфэйсээс болоод өөр өөр төхөөрөмжийн драйверууд
шаардагддаг.
USB интерфэйс
GENERIC цөм нь анхдагчаар USB скан хийгчдийг
дэмжихэд шаардлагатай төхөөрөмжийн драйверуудыг агуулдаг. Цөмийг өөрөө
тохируулан ашиглах бол дараах мөрүүд өөрийн цөмийн тохиргооны файлд байгаа
эсэхийг шалгах хэрэгтэй:
device usb
device uhci
device ohci
-device uscanner
+device ehci
- Таны эх хавтан дээрх USB бичил схемээс хамаарч танд зөвхөн
- device uhci юм уу эсвэл device ohci
- мөрийн аль нэг хэрэгтэй болно. Гэхдээ хоёуланг нь цөмийн тохиргоондоо
- байлгах нь аюулгүй юм.
+ &os; 8.X-ээс өмнөх системүүдэд дараах мөр бас
+ хэрэгтэй:
- Хэрэв та өөрийн цөмийг дахин бүтээхийг хүсэхгүй байгаа бөгөөд
- таны цөм чинь GENERIC байгаа бол &man.kldload.8;
- тушаал ашиглан &man.uscanner.4; төхөөрөмжийн драйверийг шууд
- дуудаж болно:
+ device uscanner
- &prompt.root; kldload uscanner
+ &os;-ийн эдгээр хувилбарууд дээр &man.uscanner.4;
+ төхөөрөмжийн драйвер нь USB скан хийгчдийг дэмждэг.
+ &os; 8.0-с хойш энэ дэмжлэгийг &man.libusb.3; сан
+ шууд хангадаг.
- Энэ модулийг систем эхлэх болгонд дуудахын тулд дараах мөрийг
- /boot/loader.conf файлд нэмнэ:
-
- uscanner_load="YES"
-
- Зөв цөмөөр дахин ачаалсны дараа юм уу эсвэл шаардлагатай
- модулийг дуудсаны дараа өөрийн USB скан хийгчийг залгана. Таны скан хийгчийг
+ Зөв цөмөөр дахин ачаалсны дараа өөрийн USB скан хийгчийг залгана.
+ Таны скан хийгчийг
таньж байгааг үзүүлэх мөр системийн мэдэгдлийн буферт (&man.dmesg.8;)
гарч ирэх ёстой:
+ ugen0.2: <EPSON> at usbus0
+
+ Эсвэл &os; 7.X систем дээр:
+
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
- Энэ нь бидний скан хийгч /dev/uscanner0
- төхөөрөмжийн цэгийг ашиглаж байгааг харуулж байна.
+ Бидний ажиллуулж байгаа &os;-ийн
+ хувилбараас хамаарч скан хийгч нь /dev/ugen0.2 эсвэл
+ /dev/uscanner0 гэсэн төхөөрөмжийн цэгийг
+ ашиглаглаж байгааг эдгээр мэдэгдлүүд харуулж байна. Энэ жишээний
+ хувьд &epson.perfection; 1650 USB скан хийгчийг ашигласан.
SCSI интерфэйс
Хэрэв таны скан хийгч SCSI интерфэйстэй ирсэн бол ямар SCSI
хянагч хавтанг ашиглахаа мэдэх нь чухал юм. Ашиглагдах SCSI бичил схемээс
хамаараад та өөрийн цөмийн тохиргооны файлаа тааруулах хэрэгтэй
болно. GENERIC цөм нь хамгийн түгээмэл
SCSI хянагчуудыг дэмждэг. NOTES файлыг
уншиж өөрийн цөмийн тохиргооны файлд зөв мөрийг нэмсэн эсэхээ шалгаарай.
SCSI хувиргагч драйвераас гадна та өөрийн цөмийн тохиргооны файлдаа
дараах мөрүүдтэй байх хэрэгтэй:
device scbus
device pass
Таны цөм зөв эмхэтгэгдэж суулгагдсаны дараа ачаалах үед та
системийн мэдэгдлийн буферт төхөөрөмжийг харж чадаж байх ёстой:
pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers
Таны скан хийгч системийг ачаалах үед асаагүй байсан ч гэсэн
гараар &man.camcontrol.8; тушаалын тусламжтай SCSI шугамын
хайлтыг хийж илрүүлэх боломжтой байдаг:
&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful
Дараа нь скан хийгч SCSI төхөөрөмжүүдийн жагсаалтад гарч
ирэх болно:
&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
SCSI төхөөрөмжүүдийн тухай дэлгэрэнгүй мэдээлэл
&man.scsi.4; болон &man.camcontrol.8; гарын авлагын хуудаснуудад
байдаг.
SANE тохиргоо
SANE систем нь хоёр хэсэгт хуваагддаг:
эдгээр нь арын хэсэг (graphics/sane-backends) болон
урд хэсэг (graphics/sane-frontends) юм.
Арын хэсэг нь скан хийгчид өөрт нь хандах хандалтыг олгодог.
SANE-ий дэмжигдсэн
төхөөрөмжүүдийн жагсаалт таны дүрс скан хийгчийг ямар арын
хэсэг дэмжихийг заадаг. Та өөрийн төхөөрөмжийг ашиглаж чаддаг байхын тулд
өөрийн скан хийгчийн хувьд зөв арын хэсгийг тодорхойлох нь зайлшгүй
шаардлагатай юм. Урд хэсэг нь график хайлт хийх интерфэйсийн боломжийг
олгодог (xscanimage).
Эхний алхам нь graphics/sane-backends порт юм уу
эсвэл багцыг суулгах явдал юм. Дараа нь sane-find-scanner
тушаал ашиглан SANE системээр
скан хийгчийн илрүүлэлтийг шалгана:
&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
Гаралт нь скан хийгчийн интерфэйсийн төрөл болон системд скан хийгчийг
залгахад хэрэглэгдсэн төхөөрөмжийн цэгийг үзүүлэх болно. Үйлдвэрлэгч болон
бүтээгдэхүүний загвар гарч ирэхгүй байж болох бөгөөд энэ нь тийм чухал биш
юм.
Зарим USB скан хийгчид нь танаас firmware дуудаж ачаалахыг
шаарддаг бөгөөд энэ нь арын хэсгийн гарын авлагын хуудсанд тайлбарлагдсан
байгаа. Та &man.sane-find-scanner.1; болон &man.sane.7;
гарын авлагын хуудаснуудыг бас унших хэрэгтэй юм.
Одоо бид скан хийгчийг скан хийх урд хэсгээр танигдах эсэхийг нь
шалгах хэрэгтэй. Анхдагчаар SANE
арын хэсгүүд нь &man.scanimage.1; гэгддэг тушаалын мөрийн хэрэгсэлтэй
ирдэг. Энэ тушаал нь танд төхөөрөмжүүдийг жагсааж тушаалын мөрөөс дүрс
эзэмшилтийг хийхийг зөвшөөрдөг. тохируулга
нь скан хийгчийн төхөөрөмжүүдийг жагсаахад хэрэглэгддэг:
&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
+ Эсвэл жишээ нь -д ашиглагдсан USB скан хийгчтэй бол:
+
+ &prompt.root; scanimage -L
+device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
+
+ Энэ гаралт нь &os; 8.X системийн хувьд бөгөөд
+ `epson2:libusb:/dev/usb:/dev/ugen0.2' нь
+ бидэнд скан хийгчийн ашиглаж байгаа арын нэр (epson2)
+ ба төхөөрөмжийн цэгийг (/dev/ugen0.2)
+ олгож байна.
+
+
Гаралт байхгүй юм уу эсвэл скан хийгч танигдсангүй гэсэн мэдэгдэл нь
&man.scanimage.1; нь скан хийгчийг таньж чадаагүйг харуулна.
Хэрэв ингэсэн бол та арын хэсгийн тохиргооны файлыг засварлаж
ашиглагдах скан хийгч төхөөрөмжийг тодорхойлох хэрэгтэй.
/usr/local/etc/sane.d/ сан
бүх арын хэсгийн тохиргооны файлуудыг агуулдаг. Энэ танилтын асуудал
зарим нэг USB скан хийгчдийн хувьд тохиолддог.
Жишээ нь -д
- хэрэглэгдсэн USB скан хийгчтэй байхад sane-find-scanner тушаалыг
+ хэрэглэгдсэн USB скан хийгчтэй байхад
+ &os; 8.X дээр скан хийгч нь ямар ч асуудалгүйгээр олдож
+ ажиллаж байгаа боловч &os;-ийн өмнөх
+ (&man.uscanner.4; драйвер хэрэглэгдэж байгаа) хувилбарууд дээр
+ sane-find-scanner тушаалыг
ажиллуулахад дараах мэдээллийг бидэнд өгөх болно:
&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
Скан хийгч нь зөв олдсон бөгөөд USB интерфэйсийг ашиглан
/dev/uscanner0 төхөөрөмжийн цэгт
залгагдсан байна. Одоо бид скан хийгч зөв танигдсан эсэхийг шалгаж
болно:
&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
Скан хийгч нь танигдаагүй болохоор бид
- /usr/local/etc/sane.d/epson.conf файлыг
+ /usr/local/etc/sane.d/epson2.conf файлыг
засварлах хэрэгтэй болно. Ашиглагдсан скан хийгчийн загвар нь
- &epson.perfection; 1650 байсан, тэгэхээр бид epson
+ &epson.perfection; 1650 байсан, тэгэхээр бид epson2
арын хэсгийг скан хийгчийг ашиглахыг мэдлээ. Арын хэсгүүдийн тохиргооны файлууд
дахь туслах тайлбаруудыг уншихаа мартуузай. Мөрийн өөрчлөлтүүд нь их
энгийн: таны скан хийгчийн хувьд буруу интерфэйстэй бүх мөрүүдийг тайлбар
болгоно (бидний хувьд, бидний скан хийгч USB интерфэйсийг ашигладаг болохоор
scsi гэсэн үгээс эхэлсэн бүх мөрүүдийг тайлбар
болгоно), дараа нь файлын төгсгөлд ашиглагдах интерфэйс болон төхөөрөмжийн
цэгийг заасан мөрийг нэмнэ. Энэ тохиолдолд бид дараах мөрийг нэмнэ:
usb /dev/uscanner0
Илүү дэлгэрэнгүй мэдээлэл болон хэрэглээний зөв синтаксын талаар арын
хэсгийн тохиргооны файлд байгаа тайлбарууд болон арын хэсгийн гарын авлагын
хуудаснаас уншихаа мартуузай. Бид одоо скан хийгч танигдсан эсэхийг
шалгаж болно:
&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
Бидний USB скан хийгч танигдлаа. Үйлдвэрлэгч болон загвар нь скан хийгчийнхтэй
таарахгүй байвал энэ нь тийм чухал биш юм. Бодолцож үзэх гол түлхүүр зүйл нь
бидэнд зөв арын хэсгийн нэр болон зөв төхөөрөмжийн цэгийг өгдөг
`epson:/dev/uscanner0' талбар юм.
+
scanimage -L тушаал скан хийгчийг харж
чаддаг болсны дараа тохиргоо дуусна. Төхөөрөмж нь одоо скан хийхэд бэлэн
болсон байна.
&man.scanimage.1; нь дүрс эзэмшилтийг тушаалын мөрөөс хийхийг
бидэнд зөвшөөрдөг боловч дүрс скан хийхдээ график хэрэглэгчийн интерфэйс
ашиглахыг эрхэмлэх нь зүйтэй юм. SANE нь
хялбар боловч үр ашигтай график интерфэйсийг санал болгодог: энэ нь
xscanimage
(graphics/sane-frontends) юм.
Xsane (graphics/xsane) нь өөр нэг алдартай
график скан хийгч урд хэсэг юм. Энэ урд хэсэг нь төрөл бүрийн скан хийгч
горим (фото хуулбар хийх, факс, гэх мэт), өнгөний засвар, бөөнөөр
скан хийх гэх мэт дэвшилтэт боломжуудыг санал болгодог. Эдгээр програмууд нь
GIMP залгаас болж ашиглагдах
боломжтой байдаг.
Бусад хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх
Өмнөх бүх үйлдлүүдийг root зөвшөөрлүүдээр
хийсэн билээ. Гэхдээ өөр хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх
хэрэг танд байж болох юм. Скан хийгчийн ашигладаг төхөөрөмжийн цэгт
хандахад унших болон бичих зөвшөөрлүүд хэрэглэгчид хэрэгтэй болно.
Жишээ нь бидний USB скан хийгч operator
- бүлгийн эзэмшдэг /dev/uscanner0 төхөөрөмжийн
- цэгийг ашиглаж байна. Хэрэглэгч joe-г
- operator бүлэгт нэмэх нь скан хийгчийг ашиглахыг
- түүнд зөвшөөрөх болно:
+ бүлгийн эзэмшдэг /dev/usb/0.2.0 гэсэн төхөөрөмжийн
+ жинхэнэ цэг рүү симболын холбоос хийгдсэн /dev/ugen0.2 төхөөрөмжийн
+ цэгийг ашиглаж байна (/dev сангийн агуулгыг харахад
+ үүнийг батлах болно). Симболын холбоос болон төхөөрөмжийн
+ цэгийг wheel ба
+ operator бүлэг тус тус эзэмшдэг.
+ joe хэрэглэгчийг
+ эдгээр бүлэгт нэмснээр түүнд скан хийгчийг ашиглах боломжийг
+ бүрдүүлэх боловч аюулгүй байдлын шалтгаанаас болоод та
+ хэрэглэгчийг аль ч бүлэгт ялангуяа wheel бүлэгт
+ нэмэхээсээ өмнө дахин бодох хэрэгтэй. USB төхөөрөмжүүдийг
+ ашиглахад зориулж тусгай бүлэг үүсгэж энэ бүлгийн гишүүдийг скан
+ хийгчид хандах боломжтой болгох нь илүү сайн шийдэл
+ болдог.
+
+ Тиймээс бид жишээ нь
+ usb бүлгийг
+ ашиглах болно. Эхний алхам нь энэ бүлгийг &man.pw.8;
+ тушаалын тусламжтай үүсгэх явдал юм:
+
+ &prompt.root; pw groupadd usb
+
+ Дараа нь /dev/ugen0.2 симболын
+ холбоос хийж /dev/usb/0.2.0 төхөөрөмжийн
+ цэгийг usb бүлгийн хувьд зөв, бичих зөвшөөрлүүдийн
+ (0660 эсвэл 0664) тусламжтай
+ хандах боломжтой болгох ёстой. Учир нь эдгээр файлын
+ эзэмшигч нь (root) тэдгээрт зөвхөн
+ бичиж чаддаг. /etc/devfs.rules
+ файлд дараах мөрүүдийг нэмж энэ бүгдийг хийж болно:
- &prompt.root; pw groupmod operator -m joe
+ [system=5]
+add path ugen0.2 mode 660 group usb
+add path usb/0.2.0 mode 0666 group usb
- Илүү дэлгэрэнгүйг &man.pw.8; гарын авлагын хуудаснаас уншина уу.
- Та /dev/uscanner0 төхөөрөмжийн цэгт
- бичих зөвшөөрлүүдийг (0660 эсвэл 0664) бас тохируулах хэрэгтэй.
- Анхдагчаар зөвхөн operator бүлэг нь
- төхөөрөмжийн цэгийг уншиж чаддаг. /etc/devfs.rules
- файлд дараах мөрүүдийг нэмж үүнийг хийж болно:
+ &os; 7.X хэрэглэгчдийн хувьд зөв төхөөрөмжийн цэг бүхий
+ дараах мөр, ихэнх тохиолдолд /dev/uscanner0
+ хэрэгтэй байдаг:
[system=5]
-add path uscanner0 mode 660
+add path uscanner0 mode 660 group usb
Дараа нь дараах мөрийг /etc/rc.conf файлд
нэмж машиныг дахин ачаална:
devfs_system_ruleset="system"
Эдгээр мөрнүүдийн тухай дэлгэрэнгүй мэдээллийг &man.devfs.8;
гарын авлагын хуудаснаас олж болно.
-
- Мэдээж аюулгүй байдлын шалтгаануудаас болоод та хэрэглэгчийг
- ямар нэгэн бүлэг уруу ялангуяа operator бүлэг уруу
- нэмэхээсээ өмнө дахин бодох хэрэгтэй.
-
+ Одоо скан хийгчид хандах хандалтыг зөвшөөрөхийн тулд
+ хэрэглэгчдийг usb
+ бүлэгт нэмэх л үлдлээ:
+
+ &prompt.root; pw groupmod usb -m joe
+
+ Дэлгэрэнгүйг &man.pw.8; гарын авлагын хуудаснаас үзнэ үү.