Badral's personal blog
Интернет миний ертөнцийг хардаг цонх …

Posts Tagged ‘Linux kernel’

Architecture of the Linux Operation systems

Sunday, May 10th, 2009

За 2003 онд Соёмбо үйлдлийн систем гээч зүйл гаргах гэж ганцаараа нэлээн үйлээ үзэж байж нэг бета хувилбар гэгч зүйл гаргаад орхисоныг та бүхнээс зарим нэг нь санаж байгаа байх. Сүүлийн үед дахин сэргээж хөгжүүлэхээр зориг шулуудан дайрч оров. Гэхдээ энэ удаад соёмбо системийн талаар бус тухайн үед ноцолдож байсны хувьд санаанд үлдсэн линүкс үйлдлийн системийн архитектурын талаар цухас дурдая гэж бодоод энэ бичлэгийг үүсгэв.
ГНУ/Линүкс үйлдийн системийн архитектурыг маш ерөнхий авч үзье. Линүкс үйлдлийн системийн гол хэсэг нь Линүс Торвалдсын бүтээсэн Линүкс цөм юм. Энэхүү цөм нь техник хангамжууд жишээлбэл санах ой, төв процессор (процессорын төлөвлөгчөөр), КД хөтлөгч болон бусад гадаад төхөөрөмжүүд рүү хандах холбоос болж өгдөг. Бүрхүүл буюу shell нь хэрэглэгчдийг цөмтэй холбох гүүр болж өгдөг. Өөрөөр хэлбэл бүрхүүл нь хэрэглэгчийн өгсөн тушаалуудыг хүлээж авч зохих үйлдлийг (жишээлбэл програмыг ачаалах ажиллуулах) гүйцэтгэдэг. За тэгээд эцэст нь хэрэглээний програмууд нийлж энэхүү цогц үйлдлийн системийг бүрдүүлнэ. Цонхны удирдлагын системүүд, вэб хөтөч, програмчлалын хэл хэрэгслүүдгүйгээр үйлдлийн системийг төсөөлөх аргагүй. Тиймээс зүгээр л линүкс үйлдлийн систем бус ГНУ линүкс үйлдлийн систем хэмээн нэрийдэх нь зүйтэй бөлгөө.

Линүксийн цөмд бүх техник хэрэгслүүдийн драйверууд агуулагддаг. За тэгээд цааш нь жаахан лавшруулаад авч үзвэл:

Үндсэнд нь энэ үйлдийн системийг програм хангамжийн хоёр орон зайд авч үзэх боломжтой.
1.Хэрэглэгчийн програмууд болон бусад програмын хэрэгслүүд (бүрхүүлийг оруулаад)
2.Үйлдлийн системийн цөм ба түүнд хамаарах бүрдэл хэсгүүд
Эхний орон зайн хувьд хэрэглэгчийн програм буюу процесс бүр харилцан хамааралгүй хувийн (ямар нэг процесстэй хамтран эзэмшихгүй) санах ойн хаяглалттай байдаг. Харин цөм нь өөрийн гэсэн тусдаа санах ойн хаяглалттай бөгөөд үүнийг цөмийн бусад бүрдэл хэсгүүд хамтран эзэмшдэг. Тиймээс цөмийн ямар нэг бүрдэл хэсэг санах ойн буруу заалтууд үүсгээд орооцолдож эхэлбэл “Kernel panic” гэсэн мэдээ илгээгээд цөм тэр чигээрээ гацдаг. Та линүкс дээр ямар нэг техникийн драйвер хийгээд ачаалагдах боломжтой модуль руу ачаалсны дараа туршилт хийж үзэж байсан бол энэ Kernel panic мэдээг сайн мэдэж байгаа байх. Хэрвээ анхныхаа оролдлогоор огт алдаагүй бичиж чадсан тийм мундаг биш бол шүү дээ. 😉
Дээрх зурагт байгаа цөмийн хамгийн доод төвшинд “Архитектураас хамааралтай кодууд” ямар учиртай юм бол гэж та бодож байж болох юм. Энэ нь процессорын бүл (MMX, I386 гэх мэт) мөн техник хангамжийн зурвасууд (DMA гэх мэт. Жич. interface-ийг зурвас гэж орчууллаа.-хилийн зурвас гэдэг шиг утгаар) санах ойн зурвасууд (MMU setup), тасалдалууд гэх мэт тусгай элементүүдэд зориулагдсан кодууд болно. Энэхүү кодуудыг цөмийн эх кодны модны

kernel/arch

лавлах дотроос олох боломжтой.
За ингээд цааш линүкс үйдлийн системийг бүрдүүлж байгаа гол сан бол GNU C library буюу glibc юм. Энэ нь хэрэглээний програмууд зохиоход линүкс цөм рүү хандах функцүүдээр хангана. Энэ санд би монгол хэлний локалын дэмжилтийг 2002 онд билүү хийж байсан санагдана. Залхуу хүрчихлээ. Дараа зав гараад дур хөдөлбөл цааш үргэлжлүүлье.