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.forwarding1 болгоно. Хэрэв та чиглүүлэлтийг түр зуур зогсоох хэрэгтэй бол үүнийг түр зуур 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; гарын авлагын хуудсыг бас үзнэ үү. Тохируулах зааврууд <application>ISC DHCP</application> ашиглах тохиргоо 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-тойгоор эмхэтгэх ёстой бөгөөд PXEDHCP хэрэгтэй гэдгийг санаарай. 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 Ачаалах програмыг <application>Etherboot</application>-ээр бэлдэх 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 файлд хандана. <acronym>PXE</acronym>-ээр ачаалах Анхдагчаар &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-г эхлүүлж байх үед функцийн товчлуурыг дарах хэрэгтэй. <acronym>TFTP</acronym> болон <acronym>NFS</acronym> серверүүдийг тохируулах 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-ийг суурьшуулахын тулд <command>make world</command> тушаал ашиглах Энэ арга нь хурдан байх бөгөөд бүрэн онгон системийг (зөвхөн 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-ээр хандаж болно. <acronym>NFS</acronym> 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 Бусад асуудлууд Зөвхөн уншигдах <filename>/usr</filename> сантайгаар ажиллах дискгүй ажиллагаа /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 бичлэгүүдийг дэмждэг. <filename>/etc/rc.conf</filename> файлд хэрэгцээтэй өөрчлөлтүүдийг хийх нь 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 таны дэлгэцийн гаралтыг хадгалж санаа тавьдаг. Ингэсний үр дүнд гарнаас тушаал оруулж програмуудыг ажиллуулж болдог маш олон виртуал дэлгэцүүдтэй мэт үзэгддэг. Нэг виртуал консол дээр таны ажиллуулсан програм нь уг консолоос сэлгээд өөр консол дээр сэлгэсэн ч гэсэн зогсохгүй ажиллаж л байдаг. <filename>/etc/ttys</filename> Файл 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 дээр байх явдал юм. <filename>fstab</filename> файл файл систем 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; гарын авлагаас харна уу. <command>mount</command> тушаал файл систем mounting буюу файл систем холбох &man.mount.8; тушаал нь файл системийг холбоход хэрэглэгддэг цорын ганц тушаал юм. Таны хамгийн өргөн хэрэглэх хэлбэр бол: &prompt.root; mount төхөөрөмж-буюу-диск холбох-цэг &man.mount.8;-н гарын авлагад зааснаар бол маш олон сонголт байдаг бөгөөд өргөн хэрэглэгддэг нь: Холбох тохируулгууд /etc/fstab файлд жагсааж бичсэн бүх файл системийг холбоно. Гэхдээ noauto гэж тэмдэглэснийг, гэж туг хатгасныг, эсвэл өмнө нь холбогдчихсон файл системүүдийг холбохгүй. Дуудаж ажиллуулж байгаа файл системээсээ бусдад нь дурын үйлдлээ хийнэ. Энэ сонголтыг тугтай хамт хэрэглэж &man.mount.8;-г юу хийж байгааг нь харж болдог. Бохир файл систем (аюултай), эсвэл файл системийн унших-бичигдэх төлвөөс зөвхөн-унших төлөв рүү шилжүүлэн бичих эрхийг хасаж холбох үед хүчээр холбодог. Файл системийг зөвхөн-унших төлвөөр холбоно. Энэ нь сонголтийг утгатай (5.2-с өмнөх үед хэрэглэдэг байсан ) хэрэглэсэнтэй ижил. fstype Өгөгдсөн файл системйиг өгөгдсөн төрлөөр холбоно. Эсвэл сонголт өгөгдсөн бол зөвхөн өгөгдсөн төрлөөр холбоно. ufs нь анхдагч файл систем юм. Файл системд холболтын сонголтыг шинэчилнэ. Болж байгаа үйл явцыг харуулж мэдэгдэнэ. Файл системийг унших-бичих төлвөөр холбоно. сонголт нь дараах зүйлүүдийг таслалаар тусгаарлаж хэрэглэж болно: noexec Энэ нь файл систем дээр хоёрлосон файл буюу ачаалагдаж ажиллаж болдог файл ажиллахыг үл зөвшөөрнө. Энэ нь мөн аюулгүй байдлын зорилгоор хэрэгтэй. nosuid Файл систем дээр setuid эсвэл setgid тугуудыг бүү хэрэглэ. Мөн аюулгүй байдлын шалтгаанаар. <command>umount</command> тушаал файл систем файл систем салгах &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 буюу тийм процесс алга байна гэсэн мэдэгдэл гарч ирнэ. Яагаад <command>/bin/kill</command> тушаалыг хэрэглэх хэрэгтэй вэ? Ихэнх 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 санд байдаг. Төхөөрөмжийн цэг үүсгэх Хэрэв системд шинэ төхөөрөмж нэмэгдвэл, эсвэл нэмэлт төхөөрөмжид зориулсан шаардлага гарвал шинэ төхөөрөмжийн цэг үүсгэх ёстой. <literal>DEVFS</literal> (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; нь юу <emphasis>Биш</emphasis> вэ? Та зарим нэг дажгүй шинэ боломж байгааг сонссон учраас бусдаас түрүүлж урьдчилсан хувилбарын тэдгээр битүүдийг авах таны нэн тэргүүний арга зам. Шинэ боломжийг авч эхэнд байна гэдэг нь та шинэ алдаанууд, хорхойнуудыг бас авч эхэнд байна гэсэн үг юм. Алдааны засваруудыг хурдан авах арга зам. &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 програм ашигла. Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг танд авах боломжийг олгодог хамгийн сайшаасан арга юм. Олон хүмүүс cvsupcron-с ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэрт автоматаар аваачдаг. Та дээр дурдсан жишээ 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 програм ашигла. Энэ нь бүхэл цуглуулгыг нэг л удаа авч дараа нь зөвхөн өөрчлөгдсөнүүдийг танд авах боломжийг олгодог хамгийн сайшаасан арга юм. Олон хүмүүс cvsupcron-с ажиллуулж өөрсдийн эхийг хамгийн сүүлийн хэлбэр автоматаар аваачдаг. Та дээр дурдсан жишээ 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-ийн тусламжтайгаар муу битүүдийг ердөө л устгаж дахин сүүлийн хэлбэрт аваачих хэрэгтэй болно. <quote>Ертөнц</quote>ийг дахин бүтээх нь Ертөнцийг дахин бүтээх нь Та өөрийн локал эх модоо &os;-ийн тухайн хувилбарын (&os.stable;, &os.current;, гэх зэрэг) хамгийн сүүлийн үеийн хэлбэрт аваачсаныхаа дараа та эх модоо ашиглан системийг дахин бүтээж болно. Нөөц хий Та дээрхийг хийхээсээ өмнө өөрийн системийг нөөцлөн авах нь ямар чухал болохыг энэ нь хангалттай хэлж өгч чаддаггүй. Ертөнцийг дахин бүтээх нь (хэрэв та эдгээр заавруудыг дагасан тохиолдолд) хялбар боловч таныг алдаа гаргахад эсвэл бусдын эх модонд хийсэн алдаанууд нь таны системийг ачаалагдахгүй болгох нөхцөлд зайлшгүй хүргэдэг. Нөөц хийж авсан эсэхээ шалгаарай. Засварлах уян диск эсвэл ачаалагдах CD-г гарын дор байлгаарай. Магадгүй та үүнийг хэзээ ч хэрэглэхгүй байж болох юм, гэхдээ харамсахаасаа өмнө аюулгүй байж байх нь илүү дээр юм! Тохирох захидлын жагсаалтад бүртгүүл захидлын жагсаалт &os.stable; болон &os.current; салбарууд нь угаасаа хөгжүүлэлтэд байдаг. &os;-д хувь нэмэр оруулж байгаа хүмүүс нь хүн л учраас алдаанууд заримдаа гардаг. Заримдаа эдгээр алдаанууд нь нэг их хор хөнөөлгүй бөгөөд ердөө л таны системийг шинэ оношлогооны анхааруулга хэвлэхэд хүргэдэг. Эсвэл өөрчлөлт нь сүйрлийн байж болзошгүй байдаг бөгөөд таны системийг ачаалагдахгүй болгож эсвэл файлын системүүдийг чинь устгаж (эсвэл бүр муу юм болж) болох юм. Эдгээртэй адил асуудлууд гарвал асуудлын учир шалтгаан болон аль систем дээр энэ асуудал хамааралтайг тайлбарласан heads up буюу бүхний сонорт хандсан зарлал тохирох захидлын жагсаалтад илгээгддэг. Тэгээд all clear буюу бүгд цэвэр зарлал асуудал шийдэгдсэний дараа тавигддаг. Хэрэв та &os.stable; эсвэл &os.current;-ийг дагахыг оролдож &a.stable; эсвэл &a.current;-г харгалзуулан уншихгүй байгаа бол энэ нь та өөртөө гай төвөг асууж байна л гэсэн үг юм. <command>make world</command> тушаалыг бүү ашигла Ихэнх хуучин баримтууд үүнд зориулан 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 Тайлбаруудыг цааш уншина уу Дээр тайлбарласан дараалал нь зөвхөн таныг эхлэхэд туслах богино сэргээлт болох юм. Гэхдээ хэрэв та ялангуяа өөрчлөн тохируулсан цөмийн тохиргоо ашиглахыг хүсэж байгаа бол дараах хэсгүүдийг уншиж алхам бүрийг сайтар ойлгох хэрэгтэй. <filename>/usr/src/UPDATING</filename> файлыг унш Өөр юм хийж эхлэхээсээ өмнө та /usr/src/UPDATING-г (эсвэл эх кодын хуулбар хаана байгаа тэндээс үүнтэй төстэй файлыг ) уншаарай. Энэ файл нь танд учирч болзошгүй асуудлуудын талаар чухал мэдээлэл агуулдаг бөгөөд эсвэл таны ажиллуулах зарим нэг тушаалуудын дарааллын талаар заасан байдаг. Хэрэв UPDATING файл таны энд уншсантай зөрчилдөж байвал UPDATING файлд заасныг дагах хэрэгтэй. UPDATING файлыг унших нь өмнө нь тайлбарласнаар зөв захидлын жагсаалтад бүртгүүлэхтэй харьцуулах юм бол хүлээн зөвшөөрч болохуйц орлогч байж чадахгүй юм. Энэ хоёр шаардлага нь нэмэлт бөгөөд заавал шаардлагатай биш юм. <filename>/etc/make.conf</filename> файлыг шалга 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 гэх зэрэг) шалгаж танд хамаатай эсэхээс хамаарч оруулах эсэхээ шийдээрэй. <filename>/etc</filename> дэх файлуудыг шинэчил /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 Энэ нь таны локал цагийн бүсийн тохируулгуудыг зөвөөр тохируулж өгдөг — үүнийг хийхгүй бол та дараа нь зарим асуудлуудтай тулгарч магадгүй. <filename>/usr/obj</filename>-г устга Системийн хэсгүүд дахин бүтээгдсэнийхээ дараа (анхдагчаар) /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) суулгахыг оролдох болно. <command>make installworld</command> тушаалаар шинэчлэгдээгүй файлуудыг шинэчил Ертөнцийг дахин бүтээх нь зарим нэг сангуудыг (ялангуяа /etc, /var болон /usr) шинэ болон өөрчлөгдсөн тохиргооны файлуудаар шинэчилдэггүй. Эдгээр файлуудыг хамгийн амархнаар шинэчлэх арга нь &man.mergemaster.8;-г ашиглах явдал юм, гэхдээ та хэрэв хүсвэл үүнийг гараар ажиллуулах боломжтой юм. Аль ч аргыг сонголоо гэсэн ямар нэгэн зүйл буруутсан тохиолдолд сэргээх боломжтойгоор /etc-г нөөцөлж авах нь зүйтэй юм. Том Рөүдс Хувь нэмэр болгон оруулсан <command>mergemaster</command> 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; (зөвлөсний дагуу) ашиглаж байвал та дагаагийн хэсэг уруу орж болно. Үүнийг гараар хамгийн хялбар аргаар хийхийн тулд файлуудыг шинэ сан уруу суулгаж нэг бүрчлэн өөрчлөлтүүдийг хайн ажиллах хэрэгтэй. Өөрт байгаа <filename>/etc</filename>-г нөөцөл Онолоор бол автоматаар энэ санд юу ч хүрдэггүй ч үүнд үргэлж итгэлтэй байх хэрэгтэй. Тэгэхээр өөрийн байгаа /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-тэй холбоотой тохируулгуудын талаар илүү дэлгэрэнгүй зөвлөмжүүдийн жагсаалтыг хаягаас үзнэ үү. <acronym>ZFS</acronym>-г ашиглах нь 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 нь энэ боломжийг дараагийн хэсэгт тайлбарлах өөрийн цөөрмийн дизайндаа дэмжсэн байдаг. <acronym>ZFS</acronym> 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 <acronym>RAID</acronym>-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.wavaudio01.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.mpgMPlayer-ээр тоглуулах боломжтой байна. Та файлыг бүр Видео 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; гарын авлагын хуудаснаас үзнэ үү.