Wednesday, November 16, 2011

MINIX 3 үйлдлийн систем

UNIX үйлдлийн системийн хөгжлийн эхэн үед АT&T компаниас гаргасан лицензийн дагуу түүний эх кодыг өргөнөөр хэрэглэж, судалж байжээ.
Австралийн Өмнөд Уэльсийн Их Сургуулийн багш Жон Лайонс UNIX дээр алхам алхмаар ажиллах гарын авлага боловсруулсан бөгөөд AT&T-ийн зөвшөөрлөөр уг гарын авлагыг их сургуулиудын үйлдлийн системийн хичээл дээр ашигладаг байжээ. UNIX системийн 7-р хувилбар гарснаар уг системийг их сургуулийн үйлдлийн системийн хичээлд ашиглах болон эх кодыг нь нийтэд тараахыг хоригложээ.

Иймээс их сургуулиудын сургалтанд зориулан Амстердамын Врийн их сургуулийн профессор Эндрю Таненбаум UNIX системтэй төстэй MINIX хэмээх үйлдлийн системийг боловсруулсан. MINIX гэдэг нь mini-UNIX гэдэг нэрнээс гаралтай, маш энгийн бүтэцтэй бага хэмжээний систем юм. UNIX системийг бодвол илүү модульчлагдсан бүтэцтэй. Жишээ нь файлын систем нь цөмийн нэг хэсэг нь биш, харин тусдаа хэрэглэгчийн горимд ажилладаг модуль юм. Мөн кодыг бусдад ойлгуулахын тулд хэдэн мянган тайлбар оруулжээ.

POSIX (Portable Operating System based on UNIX) стандарт гарснаар MINIX-ийн хөгжилд их хувьд нэмэр оруулсан. Одоо MINIX нь POSIX стандарт дээр тулгуурлаж, уг стандартын дурын хэрэглээний програмыг ажиллуулах боломжтой болсон. MINIX нь UNIX шиг C хэл дээр бичигдсэн бөгөөд төрөл бүрийн компьютер дээр суурилуулахад маш хялбар, “Юм бага байх тусмаа сайхан” гэсэн философийг дагадаг. Энгийн хэрэглэгч MINIX болон UNIX хоёрын ялгааг олж харахгүй. UNIX системд байдаг cat, grep, ls, make зэрэг програмууд MINIX системд байдаг. LINUX болон MINIX хоёрын холбоог дурдахгүй өнгөрч болохгүй. MINIX үйлдлийн системийн анхны хувилбар гарсны дараахан USENET дээр мэдээний групп одоогоор форум бий болжээ. Хэдхэн долоо хоногийн дотор 40 гаруй мянган хүн уг форумд бүртгүүлсэн байдаг. Тэд системд шинэ боломжуудыг нэмэх, томсгох санал оруулж байв. Яг энэ үед Финляндын их сургуулийн оюутан Линус Торвальдс MINIX-тэй төстэй үйлдлийн системийг боловсруулсан. Ийнхүү GNU/LINUX үйлдлийн систем төрсөн түүхтэй.

