diff --git a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
index fbb44ed410..c4183c9f37 100644
--- a/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/basics/chapter.sgml
@@ -1,2548 +1,2554 @@
Крис
Шамвэй
Дахин бичсэн
Шагдарын
Нацагдорж
Орчуулсан
Юниксийн үндэс
Ерөнхий агуулга
Дараах бүлгүүд нь FreeBSD үйлдлийн системийн үндсэн
тушаал мөн гүйцэтгэлүүдийг хамрах болно. Энэ материалын
ихэнх хэсэг нь &unix;-төрлийн үйлдлийн системтэй хамаатай.
Хэрэв та юникс төрлийн үйлдлийн системтэй танил бол энэ бүлгийг
алгасаж болно. Харин та FreeBSD-г шинээр сурагч бол энэ бүлгийг
тун анхааралтай унших хэрэгтэй.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
FreeBSD-н виртуал консолыг
хэрхэн
хэрэглэх.
&os; дээрх файлын тугийг ойлгосноор &unix;-н файлын
зөвшөөрөл хэрхэн ажилладгийг мэдэх.
Үндсэн &os; файл системийн байрлуулалтыг мэдэх.
&os; диск зохион байгуулалт.
Файл системийг хэрхэн холбох болон салгах.
Процесс, далд чөтгөр дэмон, мөн дохионууд гэж юу болох.
Бүрхүүл гэж юу болох, мөн хэрхэн анхны нэвтрэх орчноо өөрчлөх.
Үндсэн текст засварлагчийг хэрхэн хэрэглэх.
Төхөөрөмж болох төхөөрөмжийн цэг гэж юу болох.
&os;-д ямар хоёртын хэлбэр хэрэглэгддэг болох.
Нэмэлт мэдээллийг товч гарын авлагаас хэрхэн харах.
Виртуал консол болон терминал
виртуал консол
терминал
FreeBSD нь олон аргаар хэрэглэгдэж чадна. Тэдний нэг нь
тушаалуудыг текст терминал дээр бичиж хэрэглэх юм. Хэрэв та
FreeBSD-г ингэж хэрэглэвэл, &unix;-н маш олон боломж болон
хүч таны гарт байна гэсэн үг.
Энэ бүлэг танд, терминал
болон консол
гэж юу болох, мөн тэд нарыг FreeBSD дээр хэрхэн хэрэглэх талаар
танд тодорхойлж өгөх болно.
Консол
консол
Хэрэв та FreeBSD-г эхлэх үедээ автоматаар график горимд
эхлүүлэхээр тохируулаагүй бол, систем нь эхлэлтийн гүйцэтгэдэг
бичиглэлүүдээ дуусгасны дараа танд нэвтрэх хуудас харуулдаг.
Та нэг иймэрхүү хуудас харах байх:
Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:
Энд харуулсан текстүүд нь таны систем дээр жаахан
өөр байж магадгүй ч, ерөнхийдөө үүнтэй ижил байх ёстой.
Сүүлийн хоёр мөр нь бидэнд одоогоор чухал мөрүүд. Сүүлээсээ
хоёр дахь мөр нь ингэж уншигдаж байна:
FreeBSD/i386 (pc3.example.org) (ttyv0)
Энэ мөр нь таны дөнгөж сая эхлүүлсэн системийн тухай
товч мэдээллийг агуулсан байна. Та x86 архитектуртай тохиромжтой
Интел юм уу тохирох систем дээр ажиллаж буй FreeBSD
консолыг харж байна
i386 гэдэг нь үүнийг илэрхийлж байгаа юм. Тэмдэглэж хэлэхэд, хэрэв та FreeBSD-г Интел 386 процессор дээр
ажиллуулаагүй байсан ч энэ нь i386 гэж гарна. Энэ нь процессорын төрлийг биш харин процессорын архитектурыг
харуулж байгаа юм.
. Энэ машины нэр нь (&unix; машин болгон
өөрийн нэртэй ) pc3.example.org, бөгөөд
та энэ системийн консолын — ttyv0
нэртэй терминалыг харж байна.
Эцэст нь, сүүлийн мөр бол үргэлж:
login:
Энэ хэсэг нь, таны FreeBSD уруу нэвтрэх
хэрэглэгчийн-нэрээ
бичдэг хэсэг. Дараагийн
хэсэгт энэ талаар тодорхойлсон байгаа.
FreeBSD уруу нэвтрэх
FreeBSD бол олон хэрэглэгчийн бас олон үйлдлийн систем.
Энэ нь, нэг машин уруу олон хүмүүс зэрэг холбогдож
нэгэн зэрэг олон үйлдэл хийж болдог системийн ерөнхий тодорхойлолт
юм.
Олон хэрэглэгчийн систем нь ямар нэгэн аргаар нэг
хэрэглэгчийг
бусдаас нь ялгаж чаддаг байх ёстой.
FreeBSD дээр (мөн бусад &unix;-төрлийн системүүд дээр) энэ нь,
хэрэглэгч ямар нэгэн програм ажиллуулахаасаа өмнө систем уруу
нэвтрэх үйлдэл
хийж хэрэгждэг. Хэрэглэгч бүрд
гоц нэр (
хэрэглэгчийн-нэр
) мөн хувийн нууц үг (
нууц-үг
) харгалзах ёстой. Хэрэглэгчийг програм
хэрэглэж эхлэхээс өмнө FreeBSD энэ хоёрыг асуух болно.
эхлэлийн бичлэг
Дөнгөж FreeBSD эхлэх үедээ эхлүүлэгч бичлэгүүдийг
Эхлэх бичлэгүүд гэдэг нь
FreeBSD эхлэх үед автоматаар ажилладаг програмууд. Тэдгээрийн
үндсэн үүрэг нь, ажиллах ёстой програмуудыг тохируулах, мөн хэрэв ар талд далд ажилладаг ямар нэгэн үр ашигтай үйлдэл хийж байдаг
таны тохируулсан үйлчилгээнүүд байвал тэднийг
эхлүүлэх зэрэг үйлдлүүд юм.
гүйцэтгэж дуусаад танаас зөв
хэрэглэгчийн нэр оруулахыг лавлаж асууна:
login:
Энэ жишээнд зориулаад бүгдээрээ таны хэрэглэгчийн нэрийг
john гэж бодоцгооё. Лавлаж асуусан
мөрөнд john гэж бичээд
Enter товч дарна. Ингээд дараа нь танаас
password
гэж нууц үг асуух болно:
login: john
Password:
john-ны нууц үгийг оруулаад
Enter товч дарна. Нууц үгийг танд
харуулдаггүй! Энэ талаар та одоохондоо санаагаа
зовоох хэрэггүй. Нууцлалын шалтгаанаар ингэж байгаа юм гэж
хэлэхэд хангалттай.
Хэрэв та нууц үгээ зөв оруулсан бол ингээд FreeBSD
уруу нэвтрэх бөгөөд боломжтой бүх програмуудыг туршиж болохоор
боллоо.
Та MOTD эсвэл тухайн өдрийн мэдээллийг
тушаал бичигчийн араас харах болно ( тушаал бичигч нь
#,
$, эсвэл % гэсэн
тэмдэгтүүдийн нэг нь байдаг). Энэ нь таныг FreeBSD уруу
амжилттай нэвтэрснийг илэрхийлдэг.
Олон консолууд
&unix; тушаалуудыг нэг консол дээр гүйцэтгэх нь ердийнх, гэхдээ FreeBSD олон програмыг нэг дор ажиллуулж чадна. FreeBSD
олон програмыг нэг дор нэг цагт ажиллуулж чадаж байхад, нэг консол
дээр олон тушаал өгч суух нь цаг алдахын л нэмэр. Ийм үед л
виртуал консолын
тусламж хэрэг болдог.
FreeBSD нь танд олон төрлийн виртуал консол хэрэглүүлэхээр
тохируулагдаж чаддаг. Нэг виртуал консолоос нөгөөх уруу нь
гарын хэдхэн товчлуур дараад л шилжиж болдог. Консол бүр өөрийн
төрөл бүрийн гаралтын сувагтай бөгөөд FreeBSD нь таныг нэг
консолоос нөгөө консол уруу сэлгэх үед гарын оруулга болон дэлгэцийн
гаралтыг тухайн консолд тохируулж дамжуулж өгдөг.
Гарын тусгай товчлолууд нь FreeBSD дээр консол сэлгэхэд зориулж
нөөцлөгдсөн байдаг
FreeBSD консол мөн гарын тохируулгын тухай нэлээн
дэлгэрэнгүй техникийн мэдээллийг та
&man.syscons.4;, &man.atkbd.4;, &man.vidcontrol.1;
мөн &man.kbdcontrol.1; зэрэг гарын авлагуудаас харж болно. Бид
нар энд задалж нарийвчлахгүй бөгөөд сонирхсон хүмүүс нь гарын авлагуудаас хэрхэн ажилладаг заавар тайлбарыг уншиж болно.
. Та
AltF1,
AltF2, аас
AltF8 хүртэлх товчлуурыг дарж FreeBSD дээр консолуудын хооронд шилжиж болно.
Таныг нэгээс нөгөөх уруу нь шилжих үед, FreeBSD таны дэлгэцийн
гаралтыг хадгалж санаа тавьдаг. Ингэсний үр дүнд гарнаас тушаал оруулж програмуудыг
ажиллуулж болдог маш олон виртуал
дэлгэцүүдтэй
мэт үзэгддэг. Нэг виртуал консол дээр таны ажиллуулсан програм нь уг консолоос сэлгээд өөр консол дээр сэлгэсэн ч гэсэн зогсохгүй
ажиллаж л байдаг.
/etc/ttys Файл
FreeBSD анхны тохируулгаараа найман виртуал
консолтой эхэлдэг. Энэ нь хатуу тогтоосон тохируулга биш бөгөөд
хэрэв та хүсвэл олон юм уу цөөн болгож амархан өөрчлөх боломжтой. Виртуал консолын тоо болон тохируулга нь
/etc/ttys файлд байдаг.
Та /etc/ttys файлыг хэрэглэж FreeBSD
дээрх виртуал консолуудыг тохируулж болно. Энэ файлын тайлбар
тавиагүй мөр болгон
( # тэмдгээр эхлээгүй мөрүүд) виртуал
консол эсвэл ганц терминалын тохируулгыг агуулж байдаг.
Энэ файл FreeBSD-тэй анх цуг ирэхдээ есөн виртуал
консолтой гэж тохируулагдаж ирдэг бөгөөд тэдний наймыг нь
хэрэглэж болохыг зөвшөөрсөн байдаг. Тэдгээр нь
ttyv гэж эхэлсэн байдаг:
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
Виртуал консолыг тохируулдаг энэ файлын баганууд
мөн нэмэлт сонголтуудын дэлгэрэнгүй
тайлбарыг та &man.ttys.5; гарын авлагаас харна уу.
Ганц хэрэглэгчийн горимын консол
Ганц хэрэглэгчийн горим
гэж юу болох талаар дэлгэрэнгүй мэдээлэл -д буй.
FreeBSD дээр ганц хэрэглэгчийн горимд ажиллаж байхад
зөвхөн нэг консол байдаг гэдгийг мэдэх хэрэгтэй. Энэ үед
ямар ч виртуал консолууд боломжгүй. Ганц хэрэглэгчийн
горимын тохируулгыг бас /etc/ttys файл
дотор хийж болно. console гэж эхэлсэн
мөрүүдийг харна уу:
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure
Дээрх console гэсэн мөрний
дээд хэсэгт бичсэн тайлбарт бичсэний дагуу та secure гэдгийг
insecure гэж өөрчилж болно. Хэрэв та ингэвэл,
FreeBSD ганц хэрэглэгчийн горимд эхэлсэн ч гэсэн танаас
root нууц үг асуух болно.
Үүнийг
insecure гэж солихдоо та тун болгоомжтой
байх хэрэгтэй. Хэрэв та хэзээ нэгэн цагт
root нууц үгээ мартаад ганц хэрэглэгчийн
горимд орвол жаахан хүндрэлтэй байх болно. Энэ нь гэхдээ шийдэж
болохоор хүндрэл боловч FreeBSD-н эхлэх үйлдэл болон хамрагдсан
програмуудад нь дасаагүй хүнд бол жаахан хүндрэлтэй байж магадгүй.
Консолын Видео горимуудыг өөрчлөх нь
FreeBSD-ийн консолын анхдагч видео горимыг 1024x768,
1280x1024, эсвэл таны график бичил схем болон дэлгэц дэмжиж
чадах дурын хэмжээгээр тохируулж болох юм. Өөр видео горимыг
ашиглахын тулд та эхлээд өөрийн цөмөө дахин эмхэтгэж хоёр нэмэлт
тохируулгыг оруулах хэрэгтэй:
options VESA
options SC_PIXEL_MODE
Цөм эдгээр хоёр тохируулгатай дахин эмхэтгэгдсэний дараа
таны тоног төхөөрөмж ямар видео горимуудыг дэмждэгийг
&man.vidcontrol.1; хэрэгсэл ашиглан та тодорхойлж болно.
Дэмжигдсэн видео горимуудын жагсаалтыг авахын тулд доор дурдсан
тушаалыг бичнэ:
&prompt.root; vidcontrol -i mode
Энэ тушаалын үр дүн нь таны тоног төхөөрөмжийн дэмждэг
видео горимуудын жагсаалт байх болно. Та дараа нь
root консол дээр шинэ
видео горимыг сонгон &man.vidcontrol.1; уруу өгч болно:
&prompt.root; vidcontrol MODE_279
Хэрэв шинэ видео горим боломжийн бол
/etc/rc.conf файлд
ачаалахад үүнийг үргэлж сонгодог байхаар тохируулж
болно:
allscreens_flags="MODE_279"
Зөвшөөрлүүд
UNIX
FreeBSD нь BSD &unix;-ээс уламжилж байх үедээ, &unix;-н
үндсэн хэдэн бүтэц дээр суурилсан. Эхний бөгөөд хамгийн
чухал тунхаглал нь FreeBSD бол олон хэрэглэгчийн
үйлдлийн систем юм.
Систем нь олон хэрэглэгчийн хоорондоо хамааралгүй олон үйлдлийг
ачаалж чаддаг. Хэрэглэгч болгонд шаардагдах компьютерийн төхөөрөмж, санах ой мөн процессорын давтамжийг зөв шударга
хуваарилахыг систем хариуцдаг.
Систем олон хэрэглэгчтэй ажиллах болохоор, системийн
хийх ёстой зүйл нь хэн тухайн нөөцийг унших, бичих,
гүйцэтгэх вэ гэдгийг зохицуулах юм. Эдгээр зөвшөөрлүүд нь
гурав гурваараа нийлүүлэгдсэн гурван хэсэг тоо байдаг. Нэг нь
файлын эзэмшигчид, нөгөөх нь файлын хамаарагддаг бүлэгт, үлдсэн нь
хүн болгонд гэж хуваарилагдана. Энэ тоон дараалал нь дараах
маягаар ажилладаг.:
зөвшөөрөл
файлын зөвшөөрөл
Утга
Зөвшөөрөл
Жагсаах харуулалт
0
Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэхгүй
---
1
Уншигдахгүй, бичигдэхгүй, гүйцэтгэгдэнэ
--x
2
Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэхгүй
-w-
3
Уншигдахгүй, бичигдэнэ, гүйцэтгэгдэнэ
-wx
4
Уншигдана, бичигдэхгүй, гүйцэтгэгдэхгүй
r--
5
Уншигдана, бичигдэхгүй, гүйцэтгэгдэнэ
r-x
6
Уншигдана, бичигдэнэ, гүйцэтгэгдэхгүй
rw-
7
Уншигдана, бичигдэнэ, гүйцэтгэгдэнэ
rwx
ls
сангууд
Та &man.ls.1; тушаалыг сонголттой
хэрэглэж файлын эзэмшигч, бүлэг, мөн хүн болгонд хуваарилсан
зөвшөөрлийг харуулсан баганатай дэлгэрэнгүй мэдээллийг харж
болно. Жишээлбэл,
ls -l тушаалыг нэг сан дотор гүйцэтгэвэл дараах маягаар харагдана:
&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...
Энд ls -l тушаалын эхний баганыг авч үзье:
-rw-r--r--
Хамгийн эхний (зүүн талын) тэмдэг нь үүнийг ердийн файл
юм уу, эсвэл сан, онцгой тэмдэг төхөөрөмж, сокет, эсвэл ямар
нэгэн холбоост файл мөн эсэхийг илэрхийлдэг. Энэ тохиолдолд
- нь ердийн файлыг зааж байна.
Дараагийн гурван тэмдэгт
rw- нь энэ тохиолдолд энэ файлын эзэмшигчид
зөвшөөрөл өгч байна. Дараагийн гурван тэмдэгт r-- нь файлын хамаарах бүлэгт эрх өгч байна.
Сүүлийн гурван тэмдэгт r-- нь бусад бүх хүмүүст
эрх өгч байна. Зураас нь зөвшөөрөл өгөөгүйг
илэрхийлдэг. Энэ файлын тохиолдолд, файлыг унших бичих эрхийг эзэмшигчид нь өгөөд, бүлэг нь файлыг унших эрхтэй, бусад хүмүүс
энэ файлыг зөвхөн унших эрхтэй гэж заагдсан байна.
Дээр тайлбарласан хүснэгтийн дагуу, энэ файлын зөвшөөрөл нь
644 гэж дээрх гурван төрөлд заагдаж байна.
Энэ бол сайн бөгөөд сайхан хэрэг, гэхдээ төхөөрөмж рүү хандах
зөвшөөрлийг систем яаж хянах вэ? FreeBSD бараг ихэнх
төхөөрөмжийг нээж уншиж өгөгдөл бичдэг файл мэт хандаж уншиж
бичдэг. Тэдгээр онцгой төхөөрөмжүүд нь
/dev сан дотор байрладаг.
Сангууд ч гэсэн бас файл мэт хандагддаг. Тэд нарт бас
уншигдах, бичигдэх, гүйцэтгэгдэх зөвшөөрлүүд байдаг.
Сангийн гүйцэтгэгдэх тэмдэг нь файлаас арай өөрөөр хэрэгждэг.
Хэрэв сан нь гүйцэтгэгдэнэ гэж тэмдэглэгдсэн бол, энэ сан нь
дамжиж өнгөрүүлэгдэж болох буюу cd
тушаалыг
(сан сольдог) хэрэглэж ийшээ орж болно гэсэн үг. Энэ нь мөн
сан дотор харагдаж байгаа файлууд уруу хандаж болно гэсэн үг. (бас нэг зүйл, мэдээжээр, файлууд бас өөр дээрээ зөвшөөрөл агуулсан байгаа).
Ерөнхийдөө бол, сан доторх файлуудыг жагсааж харахыг хүсвэл,
уг санд уншигдах зөвшөөрөл суугдсан байх ёстой. Хэрэв санд байгаа
файлыг устгана гэвэл бичигдэх
болон гүйцэтгэгдэх зөвшөөрлүүд уг санд
суугдах ёстой.
Мөн нэмээд хэдэн зөвшөөрлийн битүүд байдаг, гэхдээ тэдгээр нь
ажилладаг файлын setuid дугаар болон sticky сан зэрэг тусгай
зориулалтаар хэрэглэгддэг. Файлын зөвшөөрлийн талаар
нэмэлт мэдээлэл авахыг хүсвэл &man.chmod.1; гарын авлага
хуудаснаас хараарай.
Том
Рөүдс
Хамтарч бичсэн
Тэмдэгт зөвшөөрлүүд
зөвшөөрлүүдүсгэн
Сан эсвэл файлд тоон утганы оронд заримдаа тэмдгэн зөвшөөрлийг
хэрэглэдэг. Тэмдгэн зөвшөөрлийг бичихдээ (хэн) (үйлдэл)
(зөвшөөрөл) гэсэн дарааллаар бичих бөгөөд дараах утгуудыг авдаг:
Сонголт
Үсэг
Илэрхийлэл нь
(хэн)
u
Хэрэглэгч
(хэн)
g
Бүлгийн эзэмшигч
(хэн)
o
Бусад
(хэн)
a
Бүгд (ертөнц
)
(үйлдэл)
+
Зөвшөөрөл нэмэх
(action)
-
Зөвшөөрлийг устгах
(үйлдэл)
=
зөвхөн тухайн зөвшөөрлийг суулгах
(зөвшөөрөл)
r
Унших
(зөвшөөрөл)
w
Бичих
(зөвшөөрөл)
x
Гүйцэтгэх
(зөвшөөрөл)
t
Sticky бит
(зөвшөөрөл)
s
UID эсвэл GID суулгах
Эдгээр утгууд нь өмнөх жишээ шиг &man.chmod.1; тушаалтай
хэрэглэгддэг бөгөөд гэхдээ үсэг хэрэглэнэ. Жишээлбэл, та
FILE уруу бусад хэрэглэгчид
хандахыг хориглохдоо:
&prompt.user; chmod go= FILE
Файлд нэгээс олон өөрчлөлт хийх шаардлага гарвал таслалаар
тусгаарласан мөр бичиж болно. Жишээлбэл, дараах тушаал нь
бүлэг болон дэлхийг
FILE дээр бичих эрхийг нь аваад дараа нь хүн болгонд гүйцэтгэж
болно гэсэн эрх өгч байна:
&prompt.user; chmod go-w,a+x FILE
Том
Рөүдс
Хамтран бичсэн
&os; файлын туг
Өмнө ярилцсан файлын зөвшөөрлөөс гадна &os; нь
файлын туг
хэрэглээгээр хангагдсан байдаг. Эдгээр туг
нь файлд нэмэлт нууцлалын болон хяналтын түвшин тогтоож өгдөг, гэхдээ
санд бол үгүй.
Эдгээр файлын тугнууд нь файлд нэмэлт түвшний хяналт тогтоож
өгснөөрөө зарим тохиолдолд
root хэрэглэгч хүртэл файлыг устгах
юм уу өөрчилж чадахгүй болгож тусалдаг.
Файлын тугнууд нь энгийн загвартай &man.chflags.1;
багажаар ашиглагддаг. Жишээлбэл,
file1 файл дээр устгагдахгүй гэсэн
туг хатгахыг системд зөвшөөрүүлэхийн тулд дараах тушаалыг гүйцэтгэнэ:
&prompt.root; chflags sunlink file1
Хэрэв устгагдахгүй тугийг буцааж авна гэвэл өмнөх тушаал дээрээ
-ын өмнө no
залгаж
ажиллуулна:
&prompt.root; chflags nosunlink file1
Энэ файлын тугийг харахын тулд &man.ls.1; тушаалыг
сонголттой хамт ажиллуулна:
&prompt.root; ls -lo file1
Тушаалын гаралт нь дараах маягаар харагдах ёстой:
-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1
Нэлээн хэдэн тугнууд нь файлд зөвхөн
root хэрэглэгчээр нэмэгдэж устгагдана.
Бусад тохиолдолд файлын эзэмшигч нь тугийг суулгах боломжтой.
Администраторуудыг &man.chflags.1; болон &man.chflags.2; гарын
авлагуудыг уншихыг зөвлөж байна.
Том
Рөүдс
Хувь нэмэр болгон оруулсан
setuid, setgid, болон sticky буюу наалдамхай зөвшөөрлүүд
Өмнө хэлэлцсэн зөвшөөрлүүдээс гадна бүх администраторуудын
мэдэх ёстой өөр гурван тусгай тохиргоо байдаг. Эдгээр нь
setuid, setgid
болон sticky буюу наалдамхай
зөвшөөрлүүд юм.
Эдгээр тохиргоонууд нь ерөнхийдөө энгийн хэрэглэгчдэд зөвшөөрөгддөггүй
ажиллагаагаар хангадаг бөгөөд &unix;-ийн зарим нэг үйлдлүүдэд чухал байдаг.
Эдгээрийг ойлгохын тулд жинхэнэ хэрэглэгчийн ID болон хүчинтэй хэрэглэгчийн
ID-ийн ялгааг дурдах хэрэгтэй.
Жинхэнэ хэрэглэгчийн ID нь процессийг эзэмшдэг юм уу эсвэл
процессийг эхлүүлдэг UID юм. Хүчинтэй хэрэглэгчийн
UID нь процессийн ажиллаж байгаа тэр хэрэглэгчийн
ID юм. Жишээ нь &man.passwd.1; хэрэгсэл нь хэрэглэгч өөрсдийн нууц үгээ
сольж байгаа болохоор жинхэнэ хэрэглэгчийн ID-аар ажиллах боловч
нууц үгийн санд өөрчлөлт хийхийн тулд root
хэрэглэгчийн хүчинтэй ID-аар ажилладаг. Ингэснээр энгийн хэрэглэгчдэд
Permission Denied буюу зөвшөөрөл хаалттай
гэсэн алдааг харуулалгүйгээр өөрсдийн нууц үгсийг солих боломжийг
олгодог.
nosuid &man.mount.8; тохиргоо нь
эдгээр хоёртын файлуудыг дуугай амжилтгүй болоход хүргэдэг.
Энэ нь хэрэглэгчдэд мэдэгдэлгүйгээр ажиллагаа амжилтгүй болно
гэсэн үг юм. &man.mount.8; гарын авлагын дагуу энэ тохиргоо нь
nosuid гүйцэтгэл хялбаршуулагчийн хамгаалж болох шиг
бүрэн найдвартай бас биш юм.
setuid зөвшөөрлийг зөвшөөрлийн цуглуулгын өмнө
дөрвийн тоог (4) доорх жишээн дээрх шигээр тавьж
тохируулж болно:
&prompt.root; chmod 4755 suidexample.sh
suidexample.sh
файл дээрх зөвшөөрлүүд нь одоо доорх шиг харагдах ёстой:
-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh
Энэ жишээн дээр s нь ажиллуулах битийг
сольж файлын эзэмшигчид зориулсан зөвшөөрлүүдийн цуглуулгын хэсэг
болж байгаа нь харагдах ёстой. Энэ нь passwd
зэрэг дээшлүүлсэн зөвшөөрлүүдийг шаарддаг хэрэгслүүдийг
зөвшөөрдөг.
Жинхнээр нь үүнийг харахын тулд хоёр терминал нээ. Нэг дээр нь
энгийн хэрэглэгчээр passwd процессийг
эхлүүл. Шинэ нууц үг хүлээж байхад нь процессийн хүснэгтийг
шалгаад passwd тушаалын хэрэглэгчийн
мэдээллийг хар.
Терминал A дээр:
Changing local password for trhodes
Old Password:
Терминал B дээр:
&prompt.root; ps aux | grep passwd
trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd
Дээр харуулснаар passwd нь
энгийн хэрэглэгчээр ажиллаж байгаа боловч root
хэрэглэгчийн хүчинтэй UID ашиглаж байна.
setgid зөвшөөрөл нь setuid
зөвшөөрөлтэй адил үүргийг гүйцэтгэдэг, гэхдээ бүлгийн тохиргоог
өөрчилдөг. Програм юм уу эсвэл хэрэгсэл нь энэ тохиргоотойгоор ажиллахдаа
процессийг эхлүүлсэн хэрэглэгч биш файлыг эзэмшиж байгаа бүлэг дээр
тулгуурласан зөвшөөрлүүдийг олгодог.
Файл дээр setgid зөвшөөрлийг тохируулахдаа
дараах жишээн дээрх шиг chmod тушаалыг өмнөө
хоёртой (2) өгнө:
&prompt.root; chmod 2755 sgidexample.sh
Шинэ тохиргоог өмнөх шигээ харж болох бөгөөд
s нь одоо бүлгийн зөвшөөрлийн тохиргоонд
зориулагдсан талбарт байгааг анхаараарай:
-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh
Эдгээр жишээнүүд дээр бүрхүүлийн скрипт нь хэдийгээр
ажиллах боломжтой файл боловч өөр EUID
буюу хүчинтэй хэрэглэгчийн ID-аар ажиллахгүй.
Энэ нь яагаад гэвэл бүрхүүлийн скрипт нь &man.setuid.2;
системийн дуудлагуудад хандаж чадахгүйтэй холбоотой юм.
Бидний хэлэлцсэн эхний хоёр тусгай зөвшөөрлийн битүүд нь
(setuid болон setgid
зөвшөөрлийн битүүд) дээшлүүлсэн зөвшөөрлүүдийг зөвшөөрч системийн
аюулгүй байдлыг доошлуулж болох юм. Системийн аюулгүй байдлыг
чангатгаж чадах гурав дахь тусгай зөвшөөрлийн бит байдаг нь
sticky bit буюу наалдамхай бит юм.
sticky bit нь санд тавигдсан үед
файл устгалтыг зөвхөн файлыг эзэмшигчид зөвшөөрдөг. Энэ
зөвшөөрлийн цуглуулга нь
/tmp
зэрэг нийтийн сангаас файлыг эзэмшдэггүй хэрэглэгч уг файлыг устгахаас
хамгаалахад ашиг тустай байдаг. Энэ зөвшөөрлийг ашиглахын тулд
зөвшөөрлийн урд нэгийг (1) тавьж өгнө. Жишээ нь:
&prompt.root; chmod 1777 /tmp
Одоо үр дүнг ls тушаал ашиглан
харах боломжтой:
&prompt.root; ls -al / | grep tmp
drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp
sticky bit буюу наалдамхай бит зөвшөөрөл нь
цуглуулгын хамгийн сүүлд байгаа t-ээс ялгаатай
юм.
Сангийн бүтэц
сангийн зохион байгуулалт
FreeBSD ийн сангийн бүтэц нь уг системийг ойлгоход тун
чухал үүрэг гүйцэтгэнэ. Хамгийн чухал бөгөөд үндсэн
ойлголт бол root буюу хамгийн дээд эх сан
/
юм. Энэ сан нь систем эхлэх үед хамгийн
түрүүнд танигдах ёстой бөгөөд олон хэрэглэгчид зориулсан
үйлдлийн системийг бэлдэхэд чухал үүрэгтэй. Энэ дээд эх сан
нь олон хэрэглэгчийн ажиллагаанд шилжих үед холбогдох бусад файлын системүүдийн
холболтын цэгүүдийг бас агуулж байдаг.
Холболтын цэг нь үндсэн файл систем уруу (ихэвчлэн эх root файл систем) нэмэлт файлын системүүдийг холбож
нэмдэг цэг юм.
Энэ тухай цаашид -д тайлбарласан
байгаа.
Үндсэн холбох цэгүүд нь
/usr, /var, /tmp,
/mnt, мөн /cdrom
сангуудыг агуулж байдаг.
Эдгээр сангууд нь голдуу
/etc/fstab файлд заагдсан байдаг. /etc/fstab файл нь төрөл бүрийн файл системүүдийг
системд ойлгуулах гэж бичсэн хүснэгт бичлэг.
/etc/fstab файлд байгаа ихэнх файл
системүүд компьютер эхэлж ачаалагдах үед автоматаар &man.rc.8;
гүйцэтгэгддэг бичлэгээс таниулагддаг. Гэхдээ хэрэв
гэсэн сонголтыг агуулсан бол
автоматаар таниулагддаггүй.
Дэлгэрэнгүй мэдээлэл хэсэгт буй.
Файл системийн бүтцийн тухай бүрэн мэдээллийг
&man.hier.7;-с харж болно. Одоохондоо байнга хэрэглэгддэг
сангуудыг товч тайлбарлахад хангалттай.
Сан
Тодорхойлолт
/
Файл системийн Root буюу хамгийн дээд эх сан.
/bin/
Ганц болон олон хэрэглэгчийн орчны үндсэн
хэрэгслийн сан.
/boot/
Үйлдлийн систем эхлэж ачаалагдах үеийн програмууд болон тохируулга файлууд.
/boot/defaults/
Анхдагч ачаалах үеийн тохируулгын файлууд; дэлгэрэнгүйг
&man.loader.conf.5; хуудаснаас харна уу.
/dev/
Төхөөрөмжүүд байдаг сан; &man.intro.4; хуудаснаас харна уу.
/etc/
Системийн тохируулгын файлууд болон гүйцэтгэх бичлэгүүд.
/etc/defaults/
Анхдагч системийн тохируулгын файлууд; дэлгэрэнгүйг &man.rc.8; хуудаснаас хараарай.
/etc/mail/
&man.sendmail.8; мэтийн захиа илгээгчдийн
тохируулгын файлууд.
/etc/namedb/
named-н тохируулгын файл;
&man.named.8; хуудаснаас дэлгэрэнгүйг харна уу.
/etc/periodic/
&man.cron.8;-г ашиглаж өдрөөр, сараар, эсвэл жилээр
гэх мэт давтамжаар ажиллаж чаддаг бичлэгүүд ; дэлгэрэнгүйг &man.periodic.8; хуудаснаас харна уу.
/etc/ppp/
ppp тохируулга файлууд;
&man.ppp.8;-с харна уу.
/mnt/
Администратор голдуу түр зуур бусад файл систем эсвэл
төхөөрөмжийг таниулахад хэрэглэдэг хоосон сан.
/proc/
Процесийн файл систем; &man.procfs.5; болон
&man.mount.procfs.8;-с харна уу.
/rescue/
Эвдэрч гэмтсэн үед сэргээхэд хэрэглэгддэг
програмууд &man.rescue.8;-с харна уу.
/root/
root хэрэглэгчийн гэрийн сан.
/sbin/
Ганц болон олон хэрэглэгчийн орчинд хэрэглэж болохоор
системийн програм ба администраторын үндсэн хэрэгслүүд.
/tmp/
Түр зуурын файлууд.
/tmp сан доторх файлууд нь систем шинээр ачаалагдах үед хадгалагдалгүйгээр устгагдана. Санах ойгоос ажилладаг файл системүүд голцуу
/tmp
санд таниулагдаж байрлуулагддаг.
Энэ үйлдэл нь &man.rc.conf.5;-тай холбоотой tmpmfs-төрлийг ашиглаж автоматжуулагдаж болдог
(эсвэл /etc/fstab дотор буй
оруулгууд бүгдээрээ; &man.mdmfs.8;-с харна уу).
/usr/
Програм болон хэрэглэгчийн хэрэглэдэг үндсэн хэрэгслүүд.
/usr/bin/
Үндсэн хэрэгслүүд, програмын багажууд, мөн програмууд.
/usr/include/
Стандарт C-ийн include файлууд.
/usr/lib/
Програмын шахаж бэлдсэн багцууд.
/usr/libdata/
Төрөл бүрийн хэрэгслийн өгөгдлийн файлууд.
/usr/libexec/
Системийн далд чөтгөр буюу дэмон болон системийн
хэрэгслүүд (бусад програмаас дуудагдаж ажилладаг).
/usr/local/
Дотоод гүйцэтгэгддэг болон програмын сангууд гэх мэт програмууд байдаг. Мөн FreeBSD-н портуудын анхны байрлуулах газар болж өгдөг. /usr/local -ийн доторх нь,
&man.hier.7;-аар
/usr сангийн дотор байгааг байрлуулсан шиг
зохион байгуулагдах хэрэгтэй. Гэхдээ энэнд хамаарахгүй
сангууд нь man гэж /usr/local/share сан дотор биш
/usr/local дотор байрладаг сан,
мөн
share/doc/port
дотор байдаг портуудын бичиг баримт байдаг сан юм.
/usr/obj/
Архитектураасаа хамаараад /usr/src санг хөрвүүлэх үед бүтээгддэг сан..
/usr/ports
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
NIS maps.
Диск зохион байгуулалт
FreeBSD нь файл олохын тулд хэрэглэдэг хамгийн жижиг
хэрэгсэл бол файлын нэр юм. Файлын нэрний том болон бага үсэгнүүд нь
бас ялгаатай. Энэ нь юу гэсэн үг вэ гэвэл
readme.txt болон README.TXT гэсэн хоёр файл нь хоорондоо ялгаатай файл гэсэн үг.
FreeBSD нь файлын төрлийг програм, бичиг баримт, эсвэл бусад төрлийн
файл байна гэж ялгахын тулд
(.txt) гэх мэтийн өргөтгөл хэрэглэдэггүй.
Файлууд сан дотор хадгалагддаг. Сан нь зуу зуун файл агуулж
болох бөгөөд эсвэл хоосон байж болно. Сан нь сангаа агуулж бас болох ба ингэж сангийн угсарсан
модлог бүтэц үүсгэж болно. Ингэвэл та файлуудаа илүү амархан зохицуулах болно.
Файл ба сангууд нь / тэмдгийн араас шаардлагатай бол сангуудын нэрийг бичиж өгөгдсөн нэрээрээ хандагдана.
Хэрэв танд foo нэртэй сан нь
bar санг агуулдаг бөгөөд уг сан дотор
readme.txt файл байгаа бол, файлын хандах
бүтэн нэр буюу
зам нь
foo/bar/readme.txt гэж бичигдэнэ.
Сан болон файлууд нь файл системд хадгалагддаг. Файл систем болгон хамгийн эхний дээд хэсэгт заавал нэг сан агуулдаг бөгөөд, түүнийг уг файл системийн
root сан буюу дээд эх сан гэж нэрлэдэг.
Тэгээд энэ эх сан нь цаашаагаа өөр сангуудыг агуулж явдаг.
Энэ хүртэл таны уншсан зүйлүүд нь таны бусад мэддэг үйлдлийн
системтэй ижил байж магадгүй. Гэхдээ жаахан ялгаанууд бий. Жишээлбэл
&ms-dos; үйлдлийн систем нь файл болон санг тусгаарлахдаа
\ тэмдэг хэрэглэдэг байхад &macos; үйлдлийн
систем нь : тэмдгийг хэрэглэдэг.
FreeBSD дискэнд үсэглэж нэр өгдөггүй бөгөөд үсгээр нэр өгөгдсөн файлын замыг хэрэглэдэггүй. Та FreeBSD дээр c:/foo/bar/readme.txt гэж бичиж болохгүй.
Харин түүний оронд нэг файл системийг нэг root
файл систем гэж ангилдаг. Уг root буюу эх файл системийн эх сан нь
/ гэж хандагдана. Бусад өөр файл системүүд энэ root буюу эх файл систем дотор
холбогддог. Та FreeBSD систем дээрээ
хэдэн ч дисктэй байсан, сан болгонууд нь нэг дискний хэсэг мэт
харагддаг.
Жишээлбэл A,
B, мөн C гэсэн гурван
файл систем танд байна гэж бодъё. Файл систем бүр нь өөртөө хоёр сан агуулсан тус тусын эх сантай гэж үзье. Тэдгээр сангууд нь дараах нэртэй байг.
A1, A2 (гэх мэтчилэн
B1, B2 мөн
C1, C2).
A-г эх сан гэж үзнэ. Хэрэв та
ls тушаалаар энэ сангийн дотор байгааг харвал, A1 ба
A2 гэсэн хоёр санг та харах болно. Энэ сангийн модлог загвар нь ингэж харагдаж байна:
/
|
+--- A1
|
`--- A2
Хэрэв файл систем өөр файл системд холбогдохоор бол, холбогдож байгаа системийнхээ нэг сан дор холбогдоно. Тэгвэл одоо
B файл системийг A1 санд холбоно гэж үзье. Тэгвэл B-ийн эх сан нь A1-ээр орлуулагдаж,
B доторх файлууд дараах маягаар харагдана:
/
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2
Хэрэв B1 эсвэл
B2 сан доторх файлууд шаардлага гаран
хандагдахаар бол
/A1/B1 эсвэл /A1/B2 гэсэн зам хэрэглэгдэж бичигдэнэ. Хэрэв /A1 дотор файлууд байсан бол тэдгээрийг түр зуур нуудаг. B файл систем A системээс салгагдсан үед л тэр файлууд харагдана.
Хэрэв B файл систем A2
дор холбогдсон бол дараах маягаар харагдана:
/
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2
мөн файл уруу хандах зам нь /A2/B1 болон
/A2/B2 гэж тус тусдаа хандагдах болно.
Файл системүүд нэг нэгнийхээ дээр холбогдож болдог. Сүүлийн жишээгээ үргэлжлүүлээд C файл системийг B файл систем доторх
B1 сангийн дээд хэсэгт холбож өгвөл дараах зохион байгуулалт үүсэж байна:
/
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2
Эсвэл C файл систем
A файл систем дотор A1
санд холбогдож болно:
/
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2
Хэрэв та &ms-dos; системийг гадарладаг бол энэ нь join тушаалтай төсөөтэй боловч яг адилхан биш.
Угтаа бол энэ нь тийм их анхаарлаа хандуулаад байхаар зүйл биш.
Ердийн үед та FreeBSD суулгах үедээ нэг файл систем үүсгээд хаана холбохыг нь шийдэж холбоод, шинэ диск нэмэхгүй л бол түүнийгээ хэзээ ч өөрчлөх шаардлага гардаггүй.
Өөр файл систем үүсгэлгүйгээр нэг бүхэл эх файл систем үүсгэж болдог. Ийм үед зарим сул талууд гарч ирдэг бөгөөд нэг л давуу тал үүснэ.
Олон файл системүүдийн давуу талууд
Олон төрлийн файл системүүд нь олон төрлийн холбох нөхцөлтэй. Жишээлбэл, сайн төлөвлөсний
дараагаар, эх файл систем нь зөвхөн уншигдахаар холбогдож, ингэснээр санамсаргүй юм уу алдаа ослын шалтгаанаар чухал файлуудыг устгахаас сэргийлж болно. Хэрэглэгчдээр бичигдэж болдог файл систем, жишээ нь
/home мэтийн бусад системээс тусгаарлаж
nosuid төрлийн гэж холбож болно; энэ сонголт нь файл систем дээр буй гүйцэтгэж болдог файлд suid/guid бит утга тавигдахаас сэргийлж аюулгүй байдлыг хангаж өгдөг.
FreeBSD файл систем ямар зорилгоор хэрэглэгдэхээс нь
хамаараад файл систем дээр файлын зохион байгуулалтыг автоматаар
хийдэг. Тийм болохоор байнга бичигдэж байдаг олон жижигхэн файлуудын
байгаа файл систем дээр цөөхөн бичигддэг том файл агуулсан
файл системийг бодвол олон бичигдэхэд зориулж арай
өөр файлын зохион байгуулалт хийгддэг. Ганц том эх файл системд ийм зохион байгуулалт хийх боломжгүй.
FreeBSD-н файл систем нь цахилгаан тэжээлээс огцом салгагдсан үед ч дискний алдаа үүсгэдэггүй найдвартай байдаг. Гэвч маш ноцтой үед цахилгаан тэжээлээс огцом салгагдахад файл системийн бүтэц эвдэрч болзошгүй юм. Өгөгдлүүдээ олон файл системд хувааж байрлуулах нь дараа нь эвдрэлээс буцааж сэргээхэд амар байдаг.
Нэг файл системтэй байх үеийн давуу тал
Энэ файл систем нь тогтсон хэмжээтэй байдаг. Хэрэв та FreeBSD-ийг суулгах үедээ тодорхой зааж өгсөн файл систем үүсгээд, сүүлд нь түүнийгээ өргөжүүлэхийг хүсвэл, энэ нь тийм амархан биелэхгүй. Та эхлээд байгаа файл системийнхээ файлуудыг нөөцөлж хадгалаад дараа нь файл системдээ шинэ хэмжээ өгч өргөтгөөд дараа нь нөөцөөсөө файлуудаа буцааж сэргээж хадгалах болно.
FreeBSD-н &man.growfs.8; тушаал нь дээрх
хүндрэлийг алга болгож, файлыг нөөцлөх
шаардлагагүйгээр шууд файл системийг өргөтгөж болдог болсон.
Дискний хуваалт дотор файл систем оршиж байдаг. &os; нь юниксээс
уламжилсан болохоор диск хуваалтын ойлголт нь ердийн хэрэглээтэй
ижилхэн биш (жишээлбэл, &ms-dos; диск зохион байгуулалт). Дискний
хуваагдал бүр a үсэгнээс эхлээд
h хүртэл үсгээр тэмдэглэгддэг. Хуваагдал бүр зөвхөн ганцхан файл систем агуулах ёстой. Ийм болохоор файл систем нь агуулж байгаа диск хуваалтынхаа үсгээр илэрхийлэгдэх бөгөөд хэрэв өөр файл системд холбогдвол, холбосон сан нь уг файл системийг илэрхийлнэ.
FreeBSD мөн swap
-д зориулж дискэнд зай бэлддэг. Swap хэмжээ нь FreeBSD-н
виртуал санах ой юм. Ингэснээр таны компьютер
байгаа бодит хэмжээнээсээ илүү санах ой хэрэглэж байгаа мэт ажилладаг.
Хэрэв зарим програм FreeBSD дээр ажиллаад санах ойноос хэтрэх хүндрэл
гарвал, хэрэглэгдэхгүй байгаа хэсгийг swap зай руу зөөж, шаардлагатай
үед буцааж санах ой руу зөөх зарчмаар хэрэглэгддэг.
Зарим дискний хуваалт нь тогтсон журамтай байдаг.
Хуваалт
Тогтсон журам
a
Ихэнхдээ root файл системийг агуулж байдаг
b
Ихэнхдээ swap хэмжээг агуулдаг
c
Ихэнх үед агуулж буй зүсмэлийнхээ хэмжээтэй
ижил хэмжээтэй байдаг. Энэ нь ямар нэгэн хэрэгслүүдийг
(жишээлбэл, дискний эвдэрсэн хэсгийг шалгагч)
c хуваалт дээрх зүсмэл дээр бүхэлд
нь ажиллаж болох зөвшөөрөл өгдөг. Ердийн үед
та үүн дээр файл систем үүсгэх шаардлага байхгүй.
d
Урьд нь d хуваалт онцгой үүрэгтэй байсан
боловч одоо тийм биш, харин ердийн хуваалт шиг хэрэглэгдэж болно.
FreeBSD дээр файл систем агуулж байгаа хуваалтыг
зүсмэл гэж нэрлэдэг. Хуваалтын ерөнхий нэр нь
FreeBSD дээр зүсмэл гэж яригдах бөгөөд FreeBSD-ийн &unix; гаралд
цаад утга учир нь бий. Зүсмэл нь 1 -ээс эхлээд 4 хүртэлх тоогоор
дугаарлагдана.
зүсмэл
хуваалт
аюултай зориулалт
Зүсмэлийн дугаар нь төхөөрөмжийн нэрний араас
s үсгээр эхэлж бичигддэг.
Тэгэхээр da0s1
гэдэг нь,
эхний SCSI диск дээрх эхний зүсмэлийг илэрхийлж байна.
Диск дээр физик чанараараа зөвхөн дөрвөн ширхэг зүсмэл байрлуулж
болно. Харин логик зүсмэлийг та физик зүсмэл дотор дурын хэмжээтэй
үүсгэж болно. Ингэж өргөтгөж нэмсэн зүсмэлүүд нь 5 гэсэн
дугаараар эхэлж цаашаагаа тоологддог. Тэгэхээр
ad0s5
гэдэг нь эхний IDE
диск дээрх эхний өргөтгөсөн зүсмэлийг хэлж байна.
Ингэж өргөтгөсөн зүсмэлүүд нь файл систем агуулж, систем дээр
ердийн зүсмэл мэт харагдаж ажиллана.
Зүсмэлүүд нь физик диск дээр аюултай зориулалт
аар
буюу өөрөөp хэлбэл хүчээр байрлуулагддаг. Харин бусад дискнүүд нь
a -с эхлээд h хүртэл нэрлэсэн
хуваалт агуулж болдог.
Эдгээр үсэгнүүд нь төхөөрөмжийн ард залгагдаж бичигддэг ба
da0a
гэдэг нь
эхний da диск дээр байгаа a хуваалтыг илэрхийлж байна.
ad1s3e
бол хоёр дахь IDE диск дээр байгаа
гурав дахь зүсмэлийн тав дахь хуваалтыг илэрхийлж байна.
Эцэст нь хэлэхэд, диск болгон системд танигдах ёстой.
Дискний нэр нь дискний төрлийг илэрхийлсэн үсгээр эхлээд
тэгээд араас нь хэд дэх диск вэ гэдгийг нь илэрхийлсэн дугаартай
байдаг. Зүсмэлээс ялгарах зүйл нь, дискний дугаар 0 -ээс эхэлдэг.
Ерөнхий хэрэглээний жишээг
хүснэгтээс харна уу.
Хуваалт уруу хандах үед FreeBSD уг хуваалтыг
агуулсан зүсмэл болон дискийг тодорхойлохыг шаарддаг. Тэгээд
зүсмэл рүү хандах үед зүсмэлийг агуулсан дискний нэрийг шаардах
болно. Тэгэхээр та дискний нэр, s, зүсмэлийн дугаар,
тэгээд хуваалтын үсэг гэсэн дарааллаар нэрлэх нь байна.
Жишээнүүдийг -д харуулав.
Танд ойлгоход тань дөхөм болгож
жишээн дээр дискний зохион байгуулалтын тогтсон загварыг харуулж байна.
FreeBSD суулгахын тулд та эхлээд дискний зүсмэлийг тохируулна,
дараа нь зүсмэл дотор FreeBSD-н хэрэглэх хуваалт үүсгээд, дараа нь
хуваалт бүрд файл систем (эсвэл swap зайг) үүсгэж эцэст нь
хаана холбогдохыг нь (mount) зааж өгдөг.
Диск төхөөрөмжийн нэрнүүд
Нэр
Утга
ad
ATAPI (IDE) disk
da
SCSI direct access disk
acd
ATAPI (IDE) CDROM
cd
SCSI CDROM
fd
Floppy disk
Диск, Зүсмэл, Хуваалтын нэрлэх жишээ
Нэр
Утга
ad0s1a
Эхний IDE диск (ad0) дээрх эхний
зүсмэлийн (s1) эхний хуваалт (a).
da1s2e
Хоёр дахь SCSI диск (da1) дээрх
хоёр дахь (s2) зүсмэлийн тав дахь
(e) хуваалт.
Дискний тогтсон загвар
Дараах загвар нь системд буй IDE диск
FreeBSD дээр хэрхэн харагдаж байгааг харуулж байна.
Дискний хэмжээг 4 ГБ-н хэмжээтэй гэж үзээд хоёр ширхэг
2 ГБ зүсмэл байна (нэг зүсмэл дээр нь &ms-dos; хуваалт байгаа).
Эхний зүсмэл нь &ms-dos;-н C: диск агуулсан,
харин хоёр дахь зүсмэл дээр FreeBSD суугдсан.
Энэ жишээн дээр FreeBSD нь гурван өгөгдлийн хуваалт мөн swap хуваалт хэрэглэж
байна.
Гурван хуваалт нь тус тусдаа файл систем агуулж байгаа.
a хуваалт root файл системд зориулагдаж,
e хуваалт /var санд, мөн
f хуваалт
/usr санд тус тус зориулагдсан.
.-----------------. --.
| | |
| DOS / Windows | |
: : > First slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partition a, mounted as / |
| | > referred to as ad0s2a |
| | | |
:-----------------: ==: |
| | | Partition b, used as swap |
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
| | | Partition e, used as /var > file system, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partition f, used as /usr |
: : > referred to as ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'
Файл системийг холбох болон салгах
Файл систем нь / гэсэн
эхээс эхлэн модлог хэлбэрээр маш сайн харагддаг.
/dev, /usr, мөн
бусад сангууд нь root буюу эх сангаасаа салбарласан
салаа мөчир бөгөөд цаашаа уг мөчир нь бас
/usr/local гэж салаалах зэргээр
өргөжиж салаалж болдог.
root файл систем
Эдгээр сангуудын заримыг нь өөр файл системд
байрлуулах маш олон шалтгаан бий. /var
сан нь жишээлбэл log/,
spool/, гэх зэрэг янз бүрийн түр зуурын
файлуудыг агуулдаг бөгөөд түргэн дүүрэх магадлалтай. Эх сан буюу
root файл систем түргэн дүүрнэ гэдэг бол тийм ч сайн юм биш.
Тийм болохоор /var санг
/ сангаас тусад нь өөр газар байрлуулах нь
тун хэрэгтэй.
Тодорхой хэдэн сангуудыг тусад нь өөр файл систем дээр
байрлуулах хүндтэй шалтгаан бол, хэрвээ уг сангууд нь
өөр физик диск дээр, тусдаа виртуал диск дээр, Сүлжээний файл систем дээр,
эсвэл CDROM дээр байх явдал юм.
fstab файл
файл систем
fstab ашиглаж диск холбогдох
/etc/fstab файлд жагсаагдсан
файл системүүд нь системийн ачаалах явцад автоматаар холбогддог (гэхдээ хэрэв тэдгээр нь
сонголт хэрэглээгүй үед).
/etc/fstab нь дараах маягийн
жагсаалтыг агуулж байдаг:
төхөөрөмж /холбох-цэг файл-системийн-төрөл сонголтууд dumpfreq passno
төхөөрөмж
Төхөөрөмжийн нэр (заавал байх ёстой).
хуудсанд тайлбарласан байгаа.
mount-point буюу холбох цэг
Файл системийг байрлуулах
сангийн нэр (заавал байх ёстой).
файл-системийн-төрөл
&man.mount.8; хуудсанд тайлбарласан байгаа тул алгасав.
FreeBSD-н анхдагч файл систем бол
ufs.
сонголтууд
Уншиж бичигдэх файл системийг заасан
эсвэл зөвхөн уншигдах файл системд
зориулсан сонголт байж болох бөгөөд
цаашаагаа мөн нэмэлт сонголтууд агуулж болно.
Ердийн сонголт бол бөгөөд
ингэснээр систем эхлэх үед уг файл систем холбогддоггүй.
Бусад сонголтууд &man.mount.8; гарын авлагад тодорхой
бичигдсэн байгаа.
dumpfreq
Энэ сонголт нь &man.dump.8; хэрэгслээр
хэрэглэгддэг бөгөөд аль файл системд нөөц хадгалалт хийх вэ гэдгийг
тодорхойлж өгдөг. Хэрэв энэ сонголтыг бичээгүй бол
хоосон утгыг агуулж байдаг.
passno
Энэ сонголтыг ашиглан ямар дарааллаар файл системүүдийг
шалгах вэ гэдгийг зааж өгдөг.
Шалгалгүйгээр алгасна гэсэн файл системүүд нь
passno талбардаа 0 утгатай байх ёстой.
root буюу эх файл системийн (энэ файл систем нь хамгийн түрүүнд
шалгагддаг) passno талбарын утга нь
1 байдаг бөгөөд бусад системийн passno
нь нэгээс их байх ёстой.
Хэрэв нэгээс илүү олон файл системүүд passno
талбартаа ижил утгатай бол &man.fsck.8; нь тэдгээр файл системийг
хэрэв боломжтой зэрэг шалгахыг оролдох болно.
/etc/fstab файлын бүтэц болон тохируулдаг сонголтуудын тухай дэлгэрэнгүй мэдээллийг &man.fstab.5; гарын авлагаас харна уу.
mount тушаал
файл систем
mounting буюу файл систем холбох
&man.mount.8; тушаал нь файл системийг
холбоход хэрэглэгддэг цорын ганц тушаал юм.
Таны хамгийн өргөн хэрэглэх хэлбэр бол:
&prompt.root; mount төхөөрөмж-буюу-диск холбох-цэг
&man.mount.8;-н гарын авлагад зааснаар бол маш олон
сонголт байдаг бөгөөд өргөн хэрэглэгддэг нь:
Холбох тохируулгууд
/etc/fstab файлд
жагсааж бичсэн бүх файл системийг холбоно. Гэхдээ
noauto
гэж тэмдэглэснийг,
гэж туг хатгасныг, эсвэл
өмнө нь холбогдчихсон файл системүүдийг холбохгүй.
Дуудаж ажиллуулж байгаа файл системээсээ бусдад нь
дурын үйлдлээ хийнэ. Энэ сонголтыг
тугтай хамт хэрэглэж
&man.mount.8;-г юу хийж байгааг нь харж болдог.
Бохир файл систем
(аюултай), эсвэл файл системийн унших-бичигдэх төлвөөс
зөвхөн-унших төлөв рүү шилжүүлэн бичих эрхийг хасаж
холбох үед хүчээр холбодог.
Файл системийг зөвхөн-унших төлвөөр холбоно.
Энэ нь сонголтийг
утгатай
(5.2-с өмнөх үед хэрэглэдэг
байсан )
хэрэглэсэнтэй ижил.
fstype
Өгөгдсөн файл системйиг өгөгдсөн төрлөөр холбоно.
Эсвэл сонголт өгөгдсөн бол зөвхөн
өгөгдсөн төрлөөр холбоно.
ufs
нь анхдагч файл систем юм.
Файл системд холболтын сонголтыг шинэчилнэ.
Болж байгаа үйл явцыг харуулж мэдэгдэнэ.
Файл системийг унших-бичих төлвөөр холбоно.
сонголт нь дараах зүйлүүдийг таслалаар тусгаарлаж хэрэглэж болно:
noexec
Энэ нь файл систем дээр хоёрлосон файл буюу ачаалагдаж ажиллаж болдог файл ажиллахыг үл зөвшөөрнө. Энэ нь мөн аюулгүй байдлын зорилгоор хэрэгтэй.
nosuid
Файл систем дээр setuid эсвэл setgid тугуудыг бүү хэрэглэ. Мөн аюулгүй байдлын шалтгаанаар.
umount тушаал
файл систем
файл систем салгах
&man.umount.8; тушаал нь ардаа холбосон цэг, төхөөрөмжийн нэр зэргийг авдаг бөгөөд мөн
сонголт эсвэл бас
сонголтуудыг авч болдог.
Бүх хэлбэрүүд нь сонголтыг хүчээр салгах үед болон сонголтыг явцын мэдээллийг харахад хэрэглэдэг.
сонголт нь тийм сайн санаа биш гэдгийг анхааруулмаар байна. Хүчээр файл системийг салгах нь файл эсвэл системийн эвдрэлд хүргэж болзошгүй.
болон сонголтууд нь холбогдсон бүх файл системийг салгахад хэрэглэгддэг. Эсвэл мөн
сонголтоор өөрчлөгдсөн файл системүүдийг салгахад хэрэглэнэ. Гэхдээ
сонголт нь
root файл системийг салгах гэж оролддоггүй.
Процесс буюу програмын явц
FreeBSD бол олон үйлдэл зэрэг хийх чадвартай систем. Энэ нь олон програм нэг дор зэрэг ажиллана гэсэн үг. Програмын тухайн үед ажиллаж байгааг нь процесс буюу програмын явц гэдэг.
Таны ажиллуулсан тушаал болгон шинэ процесс эхлүүлдэг бөгөөд систем дээр
бүхэлдээ тэр чигээрээ процессууд үргэлж ажиллаж системийн ажиллагааг бүрэлдүүлж байдаг.
Програмын явц бүр
процесс ID, эсвэл PID гэсэн дугаар агуулж байдаг бөгөөд файлтай бас ижилхэн өөрийн гэсэн эзэмшигч болон бүлэгт харъяалагдаж байдаг. Эзэмшигч ба бүлгийн
мэдээлэл нь уг процесс файлд хандах эрхийг нь хэрэглэж файлтай хэрхэн
хандах вэ гэдгийг тодорхойлж өгдөг. Ихэнх процесс нь мөн эцэг процесстой байдаг. Эцэг процесс нь тэдгээр процессийг эхлүүлж өгдөг.
Жишээлбэл, хэрэв та тушаалуудыг бүрхүүлд бичиж гүйцэтгэвэл, бүрхүүл ч процесс, тушаалууд ч процесс болдог бөгөөд таны бичсэн тушаал болгон процесс болдог. Ийм маягаар ажиллуулаад байвал бүрхүүл нь тэдгээр процессуудын эцэг нь болно. Үүнээс өөр онцгой процесс байдаг ба түүнийг
&man.init.8; процесс гэж нэрлэдэг. init
бол хамгийн эхний процесс байдаг бөгөөд үүний PID дугаар үргэлж
1 байдаг. FreeBSD эхлэх үед init процесс
автоматаар эхэлдэг.
Системд гүйцэтгэгдэж байгаа процессуудыг хардаг хоёр тушаал бол
&man.ps.1; ба &man.top.1; хоёр юм. ps тушаал нь одоо ажиллаж байгаа процессуудыг PID дугаартай нь харуулж, мөн хичнээн санах ойн хэмжээ хэрэглэж байгаа, ямар тушаалаар гүйцэтгэгдэж байгаа зэргийг нь харуулдаг. top тушаал нь ажиллаж байгаа
бүх процессуудыг харуулдаг бөгөөд хэдэн секунд тутамд шинэчлэгдэж байдаг. Ингэснээр таны компьютер тухайн үед юу хийж байгааг харж болно.
Анхдагч горимондоо, ps тушаал нь зөвхөн таны эзэмшиж байгаа процессуудыг харуулдаг. Жишээлбэл:
&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfish
Дээрх жишээнд харуулснаар, &man.ps.1; тушаалын гаралт нь
хэд хэдэн баганаар харуулагдаж байна. PID бол өмнө ярьсны дагуу процессийн ID дугаар. PID дугаарууд нь 1 гэж эхлээд 99999 хүртэл дугаарлагддаг бөгөөд хэтрээд ирэхээрээ эхнээсээ эхэлж тоологддог (PID нь ашиглагдаж байгаа бол дахин олгогддоггүй).
TT багана нь, уг програмын ажиллаж байгаа tty буюу терминалыг нь харуулдаг бөгөөд одоохондоо хэрэгсэх шаардлага байхгүй. STAT нь програмын төлвийг харуулдаг бөгөөд мөн одоохондоо хэрэгсэхгүй байж болно.
TIME нь процессор дээр хэр удаан ажиллаж байгааг нь заадаг бөгөөд гэхдээ энэ нь програм эхэлснээс хойш тооцож эхэлсэн цаг биш. Ихэнх програм нь процессор дээр гүйцэтгэх гэж хэсэг хугацаа зарцуулж хүлээдэг.
Эцэст нь, COMMAND нь тухайн програмыг ажиллуулсан тушаалыг харуулдаг.
Харуулах мэдээллээ өөрчилж болдог хэд хэдэн нэмэлт сонголт &man.ps.1; тушаалд бий. Байнга хэрэглэгддэг сонголтуудын багц бол
auxww юм. сонголт нь зөвхөн өөрийн эзэмшдэг процесс биш харин ажиллаж байгаа бүх процессийг харуулдаг.
сонголт нь процессийг эзэмшиж байгаа хэрэглэгчийн нэрийг харуулдаг бөгөөд мөн хэрэглэж байгаа санах ойг нь харуулдаг.
сонголт нь далд ажиллаж байгаа буюу дэмон эсэхийг нь харуулдаг.
сонголт нь процессуудыг ажиллуулсан тушаалын бүтэн нэрийг нь харуулдаг. Бусад үед, хэрэв тушаалын нэр нь дэлгэцэнд багтахгүй урт байх тохиолдолд хасаж харуулдаг.
&man.top.1; тушаалын гаралт нь өмнөх жишээтэй ижилхэн. Жишээ болгож нэг гаралтыг харцгаая:
&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...
Тушаалын гаралт хоёр хэсэгт хуваагдсан байна. Толгой хэсэг
(эхний таван мөр) нь сүүлд ажиллаж байгаа PID дугаарыг, системийн ачаалалтын дунджууд
(энэ нь системийг хэр завгүй байгааг илтгэдэг), системийн асаалттай байгаа хугацаа (унтраалгүй хэр удсан эсэхийг) мөн одоогийн цаг зэргийг харуулдаг. Бусад илэрхийллүүд нь, хичнээн процессууд ажиллаж байгаа (энэ тохиолдолд 47 ), хичнээн санах ойн хэмжээ болон swap хэмжээ хэрэглэгдэж байгаа, мөн хичнээн хугацааг процессорын бусад төлөв байдалд зарцуулсан зэргийг илэрхийлж байна.
Доорх баганууд нь &man.ps.1; тушаалтай ойролцоо мэдэгдлүүдийг харуулж байна. Эхлээд PID дугаар дараа нь хэрэглэгчийн нэр, процессороос хэрэглэсэн хугацаа, ажиллуулсан тушаал гэх мэт.
&man.top.1; тушаал нь анхдагч тохируулгаараа, процессийн хэрэглэж байгаа санах ойн хэмжээг харуулдаг. Тэр хэсэг нь хоёр баганад харуулагддаг бөгөөд эхнийх нь нийт хэмжээ дараагийх нь тухайн үеийнх нь хэмжээ юм. Нийт хэмжээ гэдэг нь програм ажиллахад хэд хэрэгтэйг хэлдэг бөгөөд тухайн үеийнх нь хэмжээ нь одоогоор хэдийг хэрэглэж байгааг заадаг. Энэ жишээн дээр
&netscape; програм бараг 30 МБ хэмжээг RAM санах ойд шаардлагатай гэсэн боловч одоогоор 9 МБ хэмжээ хэрэглэж байна гэж заасан байна.
&man.top.1; нь энэ харуулалтыг хоёр секунд тутам шинэчилдэг бөгөөд үүнийг тохируулгаар өөрчилж болно.
Далд чөтгөр буюу дэмонууд, дохионууд, мөн процессуудыг зогсоох нь
Та хэрэв ямар нэг текст засварлагч дээр ажиллаж байхдаа файл нээх, хаах, хадгалах гэх мэт уг програмыг сайн хянаж чаддаг. Та яагаад тэгж
чадаж байна вэ гэвэл, уг програм нь терминал дээр холбогдон ажиллаж танд тийм боломж олгож байгаа билээ.
Зарим програм тэгэхэд үргэлж хүн гарнаас оруулалт хийх шаардлагагүй зориулалтаар бүтээгдсэн байдаг бөгөөд хамгийн эхний боломж гарангуут терминалаас салангид ажилладаг. Жишээлбэл вэб серверүүд өдөржин хүмүүсээс ирсэн хүсэлтэд хариулт өгч байдаг бөгөөд ердийн үед танаас оруулга шаарддаггүй. Ийм төрлийн бас нэг програм бол захиа илгээгч програм юм.
Бид ийм програмыг далд чөтгөр буюу дэмон гэж нэрлэдэг. Дэмонууд нь Грекийн домогт байдаг сайн муугийн аль нь ч биш бөгөөд жижигхэн мөртлөө хүмүүст хэрэгтэй юм хийж байдаг сүнсийг хэлдэг.
Вэб сервер болон захианы серверүүд үүнтэй ижил хүмүүст тустай юм хийдэг. Тийм болохоор BSD нь спорт шаахайтай, жижигхэн, сэрээ барьсан чөтгөрийг олон жилээр дуртайяа өөрийнхөө билэг тэмдэг болгож байгаа билээ.
Далд ажиллаж байгаа буюу дэмон болж ажиллаж байгаа програмын нэрний ард d
үсэг залгаж бичдэг зарчим бий. BIND програмын бүтэн нэр нь
Berkeley Internet Name Daemon бөгөөд үндсэн далд ажилладаг
програмын нэр нь
named, мөн Apache вэб серверийн далд ажилладаг програмын нэр нь httpd, хэвлэх дарааллыг далд ажиллаж зохицуулж байдаг програмын нэр нь lpd гэх мэт нэртэй байдаг.
Энэ нь ерөнхийдөө ингэж зарчим гаргасан болохоос хатуу тогтоосон дүрэм биш; жишээлбэл захиа илгээгч үндсэн програм Sendmail-н далд ажилладаг програмыг та maild гэж төсөөлж байгаа бол эндүүрэх бөгөөд харин
sendmail гэж нэрлэдэг.
Заримдаа та эдгээр дэмон процессуудтай холбогдож харилцах хэрэг гарна. Ингэх нэг арга нь түүн рүү (эсвэл бусад ажиллаж байгаа процесс уруу)
дохио гэгддэг зүйл илгээх явдал юм. Маш олон төрлийн илгээж болох дохионууд байдаг — зарим дохионууд онцгой зориулалттай нийтэд нь хэрэгждэг, зарим нь тухайн програмдаа зориулж өөр өөрөөр хөрвүүлэгддэг бөгөөд програмын заавар дээр ямар дохиог яаж хөрвүүлэн ойлгох вэ гэдгийг заасан байдаг. Та өөрийнхөө эзэмшиж байгаа процесс уруугаа дохио илгээж болно. Хэрэв та бусдын эзэмшдэг процесс уруу &man.kill.1; эсвэл &man.kill.2; гэх зэрэг дохио илгээвэл таны эрх дутаж хэрэгждэггүй.
Гэхдээ ийм эрхээр дутагддаггүй хэрэглэгч бол
root хэрэглэгч бөгөөд хүн болгоны процесс уруу дохио илгээж чаддаг.
Мөн FreeBSD-ээс програм уруу зарим тохиолдолд дохио илгээдэг. Жишээлбэл, хэрэв муу зохиогдсон нэг програм санах ойг зориулсан хэмжээнээсээ илүү хэрэглээд эхэлбэл FreeBSD уг програм уруу Хэсгийн буруу
хэрэглээ дохио илгээдэг (SIGSEGV). Мөн хэрэв ямар нэгэн програм нь &man.alarm.3; гэдэг системийн сануулах програмыг ашигласан бол тухайн хугацаа нь хэтрэх үед Сэрүүлэг дохио уг програмд ирэх
(SIGALRM) зэрэг олон дохио бий.
Процесийг зогсоох хоёр дохио байдаг,
SIGTERM ба SIGKILL хоёр.
SIGTERM нь арай эелдэг аргаар процессийг зогсоодог; процесс нь эхлээд дохиог хүлээж аваад өөрийг нь хаах гэж байгаад мэдээд нээлттэй байгаа бүртгэл бичлэг файлуудаа хаагаад тэгээд хийж байгаа ерөнхий үйлдлээ зогсоодог. Зарим тохиолдолд уг процесс нь таслагдаж болохооргүй үйлдэл хийж байх үедээ
SIGTERM дохиог хэрэгсэхгүй байдал үүсдэг.
SIGKILL дохиог ямар ч процесс хэрэгсэхгүй байж чаддаггүй. Өөрөөр хэлбэл энэ нь
Чиний юу хийж байх нь надад хамаагүй, одоо шууд зогсоо
гэсэн дохио юм. Хэрэв та SIGKILL дохиог процесс уруу илгээвэл
FreeBSD уг процессийг зогсоодог
Бас тэр чигээрээ үнэн биш—учир нь зарим таслагдаж болдоггүй нөхцлүүд байдаг. Жишээлбэл, хэрэв сүлжээнд байгаа компьютерийн нэг файлаас унших үйлдэл хийж байгаа процесс нь, хэрэв холбогдсон компьютер нь тодорхойгүй шалтгаанаар холбогдохгүй болох үед (цахилгаан тэжээлээс салгагдах, эсвэл сүлжээ эвдрэх), уг процесс нь
тасрахгүй
нөхцөлд байдаг. Магадгүй хэсэг хугацааны дараа хүлээх хугацаа нь дуусна. Ингэж хүлээх хугацаа нь дууссаны дараа л уг процесс зогсох болно.
.
Таны хэрэглэж болохоор бусад дохионууд нь
SIGHUP, SIGUSR1, мөн
SIGUSR2. Эдгээр дохио нь ерөнхий зориулалтаар хэрэглэгддэг бөгөөд эдгээр дохиог хүлээж авсан програмууд тус тусдаа өөр өөр хариу үйлдэл хийдэг.
Жишээлбэл, та вэб серверийнхээ тохируулгын файлд өөрчлөлт хийгээд уг серверийг тохируулгын файлаа дахин шинээр уншуулахыг хүссэн гэж бодъё. Та httpd дэмоноо зогсоогоод дахин шинээр эхлүүлж болох боловч ажиллаж байгаа вэб серверийг зогсоож болохгүй нөхцөл байж болно. Ихэнх дэмонууд нь
SIGHUP дохиог хүлээж авбал өөрийнхөө тохируулгынхаа файлыг уншина гэж тохируулагдсан байдаг. Тэгэхээр httpd дэмоноо зогсоогоод шинээр ачаалж байхын оронд
SIGHUP дохиог илгээхэд хангалттай. Учир нь энэ дохионд тэгж хариулна гэсэн тогтоосон арга зам байхгүй тул дэмон болгон өөр өөр үйлчлэл үзүүлдгийг ойлгож тухайн дэмоны заавар бичгийг нь судлах хэрэгтэй.
дохио илгээхдээ &man.kill.1; тушаалыг ашигладаг.
Процесс уруу дохио илгээх
Энэ жишээ нь &man.inetd.8; уруу хэрхэн дохио илгээхийг харуулах болно.
inetd -н тохируулгын файл
/etc/inetd.conf гэж байрласан бөгөөд inetd-ийг тохируулгын файлаа дахин уншуулахын тулд SIGHUP дохиог илгээх болно.
Илгээх процессийн процесс ID дугаарыг мэдэх хэрэгтэй. Ингэхийн тулд &man.ps.1; ба &man.grep.1; тушаалуудыг ашиглана. &man.grep.1;
тушаал нь өмнөх тушаалынхаа гаралтаас хайлт хийхэд хэрэглэгддэг бөгөөд хайх мөрөө зааж өгдөг. Энэ тушаал нь энгийн хэрэглэгчээс гүйцэтгэгдэж болох бөгөөд харин &man.inetd.8; програм нь
root хэрэглэгчээр гүйцэтгэгдсэн тул &man.ps.1; тушаалыг сонголттой цуг гүйцэтгэх ёстой.
&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wW
За тэгэхээр, &man.inetd.8;-ийн PID дугаар нь 198 гэж энэ тохиолдолд хэлж байна. Зарим тохиолдолд
grep inetd гэсэн тушаал нь өөрөө энэ гаралтад байж байдаг. Учир нь, &man.ps.1; програм нь уг тушаалыг ажиллуулж байгаа процессийг олсон үед тэгж гаргаж харуулдаг.
&man.kill.1; тушаалыг хэрэглэж дохио илгээнэ. &man.inetd.8; нь
root хэрэглэгчээр гүйцэтгэгдэж байгаа болохоор, та эхлээд &man.su.1; тушаалыг ашиглан
root хэрэглэгч болох хэрэгтэй.
&prompt.user; su
Password:
&prompt.root; /bin/kill -s HUP 198
Ихэнх &unix; системийн тушаалуудын адил, &man.kill.1; тушаал нь хэрэв амжилттай хэрэгжвэл ямар нэгэн төлвийн мэдээлэл харуулдаггүй. Хэрэв та өөрийнхөө эзэмшдэггүй процесс уруу дохио илгээвэл kill:
PID: Operation not
permitted буюу энэ үйлдлийг хийх эрх байхгүй байна гэсэн мэдэгдэл гарч ирнэ. Хэрэв та PID дугаараа буруу бичих, эсвэл буруу процесс уруу дохио илгээвэл, азгүй тохиолдолд уг дохио нь тухайн процесс уруу илгээгдэх бөгөөд, уг процесс нь азаар байхгүй байгаа тохиолдолд kill:
PID: No such process буюу тийм процесс алга байна гэсэн мэдэгдэл гарч ирнэ.
Яагаад /bin/kill тушаалыг хэрэглэх хэрэгтэй вэ?
Ихэнх shells буюу бүрхүүлүүд kill тушаалыг өөртөө агуулсан байдаг бөгөөд /bin/kill тушаалыг бичихийн оронд шууд бүрхүүлд буй тушаалыг нь гүйцэтгэх нь шулуухан байдаг.
Энэ нь амарчилсан ашигтай арга боловч бүрхүүл болгон өөрсдийн илгээх дохионы өөр өөр нэртэй байдгийг мэдэх хэрэгтэй. Тийм болохоор бүрхүүл болгоны дохионы бичлэгийг судлахын оронд шууд
/bin/kill ... тушаалыг хэрэглэх нь зөв арга юм.
Бусад дохио илгээх үйлдлүүд нь үүнтэй тун ижил бөгөөд
TERM эсвэл KILL дохионуудын оронд шаардлагатай дохиогоо бичих хэрэгтэй.
Санаанд орсон тоотой дохио болгоныг устгана гэдэг бол буруу санаа юм. &man.init.8; процесс ялангуяа 1 гэсэн процесс ID байх нь онцгой тохиолдол. Тийм болохоор
/bin/kill -s KILL 1 гэвэл системийг шууд унтраана. &man.kill.1; тушаалыг гүйцэтгэхээсээ өмнө Return товч дарахынхаа өмнө үргэлж ямар процесс уруу ямар дохио илгээж байгаагаа давхар шалгах хэрэгтэй.
Shell буюу бүрхүүл
бүрхүүл
тушаал өгөх орчин
FreeBSD дээр маш олон ажил тушаал бичиж оруулдаг shell буюу бүрхүүл хэмээх орчинд хийгддэг. Бүрхүүлийн гол үүрэг нь гарнаас оруулсан тушаалыг гүйцэтгэх юм. Өдөр болгон гүйцэтгэхэд шаардагддаг файл зохицуулах, тушаал оруулагч мөрийг засварлах, тушаалын багц, орчны хувьсагч зэрэг туслах тушаалуудыг олон бүрхүүлүүд агуулж байдаг. FreeBSD нь
sh буюу Bourne Shell, мөн tcsh буюу
сайжруулсан C-shell зэрэг багц бүрхүүлүүдтэй хамт ирдэг. zsh болон bash зэрэг маш олон бүрхүүлүүд FreeBSD-ийн портын цуглуулганд ирдэг.
Та ямар бүрхүүл хэрэглэдэг вэ? Энэ бол тухайн хүний дур сонирхолтой хамаатай. Хэрэв та C програмын хэл дээр програм бичдэг бол C-тэй адилхан бичигддэг tcsh төрлийн бүрхүүлд дуртай болж болох юм. Хэрэв та Linux системээс ирсэн юм уу эсвэл &unix;-ийн тушаалуудтай дөнгөж танилцаж байгаа шинэ хүн бол bash бүрхүүлээр эхлэх нь амар байж болох юм.
Хамгийн гол нь бүрхүүл болгон өөрийн гэсэн онцгой шинж чанартай болохоор өөрийнхөө хүсэл зорилгод тааруулж бүрхүүлээ сонгож дадах нь чухал.
Бүрхүүлийн хамгийн энгийн чадвар бол файлын нэрийн автомат гүйцэтгэл юм. Тушаал юм уу файлын эхний хэдхэн үсгийг бичээд гарын Tab товчийг дарахад уг үсгээр эхэлсэн файлын нэрийг танд гүйцээж бичиж өгдөг. Энд нэг жишээ авч үзье.
Танд foobar болон foo.bar гэсэн хоёр файл байгаа гэж бодъё. Та
foo.bar файлыг устгахыг хүсэв. Тэгвэл та компьютерийнхаа гаран дээр ингэж бичих болно: rm fo[Tab].[Tab].
Бүрхүүл танд ингэж харуулна rm
foo[BEEP].bar.
[BEEP] гэдэг нь консолоос гаргаж байгаа хонхны дуу бөгөөд ингэж эхэлсэн файлын нэр нэгээс олон байгааг танд мэдэгдэж байгаа юм. foobar болон
foo.bar хоёр хоёулаа fo гэж эхэлж байгаа ч гэсэн
foo гэж танд дүүргэж өгдөг. Хэрэв та
. гэж бичээд Tab дахин дарвал бүрхүүл танд уг хүссэн файлын тань нэрийг гүйцээж өгдөг.
орчны хувьсагчид
Бүрхүүлийн бас нэг шинж чанар бол орчны хувьсагчийн хэрэглээ юм.
Орчны хувьсагч гэдэг нь бүрхүүлийн орчинд хадгалагддаг, нэрэнд утга өгсөн хослол байдаг. Энэ бүрхүүлийн орчин нь уг бүрхүүлээс гүйцэтгэгдэж байгаа бүх програм болон програмын тохируулгад харагдаж байдаг. Байнга хэрэглэгддэг ерөнхий орчны хувьсагчдыг дор жагсааж тайлбарлав:
environment variables
Хувьсагч
Тодорхойлолт
USER
Холбогдсон байгаа тухайн хэрэглэгчийн нэр.
PATH
Ачаалагдаж болдог хоёртын файлуудыг агуулдаг сангуудыг таслалаар тусгаарлаж бичсэн жагсаалт.
DISPLAY
Хэрэв холбогдох боломжтой бол, X11 дэлгэцийн сүлжээгээр холбогдох цэг.
SHELL
Хэрэглэж байгаа shell буюу бүрхүүл.
TERM
Хэрэглэгчийн терминалын төрлийн нэр. Терминалын шинж чанарыг тодорхойлоход хэрэглэгддэг.
TERMCAP
Төрөл бүрийн терминалуудад алгасах ёстой кодуудын өгөгдлийн бааз.
OSTYPE
Үйлдлийн системийн төрөл. жишээ нь, FreeBSD.
MACHTYPE
Системийн ажиллаж байгаа процессорын архитектур.
EDITOR
Хэрэглэгчийн эрхэмлэж хэрэглэгддэг текст засварлагч.
PAGER
Хэрэглэгчийн эрхэмлэж хэрэглэдэг пэйжер.
MANPATH
Таслалаар тусгаарлаж жагсаасан, гарын авлагын хуудсуудыг агуулсан хайх сангууд.
Bourne shells
Бүрхүүл болгонд орчны хувьсагчаа өөр өөр тохируулдаг. Жишээлбэл, C-маягийн бүрхүүл
tcsh болон csh дээр, та
setenv тушаалыг ашиглаж орчны хувьсагчийг зааж өгдөг.
Bourne төрлийн бүрхүүлүүд болох sh болон
bash дээр, та
export тушаалыг ашиглаж орчны хувьсагчийг зааж өгнө. Жишээ нь, орчны хувьсагч
EDITOR-г өөрчлөх юм уу зааж өгөхийн тулд csh юм уу эсвэл
tcsh бүрхүүл дээр
EDITOR хувьсагчид
/usr/local/bin/emacs утгыг өгөхийн тулд:
&prompt.user; setenv EDITOR /usr/local/bin/emacs
Bourne бүрхүүлүүд дээр:
&prompt.user; export EDITOR="/usr/local/bin/emacs"
Ихэнх бүрхүүлийн орчны хувьсагчийн утгыг харахын тулд хувьсагчийн нэрний урд
$ тэмдгийг хэрэглэж харна. Жишээ нь, echo $TERM гэсэн тушаал нь
$TERM хувьсагчид ямар утга байгааг консол дээр харуулна. Учир нь, бүрхүүл
$TERM дотор буй утгыг echo тушаалд дамжуулж өгснөөр консол дээр харуулагддаг.
Бүрхүүл маш олон тэмдэгтийг тусгай зориулалтаар өгөгдлийг илэрхийлэхдээ хэрэглэдэг бөгөөд тэдгээр тэмдэгтийг мета-тэмдэгтүүд гэж нэрлэдэг. Байнга хэрэглэгддэг тэмдэгтийн нэг нь
* юм. Энэ тэмдэгт нь файлын нэрэнд байгаа тэмдэгтүүдийг хэд ч байсан хамаагүй орохыг илэрхийлдэг. Тэдгээр мета-тэмдэгтүүд нь файлын нэрийг орлуулахад байнга хэрэглэгддэг. Жишээлбэл,
echo * гэсэн тушаал нь
ls тушаалтай ижилхэн үүрэг гүйцэтгэх бөгөөд, яагаад гэвэл бүрхүүл нь * тэмдэгтэд тохирох бүх файлуудыг авч
echo тушаал руу дамжуулж харуулдаг.
Бүрхүүл дээр мета-тэмдэгтүүдийг хэрэв тухайн онцгой тохиолдлоор нь биш харин зүгээр тэмдэгт хэлбэрээр нь хэрэглэхийг хүсвэл, уг тэмдэгтийн урд ташуу зураасыг
(\) бичиж өгдөг. echo
$TERM гэсэн тушаал нь ямар терминал заагдсан байгааг харуулна. Харин
echo \$TERM тушаал нь ердөө $TERM гэж харуулна.
Өөрийнхөө бүрхүүлийг солих
Бүрхүүлээ буюу shell-ээ солих хамгийн амархан арга бол
chsh тушаалыг хэрэглэх юм. chsh тушаал нь
таныг EDITOR орчны хувьсагчид заагдсан засварлагч уруу оруулдаг бөгөөд
хэрэв энэ хувьсагчид утга заагдаагүй байвал шууд
vi засварлагчийг ажиллуулдаг. Тэгээд та Shell:
мөрөнд
буй утгыг өөрчилж бүрхүүлээ өөрчилнө.
Та мөн chsh тушаалыг
сонголттой хэрэглэж болох бөгөөд ингэсэн үед
нэмэлт засварлагч нээлгүйгээр шууд бүрхүүлийг өөрчилдөг.
Жишээ нь та өөрийнхөө бүрхүүлийг bash бүрхүүлээр
солихыг хүсвэл дараа тушаалыг өгөх болно:
&prompt.user; chsh -s /usr/local/bin/bash
Таны хэрэглэхийг хүсэж байгаа бүрхүүл тань
/etc/shells файл дотор заавал
байх ёстой. Хэрэв та портын цуглуулгаас
бүрхүүл суулгасан бол энэ нь автоматаар хийгдчихдэг. Харин та
гар аргаар ямар нэг бүрхүүл суулгавал энэ файлд өөрөө нэмэх хэрэгтэй.
Жишээ нь та bash бүрхүүлийг гар аргаар суулгаад
/usr/local/bin байршилд байрлуулсан бол дараах тушаалыг
өгөх хэрэгтэй:
&prompt.root; echo "/usr/local/bin/bash" >> /etc/shells
Тэгээд дараа нь chsh тушаалыг хэрэглэх хэрэгтэй.
Текст засварлагчид
текст засварлагчид
засварлагчид
FreeBSD дээр текст файлуудыг засварлаж маш олон тохиргоонуудыг хийдэг.
Тийм болохоор та текст засварлагч дээр гаршиж сурах нь чухал.
FreeBSD нь үндсэн хэдэн засварлагчтай хамт ирдэг бөгөөд портын цуглуулга
дээрээ бол олон зуун засварлагчтай.
ee
засварлагчид
ee
Хамгийн амархан бөгөөд сурахад хялбар засварлагч бол
ee бөгөөд easy editor буюу хялбар засварлагч гэдгийг
товчилсон нэр юм. ee-г эхлүүлэхийн тулд тушаал бичих
мөрөнд ee файлын-нэр гэж бичих бөгөөд
файлын-нэр нь засварлагдах файлын нэр.
Жишээ нь, /etc/rc.conf файлыг засварлахын тулд
ee /etc/rc.conf гэж бичнэ.
ee засварлагч дотроо дээд хэсэгт нь програмыг хэрэглэх
заавар нь бичээстэй байдаг. ^ гэсэн тэмдэг нь гарын
Ctrl товчийг илэрхийлдэг бөгөөд ^e гэдэг нь
Ctrle гэсэн
гарын товчлол юм.
ee програмаас гарахын тулд Esc товч
дараад leave editor буюу засварлагчаас гарна гэдгийг сонгох хэрэгтэй.
Хэрэв файлд өөрчлөлт орсон бол гарахаас өмнө хадгалах эсэхийг лавлаж асуух болно.
vi
засварлагчид
vi
emacs
editors
emacs
Мөн FreeBSD нь
vi гэсэн хүчирхэг засварлагчийг системийн
үндсэн хэсэгтэй цуг зөөвөрлөдөг бөгөөд бас
Emacs болон vim зэрэг
зaсварлагчдыг FreeBSD Портын цуглуулгадаа багтаасан байдаг
(editors/emacs болон editors/vim).
Эдгээр засварлагчид нь ажиллах хүчин чадвараараа илүү боловч сурахад арай илүү төвөгтэй байдаг.
Гэвч та текст файлыг засварлахад маш их хөдөлмөр гаргахаар бол
vim эсвэл Emacs
програмуудыг сурснаар таны цаг болон хөдөлмөрийг цаашид улам илүү хөнгөвчлөх болно.
+
+ Файлууд засварладаг эсвэл бичихийг шаарддаг олон програм
+ текст засварлагчийг автоматаар нээдэг. Ашиглагдах анхдагч засварлагчийг
+ өөрчлөхийн тулд EDITOR орчны хувьсагчийг
+ тохируулах хэрэгтэй. Дэлгэрэнгүйг Бүрхүүлүүд
+ хэсгээс үзнэ үү.
Төхөөрөмж ба төхөөрөмжийн цэгүүд
Төхөөрөмж гэдэг ойлголт нь голдуу
системд буй төхөөрөмж болох диск, хэвлэгч, график карт,
мөн гар зэрэг ордог. FreeBSD эхэлж ачаалах үедээ,
гол чухал таньсан төхөөрөмжүүдээ харуулдаг.
Ингэж эхлэхдээ харуулсан бичлэгийг та дахин харахыг хүсвэл
/var/run/dmesg.boot файлыг хараарай.
Жишээ нь, acd0 гэдэг нь
эхний IDE CDROM төхөөрөмж байхад, kbd0
гэдэг нь гарыг илэрхийлж байдаг.
&unix; үйлдлийн систем нь эдгээр төхөөрөмж уруу хандахдаа
төхөөрөмжийн цэг гэж нэрлэгдэх тусгай файл уруу ханддаг. Эдгээр
төхөөрөмжийн цэгүүд нь
/dev санд байдаг.
Төхөөрөмжийн цэг үүсгэх
Хэрэв системд шинэ төхөөрөмж нэмэгдвэл, эсвэл нэмэлт
төхөөрөмжид зориулсан шаардлага гарвал шинэ төхөөрөмжийн цэг үүсгэх ёстой.
DEVFS (DEVice File System буюу төхөөрөмжийн файл систем)
Төхөөрөмжийн файл систем буюу DEVFS нь ерөнхий файлын
системийн нэрийн талбарын цөм дахь төхөөрөмжийн нэрийн талбарт хандах боломжийг өгдөг.
Төхөөрөмжийн цэгийг үүсгэх эсвэл өөрчлөх зэрэг үйлдлийг
DEVFS нь бидэнд хийж өгч амар болгож өгдөг.
&man.devfs.5; гарын авлагаас нэмэлт мэдээллийг харна уу.
Хоёртын хэлбэрүүд
&os; яагаад &man.elf.5; хэлбэр хэрэглэдгийг ойлгохын тулд, та
ачаалагдаж ажилладаг файлын төрлөөс &unix; дээр ноёлдог
гурван
хэлбэрийг мэдэх ёстой:
&man.a.out.5;
&unix;-н хамгийн хуучин бөгөөд сонгодог
ачаалагддаг файлын хэлбэр. Энэ нь эхэн хэсэгтээ өөрийнхөө
хэлбэрийг таниулах зориулалттай шидэт дугаар агуулж байдаг
(&man.a.out.5; хуудаснаас дэлгэрэнгүй мэдээлэл авна уу).
Ачаалагдсан үедээ санах ойд гурван хэсэгт хуваагддаг:
.text, .data, мөн .bss бөгөөд дээрээс нь хэрэглэгдэх
обьектуудыг агуулсан хүснэгт мөн мөрийн хүснэгтийг агуулж байдаг.
COFF
SVR3 обьект хэлбэр. Толгой хэсэгтээ тодорхой зориулалттай
хүснэгт агуулж байдаг. Тийм болохоор зөвхөн .text, .data,
болон .bss хэсгүүдээс гадна нэмэлт зүйлс агуулж чадна.
&man.elf.5;
COFF-н дараагийн үе. Энэ нь
олон хэсэг агуулахаас гадна 32-бит эсвэл 64-битийн утга агуулах
чадвартай. Нэг муу тал бий: ELF нь тухайн системийн
архитектурт зөвхөн ганцхан ABI байгаа гэж авч үздэг.
SYSV ертөнц (хамгийн багадаа гурван ABI агуулж байдаг: SVR4, Solaris, SCO)
байсаар байхад ингэж авч үзэх нь буруу юм.
FreeBSD нь энэ хүндрэлийг, ABI-н мэдээлэл агуулсан
ачаалагддаг ELF файлуудыг зохицуулдаг
branding хэрэгслийг ашиглаж сайжруулахыг боддог.
Нэмэлт мэдээллийг
&man.brandelf.1; хуудаснаас харна уу.
FreeBSD нь хуучны сонгодог
отгоос салбарлаж гарсан тул
&man.a.out.5; хэлбэрийг хэрэглэж байсан бөгөөд энэ хэлбэрээ 3.X салбар
гарах хүртэл маш олон BSD хувилбартаа ашиглаж байжээ.
Хэдийгээр FreeBSD дээр өмнө нь ELF хоёртын хэлбэрийг
хөрвүүлж мөн ажиллуулж (цөм дээр ч гэсэн) болдог байсан ч,
FreeBSD нь анхнаасаа ELF хэлбэрийг анхдагч хэлбэрээ
болгохыг татгалзсан
билээ. Яагаад? Учир нь,
Линукс систем нь хуваалцдаг кодын сан буюу Shared-Libraries
-д зориулсан үсэрч ажилладаг хүснэгт, мөн түүнийг
хөгжүүлэгчид болон байгууллагад хүндрэлтэй байдаг шалтгаанаар
a.out хэлбэрээс зайлсхийж ELF
хэлбэр рүү шилжих гэж нүсэр хүнд хөдөлмөр зарсан юм.
ELF хэлбэр нь хуваалцдаг кодын сан буюу Shared-Libraries
хүндрэлийг давах боломж олгосон хэрэгслүүдийг санал болгосон бөгөөд тэгээд ч хөгжлийн
явцад нэг алхам урд нь
явж байгааг бодож мөн нэг хэлбэрээс
нөгөө хэлбэрт шилжүүлэх үйл явцад гарах хүнд зардал байсан ч шилжүүлэхээр шийдсэн юм.
FreeBSD-н кодын санг хуваалцах зарчим нь Sun-н
&sunos; загвартай ижил бөгөөд хэрэглэхэд тун хялбар.
Тэгэхээр, яагаад ийм олон хэлбэр байдаг юм бэ?
Энэ асуултанд хариулахын тулд хуучны, энгийн ажиллах зарчимтай төхөөрөмж
хэрэглэж байсан бүүдгэр өнгөрсөн цаг уруу буцацгаая.
Энэ энгийн төхөөрөмж нь энгийн жижигхэн систем дээр л ажиллахыг хүснэ.
a.out нь (PDP-11) төрлийн иймэрхүү энгийн систем
дээр бүгдийг нь хангаж байлаа. Хүмүүс &unix; системийг ийм энгийн
системээс үүсгэсэн болохоор
хуучны загвар болох Motorola 68k, VAXen зэрэг системтэй зохицохын тулд
a.out хэлбэрийг үлдээсэн юм.
Тэгтэл дараа нь нэг сүрхий инженер хөвүүн,
зохиогдсон төхөөрөмжийн зарим ажиллах сул талыг нөхөж процессорыг илүү хурдан
ажиллуулах хөнгөхөн програм бичжээ.
Энэ програм нь шинэ төрлийн архитектурт (тэр үедээ RISC гэж
нэрлэгддэг байсан архитектур) зориулан ажиллахаар бичигдсэн болохоор a.out
хэлбэр нь энэ төхөөрөмжид тохиромжгүй болон хангахуйц сайн биш болж ирэв.
Тийм болохоор энэ шинэ төхөөрөмжтэй илүү үр дүнтэй ажиллахын тулд
илүү олон хэлбэрүүд шинэ загварт зориулж зохиогдож байсан бөгөөд хуучин төрөлд бол
энгийн a.out төрлийг санал болгож болох юм.
COFF, ECOFF мөн өөр илүү хэд хэдэн
хэлбэр нь алдаануудаа нөхөн дэс дараалан үүсгэгдсээр
ELF хүртэл хөгжжээ.
Мөн цаашлаад програмын хэмжээ хэдийгээр ихэссэн ч дискний (мөн
санах ойн) хэмжээ харьцангуй бага байсан болохоор хуваалцаж
болдог кодын сангийн Shared-Libraries
санаа үүссэн юм.
Мөн VM системүүд сайн
хөгжиж эхлэв. Хэдийгээр эдгээр сайжруулалт болгон
a.out хэлбэрийг хэрэглэж байсан ч, шинэ
боломжууд үүсэх тоолонд энэ хэлбэрийг хэрэглэхгүй болж ирэх нь
улам ихэссэн билээ. Мөн түүнчлэн, санах ойг хэмнэх үүднээс
эхлэн ачаалсны дараа өөр тийшээ үсрэх юм уу эсвэл явцын дунд
код нэмэгдэж болох загваруудыг хүмүүс сонирхож эхлэв.
Програмын хэлүүд улам сайжирч хүмүүс програмын үндсэн хэсгийг автоматжуулсан
код хүсэх болжээ. Энэ бүх боломжуудыг биелүүлэх гэж
a.out хэлбэрийг маш их олон янзаар яргалсан бөгөөд хэсэгтээ
л энэ нь ажилладаг байв. Нэг мэдэхэд a.out
хэлбэр нь ихсэж буй бүх хүндрэлийг зохицуулж чадахааргүй
бичлэгийн төвөгтэй болон хэрэглэхэд хэцүү байдалд хүрсэн байна.
Хэдийгээр энэ хүндрэлүүдийг ELF хэлбэр нь
давдаг боловч шилжих явц нь маш хүндрэлтэй байдаг.
Тийм болохоор ELF хэлбэр руу шилжих төвөг нь
a.out хэлбэрийг хэрэглэх төвгөөс их байвал
ELF хэлбэр нь хүлээгдэхээс өөр аргагүй болжээ.
Гэвч цаг хугацаа өнгөрсөөр, FreeBSD ба түүний уламжилж гарсан системийн
хөрвүүлэх хэрэгсэл нь (ялангуяа ассемблер болон дуудагч буюу loader) хоёр замаар
зэрэг хөгжсөөр байв. FreeBSD салаа нь кодын хуваалцдаг санг нэмж мөн зарим алдааг
нь залруулсан байна. Үүнийг анх бичсэн GNU-н ард түмэн уг кодоо шинэчилж дахин
бичээд янз бүрийн хэлбэрүүдийг нэмж болдог болгоод мөн хөрвүүлэгчээс
хамааралгүй хөрвүүлэгддэг болгох зэрэг цааш нь хөгжүүлжээ.
Хэдийгээр маш олон хүн FreeBSD дээр хөрвүүлэгчээс хамаарахгүй
хөрвүүлэхийг хүссэн боловч FreeBSD-н as болон
ld-д зориулсан хуучин кодноос болоод
азгүйтжээ. GNU-н шинэ хэрэгслүүд нь (binutils)
хөрвүүлэгчээс хамааралгүй, ELF,
кодын хуваалцдаг сан, C++ өргөтгөл зэргүүдийг хөрвүүлж чаддаг болжээ.
Мөн цаашлаад маш олон байгууллагууд
ELF хэлбэртэй хоёртын програмуудыг гаргаж эхэлсэн тул
тэдгээрийг хэрэглэхийн тулд FreeBSD уг хэлбэрийг дэмжих нь зөв гэж шийдсэн юм.
ELF хэлбэр нь a.out хэлбэрийг бодвол
илүү өргөн хүрээтэй бөгөөд үндсэн системийг илүү өргөжүүлдэг.
ELF хэрэгслүүд нь маш сайн зохион байгуулагдсан бөгөөд
хөрвүүлэгчээс хамаардаггүй болохоор хүмүүсийн хүсэлд яг тохирдог.
ELF нь a.out хэлбэрийг бодвол жаахан
удаан байж болох боловч үүнийг хэмжиж тодорхойлно гэдэг нь хэцүү билээ.
Мөн энэ хоёрыг санах ойд хуудас зохицуулах, эхлэн ажиллах зарчим зэргийг нь харьцуулсан
маш олон шинж чанарууд байдаг. Тэдгээр шинж чанарууд нь тийм ч чухал биш бөгөөд
энэ нь зөвхөн ялгаа нь билээ. Одоо бол
a.out хэлбэр нь GENERIC
цөмөөс хасагдсан бөгөөд a.out хэлбэрийг ажиллуулдаг байсан цөм нь
хуучны цөмд тооцогдоно.
Нэмэлт мэдээлэл олж авах нь
Гарын авлага
гарын авлага
Ихэнх дэлгэрэнгүй мэдээллүүд нь FreeBSD дээр гарын авлага хэлбэрээр
оршиж байдаг. Систем дээр ажиллаж байгаа бараг бүх програмууд нь ажиллах болон
авдаг шинж чанараа тодорхойлсон товч заавар буюу гарын авлагатай хамт ирдэг.
Тийм гарын авлагыг man тушаалаар харна.
man тушаалын хэрэглээ нь тун хялбар:
&prompt.user; man тушаал
тушаал нь судалж уншихыг хүссэн тушаалын нэр байх ёстой.
Жишээлбэл ls тушаалын тухай мэдээлэл харахыг хүсвэл:
&prompt.user; man ls
Гарын авлага нь дотроо дараах хэсгүүдэд дугаарлагдаж хуваагддаг:
Хэрэглэгчийн тушаал.
Системийн дуудлага болон алдааны дугаар.
C програмын хэлний санд байрлах функц нь.
Төхөөрөмжийн драйвер.
Файлын хэлбэр.
Тоглоом болон бусад салбар.
Төрөл бүрийн бусад мэдээлэл.
Системээс санаа тавьж үйлдэх тушаал.
Цөм хөгжүүлэгч.
Зарим тохиолдолд гарын авлагын зарим бүлэг нь саяны хуваасан хэсэгт бүрд
ижил байдаг. Жишээлбэл chmod тушаалыг хэрэглэгч нэг янзаар хэрэглэж
байхад систем бас chmod() тушаалыг өөр зорилгоор хэрэглэдэг.
Энэ тохиолдолд та системд аль сэдвээ сонгож байгаагаа ойлгуулахын
тулд харгалзах дугаарыг нь өгөх ёстой:
&prompt.user; man 1 chmod
Энэ тохиолдолд chmod тушаалыг хэрэглэгч яаж дуудаж хэрэглэх
тухай харуулна. Гарын авлагын тухайн хэсгийг нь харахын тулд голдуу
хаалт дотор тухайн хэсгийн дугаарыг нь бичиж ханддаг. Тэгэхээр &man.chmod.1; гэвэл
хэрэглэгчид хамаатай хэсэг нь, &man.chmod.2; гэвэл системд хамаатай хэсэг харуулагдана.
Хэрэв та тушаалынхаа нэрийг мэдэж байвал энэ аргаар маш амархан
хэрэглэх зааврыг уншиж чадахаар боллоо. Гэтэл та тушаалынхаа нэрийг мэдэхгүй
тохиолдолд яах вэ? Энэ үед та man тушаалд тухайн хэрэгтэй
тушаалын зааварт хайх түлхүүр үгийг сонголт ашиглан зааж өгч болдог.
:
&prompt.user; man -k mail
Энэ тохиолдолд, заавартаа mail
гэдэг үг агуулсан
тушаалуудыг жагсааж танд харуулна. Энэ арга нь үндсэндээ
apropos тушаалын үүрэгтэй ижил болно.
За тэгэхээр, таны
/usr/bin санд маш их олон тушаалууд байгааг та мэддэг мөртлөө
ямар үйлдэл хийдгийг нь сайн мэдэхгүй тохиолдолд яах вэ? Хамгийн амархан арга бол:
&prompt.user; cd /usr/bin
&prompt.user; man -f *
эсвэл
&prompt.user; cd /usr/bin
&prompt.user; whatis *
энэ хоёр хоёулаа ижилхэн үйлдэл хийдэг.
GNU Info файлууд
Free Software Foundation
FreeBSD нь Free Software Foundation (FSF) буюу Чөлөөт Програмын Сангаас
бүтээсэн маш олон програмуудыг агуулж байдаг. Гарын авлага хуудаснаас гадна
эдгээр програмууд нь мөн нэмэлт текст загвартай
info файл агуулж байдаг бөгөөд уг төрлийн мэдээлэл нь
info тушаалаар харуулагддаг. Хэрэв та
emacs-г суулгасан бол
emacs-н info горимд бас харж болно.
&man.info.1; тушаалыг хэрэглэхийн тулд ердөө:
&prompt.user; info тушаал
Товч тайлбарыг нь харахын тулд h дарна. Тушаалын
түргэн зааврыг харахын тулд ? гэж дараарай.
diff --git a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
index 6bb7460da5..32366db4b0 100644
--- a/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/kernelconfig/chapter.sgml
@@ -1,1501 +1,1495 @@
Жим
Мок
Шинэчилж дахин бүтцийг өөрчилсөн
Жэйк
Хэмби
Анхлан хувь нэмэр болгож оруулсан
Цагаанхүүгийн
Ганболд
Орчуулсан
FreeBSD цөмийг тохируулах нь
Ерөнхий агуулга
цөм
өөрчлөн тохируулж цөм бүтээх нь
Цөм нь &os; үйлдлийн системийн гол зүрх юм. Энэ нь санах ойг удирдах,
аюулгүй байдлын хяналтуудыг хийх, сүлжээнд холбогдох, диск уруу хандах
зэрэг олон үйлдлүүдийг хариуцан хийдэг. &os; улам илүү динамикаар тохируулагдах
болсон боловч зарим тохиолдолд цөмийг дахин тохируулж хөрвүүлэх шаардлага гардаг.
Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:
Та магадгүй яагаад өөрт тохируулсан цөм бүтээх хэрэгтэй талаар.
Цөмийн тохиргооны файлыг хэрхэн бичих эсвэл байгаа тохиргооны файлыг
хэрхэн өөрчлөх талаар.
Цөмийн тохиргооны файлыг хэрхэн ашиглаж шинэ цөм үүсгэж бүтээх талаар.
Шинэ цөмийг хэрхэн суулгах талаар.
Хэрэв юм буруугаар эргэвэл хэрхэн алдааг олох талаар.
Энэхүү бүлгийн жишээнүүд дэх тушаалууд нь амжилттай болохын тулд
root эрхээр ажиллах ёстой.
Яагаад өөрчлөн тохируулсан цөм бүтээх хэрэгтэй вэ?
Уламжлалаар бол &os; нь monolithic
цөмтэй байсан байна.
Энэ нь цөм тоотой хэдэн төхөөрөмжүүдийн жагсаалтыг дэмжсэн нэг том програм
байсан гэсэн үг бөгөөд хэрэв та цөмийн ажиллагааг өөрчлөх бол шинэ цөм хөрвүүлж
дараа нь компьютераа шинэ цөмөөр ачаалан эхлүүлэх шаардлагатай байсан билээ.
Өнөөдөр &os; нь цөмийн ихэнх ажиллагаагаа шаардлагын дагуу динамикаар ачаалдаг
ба цөмөөс буцааж буулгах боломж бүхий модулиудаар тусгаарлагдсан загвар уруу шилжиж
байна. Энэ нь цөм шинэ тоног төхөөрөмжид (зөөврийн компьютер дэх PCMCIA
картууд зэрэг) дасан зохицож түүнийг хурдан хүртээмжтэй болгох, эсвэл цөм анх
хөрвүүлэгдэхдээ цөмд хэрэггүй байсан шинэ ажиллагааг цөмд бий болгох боломжийг
бүрдүүлдэг. Үүнийг модульчлагдсан цөм хэмээдэг юм.
Тэгсэн ч гэсэн зарим статик цөмийн тохиргоог заавал хийх шаардлагатай. Зарим
тохиолдолд ажиллагаа нь цөмтэй нягт холбоотой учраас динамикаар ачаалахаар хийх
боломжгүй байдаг юм. Бас энэ нь энгийнээр бол тэр үйл ажиллагаанд зориулж динамикаар
ачаалах модулийг бичих цаг хэнд ч олдоогүй байж болох юм.
Өөрчлөн тохируулсан цөм бүтээх нь BSD хэрэглэгчийн хувьд хамгийн чухал тэсвэрлэн давж гарах
ажиллагаануудын нэг юм. Энэ процесс нь цаг их зарцуулах боловч таны &os; системд
олон ашиг өгөх болно.Өргөн хүрээний тоног төхөөрөмжүүдийг дэмжих ёстой
GENERIC цөмтэй харьцуулахад өөрчлөн тохируулсан цөм нь
зөвхөн таны PC-ний тоног төхөөрөмжүүдийг дэмждэг. Энэ нь дараах хэд хэдэн ашигтай:
Хурдан ачаалах хугацаа. Цөм нь таны систем дэх тоног төхөөрөмжүүдийг зөвхөн
шалгах учраас системийг ачаалах хугацаа мэдэгдэхүйц багасдаг.
Санах ойн ашиглалт багасна. Өөрчлөн тохируулсан цөм нь ихэнхдээ
GENERIC цөмөөс бага санах ойг ашигладаг бөгөөд
энэ нь их чухал юм, яагаад гэвэл цөм үргэлж жинхэнэ санах ойд байж байх
шаардлагатай байдаг. Ийм учраас өөрчилсөн цөм нь бага хэмжээний RAM-тай систем
дээр ялангуяа ашигтай байдаг.
Нэмэлт тоног төхөөрөмжийн дэмжлэг. Дууны картууд зэрэг
GENERIC цөмд байхгүй төхөөрөмжүүдийн дэмжлэгийг
нэмэх боломжийг танд өөрчлөн тохируулсан цөм олгоно.
Том
Рөүдс
Бичсэн
Системийн тоног төхөөрөмж хайж олох нь
Цөмийн тохиргоо уруу орж үзээд алдахаасаа өмнө машиныхаа
тоног төхөөрөмжийн бүртгэлийг олж авах нь ухаалаг явдал юм.
&os; нь үндсэн үйлдлийн систем биш тохиолдолд байгаа үйлдлийн
системийн тохиргоог харан бүртгэлийн жагсаалтыг хялбархан
үүсгэж болно. Жишээ нь µsoft;-ийн
Device Manager буюу төхөөрөмжийн
менежер нь суулгагдсан төхөөрөмжүүдийн талаарх чухал
мэдээллийг ихэвчлэн агуулдаг.
Device Manager нь control panel
буюу хяналтын самбарт байрладаг.
µsoft.windows;-ийн зарим хувилбаруудад
System гэсэн дүрс байдаг бөгөөд
энэ нь Device Manager уруу хандах
боломжтой дэлгэцийг харуулдаг.
Хэрэв өөр үйлдлийн систем машин дээр байхгүй бол
администратор энэ мэдээллийг өөрөө олох хэрэгтэй болно.
Нэг арга нь &man.dmesg.8; хэрэгсэл болон &man.man.1;
тушаалуудыг ашиглах явдал юм. &os; дээр ихэнх төхөөрөмжийн
драйверууд нь дэмжигдсэн тоног төхөөрөмжүүдийн жагсаалтыг
харуулсан гарын авлагын хуудастай байдаг бөгөөд ачаалах үед
шалгаж байх явцад олдсон тоног төхөөрөмжийг харуулдаг.
Жишээ нь дараах мөрүүд нь psm
драйвер хулгана олсон гэдгийг харуулж байна:
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
Энэ драйвер нь өөрчлөн тохируулах цөмийн тохиргооны
файлд орсон байх эсвэл &man.loader.conf.5; ашиглан ачаалагдсан
байх хэрэгтэй болно.
Зарим тохиолдолд dmesg-ээс гарч
байгаа өгөгдөл нь ачаалалтын шалгалт, илрүүлэлтийн гаралтыг
биш зөвхөн системийн мэдэгдлүүдийг үзүүлдэг. Эдгээр тохиолдлуудад
/var/run/dmesg.boot файлыг
үзэн гаралтыг олж авч болно.
Тоног төхөөрөмжийг олох өөр нэг арга бол илүү дэлгэрэнгүй
гаралтыг үзүүлдэг &man.pciconf.8; хэрэгслийг ашиглах явдал юм.
Жишээ нь:
ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernet
pciconf ашиглан
олж авсан энэ бяцхан мэдээлэл нь ath
драйвер утасгүй Ethernet төхөөрөмжийг олсныг харуулж байна.
man ath тушаалыг
ашиглавал &man.ath.4; гарын авлагын хуудсыг харуулах
болно.
Ашигтай мэлээлэл олж авахын тулд &man.man.1; уруу
тугийг өгөн ашиглаж болно. Дээрхээс
ингэж өгч болно:
&prompt.root; man -k Atheros
Тухайн нэг үг агуулсан гарын авлагын хуудсын жагсаалтыг
олж авахын тулд:
ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)
Тоног төхөөрөмжийн жагсаалтаар зэвсэглэснээр
цөмийг өөрчлөн тохируулж бүтээх процесс нь арай хялбар болно.
Цөмийн драйверууд, дэд системүүд, болон модулиуд
kernel
drivers / modules / subsystems
Өөрчлөн тохируулсан цөмийг бүтээхийн өмнө тэгж хийх шалтгаанаа
бодож үзэх хэрэгтэй. Хэрэв тусгайлсан тоног төхөөрөмжийн дэмжлэг хэрэгтэй
байгаа бол тэр нь модуль хэлбэрээр аль хэдийн байж байж болох юм.
Цөмийн модулиуд нь /boot/kernel
санд байх бөгөөд ажиллаж байгаа цөмд &man.kldload.8;-г ашиглан динамикаар
дуудаж болдог. Цөмийн бүх драйверуудын ихэнх нь тусгай модуль болон гарын
авлагын хуудастай байдаг. Жишээ нь сүүлийн хэсэг ath
гэсэн утасгүй Ethernet драйверийн талаар дурдсан байдаг.
Энэ төхөөрөмж нь өөрийн гарын авлагадаа дараах мэдээллийг агуулсан
байдаг:
Alternatively, to load the driver as a module at boot time, place the
following line in &man.loader.conf.5:
if_ath_load="YES"
Зааврын дагуу /boot/loader.conf файлд
if_ath_load="YES" мөрийг нэмснээр энэ модулийг
ачаалах үед динамикаар дуудах боломжийг идэвхжүүлнэ.
Гэхдээ зарим тохиолдолд холбоотой модуль байдаггүй. Энэ нь
зарим нэг дэд системүүд болон маш чухал драйверуудын хувьд бодит
бөгөөд жишээ нь fast file system (FFS) буюу
түргэн файлын систем нь цөмд заавал байх шаардлагатай тохируулга юм.
Мөн сүлжээний дэмжлэгийн (INET) хувьд ийм байна.
Харамсалтай нь драйвер шаардлагатай эсэхийг хэлэх цорын ганц зам нь
модулийг нь шалгах явдал юм.
Төхөөрөмж эсвэл тохируулгын цөмд цуг бүтээгдсэн дэмжлэгийг устгаж
эвдэрхий цөмтэй үлдэх нь их хялбар юм. Жишээ нь &man.ata.4;
драйверийг цөмийн тохиргооны файлаас авчих юм бол ATA
дискийн хөтөчүүд нь loader.conf-д тусгай мөр
нэмэлгүйгээр эхлэн ачаалахгүй байж болох юм. Хэрэв эргэлзэж байгаа
бол модулийг шалгаад дараа нь ердөө л дэмжлэгийг цөмд үлдээх
хэрэгтэй.
Өөрчлөн тохируулсан цөмийг бүтээх ба суулгах нь
цөм
бүтээх / суулгах
Эхлээд цөм бүтээх сангаар аялая. Дурдсан бүх сангуудаас гол нь
/usr/src/sys сан байх бөгөөд
/sys гэсэн замаар бас хандах боломжтой.
Энд байгаа хэд хэдэн дэд сангууд цөмийн өөр өөр хэсгүүдийг илэрхийлэх бөгөөд
бидний зорилгод хамгийн чухал нь таны өөрчлөн тохируулах цөмийн тохиргоог
засварлах arch/conf
сангууд болон таны цөм бүтээгдэх шатны талбар compile
сан юм. arch нь
i386, alpha,
amd64, ia64,
powerpc, sparc64, эсвэл
pc98 (Японд их ашиглагддаг PC тоног төхөөрөмжийн
өөр нэг хөгжүүлэлтийн салбар) зэргийг төлөөлдөг. Тухайн архитектурын сан доторх
код зөвхөн тэр архитектуртай холбоотой; бусад кодын хэсэг нь &os; порт хийгдэх
боломж бүхий бүх тавцангуудын хувьд адил машинаас чөлөөт код байна. Сангийн бүтцийн
логик зохион байгуулалт нь дэмжлэг хийгдсэн төхөөрөмж, файлын систем болон өөрийн дэд
санд байгаа тохируулга бүртэй хамт байгааг харж болно.
Энэ бүлэг жишээн дээр таныг i386 архитектур ашиглаж байгаа гэж авч үзнэ.
Хэрэв энэ нь таны хувьд өөр байх юм бол та өөрийн системийн архитектурын хувьд замуудын
нэрнүүддээ тохирох өөрчлөлтүүдийг хийгээрэй.
Хэрэв таны систем дээр /usr/src/sys сан
байхгүй бол цөмийн эх суугаагүй байна. Үүнийг хамгийн хялбар аргаар
хийхийн тулд root эрхээр sysinstall
ажиллуулж Configure сонгоод, дараа нь
Distributions сонгоод,
src сонгоод, дараа нь
base болон
sys-г сонгож татаж авна. Хэрэв та
sysinstall -д дургүй ба
албан ёсны
&os; CDROM-д хандах боломжтой бол
тушаалын мөрөөс эхийг бас суулгаж болно:
&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
&prompt.root; cat /cdrom/src/sbase.[a-d]* | tar -xzvf -
Дараа нь arch/conf
сан уруу шилжээд GENERIC тохиргооны файлыг та өөрийн цөмдөө өгөх
нэр уруу хуул. Жишээ нь:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MYKERNEL
Уламжлалаар бол энэ нэр нь бүгд том үсгээр байдаг, хэрэв та олон өөр өөр төрлийн &os;
машинуудын ажиллагааг хянадаг бол машинуудынхаа нэрээр нэрлэх нь зохимжтой юм.
Бид энэ жишээнийхээ зорилгоор MYKERNEL гэж нэрлэе.
Өөрийн цөмийн тохиргооны файлаа шууд /usr/src
доор хадгалах нь буруу байж болох юм. Хэрэв та асуудлуудтай тулгарч байгаа бол
/usr/src -ийг устгаад л дахиж эхлэх нь зоригтой
алхам байж болох юм. Гэхдээ үүнийг хийгээд хэдэн секундын дараа л та өөрийн
өөрчлөн тохируулсан цөмийн тохиргооны файлаа устгасан болохоо мэдэх болно.
Мөн GENERIC файлыг шууд засварлах хэрэггүй бөгөөд
дараагийн удаа өөрийн эх модыг шинэчлэх
үйлдлийг хийхэд дарагдан хуулагдаж таны цөмийн өөрчлөлт алдагдаж магадгүй.
Та цөмийн тохиргооны файлаа өөр газар хадгалж дараа нь
i386 сан дахь
файл уруу тэмдэгт холбоос үүсгэж болно.
Жишээ нь:
&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MYKERNEL
&prompt.root; ln -s /root/kernels/MYKERNEL
Одоо MYKERNEL-ийг өөрийн дуртай текст засварлагч дээр
засаарай. Хэрэв та дөнгөж эхэлж байгаа бол байгаа цорын ганц засварлагч нь
vi байж болох бөгөөд түүнийг энд тайлбарлахад хэтэрхий
төвөгтэй боловч номын жагсаалтад
байгаа өөр олон номнуудад бичсэн байгаа. Гэхдээ &os; нь ee
гэдэг хялбар засварлагчийг санал болгодог бөгөөд хэрэв та эхлэн сурагч бол энэ нь
таны сонгох засварлагч байх болно. Өөрийн тохиргоог тусгах эсвэл GENERIC
файлаас өөрийн хийсэн өөрчлөлтүүдээс ялгахын тулд дээд хэсэгт байгаа мөрүүдийг
чөлөөтэй өөрчлөөрэй.
SunOS
Хэрэв та &sunos; эсвэл өөр BSD үйлдлийн системийн доор цөм бүтээж байсан бол
энэ файлын ихэнх хэсэг нь маш танил байх болно. Хэрэв та DOS зэрэг өөр үйлдлийн
системээс ирж байгаа бол нөгөө талаасаа GENERIC
тохиргооны файл төвөгтэй юм шиг санагдаж болох бөгөөд
Тохиргооны файл хэсгийн
тайлбаруудыг удаан нухацтай дагаарай.
Хэрэв та &os; төслийн хамгийн сүүлийн эхээр өөрийн эх модоо сүүлийн үеийн хэлбэрт авчирсан бол
шинэчлэх шатуудаа хэрэгжүүлж эхлэхээсээ өмнө /usr/src/UPDATING
файлыг үргэлж шалгаж байх нь чухал юм. Энэ файл нь шинэчилсэн эх код доторх тусгай
анхаарал шаардлагатай чухал асуудлууд эсвэл хэсгүүдийн талаар тайлбарладаг.
/usr/src/UPDATING нь үргэлж таны &os;
хувилбартай таардаг бөгөөд энэ гарын авлагаас илүү шинэ мэдээлэлтэй, сүүлийн үеийнх
байдаг.
Та цөмд зориулан эх кодоо хөрвүүлэх шаардлагатай.
Цөмийг бүтээх нь
/usr/src сан уруу орно:
&prompt.root; cd /usr/src
Цөмийг хөрвүүлнэ:
&prompt.root; make buildkernel KERNCONF=MYKERNEL
Шинэ цөмийг суулгана:
&prompt.root; make installkernel KERNCONF=MYKERNEL
Цөмийг бүтээхэд гүйцэд &os;-ийн эх мод байх шаардлагатай.
Анхдагчаар өөрчлөн тохируулсан цөмийг бүтээхэд бүх
цөмийн модулиуд бас бүтээгдэнэ. Хэрэв та цөмийг хурдан шинэчлэхийг
эсвэл зөвхөн өөрчлөн тохируулсан модулиудыг бүтээхийг хүсэж байгаа бол цөмийг бүтээж
эхлэхээсээ өмнө /etc/make.conf файлыг засварлах
хэрэгтэй:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Энэ хувьсагч нь бүгдийг биш бүтээх модулиудын жагсаалтыг тодорхойлдог.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Энэ хувьсагч нь бүтээх процессод оруулахгүй байх модулиудын жагсаалтыг
тодорхойлдог. Цөмийг бүтээх процессийн явцад танд хэрэг болохуйц бусад
хувьсагчуудын тухайд &man.make.conf.5; гарын авлагын хуудсанд хандаж
үзнэ үү.
/boot/kernel.old
Шинэ цөм /boot/kernel санд
/boot/kernel/kernel нэрээр хуулагдах бөгөөд
хуучин цөм нь /boot/kernel.old/kernel уруу хуулагдана.
Одоо системийг унтраагаад шинэ цөмийг ашиглан дахин ачаал. Хэрэв ямар нэг юм болохгүй болбол
энэ бүлгийн төгсгөлд байгаа алдааг олж засварлах
заавар танд хэрэгтэй байж болох юм. Таны шинэ цөм ачаалахгүй тохиолдолд хэрхэн сэргээх
талаар тайлбарласан хэсгийг заавал уншаарай.
Ачаалах &man.loader.8; ба тохиргоо зэрэг ачаалах процесстой холбоотой бусад файлууд
/boot -д хадгалагдана. Гуравдагч этгээдийн
эсвэл өөрчлөн тохируулсан модулиуд /boot/kernel-д
байрлах бөгөөд гэхдээ модулиудыг хөрвүүлсэн цөмийн адил сүүлийн үеийн хэлбэрт байлгах нь маш чухал гэдгийг
хэрэглэгчид мэдэх шаардлагатай. Хөрвүүлсэн цөмтэй хамт ажиллуулахааргүй модулиуд нь
тогтворгүй байдал эсвэл буруу ажиллагаанд хүргэж болзошгүй юм.
Жоэл
Даль
&os; 6.X -д зориулан шинэчилсэн
Тохиргооны файл
цөм
ТЭМДЭГЛЭЛҮҮД
ТЭМДЭГЛЭЛҮҮД
цөм
тохиргооны файл
Тохиргооны файлын ерөнхий хэлбэр нь маш энгийн билээ.
Мөр болгон түлхүүр үг бөгөөд нэг болон хэд хэдэн нэмэлт өгөгдлөөс тогтоно.
Амархан болгох үүднээс ихэнх мөрүүд нь зөвхөн нэг нэмэлт өгөгдөлтэй байна.
# тэмдэгтийн ард байгаа зүйлс тайлбар бөгөөд
хаягдаж тооцогдоно. Дараах хэсэгт түлхүүр үг болгоныг GENERIC -д
жагсаасан дарааллаар нь тайлбарлаж байна.
Архитектураас хамааралтай
тохируулгууд болон төхөөрөмжийн ядраамаар жагсаалтын талаар
GENERIC файл байгаа сангийн нэгэн адил санд байрлах
NOTES файлаас үзнэ үү.
Архитектураас хамааралгүй тохируулгуудын талаар
/usr/src/sys/conf/NOTES файлаас үзнэ үү.
Тест хийх зорилгоор ихэнхдээ бүх байгаа тохируулгууд агуулсан файлыг бүтээхдээ
дараах тушаалыг root эрхээр ажиллуулна:
&prompt.root; cd /usr/src/sys/i386/conf && make LINT
цөм
тохиргооны файл
Дараах жишээ нь шаардлагатай бол тодотгох зорилгоор оруулсан төрөл бүрийн нэмэлт тайлбар бүхий
GENERIC цөмийн тохиргооны файл юм. Энэ жишээ нь
таны /usr/src/sys/i386/conf/GENERIC
дахь хуулбартай их ойрхон таарах ёстой.
цөмийн тохируулгууд
machine
machine i386
Энэ нь машины архитектур юм. Энэ нь
alpha, amd64,
i386, ia64,
pc98, powerpc, эсвэл
sparc64 -ийн аль нэг байх ёстой.
цөмийн тохируулгууд
cpu
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
Дараах тохируулга нь таны системд байгаа CPU-ийн төрлийг заана.
Та олон CPU мөртэй байж болох боловч (хэрэв, жишээ нь та
I586_CPU эсвэл I686_CPU
хоёрын алийг ашиглахаа сайн мэдэхгүй байгаа бол) өөрчлөн тохируулсан
цөмийн хувьд зөвхөн байгаа CPU-гээ заах нь зүйтэй юм. Хэрэв та өөрийн
CPU-ийн төрлийг сайн мэдэхгүй байгаа бол /var/run/dmesg.boot
файлыг шалгаж ачаалах үеийн мэдээллүүдийг үзэж болно.
цөмийн тохируулгууд
ident
ident GENERIC
Энэ нь цөмийг тодорхойлох нэр юм. Хэрэв та
түрүүний жишээнүүдэд дурдсан заавруудыг дагасан бол өөрийн цөмийг нэрлэсэн
шигээ өөрөөр хэлбэл MYKERNEL хэмээн өөрчлөх
хэрэгтэй. ident мөрд оруулсан утга нь таныг цөмийг ачаалах
үед хэвлэгдэн гарах учир та өөрийн ердийн цөмөөс шинэ цөмөө тусад нь хадгалахыг хүсвэл
шинэ цөмдөө өөр нэр өгөх нь ашигтай байдаг (өөрөөр хэлбэл та туршилтын цөм бүтээхийг
хүсвэл).
#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
&man.device.hints.5; нь төхөөрөмжүүдийн драйверуудын тохируулгуудыг
хийхэд ашиглагдана. &man.loader.8;-ийн ачаалах үе шалгах анхдагч байрлал нь
/boot/device.hints байна.
hints тохируулгыг ашиглаад та эдгээр зөвлөгөөнүүдийг
статикаар хөрвүүлж болно. Тэгэхэд /boot дотор
device.hints файл үүсгэх шаардлагагүй
болох юм.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
&os; -г бүтээх ердийн процесс нь дибаг (debug) хийх мэдээллийг агуулдаг
бөгөөд цөмийг бүтээх үед тохируулгыг &man.gcc.1;
уруу өгснөөр дибаг (debug) хийх мэдээлэл идэвхждэг.
options SCHED_4BSD # 4BSD scheduler
&os; -ийн уламжлалт, анхдагч системийн төлөвлөгч/хуваарилагч. Үүнийг үлдээ.
options PREEMPTION # Enable kernel thread preemption
Цөм дэх урсгалуудыг (thread) өөр илүү өндөр давуу эрхтэй урсгалуудаар
солих боломжийг бүрдүүлнэ. Энэ нь харилцан ажиллах болон таслах урсгалуудыг
(interrupt threads) хүлээлгэлгүйгээр аль болох түргэн ажиллуулахад тусалдаг.
options INET # InterNETworking
Сүлжээний дэмжлэг. Сүлжээнд холбогдохгүй ч гэсэн энэ тохиргоог үлдээгээрэй.
Ихэнх програмууд эргэн холбогдох (loopback буюу өөрөөр хэлбэл өөрийн PC
дотор сүлжээний холболт хийх) сүлжээг шаарддаг учир энэ нь үндсэндээ зайлшгүй
шаардлагатай.
options INET6 # IPv6 communications protocols
Энэ нь IPv6 холбооны протоколуудыг идэвхжүүлдэг.
options FFS # Berkeley Fast Filesystem
Энэ нь энгийн хатуу дискний файлын систем. Энэ тохируулгыг хатуу дискнээс
ачаалах бол үлдээгээрэй.
options SOFTUPDATES # Enable FFS Soft Updates support
Энэ тохируулга нь Зөөлөн Шинэчлэлүүдийг цөм идэвхжүүлдэг бөгөөд
диск уруу бичих хандалтыг хурдасгахад тусалдаг. Хэдийгээр энэ боломжийг
цөмөөр хангадаг боловч диск дээр идэвхжүүлэх шаардлагатай.
Таны системийн дискнүүд дээр Зөөлөн Шинэчлэлүүд идэвхжсэн эсэхийг
&man.mount.8; -ийн үр дүнгээр хянаарай. Хэрэв та soft-updates
тохируулгыг олж харахгүй байгаа бол &man.tunefs.8; (одоо байгаа системийн хувьд)
эсвэл &man.newfs.8; (шинэ файлын системийн хувьд) ашиглан идэвхжүүлэх хэрэгтэй.
options UFS_ACL # Support for access control lists
Энэ тохируулга нь хандалтыг хянах жагсаалтын дэмжлэгийг цөмд идэвхжүүлдэг.
Энэ нь өргөтгөсөн шинж чанарууд ба UFS2-ийг ашиглахад
тулгуурлаж байгаа бөгөөд энэ боломжийн талаар дээр
дэлгэрэнгүй тайлбарласан байдаг. ACL-үүд эхэндээ
идэвхжүүлсэн байдаг бөгөөд хэрэв урьд нь файлын систем дээр ашиглагдаж байсан
бол хандалтыг хянах жагсаалтыг устгаж файлуудыг хамгаалсан аргыг урьдчилан тааж
болшгүй байдалт хүргэдэг учир энэ тохируулгыг хааж болохгүй.
options UFS_DIRHASH # Improve performance on big directories
Энэ тохируулга нь нэмэгдэл санах ойг зарлагадаж том сангуудад хийх дискний
үйлдлүүдийг хурдасгах ажиллагааг оруулдаг. Та том сервер эсвэл харилцан ажиллах
ажлын станцад зориулж энэ тохируулгыг ерөнхийдөө хадгалах хэрэгтэй бөгөөд
хэрэв та &os;-г санах ой чухал жижиг систем ба дискний хандалтын хурдны ач
холбогдол багатай галт хана мэтийн систем дээр ашиглаж байгаа бол устгаарай.
options MD_ROOT # MD is a potential root device
Энэ тохируулга нь санах ой дээр тулгуурласан, root төхөөрөмж болж ашиглагдах
виртуал дискний дэмжлэгийг идэвхжүүлдэг.
цөмийн тохируулгууд
NFS
цөмийн тохируулгууд
NFS_ROOT
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
Сүлжээний файлын систем. Хэрэв та TCP/IP-аар &unix; файлын серверээс
хуваалтыг холболт хийх төлөвлөгөөгүй бол эдгээрийг тайлбар болгон хааж болно.
цөмийн тохируулгууд
MSDOSFS
options MSDOSFS # MSDOS Filesystem
&ms-dos; файлын систем. Хэрэв та DOS хэлбэржүүлсэн хатуу дискний хуваалтыг
ачаалах үед холболт хийх төлөвлөгөөгүй бол үүнийг айлгүйгээр тайлбар болгон хааж болно.
Энэ нь дээр тайлбарласны дагуу эхний удаа DOS хуваалтыг холболт хийхэд автоматаар ачаалагдах
болно. Мөн маш сайн emulators/mtools
програм хангамж нь холболт болон салгалт хийлгүйгээр DOS уян дискнүүдэд хандах боломжийг
бүрдүүлдэг (энэ нь MSDOSFS-ийг огт шаарддаггүй).
options CD9660 # ISO 9660 Filesystem
CDROM-уудад зориулсан ISO 9660 файлын систем. Хэрэв та CDROM хөтлөгч
байхгүй эсвэл CD-ээс өгөгдлийг хааяа холболт хийдэг бол (таныг анх өгөгдлийн CD-г
холболт хийх үед динамикаар ачаалагддаг учраас) тайлбар болгож хааж болно.
Дууны CD-үүд энэ файлын системийг хэрэглэдэггүй.
options PROCFS # Process filesystem (requires PSEUDOFS)
Процессийн файлын систем. Энэ нь &man.ps.1; шиг програмууд процессуудын
ажиллаж байгаа талаар дэлгэрэнгүй мэдээлэл танд өгөх боломжийг бүрдүүлдэг
/proc дээр холболт хийгдсэн хуурамч
файлын систем юм. Ихэнх дибаг хийх ба монитор хийх хэрэгслүүд
PROCFS -гүйгээр ажиллахаар хийгдсэн байдаг:
суулгалтууд нь энэ файлын системийг анхдагчаар холболт хийхгүй, тиймээс
PROCFS-ийг ашиглах нь ихэнх тохиолдолд
шаардлагагүй байдаг.
options PSEUDOFS # Pseudo-filesystem framework
6.X цөмүүд PROCFS ашиглаж байгаа бол бас
PSEUDOFS дэмжлэгийг оруулах шаардлагатай.
options GEOM_GPT # GUID Partition Tables.
Энэ тохируулга нь нэг диск дээр их олон тооны хуваалт байх боломжийг
авчирна.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
4.3BSD-тэй нийцтэй байх. Үүнийг энэ чигээр орхи; хэрэв үүнийг тайлбар болгож
хаавал зарим програмууд сонин ажиллаж эхэлнэ.
options COMPAT_FREEBSD4 # Compatible with &os;4
Энэ тохируулга нь &os; 5.X &i386; ба Alpha системүүд дээр &os;-ийн хуучин
хувилбарууд дээр хөрвүүлэгдсэн, хуучин системийн дуудлагуудын интерфэйсүүдийг ашигладаг
програмуудыг дэмжихэд шаардлагатай. Энэ тохируулгыг хуучин програмууд ашиглаж болзошгүй
бүх &i386; болон Alpha системүүд дээр ашиглахыг зөвлөж байна; ia64 ба &sparc64;
зэрэг 5.X дээр зөвхөн дэмжлэг хийгдсэн тавцангууд энэ тохируулгыг шаарддаггүй.
options COMPAT_FREEBSD5 # Compatible with &os;5
Энэ тохируулга нь &os; 5.X системийн дуудлагын интерфэйсүүдийг ашигладаг,
&os; 5.X хувилбарууд дээр эмхэтгэгдсэн програмуудыг &os; 6.X болон
түүнээс дараа үеийн хувилбарууд дээр дэмжихэд шаардлагатай.
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
Энэ нь цөмийг SCSI төхөөрөмжүүдийг шалгаж эхлэхээс өмнө 5 секунд түр зогсооно. Хэрэв
та зөвхөн IDE хатуу дисктэй бол үүнийг орхиж болно, эсрэг тохиолдолд ачаалалтыг хурдасгахын
тулд энэ тоог багасгаж болно. Мэдээж та үүнийг хийгээд &os; таны SCSI төхөөрөмжүүдийг
танихгүй бол та дахин үүнийг ихэсгэж болно.
options KTRACE # ktrace(1) support
Энэ нь дибаг хийхэд ашигтай, цөмийн процессийг дагах боломжийг идэвхжүүлдэг.
options SYSVSHM # SYSV-style shared memory
Энэ тохируулга нь System V хуваалцсан санах ойн боломж бүрдүүлдэг. Энэ боломжийн
өргөн хэрэглээнүүдийн нэг нь X дэх XSHM өргөтгөл бөгөөд үүнийг график их шаарддаг олон програмууд
автоматаар илүү хурд авахын тулд ашигладаг. Хэрэв та X ашигладаг бол үүнийг заавал оруулахыг
хүсэх болно.
options SYSVMSG # SYSV-style message queues
System V мэдээллүүдийн дэмжлэг. Энэ тохируулга нь зөвхөн хэдхэн зуун байтыг
цөмд нэмдэг.
options SYSVSEM # SYSV-style semaphores
System V семафорын дэмжлэг. Нэг их өргөн ашиглагддаггүй боловч
хэдхэн зуун байтыг цөмд нэмдэг.
&man.ipcs.1; тушаалын тохируулга нь эдгээр
System V боломж бүрийг ашигласан процессуудыг жагсаадаг.
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
Жинхэнэ-хугацааны (real-time) өргөтгөлүүд 1993 оны &posix;-д нэмэгдсэн.Портуудын
цуглуулгаас зарим програмууд эдгээрийг ашигладаг (&staroffice;).
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
Энэ тохируулга нь гарын төхөөрөмжийн цэгийг /dev-д үүсгэх боломжийг
олгоход шаардлагатай байдаг.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Giant гэдэг нь харилцан нэгийгээ оруулахгүй байх зарчмын (унтах мутекс) нэр бөгөөд
энэ нь цөмийн их эх үүсвэрүүдийг хамгаалдаг. Өнөөдөр энэ нь үйл ажиллагааны саатаж
байгаа хүлээн авах боломжгүй хэсэг бөгөөд үүнийг эх үүсвэр бүрийг хамгаалах цоожуудаар
идэвхтэйгээр сольж байгаа билээ. ADAPTIVE_GIANT тохируулга нь
хэсэг бүлэг мутексуудад Giant-ийг адаптиваар эргэхээр оруулдаг. Энэ нь урсгал (thread)
Giant мутексийг цоожлохыг хүсэж байх үед, гэхдээ энэ нь өөр CPU дээр урсгалаар цоожлогдсон
байна, эхний урсгал цоож сулрахыг хүлээн ажилласаар байна. Хэвийн үед урсгал унтаа байдалд
эргэж орох бөгөөд өөрийн дараагийн ажиллах боломжийг хүлээнэ. Та итгэлгүй байгаа бол
үүнийг орхино уу.
&os; 8.0-CURRENT болон түүнээс хожуу үеийн хувилбаруудад бүх
мутексууд нь NO_ADAPTIVE_MUTEXES тохируулгатайгаар
бүтээгдэж зохицох чадваргүй гэж тохируулагдаагүй л бол анхдагчаар адаптив буюу
зохицох чадвартай байдаг. Иймээс одоо Giant нь зохицох чадвартай
бөгөөд ADAPTIVE_GIANT тохируулга нь цөмийн тохиргооноос
хасагдсан юм.
цөмийн тохируулгууд
SMP
device apic # I/O APIC
apic төхөөрөмж нь I/O APIC-ийг тасалдал хүргэхэд ашиглах боломжийг нээдэг.
apic төхөөрөмж нь UP болон SMP цөмүүдэд хоёуланд нь ашиглагдаж болох бөгөөд
гэхдээ SMP цөмд зайлшгүй шаардлагатай. options SMP
мөрийг нэмж олон процессорын дэмжлэгийг оруулна уу.
apic төхөөрөмж нь зөвхөн i386 архитектур дээр байдаг бөгөөд
энэ тохиргооны мөрийг бусад архитектурууд дээр
ашиглах ёсгүй юм.
device eisa
Хэрэв та EISA эх хавтантай бол үүнийг оруулаарай. Энэ нь EISA шугамын бүх
төхөөрөмжүүдийн хувьд автомат илрүүлэлт болон тохиргооны дэмжлэгийг нээж өгдөг.
device pci
Хэрэв та PCI эх хавтантай бол үүнийг оруулаарай. Энэ нь PCI картуудыг автомат
илрүүлэлт болон PCI-аас ISA шугам уруу гарах дэмжлэгийг нээж өгдөг.
# Floppy drives
device fdc
Энэ нь уян диск хөтлөгчийн хянагч.
# ATA and ATAPI devices
device ata
Энэ драйвер бүх ATA болон ATAPI төхөөрөмжүүдийг дэмждэг. Орчин үеийн машинуудын
бүх PCI ATA/ATAPI төхөөрөмжүүдийг илрүүлэхийн тулд зөвхөн нэг
device ata мөр таны цөмд хэрэгтэй.
device atadisk # ATA disk drives
Энэ нь device ata мөртэй цуг ATA дискний
төхөөрөмжүүдэд хэрэгтэй.
device ataraid # ATA RAID drives
Энэ нь device ata мөртэй цуг ATA RAID
хөтлөгчүүдэд хэрэгтэй.
device atapicd # ATAPI CDROM drives
Энэ нь device ata мөртэй цуг ATA CDROM
хөтлөгчүүдэд хэрэгтэй.
device atapifd # ATAPI floppy drives
Энэ нь device ata мөртэй цуг ATA уян дискний
хөтлөгчүүдэд хэрэгтэй.
device atapist # ATAPI tape drives
Энэ нь device ata мөртэй цуг ATA соронзон хальсны
хөтлөгчүүдэд хэрэгтэй.
options ATA_STATIC_ID # Static device numbering
Энэ нь хянагчийн дугаарыг статик болгох бөгөөд энэнгүйгээр
төхөөрөмжийн дугаарууд динамикаар өгөгддөг.
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
SCSI хянагчууд. Таны системд байхгүй байгааг тайлбар болгон хаана уу.
Хэрэв та зөвхөн IDE системтэй бол эдгээр мөрүүдийг бүгдийг устгаж болно.
*_REG_PRETTY_PRINT мөрүүд нь өөр өөрийнхөө тохирох
драйверуудад зориулагдсан дибаг хийх тохируулгууд юм.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
SCSI захын төхөөрөмжүүд. Дахин хэлэхэд таны системд байхгүй байгааг тайлбар
болгон хаагаарай эсвэл та зөвхөн IDE тоног төхөөрөмжтэй бол эдгээр мөрүүдийг
бүгдийг устгаж болно.
USB &man.umass.4; драйвер болон бусад цөөн хэдэн драйверууд жинхэнэ
SCSI төхөөрөмжүүд биш боловч SCSI дэд системийг ашигладаг. Тийм болохоор
хэрэв цөмийн тохиргоонд тийм драйверууд орсон байвал SCSI дэмжлэгийг устгаагүй
эсэхээ шалгаарай.
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
Дэмжигдсэн RAID хянагчууд. Хэрэв танд эдгээрээс нэг нь ч байхгүй бол
тайлбар болгон хааж эсвэл устгаж болно.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
Гарын хянагч (atkbdc) AT гар ба PS/2 загварын заагч
төхөөрөмжүүдэд I/O үйлчилгээнүүдийг хангадаг. Энэ хянагчийг гарын драйвер
(atkbd) болон PS/2 заагч төхөөрөмжийн драйвер
(psm) шаарддаг.
device atkbd # AT keyboard
atkbd драйвер нь atkbdc
хянагчтай цуг AT гарын хянагчид залгасан AT 84 гар болон AT өргөжүүлсэн
гаруудад хандах боломж олгодог.
device psm # PS/2 mouse
Хэрэв таны хулгана PS/2 порт уруу залгагдаж байгаа бол энэ төхөөрөмжийг
ашиглана уу.
device kbdmux # keyboard multiplexer
Олон гар залгах боломжийн анхны дэмжлэг.
Хэрэв та систем дээрээ нэгээс олон гар ашиглахгүй бол энэ мөрийг аюулгүйгээр
устгаж болно.
device vga # VGA video card driver
Видео картын драйвер.
device splash # Splash screen and screen saver support
Эхлэх үе дэх хоромхон зуур гарах дэлгэц! Дэлгэц амраагчид нь үүнийг бас шаарддаг.
# syscons is the default console driver, resembling an SCO console
device sc
sc нь анхдагч консолийн драйвер бөгөөд SCO консолыг дуурайдаг.
Ихэнх бүрэн дэлгэцийн програмууд консол уруу termcap зэрэг
терминалийн өгөгдлийн баазын сангийн тусламжтайгаар ханддаг бөгөөд үүнийг ашиглах эсэх эсвэл
VT220-тай нийцтэй консол драйвер болох vt-ийг
ашиглах эсэх нь хамаагүй юм. Та нэвтэрсний дараа бүрэн дэлгэцийн програмууд энэ консол дээр ажиллахдаа
асуудалтай байвал өөрийн TERM хувьсагчаа scoansi
болгоорой.
# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
Энэ нь VT100/102-той арагшаагаа нийцтэй, VT220-той нийцтэй консол драйвер юм.
Энэ нь sc-тэй нийцгүй зарим зөөврийн компьютер дээр сайн
ажилладаг. Та нэвтэрсний дараа өөрийн TERM хувьсагчаа
vt100 эсвэл vt220 болгоорой.
Мөн энэ драйвер нь sc төхөөрөмжүүдэд зориулсан
termcap эсвэл terminfo
оруулгууд ихэнхдээ байхгүй байдаг асар олон тооны өөр өөр машинууд уруу сүлжээгээр
дамжин холбогдох үед ашигтай байж болно — vt100
нь виртуалаар дурын тавцан дээр байх ёстой.
device agp
Хэрэв та систем дээрээ AGP карттай бол үүнийг оруулна уу. Энэ нь AGP болон AGP GART-ийн
дэмжлэгийг эдгээр боломжуудаас тогтсон хавтанд зориулж нээнэ.
APM
# Power management support (see NOTES for more options)
#device apm
Тэжээлийн Нарийн Удирдлагын дэмжлэг. Зөөврийн компьютеруудад ашигтай,
гэхдээ энэ нь GENERIC-д
анхдагчаар хаалттай байдаг.
# Add suspend/resume support for the i8254.
device pmtimer
APM болон ACPI зэрэг тэжээл удирдах үйл явцуудад зориулсан таймер
төхөөрөмжийн драйвер.
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
PCMCIA дэмжлэг. Зөөврийн компьютер ашиглаж байгаа
бол энэ танд хэрэгтэй.
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
Эдгээр нь &ms-dos;/&windows; ертөнцөд
COM портууд хэмээгддэг сериал портууд юм .
Хэрэв та COM4 дээр дотуур модемтой бөгөөд
COM2 дээр сериал порттой бол &os; -ээс хандахын
тулд та модемийн IRQ-г 2 (ойлгоход амаргүй техникийн шалтгаанаар, IRQ2 = IRQ 9)
болгож өөрчлөх хэрэгтэй. Хэрэв та олон порттой сериал карттай бол өөрийн
/boot/device.hints файлд нэмэх зөв утгуудын
талаар дэлгэрэнгүй мэдээллийг &man.sio.4; гарын авлагаас шалгаарай.
Зарим видео картууд (S3 бичил схем дээр үндэслэснүүдийг дурдаж болно)
0x*2e8 хэлбэртэй IO хаягуудыг ашигладаг бөгөөд
олон хямд сериал картууд 16-бит хаягийн зайг бүрэн декод хийж чаддаггүй учир
энэ нь тэдгээр карттай зөрчилдөж COM4 портыг
бараг л ашиглах боломжгүй болгодог.
Сериал порт болгон бусдаас ялгаатай IRQ -тай байх (хуваалцсан тасалдал
ашиглахыг дэмждэг олон порттой картуудын нэгийг ашиглаж байгаагаас бусад тохиолдолд)
шаардлагатай учир COM3 болон
COM4-ийн анхдагч IRQ-үүдийг ашиглаж болохгүй.
# Parallel port
device ppc
Энэ нь ISA-шугамын параллел порт интерфэйс юм.
device ppbus # Parallel port bus (required)
Параллел портын шугамын дэмжлэгийг хангадаг.
device lpt # Printer
Параллел порт хэвлэгчүүдийн дэмжлэг.
Параллел хэвлэгчийн дэмжлэгийг нээхэд дээрх гурав гурвуулаа
шаардлагатай.
device plip # TCP/IP over parallel
Энэ нь параллел сүлжээний интерфэйсд зориулсан драйвер юм.
device ppi # Parallel port interface device
Ерөнхий-зориулалтын I/O (geek port
) + IEEE1284
I/O.
#device vpo # Requires scbus and da
zip drive
Энэ нь Iomega Zip хөтлөгчид зориулагдсан юм. scbus болон
da дэмжлэгийг шаарддаг. EPP 1.9 горимд байгаа
портуудын тусламжтай хамгийн сайн ажиллагаанд хүрдэг.
#device puc
Хэрэв та &man.puc.4; цавуу драйвераар дэмжигддэг дүлий
сериал эсвэл параллел PCI карттай бол энэ төхөөрөмжийг тайлбар болгосныг
болиулаарай.
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (Tulip
)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon
)
device vx # 3Com 3c590, 3c595 (Vortex
)
Төрөл бүрийн PCI сүлжээний картуудын драйверууд. Эдгээрээс таны системд байхгүйг
тайлбар болгон хааж эсвэл устгаарай.
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
MII шугамын дэмжлэг нь зарим PCI 10/100 Ethernet NIC-үүдэд шаардлагатай
бөгөөд тухайлбал MII-д нийцтэй дамжуулагч-хүлээн авагчууд эсвэл MII-тэй адил
ажилладаг дамжуулагч-хүлээн авагчийн хяналтын интерфэйсүүдийг дурдаж болно.
device miibus мөрийг цөмийн тохиргоонд нэмснээр
ердийн miibus API болон тусдаа драйвераар дэмжигдээгүй PHY-уудад зориулсан
ердийн драйвер зэрэг бүх PHY драйверуудын дэмжлэгийг оруулах болно.
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device lge # Level 1 LXT1001 gigabit ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nge # NatSemi DP83820 gigabit ethernet
device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire
)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC
)
device vge # VIA VT612x gigabit ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang
, Cyclone
)
MII шугамын хянагчийн кодыг ашигладаг драйверууд.
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device le
ISA Ethernet драйверууд. Аль картууд аль драйвераар дэмжигддэг талаар дэлгэрэнгүйг
/usr/src/sys/i386/conf/NOTES-ээс
харна уу.
# Wireless NIC cards
device wlan # 802.11 support
802.11-ийн ерөнхий дэмжлэг. Энэ мөр нь утасгүй сүлжээнд
шаардлагатай.
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
802.11 төхөөрөмжүүдэд зориулагдсан криптограф дэмжлэг.
Хэрэв та шифрлэлт болон 802.11i нууцлалын протоколуудыг
ашиглахаар шийдсэн бол эдгээр мөрүүд шаардлагатай.
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
Төрөл бүрийн утасгүй сүлжээний картуудын дэмжлэг.
# Pseudo devices
device loop # Network loopback
Энэ нь TCP/IP-д зориулсан өөртөө эргэн холбогдох ерөнхий төхөөрөмж юм.
Хэрэв та localhost (өөрөөр бас 127.0.0.1) уруу telnet эсвэл FTP хийвэл
энэ нь тань уруу энэ төхөөрөмжөөр эргэж ирнэ.Энэ нь
зайлшгүй шаардлагатай.
device random # Entropy device
Шифрлэлтийн хувьд аюулгүй дурын тоо үүсгэгч.
device ether # Ethernet support
Танд Ethernet карт байгаа тохиолдолд зөвхөн ether хэрэгтэй.
Энэ нь ерөнхий Ethernet протоколын кодыг агуулдаг.
device sl # Kernel SLIP
sl нь SLIP-ийн дэмжлэг юм. Энэ нь хялбар
суулгаж тохируулдаг, модемоос модем уруу холболт хийхэд илүү зохицсон, илүү
чадалтай PPP-ээр бараг бүхэлдээ солигдсон юм.
device ppp # Kernel PPP
Энэ нь дайл-ап холболтын цөм дэх PPP дэмжлэгт зориулагдсан. Мөн
tun-ийг ашиглаж илүү уян хатан чанар болон шаардлагаар
залгах зэрэг боломжууд бүхий PPP-ийн хэрэглэгчийн талбарын програм маягаар
хийгдсэн хувилбар ч бас байдаг.
device tun # Packet tunnel.
Энэ хэрэглэгчийн талбарын PPP програм хангамжид ашиглагддаг.
Дэлгэрэнгүй мэдээллийг энэ номын PPP
хэсгээс үзнэ үү.
device pty # Pseudo-ttys (telnet etc)
Энэ нь псевдо-терминал
эсвэл жинхэнэ биш (simulated) нэвтрэх порт юм.
Энэ нь ирж байгаа telnet болон
rlogin сессүүд, xterm,
болон Emacs зэрэг бусад програмуудад
ашиглагддаг.
device md # Memory disks
Санах ойн диск псевдо-төхөөрөмжүүд.
device gif # IPv6 and IPv4 tunneling
Энэ нь IPv4 дээгүүрх IPv6, IPv6 дээгүүрх IPv4,
IPv4 дээгүүрх IPv4, болон IPv6 дээгүүрх IPv6 хоолойнуудыг хийдэг.
gif төхөөрөмж нь авто-клон
хийх чадвартай бөгөөд төхөөрөмжийн цэгүүдийг хэрэгцээгээрээ үүсгэдэг.
device faith # IPv6-to-IPv4 relaying (translation)
Энэ псевдо-төхөөрөмж нь түүн уруу илгээсэн пакетуудыг барьж аваад
IPv4/IPv6 хувиргагч дэмон уруу замыг өөрчлөн явуулдаг.
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
Энэ нь Беркли Пакет Шүүгч юм. Энэ псевдо-төхөөрөмж нь
цацаж байгаа сүлжээн (өөрөөр хэлбэл Ethernet) дэх бүх пакетуудыг барьж авдаг,
бүгдийг сонсох горимд сүлжээний интерфэйсүүдийг шилжүүлэх боломж олгодог.
Эдгээр пакетуудыг дискэнд хадгалах болон эсвэл &man.tcpdump.1; програмаар
шалгаж болно.
Анхдагч чиглүүлэгчийн (гарц) болон бусад IP хаягийг
&man.dhclient.8; олж авахад &man.bpf.4; төхөөрөмжийг бас ашигладаг.
Хэрэв та DHCP ашиглаж байгаа бол үүнийг тайлбар болголгүй орхиорой.
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device ural # Ralink Technology RT2500USB wireless NICs
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
Төрөл бүрийн USB төхөөрөмжүүдийн дэмжлэг.
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
Төрөл бүрийн Firewire төхөөрөмжүүдийн дэмжлэг.
&os;-ийн дэмждэг нэмэлт төхөөрөмжүүдийн талаар дэлгэрэнгүй мэдээллийг
/usr/src/sys/i386/conf/NOTES
файлаас үзнэ үү.
Том санах ойн тохируулгууд (PAE)
Физик хаягийн өргөтгөлүүд
(PAE)
том санах ой
Том санах ой бүхий машинууд Хэрэглэгч+Цөмийн Виртуал хаягийн зайн
(KVA) 4 гигабайт хязгаараас их уруу хандах
шаардлагатай байдаг. Энэ хязгаараас болоод Интел &pentium; Pro болон
сүүлийн үеийн CPU-үүдэд 36 битийн физик хаягийн зайд хандах дэмжлэгийг нэмсэн.
&intel; &pentium; Pro болон сүүлийн үеийн CPU-үүдийн
Физик Хаягийн Өргөтгөл (PAE) боломж нь 64 гигабайт хүртэлх
санах ойн тохиргоог зөвшөөрдөг. &os; нь энэхүү боломжийг &os;-ийн
одоо байгаа бүх гаргасан хувилбаруудын цөмийн тохиргооны
тохируулгаар дэмждэг. Интелийн санах ойн
архитектурын хязгаараас болж 4 гигабайтаас дээш болон доош санах
ойн ялгаа байхгүй. 4 гигабайтаас дээшхи санах ой нь ашиглаж болох
санах ойн санд нэмэгддэг.
PAE дэмжлэгийг цөмд нээхдээ
цөмийн тохиргооны файлд дараах мөрийг нэмнэ:
options PAE
&os; дэх PAE дэмжлэг зөвхөн
&intel; IA-32 процессоруудад байдаг. Мөн &os; дэх
PAE дэмжлэг нь өргөн шалгагдаагүй бөгөөд
&os;-ийн бусад тогтвортой боломжуудтай харьцуулахад бета чанарынхад
тооцогддог.
&os; дэх PAE дэмжлэг нь цөөн хэдэн хязгааруудтай:
VM зайн 4 гигабайтаас илүүд процесс хандаж чадахгүй.
-
- Модул болон цөмийн бүтээх ажлын хүрээний ялгаатай байдлаас болж
- KLD модулиудыг PAE
- идэвхжүүлсэн цөмд ачаалж болохгүй.
-
-
&man.bus.dma.9; интерфэйс ашигладаггүй төхөөрөмжийн драйверууд
PAE-г идэвхжүүлсэн цөм дээр өгөгдлийн эвдрэлийг
үүсгэх бөгөөд ашиглахыг зөвлөдөггүй юм. Ийм учраас PAE-г
идэвхжүүлсэн цөм дээр ажилладаггүй бүх драйверуудыг оруулаагүй
PAE цөмийн тохиргооны файл &os;-д байдаг.
Зарим нэг тохируулгууд санах ойн эх үүсвэрийн хэрэглээг физик санах ойн
хэмжээгээр тодорхойлдог. Эдгээр тохируулгууд нь PAE
системийн их санах ойгоос болж хэрэгцээгүй илүү санах ойг гаргадаг.
Тийм нэг жишээнүүдийн нэг нь sysctl-ийн
тохируулга бөгөөд энэ нь цөм дэх хамгийн их байж болох vnode-уудын тоог хянадаг.
Энэ болон бусад тохируулгуудын утгыг боломжийн утгаар тааруулахыг зөвлөж байна.
Магадгүй цөмийн виртуал хаягийн (KVA) зайг ихэсгэх
эсвэл KVA-ийн шавхалтад хүргэхгүйн тулд байнга их ашиглагддаг
(дээр дурдсаныг харна уу) цөмийн эх үүсвэрийн хэмжээг багасгах шаардлагатай
байж болох юм. цөмийн тохируулга нь
KVA зайг ихэсгэхэд ашиглагдаж болно.
Ажиллагаа болон тогтвортой байдлыг хангах үүднээс &man.tuning.7; гарын
авлагатай танилцахыг зөвлөж байна. &man.pae.4; гарын авлага нь
&os;-ийн PAE дэмжлэгийн тухай хамгийн сүүлийн
үеийн мэдээллийг агуулдаг.
Хэрэв ямар нэг юм буруутвал
Өөрчлөн тохируулсан цөмийг бүтээж байх үед 4 төрлийн асуудал гарч
болзошгүй байдаг. Тэдгээр нь:
config амжилтгүй болох:
Хэрэв таныг цөмийн тайлбарыг &man.config.8;-т өгөхөд тушаал
амжилтгүй болбол та хаа нэгтээ энгийн алдаа хийсэн болов уу.
Аз болоход &man.config.8; асуудалтай байгаа мөрийн дугаарыг
хэвлэх учир та алдаатай мөрийг хурдан олох болно. Жишээ нь,
хэрэв та доор дурдсаныг харвал:
config: line 17: syntax error
Түлхүүр үг зөв бичигдсэн эсэхийг GENERIC
цөм болон бусад баримтаас харьцуулан шалгаж үзээрэй.
make амжилтгүй болох:
Хэрэв make тушаал амжилтгүй болбол
энэ ихэвчлэн цөмийн тайлбар дахь &man.config.8;-ийн олж
чадахааргүй тийм ч ноцтой бус алдааг дохиолдог. Дахин хэлэхэд,
өөрийн тохиргоог нягтлаарай, тэгээд хэрэв та асуудлыг шийдэж чадахгүй
бол &a.questions; уруу өөрийн цөмийн тохиргоотой цахим захидал
илгээгээрэй, ингэхэд хурдан шинжилгээ хийгдэх болно.
Цөм ачаалахгүй байх:
Хэрэв таны шинэ цөм ачаалахгүй бол эсвэл таны төхөөрөмжүүдийг танихгүй
байгаа бол бүү цочирд! Аз болоход &os; нийцгүй цөмүүдээс сэргэхэд
зориулсан маш сайн механизмтай байдаг. Ердөө л &os;-ийн ачаалагчаас
ачаалах цөмөө сонгоно. Системийн ачаалах меню гарч ирэх үед та үүнд
хандах боломжтой болно. Escape to a loader prompt
тохируулга 6-ын тоог сонго. Тушаал хүлээх мөрөн дээр unload kernel
гэж бичээд boot /boot/kernel.old/kernel
эсвэл зөв ачаалах өөр бусад цөмийн файлын нэрийг бичээрэй. Цөмийг дахин
тохируулах явцдаа ажилладаг цөмийг гарын дор хадгалж байх нь үргэлж
ухаалаг санаа байдаг.
Сайн цөмийг ачаалсныхаа дараа та өөрийн тохиргооны файлаа дахин шалгаж
цөмөө дахин бүтээхээр оролдоорой. Нэг тус дэм болох эх үүсвэр бол
бусад зүйлсээс гадна амжилттай ачаалалт бүр дэх цөмийн бүх мэдээллүүдийн
бичлэгийг хийдэг /var/log/messages файл юм.
Мөн &man.dmesg.8; тушаал нь сүүлийн ачаалалт дахь цөмийн мэдээллүүдийг
хэвлэдэг.
Хэрэв та цөмийг бүтээхэд асуудалтай байгаа бол
GENERIC болон өөр бусад ажилладаг
цөмийг дараагийн бүтээх явцад устгагдахааргүй өөр нэртэйгээр
гарын дор хадгалж байгаарай. Та kernel.old
-д найдаж болохгүй, учир нь шинэ цөмийг суулгах явцад
kernel.old нь хамгийн сүүлд
суулгагдсан бөгөөд магадгүй ажиллагаагүй тийм цөмөөр дарагдан
бичигддэг. Ажилладаг цөмийг зөв /boot/kernel
байр уруу аль болох хурдан шилжүүлээрэй, эсвэл &man.ps.1; зэрэг
тушаалууд зөв ажиллахгүй байж магадгүй юм. Ингэхийн тулд
сайн цөм байгаа сангийн нэрийг өөрчлөөрэй:
&prompt.root; mv /boot/kernel /boot/kernel.bad
&prompt.root; mv /boot/kernel.good /boot/kernel
Цөм ажиллах боловч &man.ps.1; ажиллахгүй болох:
Хэрэв та системийн хэрэгслүүд бүтээсэн хувилбараас өөр цөмийн хувилбарыг
суулгасан бол, жишээ нь -RELEASE дээр -CURRENT цөм бүтээсэн бол
системийн төлвийн тушаалууд болох &man.ps.1; болон &man.vmstat.8;
зэрэг нь ажиллахаа больно. Та өөрийн цөмтэйгөө адил хувилбарын эх модтой
бүтээгдсэн ертөнцийг дахин хөрвүүлж суулгах
хэрэгтэй. Энэ нь нэг шалтгаан бөгөөд ерөнхийдөө үйлдлийн системийн бусад
зүйлсээс өөр хувилбарын цөмийг ашиглах нь тийм ч сайн санаа биш юм.
diff --git a/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml b/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml
index d28acacd8b..ebfd0e0028 100644
--- a/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml
+++ b/mn_MN.UTF-8/books/handbook/vinum/chapter.sgml
@@ -1,1311 +1,1314 @@
Грег
Лихэй
Анхлан бичсэн
Цагаанхүүгийн
Ганболд
Орчуулсан
Vinum Эзлэхүүн Менежер
Ерөнхий агуулга
Та ямар ч дискнүүдтэй байсан гэсэн үргэлж ямар нэгэн болзошгүй асуудлууд байсаар байдаг:
Тэдгээр дискнүүд нь хэтэрхий жижиг байж болох юм.
Тэдгээр дискнүүд нь хэтэрхий удаан байж болох юм.
Тэдгээр дискнүүд нь хэтэрхий найдваргүй байж болох юм.
Эдгээр асуудлуудыг шийдэх төрөл бүрийн шийдлүүд санал болгогдсон бөгөөд
хийж гүйцэтгэгдсэн болно. Иймэрхүү асуудлууд гаргахгүйгээр зарим хэрэглэгчдийн өөрсдийгээ хамгаалах нэг
арга нь олон болон нөөц дискнүүдийг заримдаа ашиглах явдал юм.
Үндсэн FreeBSD систем нь тоног төхөөрөмжөөр дэмжигдсэн RAID системүүдэд зориулсан
төрөл бүрийн картууд болон хянагчуудыг дэмжихээс гадна виртуал диск хөтчүүдийг хийдэг блок
төхөөрөмжийн драйвер Vinum Эзлэхүүн Менежерийг агуулдаг.
Vinum нь эдгээр гурван асуудлыг шийддэг
Эзлэхүүн Менежер гэж нэрлэгддэг виртуал
дискний драйвер юм. Vinum нь уян хатан чанар, ажиллагаа болон найдвартай байдлыг уламжлалт
диск хадгалалтаас илүүтэй хангадаг бөгөөд RAID-0, RAID-1 болон RAID-5 загваруудыг
дангаар нь болон хослолынх нь хувьд шийддэг.
Энэ бүлэг нь уламжлалт диск хадгалалтын болзошгүй асуудлуудыг тоймлон өгүүлэх бөгөөд
Vinum Эзлэхүүн Менежерийн талаар танилцуулах болно.
FreeBSD 5-аас эхлэн Vinum-ийг GEOM архитектурт ()
тааруулан оруулахын тулд анхдагч санаанууд, нэр томъёо болон
диск дээрх мета өгөгдлийг нь хадгалан дахин бичсэн юм. Энэхүү дахин бичилт нь
gvinum (GEOM vinum-д зориулсан)
гэгддэг. Дараах баримт нь шийдлийн хувилбаруудаас үл хамааран
Vinum-ийг хийсвэр нэр маягаар ихэвчлэн хэрэглэх
болно. Ямар ч тушаалыг одоо ажиллуулахдаа gvinum
тушаалыг ашиглах ёстой бөгөөд цөмийн модулийн нэр нь vinum.ko
geom_vinum.ko болж өөрчлөгдсөнөөс гадна
төхөөрөмжийн бүх цэгүүд /dev/vinum дотор биш
/dev/gvinum дотор байрласан байгаа. FreeBSD 6-аас
эхлэн хуучин Vinum шийдэл нь үндсэн кодонд байхаа аль хэдийн больсон
байна.
Дискнүүд хэтэрхий жижиг
Vinum
RAID
програм хангамж
Дискнүүд нь хэмжээний хувьд улам томорсоор байгаагийн адил бас
өгөгдлийн хадгалалтын шаардлагууд ч бас тийм болсоор байна. Ихэнх тохиолдолд
танд өөрт чинь байгаа дискнүүдээс илүү том файлын систем хэрэгтэй болж магадгүй юм.
Энэ асуудал нь арван жилийн өмнөх шиг тийм хурц асуудал биш болсон боловч
одоо болтол байгааг нь хүлээн зөвшөөрөхөөс өөр аргагүй юм. Зарим системүүд нь үүнийг
өөрийнхөө өгөгдлийг хэд хэдэн дискнүүд дээр хадгалах хийсвэр төхөөрөмж үүсгэн шийддэг
байна.
Хандалтын тагларалтууд
Орчин үеийн системүүдэд маш өндөр зэрэгцээ хандлагаар өгөгдөлд хандах
хэрэгцээ байнга гардаг. Жишээ нь том FTP эсвэл HTTP серверүүд нь
олон мянган зэрэгцээ сессүүдтэй ажиллаж чаддаг ба ихэнх дискнүүдийн тогтвортой дамжуулах
түвшингээс хавьгүй илүү гарсан гадагшаа ертөнц уруу холбогдсон олон 100 Mbit/s-ийн
холболтуудтай байдаг.
Одоогийн диск хөтчүүд өгөгдлийг цуваагаар 70 MB/s хүртэл дамжуулж
чаддаг боловч энэ утга нь бие биенээсээ хамааралгүй олон чөлөөтэй процессууд
хөтчид ханддаг тийм орчинд тийм ч чухал биш юм. Тийм орчинд процессууд нь
тэдгээр утгуудын зөвхөн бутархайгаар хэмжигдэх тооны хурдад хүрч магадгүй юм.
Ийм тохиолдлуудад асуудлыг дискний дэд системийн үүднээс харвал илүү сонирхолтой
байх болно: энд чухал параметр нь дэд системд үзүүлж байгаа дамжуулалтын ачаалал бөгөөд
өөрөөр хэлбэл дамжуулалтад оролцож байгаа хөтчүүдийг эзэлж байгаа дамжуулалтын
тэр хугацаа юм.
Аль ч дискний дамжуулалтын үед хөтөч нь толгойнуудаа эхлээд байрлуулж
унших толгойн доор эхний сектор шалгагдан өнгөрөхийг хүлээж дараа нь
дамжуулалтыг гүйцэтгэх ёстой. Эдгээр үйлдлүүд нь atomic буюу хуваагдашгүй,
салгагдашгүй үйлдлүүд гэж ойлгогддог: тэдгээрийг тасалдуулах нь ямар ч утгагүй
юм.
Ердийн 10 kB-ийн дамжуулалтыг
авч үзье: өндөр ажиллагаатай одоо үеийн дискнүүд нь толгойнуудаа дунджаар
3.5 ms-д байрлуулж чаддаг. Хамгийн хурдан хөтчүүд 15,000 rpm
хурдаар эргэдэг, тийм болохоор дундаж эргэх хожимдол нь (хувьсгалын хагас)
2 ms болох юм. 70 MB/s үед дамжуулалт нь өөрөө
150 μs болох бөгөөд байрлуулах хугацаатай харьцуулахад бараг
юу ч биш юм. Ийм тохиолдолд үр дүнтэй дамжуулах түвшин нь 1 MB/s-с
бага зэрэг илүү түвшин уруу буурах бөгөөд мэдээж энэ нь дамжуулах хэмжээнээс
ихээхэн хамааралтай байна.
Энэ асуудлын уламжлалт, мэдээжийн шийдэл нь илүү ээрүүлүүд
юм: нэг том диск ашиглахын оронд энэ нь нийт хадгалалтын хэмжээ нь адилхан
хэд хэдэн арай жижиг дискнүүдийг ашиглах явдал юм. Диск бүр нь тус тусдаа
байрлуулах болон дамжуулах үйлдлийг хийж чадах бөгөөд ингэснээр үр дүнтэй
дамжуулах чанар нь ашигласан дискний тоотой ойролцоо хүчин зүйлээр нэмэгдэх
болно.
Дамжуулалтын чанарын яг тодорхой сайжруулалт нь мэдээж оролцсон дискнүүдийн
тооноос бага байна: хөтөч бүр нь зэрэгцээ дамжуулж чадах боловч хүсэлтүүд нь
хөтчүүдийн дагуу тэнцүү түгээгдэхийг батлах аргагүй юм. Нэг хөтөч дээрх
ачаалал нь нөгөө дээрхээс илүү өндөр байх нь зайлшгүй юм.
диск нийлүүлэлт
Vinum
нийлүүлэлт
Дискнүүд дээрх ачааллын тэнцүү байдал нь хөтчүүдийн дагуу өгөгдлүүд
хуваалцдаг арга замаас маш ихээр хамаардаг. Дараах хэлэлцүүлэг дээр
дискний хадгалалтыг номны хуудас шигээр дугаараар нь хандаж болох
маш олон тооны өгөгдлийн секторууд гэж ойлгох нь тохиромжтой юм.
Хамгийн мэдээжийн арга бол том номыг аваад жижиг хэсгүүд болгон урахын
оронд виртуал дискийг физик дискнүүдийн хэмжээтэйгээр дараалсан
секторуудын бүлгүүд болгон хувааж энэ маягаар тэдгээрийг хадгалах
явдал юм. Энэ аргыг concatenation буюу нийлүүлэлт
гэж нэрлэдэг бөгөөд дискнүүд нь ямар нэгэн тусгайлсан хэмжээний харилцаанууд
шаарддаггүйгээрээ давуу талтай юм. Виртуал диск дэх хандалт өөрийн хаягийн
талбараар тэнцүү тархсан үед энэ нь сайн ажилладаг. Хандалт нь жижиг талбарт
төвлөрсөн үед сайжруулалт тийм ч сайн мэдэгддэггүй.
нь хадгалалтын нэгжүүд нийлүүлэгдсэн
зохион байгуулалтад хуваарилагдаж байгаа дарааллыг үзүүлж байна.
диск судал үүсгэх
Vinum
судал үүсгэх
RAID
Өөр нэг тааруулалт нь хаягийн талбарыг арай жижиг, тэнцүү хэмжээтэй
бүрэлдэхүүн хэсэгт хувааж тэдгээрийг цуваагаар өөр төхөөрөмжүүд дээр
хадгалах явдал юм. Жишээ нь эхний 256 сектор эхний диск дээр,
дараагийн 256 сектор нь дараагийн диск дээр гэх мэтчилэн байх юм.
Сүүлийн дискэнд хүрсний дараа процесс дискнүүдийг дүүртэл давтагдана.
Энэ тааруулалтыг striping буюу судал үүсгэх
эсвэл RAID-0 гэж нэрлэдэг.
RAID нь Redundant
Array of Inexpensive Disks буюу Хямд дискнүүдийн Нөөц Массив
бөгөөд гэмтэл даах чадварын төрөл бүрийн хэлбэрүүдийг санал болгодог бөгөөд
гэхдээ сүүлийн ойлголт нь зарим талаараа төөрөгдүүлмээр юм: энэ нь ямар ч нөөцийн
боломжийг хангадаггүй. .
Судал үүсгэх нь зарим талаараа өгөгдлийг олохын тулд илүү чармайлт шаарддаг бөгөөд
олон дискнүүдийн дагуу тархсан дамжуулалтад нэмэлт I/O ачаалал үүсгэж болох боловч
энэ нь бас тогтмол ачааллыг илүүтэйгээр дискнүүдийн дагуу хангаж өгдөг.
нь хадгалалтын нэгжүүд судалчлагдсан
зохион байгуулалтад хуваарилагдаж байгаа дарааллыг үзүүлж байна.
Өгөгдлийн бүрэн бүтэн байдал
Одоогийн дискнүүд дэх сүүлийн асуудал нь найдваргүй байдал юм.
Диск хөтчүүдийн найдвартай байдал сүүлийн хэдэн жилийн дотор асар ихээр
нэмэгдсэн боловч тэдгээр нь сервер унах гол шалтгааны нэг бүрэлдэхүүн хэсэг
хэвээр байсаар байна. Ингэсэн тохиолдолд гарах үр дүн нь сүйрлийн
байж болох юм: ажиллагаагүй болсон дискний хөтчийг сольж шинэ диск уруугаа
өгөгдлийг сэргээх нь хэдэн өдөр болж болох юм.
диск толин тусгал үүсгэх
Vinum
толин тусгал үүсгэх
RAID-1
Уламжлалт замаар энэ асуудлыг толин тусгал үүсгэх
аргаар өгөгдлийн хоёр хуулбарыг өөр физик тоног төхөөрөмж дээр хадгалж шийддэг.
RAID түвшингүүд бий болсноор энэ техник нь бас
RAID түвшин 1 буюу RAID-1
гэж нэрлэгддэг. Эзлэхүүн уруу хийгдэх бичилт хоёр байрлал уруу хийгддэг; уншилт нь
алинаас нь ч хийгдсэн болдог, хэрэв нэг хөтөч нь ажиллахгүй болбол өгөгдөл нөгөө
хөтөч дээр бас байж байх юм.
Толин тусгал үүсгэх нь хоёр асуудалтай байдаг:
Үнэ. Энэ нь нөөцгүй шийдлийн нэгэн адил хоёр дахин их дискний
хадгалалт шаарддаг.
Ажиллагааны нөлөөлөл. Бичилтүүд нь хоёр хөтчүүдэд хоёуланд нь
хийгддэг, тиймээс тэдгээр нь толин тусгал хийгдээгүй эзлэхүүний
зурвасын өргөнөөс хоёр дахин ихийг эзэлдэг. Уншилтууд нь харин
ажиллагааны хувьд асуудалгүй байдаг: тэд илүү хурдан юм шиг
харагддаг.
RAID-5
Өөр нэг шийдэл нь RAID түвшингүүд 2, 3, 4 болон
5-д хийгдсэн parity юм.
Эдгээрээс RAID-5 нь хамгийн сонирхолтой байдаг.
Энэ нь Vinum-д хийгдсэн бөгөөд судал бүрийн нэг блокийг өөр блокуудын parity-д
зориулдаг судалчлагдсан зохион байгуулалтын нэг хувилбар юм.
RAID-5 plex нь Vinum-д хийгдсэн бөгөөд
судалчлагдсан plex-ийн нэгэн адил боловч энэ нь судал бүр дэх parity блокуудыг
оруулан RAID-5-г шийдвэрлэдэг.
RAID-5-ийн шаарддагаар энэ parity блокийн
байрлал нь нэг судлаас дараагийнх уруу өөрчлөгддөг. Өгөгдлийн блокууд дахь
тоонууд нь блокийн харьцангуй дугааруудыг илэрхийлдэг.
Толин тусгал үүсгэхтэй харьцуулахад RAID-5 нь
хамаагүй бага хадгалалтын зай шаарддагаараа давуу талтай юм. Унших хандалт нь
судалчлагдсан зохион байгуулалтуудын адил байдаг боловч бичих хандалт нь
хамаагүй удаан ойролцоогоор унших хурдны 25% байдаг. Хэрэв нэг хөтөч ажиллагаагүй
болбол массив нь доройтсон горимд үргэлжлэн ажиллах болно: үлдсэн хандаж болох
хөтчүүдийн аль нэгнээс уншилт хэвийн үргэлжлэх боловч ажиллагаагүй болсон
хөтчөөс хийгдэх уншилт бүх үлдсэн хөтчүүдийн харгалзах блокоос дахин тооцоологдох
болно.
Vinum обьектууд
Эдгээр асуудлуудыг шийдэхийн тулд Vinum нь обьектийн дөрвөн түвшний
шатлалыг шийддэг:
Хамгийн харагддаг обьект нь volume буюу эзлэхүүн
гэгддэг виртуал диск юм. Эзлэхүүнүүд нь гол нь &unix; диск хөтчүүдийн
нэгэн адил өмчүүдтэй боловч зарим нэг жижиг ялгаанууд байдаг.
Тэдэнд хэмжээний хязгаарлалтууд байхгүй.
Эзлэхүүнүүд нь тус бүр нь эзлэхүүний нийт хаягийн талбарыг илэрхийлдэг
plex-үүдээс бүрддэг. Тиймээс шатлал дахь
энэ түвшин нь нөөцийг хангадаг. Plex-үүдийг толин тусгал хийгдсэн
массив дахь тус бүртээ ижил өгөгдлийг агуулсан дискнүүд гэж бодох
хэрэгтэй.
Vinum нь &unix; диск хадгалалтын тогтолцоонд оршдог болохоор
&unix; хуваалтуудыг олон диск бүхий plex-үүдийн хувьд бүтээх блок
болгон ашиглах боломжтой, гэхдээ жинхэнэдээ энэ нь хэтэрхий уян хатан
биш болж болох юм: &unix; дискнүүд нь зөвхөн хязгаарлагдмал тооны
хуваалтуудтай байдаг. Ингэхийн оронд харин Vinum нь ганц &unix;
хуваалтыг (хөтөч) subdisks
буюу дэд дискнүүд гэгддэг үргэлжлэн нийлсэн талбаруудад
хуваадаг бөгөөд эдгээр дэд дискнүүдийг plex-үүдэд зориулж бүтээх
блок болгон ашигладаг.
Дэд дискнүүд нь Vinum хөтчүүд дээр,
одоогоор &unix; хуваалтууд дээр оршдог. Vinum хөтчүүд нь
дурын тооны дэд дискнүүдийг агуулж болно. Хөтчийн эхлэл дэх
тохиргоо болон төлвийн мэдээллийг хадгалах зориулалттай жижиг
талбараас бусад хөтчийн бүх хэсэг өгөгдлийн хадгалалтанд
зориулагдана.
Дараах хэсгүүд нь эдгээр обектуудын Vinum-ийн шаарддаг ажиллагааг хангах
аргыг тайлбарлах болно.
Эзлэхүүний хэмжээний саналууд
Plex-үүд нь Vinum тохиргоонд бүх хөтчүүд дээгүүр тархсан олон дэд
дискнүүдийг агуулж болно. Үүний үр дүнд хөтөч бүрийн хэмжээ нь plex-ийн
хэмжээг хязгаарлахгүй, тиймээс эзлэхүүний хэмжээг бас хязгаарлахгүй
юм.
Өгөгдлийн нөөц хадгалалт
Vinum нь олон plex-үүдийг эзлэхүүнд хавсран толин тусгал үүсгэлтийг
хийж гүйцэтгэдэг. Plex бүр эзлэхүүн дэх өгөгдлийн дүрслэл юм. Эзлэхүүн нь
нэгээс найман plex-ийг агуулж болно.
Plex нь эзлэхүүний бүх өгөгдлийг илэрхийлдэг боловч илэрхийллүүдийн
хэсгүүд нь хийгдсэн аргаасаа (plex-ийн хэсгүүдийн хувьд дэд дискнүүдийг
тодорхойлоогүйгээс) болоод эсвэл тохиолдлоор (хөтөч ажиллагаагүй болсноос
болоод) бодитоор байхгүй байх боломжтой юм. Эзлэхүүний хаягийн бүрэн талбарын
хүрээний хувьд хамгийн багаар бодоход нэг plex өгөгдлийг хангаж чаддаг байхад
эзлэхүүн нь бүрэн ажиллагаатай байх юм.
Ажиллагааны асуудлууд
Vinum нь нийлүүлэлт болон судалчлалыг plex түвшинд хийж
гүйцэтгэдэг:
Нийлүүлэгдсэн plex нь харин
дэд диск бүрийн хаягийн талбарыг ашигладаг.
Судалчлагдсан plex нь дэд диск
бүрийн дагуу өгөгдлийг судалчилдаг. Дэд диск бүр бүгд адил
хэмжээтэй байх ёстой бөгөөд нийлүүлэгдсэн plex-ээс ялгахын
тулд хамгийн багаар бодоход хоёр дэд диск байх шаардлагатай.
Аль Plex зохион байгуулалт вэ?
FreeBSD &rel.current;-тэй цуг ирдэг Vinum-ийн хувилбар нь хоёр төрлийн
plex-ийг хийж гүйцэтгэдэг:
Нийлүүлэгдсэн plex-үүд нь хамгийн уян хатан байдаг: тэдгээр нь ямар ч
тооны дэд дискнүүдийг агуулж болох бөгөөд дэд дискнүүд нь өөр өөр урттай
байж болно. Plex-ийг нэмэлт дэд дискнүүд нэмж өргөтгөж болох юм.
Тэдгээр нь судалчлагдсан plex-үүдээс CPU-ийн
хугацааны хувьд багыг шаарддаг, гэхдээ CPU
дээрх нэмэлт ачааллын ялгаа нь хэмжигдэхээр тийм их биш юм. Нөгөө
талаас авч үзэх юм бол тэдгээр нь ганц диск их идэвхитэй бөгөөд бусад нь
сул зогсож байдаг халуун цэгүүдэд хамгийн мэдрэмтгий байдаг.
Судалчлагдсан (RAID-0) plex-үүдийн
хамгийн агуу давуу тал нь тэдгээр plex-үүд нь халуун цэгүүдийг багасгадаг
явдал юм: хамгийн тохиромжтой (256 kB орчим) хэмжээтэйгээр
судлыг сонгосноор та бүрэлдэхүүний хөтчүүд дээрх ачааллыг тэнцүүлж
болох юм. Энэ хандлагын сул талууд нь (бутархайгаар хэмжигдэх)
илүү төвөгтэй код болон дэд дискнүүд дээрх хязгаарлалтууд юм: тэдгээр нь
бүгд ижил хэмжээтэй байх ёстой бөгөөд шинэ дэд дискнүүд нэмж plex-ийг өргөтгөх
нь асар хэцүү учир Vinum нь үүнийг одоогоор хийж гүйцэтгэдэггүй юм.
Vinum нь нэмэлт, амархан хязгаарлалтыг тохоож өгдөг: судалчлагдсан
plex нь хамгийн багаар бодоход хоёр дэд дисктэй байх ёстой, тэгэхгүй
бол үүнийг нийлүүлэгдсэн plex-ээс ялгах боломжгүй юм.
нь plex зохион байгуулалт бүрийн
давуу болон сул талуудыг дүгнэн харуулж байна.
Vinum Plex зохион байгуулалтууд
Plex төрөл
Хамгийн бага дэд дискнүүд
Дэд дискнүүд нэмж болох эсэх
Адил хэмжээтэй байх ёстой
Хэрэглээ
нийлүүлэгдсэн
1
тийм
үгүй
Байрлуулах хамгийн их уян хатан чанар ба боломжийн ажиллагаатай
их хэмжээний өгөгдлийн хадгалалт
судалчлагдсан
2
үгүй
тийм
Маш өндөр зэрэгцээ хандалттай цуг өндөр хурдтай ажиллагаа
Зарим жишээнүүд
Vinum нь хувь системүүдэд мэдэгддэг обьектуудыг тайлбарладаг
тохиргооны мэдээллийн баазын ажиллагааг
хангаж байдаг. Эхлээд хэрэглэгч нэг буюу эсвэл хэд хэдэн тохиргооны
файлуудаас тохиргооны мэдээллийн баазыг &man.gvinum.8; хэрэгсэл
програмын тусламжтайгаар үүсгэдэг. Vinum нь өөрийн тохиргооны
мэдээллийн баазын хуулбарыг диск зүсмэл (Vinum үүнийг
төхөөрөмж гэдэг) бүр дээр өөрийн
хяналтын доор хадгалдаг. Дахин эхлүүлэлт нь зөвөөр Vinum обьект
бүрийн төлвийг сэргээдэг байлгахын тулд төлөв өөрчлөгдөх болгонд
энэхүү мэдээллийн бааз нь шинэчлэгддэг.
Тохиргооны файл
Тохиргооны файл нь Vinum обьектуудыг тайлбарладаг. Энгийн эзлэхүүний
тодорхойлолт ийм байж болох юм:
drive a device /dev/da3h
volume myvol
plex org concat
sd length 512m drive a
Энэ файл нь дөрвөн Vinum обьектийг тайлбарладаг:
drive мөр нь дискний хуваалтыг
(хөтөч) тайлбарлах бөгөөд үүний
байрлал нь түүн доор орших тоног төхөөрөмжтэй харьцангуй
байна. Үүнд a гэж симбол нэр
өгсөн байгаа. Ингэж симбол нэрсийг төхөөрөмжийн нэрсээс
тусад нь салгах нь дискнүүдийг нэг байрлалаас нөгөө уруу
эргэлзээгүйгээр шилжүүлэх боломжийг олгодог.
volume мөр нь эзлэхүүнийг тайлбарлана.
Цорын ганц шаардлагатай шинж чанар нь нэр бөгөөд энэ тохиолдолд
myvol байна.
plex мөр нь plex-ийг тодорхойлдог.
Цорын ганц шаардлагатай параметр нь зохион байгуулалт бөгөөд
энэ тохиолдолд concat болно.
Ямар ч нэр хэрэггүй: систем автоматаар эзлэхүүний нэрэн
дээр .px
дагавар залгаж үүсгэдэг бөгөөд x нь
эзлэхүүн дэх plex-ийн дугаар юм. Тиймээс энэ plex нь
myvol.p0 гэж нэрлэгдэнэ.
sd мөр нь дэд дискийг тайлбарлана.
Хамгийн бага тодорхойлолтууд нь үүнийг хадгалах хөтчийн нэр болон
дэд дискний урт юм. Plex-үүдтэй адил нэр хэрэггүй:
систем автоматаар plex-ийн нэрэн
дээр .sx
дагавар залгаж үүсгэдэг бөгөөд x нь
plex дэх дэд дискний дугаар юм. Тиймээс Vinum нь энэ дэд
дискэнд myvol.p0.s0 гэж нэр
өгдөг.
Энэ файлыг процесс хийсний дараа &man.gvinum.8; дараах үр дүнг
гаргана:
&prompt.root; gvinum -> create config1
Configuration summary
Drives: 1 (4 configured)
Volumes: 1 (4 configured)
Plexes: 1 (8 configured)
Subdisks: 1 (16 configured)
D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
Энэ гаралт нь &man.gvinum.8;-ийн хэлбэршүүлэлтийн товч жагсаалтыг харуулж байна.
Энэ нь графикаар зурагт дүрслэгдсэн байна.
Энэ зураг болон дараагийн зураг нь дэд дискнүүд агуулсан plex-үүдийг
агуулсан эзлэхүүнийг харуулж байна. Энэ хялбар жишээн дээр эзлэхүүн нь
нэг plex-ийг агуулах бөгөөд plex нь нэг дэд дискийг агуулж байна.
Энэхүү эзлэхүүн нь хэвшмэл дискний хуваалттай харьцуулахад ямар нэг
тухайлсан давуу чанаргүй юм. Энэ нь ганц plex-ийг агуулах учраас нөөц биш
юм. Plex нь ганц дэд дискнээс тогтох учраас хэвшмэл дискний хуваалттай
харьцуулахад хадгалалт хуваарилалтын хувьд ямар ч ялгаагүй юм.
Дараах хэсгүүд нь төрөл бүрийн илүү сонирхолтой тохиргооны аргуудыг
харуулах болно.
Нэмэгдсэн уян хатан чанар: Толин тусгал үүсгэх
Эзлэхүүний уян хатан чанарыг толин тусгал үүсгэж ихэсгэж болно.
Толин тусгал хийсэн эзлэхүүнийг байрлуулахдаа хөтчийн сүйрэл plex бүрийг унагахгүй
байлгахын тулд plex бүр дэх дэд дискнүүд нь өөр өөр хөтчүүд дээр байгаа эсэхийг
шалгах нь чухал юм. Дараах тохиргоо нь эзлэхүүнийг толин тусгал хийж
байна:
drive b device /dev/da4h
volume mirror
plex org concat
sd length 512m drive a
plex org concat
sd length 512m drive b
Vinum нь өөрийн тохиргооны мэдээллийн бааз дахь бүх обьектуудыг
хянаж байдаг болохоор a хөтчийн тодорхойлолтыг
энэ жишээн дээр дахин зааж өгөх шаардлагагүй юм. Энэ тодорхойлолтыг процесс
хийсний дараа тохиргоо иймэрхүү харагдана:
Drives: 2 (4 configured)
Volumes: 2 (4 configured)
Plexes: 3 (8 configured)
Subdisks: 3 (16 configured)
D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
зураг нь бүтцийг графикаар
харуулж байна.
Энэ жишээн дээр plex бүр бүрэн 512 MB хаягийн талбарыг
агуулж байна. Өмнөх жишээн дээрх шиг plex бүр зөвхөн ганц дэд дискийг
агуулна.
Ажиллагааг оновчтой болгох
Өмнөх жишээн дээрх толин тусгал хийгдсэн эзлэхүүн нь толин тусгал
хийгдээгүй эзлэхүүнээс илүү сүйрэлд тэсвэртэй боловч ажиллагааны хувьд дутмаг
байдаг: эзлэхүүн уруу хийгдэх бичилт бүр нь нийт дискний зурвасын өргөнөөс илүүтэйгээр
ашиглан хоёр хөтөч хоёулан уруу нь бичилт хийхийг шаарддаг. Ажиллагааны
тооцоонууд нь өөр хандлагыг шаарддаг: толин тусгал үүсгэхийн оронд өгөгдөл нь
аль болох олон диск хөтчүүдийн дагуу судалчлагддаг. Дараах тохиргоо нь
дөрвөн дискний хөтчүүдийн дагуу судалчлагдсан plex бүхий эзлэхүүнийг
харуулж байна:
drive c device /dev/da5h
drive d device /dev/da6h
volume stripe
plex org striped 512k
sd length 128m drive a
sd length 128m drive b
sd length 128m drive c
sd length 128m drive d
Өмнөхийн адил Vinum-д мэдэгдэж байгаа хөтчүүдийг тодорхойлох хэрэггүй
юм. Энэ тодорхойлолтыг процесс хийсний дараа тохиргоо иймэрхүү
байна:
Drives: 4 (4 configured)
Volumes: 3 (4 configured)
Plexes: 4 (8 configured)
Subdisks: 7 (16 configured)
D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
V striped State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
P striped.p1 State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
S striped.p0.s0 State: up PO: 0 B Size: 128 MB
S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB
Энэ эзлэхүүн нь зурагт
үзүүлэгдсэн байгаа. Судлуудын харанхуй байдал plex-ийн хаягийн талбар дахь
байрлалыг илэрхийлнэ: хамгийн цайвар судлууд нь эхлээд байх бөгөөд хамгийн
харанхуйнууд нь сүүлд байна.
Уян хатан чанар ба ажиллагаа
Хангалттай тоног төхөөрөмжийн
тусламжтайгаар стандарт &unix; хуваалтуудтай харьцуулах юм бол нэмэгдсэн
уян хатан чанар болон нэмэгдсэн ажиллагаа аль алиныг нь үзүүлдэг эзлэхүүнүүдийг
бүтээх боломжтой юм. Нийтлэг тохиргооны файл иймэрхүү байж болох
юм:
volume raid10
plex org striped 512k
sd length 102480k drive a
sd length 102480k drive b
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
plex org striped 512k
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
sd length 102480k drive a
sd length 102480k drive b
Хоёр дахь plex-ийн дэд дискнүүд нь эхний plex дэхээс хоёр хөтчөөр
ялгаатай: дамжуулалт хоёр хөтчөөр дамжин хийгдсэн ч гэсэн бичилтүүд адил
дэд дискнүүд уруугаа хийгдэхгүй байхыг энэ нь баталгаажуулж өгдөг.
нь энэ эзлэхүүний бүтцийг илэрхийлж
байна.
Обьектийн нэрлэлт
Дээд дурдсаны дагуу Vinum нь анхдагч нэрсийг plex-үүд болон дэд дискнүүдэд
өгдөг боловч тэдгээр нь дарагдан өөрчлөгдөж болох юм. Анхдагч нэрсийг
дарж өөрчлөхийг зөвлөдөггүй: обьектуудыг дурын нэрээр солихыг зөвшөөрдөг
VERITAS эзлэхүүн менежерээс харах юм бол энэ уян хатан чанар нь мэдэгдэхүйц
давуу талыг авч ирдэггүй бөгөөд эндүүрэл үүсгэж болох юм.
Нэрс нь дурын хоосон биш тэмдэгтийг агуулж болох бөгөөд тэмдэгтүүдийг
үсэг, тоо болон доогуур зураас байлгаж хязгаарлахыг зөвлөдөг.
Эзлэхүүнүүд, plex-үүд болон дэд дискнүүд нь 64 тэмдэгт хүртэл урттай
байж болох бөгөөд хөтчүүдийн нэрс 32 тэмдэгт хүртэл урттай байж
болно.
Vinum обьектууд нь /dev/gvinum шатлалд
төхөөрөмжийн цэгүүдийг өгдөг. Дээр үзүүлсэн тохиргоо нь Vinum-ийг
дараах төхөөрөмжийн цэгүүдийг үүсгэхэд хүргэнэ:
Энэ нь зөвхөн уламжлалт Vinum шийдэлд хамаатай.
&man.gvinum.8; болон Vinum дэмоны ашигладаг
харгалзах /dev/vinum/control болон
/dev/vinum/controld хяналтын төхөөрөмжүүд.
Эзлэхүүн бүрийн төхөөрөмжийн оруулгууд. Эдгээр нь Vinum-ийн ашигладаг
гол төхөөрөмжүүд юм. Тэгэхээр дээрх тохиргоо нь
/dev/gvinum/myvol,
/dev/gvinum/mirror,
/dev/gvinum/striped,
/dev/gvinum/raid5 болон
/dev/gvinum/raid10 төхөөрөмжүүдийг
агуулах болно.
Энэ нь зөвхөн уламжлалт Vinum шийдэлд хамаатай.
Хөтөч бүрийн оруулгатай /dev/vinum/drive
сан. Эдгээр оруулгууд нь жинхэнэдээ харгалзах дискний цэгүүд уруу заасан
симболын холбоосууд юм.
Бүх эзлэхүүнүүд нь /dev/gvinum/ дотор
шууд оруулгуудыг авна.
Plex болон дэд диск бүрийн төхөөрөмжийн цэгүүдийг агуулдаг
харгалзах /dev/gvinum/plex болон
/dev/gvinum/sd сангууд.
Жишээ нь дараах тохиргооны файл байлаа гэж үзье:
drive drive1 device /dev/sd1h
drive drive2 device /dev/sd2h
drive drive3 device /dev/sd3h
drive drive4 device /dev/sd4h
volume s64 setupstate
plex org striped 64k
sd length 100m drive drive1
sd length 100m drive drive2
sd length 100m drive drive3
sd length 100m drive drive4
Энэ файлыг процесс хийсний дараа &man.gvinum.8; нь /dev/gvinum
файлд дараах бүтцийг үүсгэдэг:
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
/dev/vinum/plex:
total 0
crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
/dev/vinum/sd:
total 0
crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3
Plex-үүд болон дэд дискнүүд нь тусгайлсан нэрсийг хуваарилах ёсгүй гэж
зөвлөдөг боловч Vinum хөтчүүд нь нэрлэгдсэн байх ёстой. Энэ нь хөтчийг
өөр байрлал уруу зөөж автоматаар таньсан хэвээр байх боломжийг
бүрдүүлдэг. Хөтчийн нэрс 32 тэмдэгт хүртэл урттай байж болно.
Файлын системүүд үүсгэх нь
Эзлэхүүнүүд нь нэг зүйлээс бусдаараа дискнүүдэд ижил юм шиг
системд харагддаг. &unix; хөтчүүдээс ялгаатай нь Vinum эзлэхүүнүүдийг
хуваадаггүй, тиймээс хуваалтын хүснэгтийг агуулдаггүй. Энэ нь зарим нэг
дискний хэрэгслүүдэд ялангуяа &man.newfs.8;-д өөрчлөлт хийхийг шаарддаг.
Урьд нь &man.newfs.8; Vinum-ийн эзлэхүүний нэрийн сүүлийн үсгийг
хуваалт таниулагч гэж тайлбарлахыг оролддог байсан байна. Жишээ нь
дискний хөтөч /dev/ad0a эсвэл
/dev/da2h гэсэн нэртэй байж болох юм.
Эдгээр нэрс нь эхний (0) IDE диск дээрх эхний хуваалт (a)
болон гурав дахь (3) SCSI диск дэх найм дахь хуваалтыг
(h) илэрхийлдэг. Ялгаатай тал нь
Vinum эзлэхүүн нь хуваалтын нэртэй ямар ч холбоогүй нэрээр магадгүй
/dev/gvinum/concat гэж нэрлэгдэж болох
юм.
&man.newfs.8; нь дискний нэрийг тайлбарлах бөгөөд хэрэв ойлгож
чадахгүй бол мэдээлэл үзүүлдэг. Жишээ нь:
&prompt.root; newfs /dev/gvinum/concat
newfs: /dev/gvinum/concat: can't figure out file system partition
Энэ эзлэхүүн дээр файлын систем үүсгэхийн тулд
&man.newfs.8;-г ашиглана:
&prompt.root; newfs /dev/gvinum/concat
5.0-с өмнөх &os; хувилбаруудад &man.newfs.8; нь
нэмэлт -v туг болон хуучин төхөөрөмж нэрлэлтийн схемийг
шаарддаг:
&prompt.root; newfs -v /dev/vinum/concat
Vinum тохируулах нь
GENERIC цөм Vinum-ийг агуулдаггүй. Vinum оруулсан
тусгай цөм бүтээх боломжтой боловч ингэхийг зөвлөдөггүй. Vinum-ийг эхлүүлэх
стандарт арга нь цөмийн модуль (kld) юм. Та бүр
Vinum-д зориулж &man.kldload.8;-г ч ашиглах хэрэггүй: &man.gvinum.8;-г
эхлүүлэхэд энэ нь модуль ачаалагдсан эсэхийг шалгаад хэрэв үгүй бол түүнийг
автоматаар ачаалдаг.
Эхлүүлэлт
Vinum нь тохиргооны мэдээллийг гол нь тохиргооны файлуудад байдаг яг тэр
хэлбэрээр дискний зүсмэлүүд дээр хадгалдаг. Тохиргооны мэдээллийн баазаас унших
үед Vinum тохиргооны файлуудад зөвшөөрөгдөөгүй хэд хэдэн түлхүүр үгнүүдийг
таньдаг. Жишээ нь дискний тохиргоо дараах текстийг агуулж болох юм:
volume myvol state up
volume bigraid state down
plex name myvol.p0 state up org concat vol myvol
plex name myvol.p1 state up org concat vol myvol
plex name myvol.p2 state init org striped 512b vol myvol
plex name bigraid.p0 state initializing org raid5 512b vol bigraid
sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b
Эндэх мэдээжийн ялгаанууд нь байрлалын тодорхой мэдээлэл болон нэрлэлт
(тэдгээрийн хоёул бас зөвшөөрөгдсөн боловч хэрэглэгчид ашиглахыг хориглосон)
болон түвшингүүд дэх мэдээлэл (хэрэглэгчид байдаггүй) байгаа явдал юм.
Vinum нь тохиргооны мэдээлэл дэх хөтчүүдийн тухай мэдээллийг хадгалдаггүй:
энэ нь Vinum шошготой хуваалтуудын хувьд тохируулагдсан дискний хөтчүүдийг скан хийн
хөтчүүдийг олдог. Энэ нь тэдгээр хөтчүүдэд өөр төрлийн &unix; хөтчийн ID өгсөн байсан ч
Vinum-д хөтчүүдийг зөвөөр таних боломжийг олгодог.
Автомат эхлүүлэлт
Энэ мэдээлэл нь зөвхөн уламжлалт Vinum шийдэлд хамаатай.
- Gvinum нь цөмийн модуль ачаалагдсаны дараа
- автоматаар эхлүүлдэг боломжийг үргэлж агуулсан байна.
+ Gvinum нь &man.loader.conf.5;-ийн тусламжтай
+ цөмийн модуль ачаалагдсаны дараа автоматаар эхлүүлэгддэг боломжийг үргэлж
+ агуулсан байна. Gvinum модулийг ачаалалтын үед
+ дуудахын тулд /boot/loader.conf файлд
+ geom_vinum_load="YES" мөрийг нэмэх хэрэгтэй.
Системийг ачаалахад Vinum-ийг автоматаар эхлүүлэхийн тулд
өөрийн /etc/rc.conf файлд дараах мөр
байгаа эсэхийг шалгаарай:
start_vinum="YES" # set to YES to start vinum
Хэрэв танд /etc/rc.conf файл байхгүй бол
ийм агуулгатай нэгийг үүсгээрэй. Энэ нь системийг эхлэхдээ Vinum
kld-г ачаалуулж тохиргоонд дурдагдсан
обьект бүрийг эхлүүлэхэд хүргэдэг. Энэ нь файлын системүүдийг
холбохоос өмнө хийгддэг учир автоматаар Vinum эзлэхүүнүүд дээр &man.fsck.8;
хийх болон файлын системүүдийг холбох боломжтой юм.
vinum start тушаалаар Vinum-ийг
эхлүүлэхэд Vinum нь аль нэг Vinum хөтчөөс тохиргооны мэдээллийн баазыг
уншдаг. Ердийн тохиолдолд хөтөч бүр тохиргооны мэдээллийн баазын адил хуулбарыг
агуулдаг учир аль хөтөч уншигдах нь хамаагүй юм. Гэхдээ сүйрлийн дараа
Vinum нь аль хөтөч хамгийн сүүлд шинэчлэгдсэнийг тодорхойлж тэр хөтчөөс
тохиргоог унших ёстой. Дараа нь тэр хэрэв шаардлагатай бол хуучин хөтчүүдээс
тохиргоог шинэчилдэг.
Root файлын системийн хувьд Vinum-ийг ашиглах нь
Vinum ашиглан бүрэн толин тусгал хийгдсэн файлын системүүд бүхий
машины хувьд root файлын системийг бас толин тусгал хийх нь зүйтэй.
Ингэж тохируулах нь дурын файлын системийг толин тусгал хийхээс
амаргүй юм, учир нь:
root файлын систем нь ачаалах процессийн нэлээн эхэн үед бэлэн
байж байх шаардлагатай учраас Vinum дэд бүтэц нь энэ үед аль хэдийн бэлэн
болсон байх шаардлагатай.
root файлын системийг агуулсан эзлэхүүн нь бас системийг эхлүүлэх код
болон цөмийг агуулдаг бөгөөд цөм нь хост системийн эх хэрэгслүүд (өөрөөр хэлбэл
PC ангиллын машинууд дээр BIOS) ашиглан уншигдах ёстой. Эдгээр хост системийн
эх хэрэгслүүдэд Vinum-ийн талаар дэлгэрэнгүйг мэдүүлэх ихэвчлэн боломжгүй
байдаг.
Дараах хэсгүүдэд root эзлэхүүн
гэсэн ойлголт
root файлын системийг агуулдаг Vinum эзлэхүүнийг тайлбарлахад голчлон
ашиглагдана. Энэ эзлэхүүний хувьд "root"
гэсэн нэрийг ашиглах нь зүйтэй санаа боловч энэ нь аль ч талаараа заавал
шаардлагатай биш юм. Дараах хэсгүүд дэх бүх тушаалын жишээнүүд нь
энэ нэрийг ашиглах болно.
root файлын системийн хувьд Vinum-ийг аль болох эрт эхлүүлэх нь
Ингэхийн тулд хэд хэдэн арга хэмжээнүүдийг авах хэрэгтэй:
Vinum нь ачаалах үед цөмд бэлэн байх ёстой. Тиймээс
-д тайлбарласан
Vinum-ийг автоматаар эхлүүлэх арга нь энэ асуудлыг шийдэхэд
хэрэглэх боломжгүй бөгөөд start_vinum
параметрийг дараах тохиргоог зохион байгуулсан тохиолдолд тохируулах
ёсгүй. Эхний тохируулга нь Vinum-ийг статикаар цөмд эмхэтгэх
тохируулга байх юм. Тэгэхээр энэ боломж нь үргэлж бэлэн байх боловч
ихэнх тохиолдолд хүсмээр зүйл биш байдаг. /boot/loader
()-аар цөмийг эхлэхээс өмнө
vinum цөмийн модулийг эрт ачаалахаар тохируулах өөр бас нэг
тохируулга байдаг. Ингэхийн тулд дараах мөрийг:
geom_vinum_load="YES"
/boot/loader.conf файл уруу оруулж хийж болно.
Gvinum-ийн хувьд бүх
эхлүүлэлт нь цөмийн модуль ачаалагдсаны дараа
автоматаар хийгддэг учраас дээр тайлбарласан процедур
байхад л хангалттай. Дараах текст нь хуучин тохиргоонуудын
тусын тулд уламжлалт Vinum системийн ажиллагааг баримтжуулж
байна.
Vinum нь root файлын системд эзлэхүүнийг хангах хэрэгтэй байдаг
учир эрт эхлүүлэгдэх ёстой байдаг. Анхдагчаар цөмийн Vinum хэсэг нь
администратор (эсвэл эхлүүлэх скриптүүдийн аль нэг нь)
vinum start тушаал ажиллуулах хүртэл
Vinum эзлэхүүний мэдээллийг агуулсан байж болох хөтчүүдийг
хайдаггүй.
FreeBSD-д хэрэгтэй
алхмуудыг дараах хэсэг тайлбарлах болно.
Дараах мөрийг:
vinum.autostart="YES"
гэж /boot/loader.conf файлд нэмж
Vinum-ийг цөмийн эхлүүлэлтийн хэсэг болон Vinum мэдээллийн хувьд
бүх хөтчүүдийг автоматаар скан хийхийг зааж өгдөг.
Цөмд root файлын системийг хайхыг заах заавал шаардлагагүйг
тэмдэглэе. /boot/loader нь
root төхөөрөмжийн нэрийг /etc/fstab
файлаас хайх бөгөөд энэ мэдээллийг цөмд дамжуулдаг. root файлын
системийг холбох үед өгөгдсөн төхөөрөмжийн нэрээс аль драйвераас
үүнийг дотоод төхөөрөмжийн ID (major/minor дугаар) болгон
хөрвүүлэхийг асуухаа мэддэг.
Vinum дээр тулгуурласан root эзлэхүүнийг эхлүүлэх кодонд хандах
боломжтой болгох нь
Одоогийн FreeBSD эхлүүлэгч нь зөвхөн 7.5KB код байдаг бөгөөд энэ нь
UFS файлын системээс файлуудыг (/boot/loader
зэрэг) уншдагаар хийгдсэн байдаг болохоор Vinum-ийн тохиргооны мэдээллийг
боловсруулж эхлэх эзлэхүүний өөрийнх нь элементүүдийг таньж Vinum-ийн
дотоод бүтцүүдийг түүнд мэдүүлэх нь илт боломжгүй юм. Тиймээс
root файлын системийг агуулдаг стандарт "a"
хуваалтын хуурамч үзэгдлээр эхлүүлэгч кодыг хангах зарим нэгэн
заль мэх шаардлагатай байдаг.
Ингэхийн тулд root эзлэхүүний хувьд дараах шаардлагуудыг хангасан
байх ёстой:
root эзлэхүүн нь судал хийгдээгүй эсвэл RAID-5 хийгдээгүй байх ёстой.
root эзлэхүүн нь нэг plex-ийн хувьд нэгээс илүү нийлүүлэгдсэн дэд
дисктэй байх ёсгүй.
Тус бүрдээ root файлын системийн нэг хуулбарыг агуулсан олон plex
байлгах боломжтой бөгөөд ингэх сонирхолтой байдгийг санаарай.
Гэхдээ эхлүүлэгч процесс нь эдгээр хуулбаруудын зөвхөн нэгийг эхлүүлэгч болон
бүх файлуудыг олохын тулд цөм root файлын системийг өөрийг нь холбох хүртэл
хэрэглэдэг. Дараа нь харгалзах төхөөрөмжийг эхлүүлэх боломжтой болгохын тулд
эдгээр plex-үүдийн доторх ганц дэд диск бүрт өөрсдийн "a"
хуваалтын хуурамч үзэгдэл хэрэгтэй болдог. Эдгээр хуурсан "a"
хуваалт бүр өөрийн төхөөрөмжийн дотор адил офсетэд байрлах нь root эзлэхүүний
plex-үүдийг агуулдаг бусад төхөөрөмжүүдтэй харьцуулах юм бол заавал хэрэгтэй
байдаггүй. Гэхдээ Vinum эзлэхүүнүүдийг толин тусгал хийгдсэн төхөөрөмжүүд нь
тэгш хэмт байхаар эндүүрлээс хамгаалж үүсгэх нь магадгүй зүйтэй санаа байх юм.
Эдгээр "a" хуваалтуудыг root эзлэхүүний хэсгийг
агуулсан төхөөрөмж бүрийн хувьд тохируулахын тулд доор дурдсаныг хийх хэрэгтэй:
Энэ төхөөрөмжийн root эзлэхүүний хэсэг болох дэд дискний байрлал
(төхөөрөмжийн эхэн хэсгээс тодорхой офсетэд) болон хэмжээг
дараах тушаалыг ашиглаж шалгах хэрэгтэй:
&prompt.root; gvinum l -rv root
Vinum офсетүүд болон хэмжээнүүд нь байтаар хэмжигддэг болохыг
санаарай. bsdlabel тушаалд
хэрэглэгддэг блок дугааруудыг олж авахын тулд тэдгээр нь 512-т
хуваагдах ёстой.
Дараах тушаалыг:
&prompt.root; bsdlabel -e devname
гэж root эзлэхүүнд оролцож байгаа төхөөрөмж бүрийн хувьд ажиллуулна.
devname нь зүсмэлийн хүснэгтгүй
дискнүүдийн дискний нэр (da0 гэх зэрэг)
эсвэл зүсмэлийн нэр (ad0s1 гэх зэрэг)
байх ёстой.
Хэрэв төхөөрөмж дээр "a" хуваалт
(Vinum-ийн өмнөх root файлын системийг агуулсан) байх юм бол
энэ нь хандахад боломжтой хэвээр (зөвхөн энэ тохиолдолд) байхын
тулд өөр нэрээр нэрлэгдэх шаардлагатай. Гэхдээ анхдагчаар системийг
эхлүүлэхэд хэрэглэгдэхээ болих юм. Идэвхтэй хуваалтуудын
(одоогоор холбогдсон root файлын систем зэрэг) нэрийг өөрчилж
болохгүй, тийм болохоор үүнийг Fixit
зөөвөрлөгчөөс
эхлүүлэх үед эсвэл (толин тусгал хийгдсэн нөхцөлд) ачаалаагүй байгаа
дискийг эхлээд удирдах хоёр алхамтай процессийн үед ажиллуулах ёстойг
санаарай.
Дараа нь энэ төхөөрөмж дээрх Vinum хуваалтын офсет нь энэ
төхөөрөмжийн харгалзах root эзлэхүүний дэд дискний офсетэд
нэмэгдэх ёстой. Үр дүнд нь гарах утга нь шинэ "a"
хуваалтын хувьд "offset" буюу офсет
утга болно. Энэ хуваалтын хувьд "size" буюу хэмжээ
утгыг дээрх тооцооллоос үгчлэн авч болно. "fstype"
нь 4.2BSD байх ёстой.
"fsize", "bsize",
болон "cpg" утгууд нь байгаа файлын системтэй
таарахаар сонгогдсон байх хэрэгтэй, гэхдээ тэдгээр нь энэ сэдэвт
бараг л чухал биш юм.
Ийм замаар шинэ "a" хуваалт нь
энэ төхөөрөмж дээрх Vinum хуваалтыг дарж байгуулагдана.
Хэрэв Vinum хуваалт нь "vinum"
fstype-г ашиглан зөвөөр тэмдэглэгдсэн бол
bsdlabel тушаал нь зөвхөн энэ даралтыг
зөвшөөрөх болно.
Ингээд боллоо! root эзлэхүүний нэг хуулбартай төхөөрөмж бүр дээр
хуурсан "a" хуваалт одоо бий боллоо.
Үр дүнг дараах тушаалтай төстэй тушаал ашиглан дахин шалгахыг
зөвлөдөг:
&prompt.root; fsck -n /dev/devnamea
Шинэ Vinum root эзлэхүүнийг тохируулах үед идэвхтэй байгаа
root файлын системтэй таардаггүй учир хяналтын мэдээлэл агуулсан бүх
файлууд нь Vinum эзлэхүүн дэх root файлын системд харьцангуй байх ёстойг
санах хэрэгтэй. Тэгэхээр ялангуяа /etc/fstab
болон /boot/loader.conf файлуудыг
бодолцох хэрэгтэй юм.
Дараагийн дахин ачаалалтын дараа эхлүүлэгч нь шинэ Vinum дээр тулгуурласан
root файлын системээс тохирох хяналтын мэдээллийг олж түүний дагуу ажиллах
ёстой. Цөмийн эхлүүлэх процессийн төгсгөлд бүх төхөөрөмжүүд зарлагдсаны
дараа энэ тохиргоог амжилттай болсныг харуулсан алдартай мэдэгдэл иймэрхүү
байдлаар харуулагдана:
Mounting root from ufs:/dev/gvinum/root
Vinum дээр тулгуурласан root тохиргооны жишээ
Vinum root эзлэхүүн тохируулагдсаны дараа
gvinum l -rv root тушаалын үр дүн иймэрхүү
харагдана:
...
Subdisk root.p0.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p0 at offset 0 (0 B)
Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
Subdisk root.p1.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p1 at offset 0 (0 B)
Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
Тэмдэглэх ёстой утгууд нь офсетийн (/dev/da0h
хуваалтын хувьд харьцангуй байна) хувьд 135680
байна. Энэ нь bsdlabel-ийн ойлголтод
265 ширхэг 512 байт диск блок уруу хөрвүүлнэ. Үүнтэй адилаар энэ root
эзлэхүүний хэмжээ нь 245760 512 байт блок юм. Энэ root эзлэхүүний
хоёр дахь хуулбарыг агуулсан /dev/da1h нь
тэгш хэмтэй тохиргоотой байна.
Эдгээр төхөөрөмжийн хувьд bsdlabel нь иймэрхүү харагдана:
...
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
h: 71771672 16 vinum # (Cyl. 0*- 4467*)
Хуурсан "a" хуваалтын
"size" параметр нь дээр харуулсан утгатай
таардаг бол харин "offset" параметр нь
Vinum хуваалт "h" доторх офсет
болон төхөөрөмж (эсвэл зүсмэл) дэх энэ хуваалтын офсетийн нийлбэр болохыг
эндээс харж болно. Энэ нь -д
тайлбарласан асуудлыг тойрон гарахад шаардлагатай ердийн тохиргоо юм.
Мөн бүхэл "a" хуваалт нь энэ төхөөрөмжийн хувьд
бүх л Vinum өгөгдлийг агуулан бүтнээрээ "h" дотор
байхыг эндээс бас харж болно.
Дээрх жишээн дээр бүхэл төхөөрөмж нь Vinum-д зориулагдсан бөгөөд
зөвхөн Vinum тохиргооны хэсэг болохоор зориулагдсан дискний шинэ тохиргоо
учраас Vinum-аас өмнөх root хуваалтын үлдэгдэл байхгүй болохыг санах
хэрэгтэй.
Алдааг олж засварлах нь
Хэрэв ямар нэгэн зүйл болохоо байвал энэ тохиолдолд сэргээх арга хэрэгтэй.
Дараах жагсаалт нь тохиолддог цөөн хэдэн асуудлууд болон шийдлүүдийг
харуулж байна.
Системийн эхлүүлэгч ачаалах боловч систем эхлэхгүй байх
Ямар нэг шалтгаанаар систем нь ачаалахгүй бол эхлүүлэгчийг
10 секундын анхааруулга дээр space товчлуур дарж
тасалдуулж болно. Дуудагчийн хувьсагчуудыг (vinum.autostart зэрэг)
show тушаал ашиглан шалгаж болох бөгөөд
set эсвэл unset тушаалуудыг
ашиглан тохируулж болно.
Хэрэв цөмийн Vinum модуль нь автоматаар дуудагддаг модулиудын
жагсаалтад орж амжаагүй байх юм бол ердийн load geom_vinum
тушаал туслана.
Бэлэн болсныхоо дараа ачаалах процессийг boot -as
тушаалаар үргэлжлүүлж болно. тохируулгууд нь
root файлын системийг холбохыг () асуудаг
бөгөөд ачаалах процессийг root файлын системийг зөвхөн унших эрхээр холбосон
ганц-хэрэглэгчийн горимд () зогсоохыг
цөмөөс хүсдэг. Ийм замаар олон-plex эзлэхүүний зөвхөн нэг plex холбогдсон
байхад plex-үүд хоорондын өгөгдлийн бүрэн бүтэн бус байдлын эрсдэл
гардаггүй.
root файлын системийг холбохыг асуух мөрөн дээр зөв root файлын
системтэй дурын төхөөрөмжийг оруулж болно. Хэрэв
/etc/fstab зөв тохируулагдсан бол анхдагч нь
ufs:/dev/gvinum/root мөртэй төсөөтэй
байх ёстой. Ердийн өөр нэг сонголт нь ufs:da0d
зэрэг Vinum-аас өмнөх root файлын системийг агуулдаг таамаглал хуваалт
байж болох юм. Энд жинхэнэдээ толин тусгал үүсгэгдсэн тохируулгаас болоод
Vinum root төхөөрөмжийн дэд дискнүүд уруу заасан аль нэг хуулбар
"a" хуваалтыг оруулсан бол болгоомжтой байх хэрэгтэй
бөгөөд энэ нь толин тусгал хийгдсэн root төхөөрөмжийн зөвхөн нэгийг
холбох болно. Хэрэв энэ файлын систем нь дараа нь унших бичих эрхтэйгээр
холбогдох бол Vinum root эзлэхүүний бусад plex-(үүд)ийг арилгах
шаардлагатай. Учир нь эдгээр plex-үүд нь бүрэн бүтэн бус өгөгдлийг
зөөвөрлөх болно.
Зөвхөн анхдагч эхлүүлэгч дуудах
Хэрэв /boot/loader дуудагдахгүй байгаа
боловч анхдагч эхлүүлэгч дуудагдаж байвал (ачаалах процесс эхэлсний дараа
дэлгэцийн зүүн багана дээр ганц зураас харагддаг) энэ үед анхдагч
эхлүүлэгчийг тасалдуулах оролдлогыг space товчлуур
ашиглан хийж болно. Энэ нь эхлүүлэгчийг хоёрдугаар алхам дээр зогсоох
бөгөөд -с үзнэ үү. Энд
"a"-с дээр шилжүүлэгдсэн өмнөх root файлын
системийг агуулсан өөр хуваалтаас ачаалах оролдлого хийж болох
юм.
Юу ч ачаалахгүй болж эхлүүлэгч сүйрэх
Энэ тохиолдол нь хэрэв эхлүүлэгчийг Vinum суулгацаар устгасан
бол тохиолддог. Харамсалтай нь одоогоор Vinum нь санамсаргүйгээр
зөвхөн 4 KB хэмжээг чөлөөтэйгөөр өөрийн хуваалтын эхэнд өөрийн Vinum
толгойн мэдээллийг бичиж эхлэхээсээ өмнө үлдээдэг. Гэхдээ нэгдүгээр алхам
ба хоёрдугаар эхлүүлэгчид, тэдгээрийн хооронд суулгагдсан bsdlabel нь
одоогоор 8 KB-г шаарддаг. Хэрэв Vinum хуваалт нь ачаалагдах боломжтой
гэгдэж байгаа зүсмэл эсвэл диск дотор 0 офсетэд эхэлсэн бол Vinum нь
эхлүүлэгчийг устгана.
Үүнтэй адилаар хэрэв дээрх тохиолдол сэргээгдсэн бол,
жишээ нь Fixit
зөөвөрлөгчөөс ачаалагдаж
эхлүүлэгч нь -д тайлбарласны дагуу
дахин суулгагдсан бол эхлүүлэгч нь Vinum толгойг устгах бөгөөд
Vinum нь өөрийн диск(үүд)ийг дахиж олохгүй байх болно. Яг жинхэнэдээ
Vinum-ийн тохиргооны өгөгдөл эсвэл Vinum-ийн эзлэхүүнүүд дэх
өгөгдөл нь энэ үед устгагддаггүй бөгөөд бүх өгөгдлийг яг адилхан
Vinum тохиргооны өгөгдлийг дахин оруулснаар сэрээх боломжтой боловч
ийм тохиолдлыг засварлах нь их хэцүү байдаг. Vinum толгой болон системийн
эхлүүлэгчийг давхцуулахгүй байлгахын тулд бүхэл Vinum хуваалтыг
хамгийн багаар бодоход 4 KB-аар шилжүүлэх хэрэгтэй болно.