1987 онд MINIX 1 гэж нэрлэгдэх анхны хувилбар нь гарсан. MINIX 3 нь түүхийн хувьд авч үзвэл MINIX 1 болон MINIX 2 (1997 онд гарсан POSIX стандартын систем)-той холбоотой боловч тэс өөр шинэ систем юм. Судалгаанаас үзэхэд хэрэглээний програм нь 1000 мөр кодонд 6-16 алдаа агуулдаг бол драйвер нь үйлдлийн системээс 3-7 дахин илүү алдаатай байдаг аж. Үйлдлийн системийн нийт 70 хувь нь драйвер програм байдаг учраас драйвер нь алдааны эх үүсвэр болдог. Жишээ нь Windows XP дээр гарч байгаа алдааны 85 хувь нь драйверын төхөөрөмжөөс болж байна. Үйлдлийн системийн найдвартай ажиллагааг хангахын тулд драйвер програмуудыг хамааралгүй ажиллуулах асуудал тулгарсан. MINIX 3 систем бий болох гол шалтгаан нь драйверт гарч байгаа алдаанаас үл хамааран системийг найдвартай ажиллуулах явдал байсан. Алдааг тусгаарлах механизмыг ашигласнаар MINIX 3-ийн найдвартай ажиллагааг хангаж болно. MINIX 3 системд цөмийн горимд нь 4000 мөр код ажилладаг байхад бусад үйлдлийн системд хэдэн сая мөрөөс тогтсон гүйцэтгэх програм ажилладаг. MINIX системийн дээрх кодонд тасалдал боловсруулагч, процессыг төлөвлөх, процесс хоорондын хамааралтай үйлдлийг гүйцэтгэхэд зориулсан функцүүд орсон байдаг. Үйлдлийн системийн үлдсэн хэсэг нь хэрэглэгчийн горимд процессуудын цуглуулга байдлаар ажиллах ба процесс бүр MMU (Memory Management Unit-Санах ойг удирдах төхөөрөмж)-ийн тусламжтай төхөөрөмжийн түвшинд хамгаалагдсан байдаг. Эдгээр процессууд нь супер хэрэглэгчийн горимоор ажиллах эрхгүй.

Дахин амилуулах сервер (Reincarnation server) гэж нэрлэгдэх эдгээр процессуудын нэг нь бусад бүх процессуудынхаа хүснэгтийг хадгалж байдаг бөгөөд хэрэв процессуудын аль нэг нь буруу ажиллах, эвдрэх тохиолдолд дахин амилуулах сервер нь автоматаар түүний шинэ хуулбараар сольдог. Ихэнх алдаанууд гэнэт гарч ирдэг учраас эвдэрсэн компонентуудыг дахин сэргээж ажиллуулснаар компьютерийг дахин унтрааж асаах шаардлагагүй болно. Өөрөөр хэлбэл компьютерт Reset товч хэрэггүй болно гэсэн үг. Энэ шинж чанарыг “өөрийгөө сэргээх” гэдэг ба орчин үеийн үйлдлийн системүүдэд байдаггүй.

MINIX 3 дээр ажиллаж байгаа хэрэглэгчдэд эхэлж UNIX систем дээр ажиллаж байгаа юм шиг санагддаг боловч түүн шиг нүсэр биш юм. MINIX 3 систем нь X Windows System болон ойролцоогоор 400 UNIX стандарт програмыг агуулдаг.

  • Командын процессорууд (shells): ash, bash, pdksh, rsh
  • Редакторууд: emacs, nvi, vim, elvis, elle, mined, sed, ed, ex
  • Програмчлалын хэлнүүд: cc, gcc, g++, bison, flex, perl, python, yacc
  • Програмчлалын хэрэгслүүд: cdiff, mak, patch, tar, touch
  • Сүлжээний хэрэгслүүд: ssh, telnet, ftp, lynx, mail, rlogin, wget, pine
  • Файлын утилит програмууд: cat, cp, bzip2, compress, mv, dd, uue, GNU utilities
  • Текст утилит програмууд: grep, head, paste, prep, sort, spell, tail
  • Администраторын хэрэгслүүд: adduser, cron, fdisk, mknod, mount, cvs, rcs
  • Тоглоом: dungeon, nethack

Одоогийн байдлаар хэрэглэгчийн шинэ интерфейстэй болсон байгаа.
MINIX3 системийг дараах салбарт ашиглахад зохимжтой. Үүнд:

  • Найдвартай ажиллагааг шаардсан хэрэглээний програмуудад
  • Хөгжиж буй орнуудад сургалтанд зориулсан хямд үнэтэй, хүчин чадал багатай нөүтбүүк
  • Embedded systems (камер, DVD-төхөөрөмж, гар утас гэх мэт).
  • Сургалтанд (их дээд сургуулийн үйлдлийн системийн хичээл).