Unix

Чөлөөт нэвтэрхий толь — Википедиагаас
Харайх: Удирдах, Хайлт
Unix
Unix history-simple.svg
Unix, Unix төст системүүдийн хувьсал
Хөгжүүлсэн компани / Хөгжүүлэгч Беллийн Лабораторид Кен Томпсон, Деннис Ритчи, Брайан Керниган, Дуглас Макилрой, Жои Оссанна нар
Програмчлагдсан технологи Си хэл, Ассемблер хэл
Үйлдлийн системийн бүл Unix1969-04-20 (1969-04-20)
Үе шат Хөгжүүлэгдэж байгаа
Кодын загвар Анхандаа хаалттай эхтэй, одоо зарим Unix (BSD-н салбарууд, Illumos) нь нээлттэй эхтэй.
Анхны хувилбар 1969 оны 4-р сарын 20
Хэл Англи хэл
Цөмийн төрөл Цул
Хэрэглэгчийн интерфейс Команд мөрний систем, X цонхны системийн график интерфейстэй
Лиценз Хаалттай эхтэй
Үндсэн веб хуудас unix.org

Unix (албан ёсны худалдааны тэмдэг нь UNIX, заримдаа Unix гэж бичдэг) нь 1969 онд AT&T (ЭиТи᠋᠋'анд'Ти) компанийн Кен Томпсон, Деннис Ритчи, Брайан Керниган, Дуглас Макилрой, Майкл Леск, Жои Оссанна гэх мэт хэсэг ажилчид Беллийн Лабораторид (бас Bell Labs гэдэг) давхар үйлдэлт, олон хэрэглэгчид үйлдлийн системийг бүтээжээ.

Анх ассемблер хэлээр хийгдсэн ч 1973 онд цаашдын хөгжүүлэлт болон олон төрлийн төхөөрөмжид хялбар суурьшуулах зорилгоор бараг бүгдийг нь Си хэл уруу хөрвүүлжээ.

1974 онд UNIX-н хамгийн анхны лицензийг Иллиноисийн Их Сургуульд Грег Чессон, Доналд Б.Гиллис нар авчээ. Өнөөдөр Unix системийг AT&T-ээс гадна олон худалдааны байгууллага, их сургууль (жишээ нь: Калифорнийн Их Сургуулийн BSD), ашгийн бус байгууллагууд тус тусдаа хөгжүүлж байна.

Одоогоор UNIX-н худалдааны тэмдгийг Нээлттэй Бүлэг гэдэг үйлдвэрлэлийн стандартын консорциум эзэмшиж байгаа. "Нээлттэй Бүлэг"-ийн UNIX системийн шаардлагыг хангасан системүүд уг худалдааны тэмдгийг ашиглах эрхтэй бөгөөд бусад системүүдийг нь Unix төст систем гэдэг. Гэхдээ худалдааны эрх авсан системтэй төстэй системүүд албан бусаар Unix гэдэг нэр томьёог ашиглах нь түгээмэл байдаг.

1970-аад оны сүүлч, 1980-аад оны эхээр Unix нь судалгаа, сургуулийн хүрээнээс хальж томоохон хэмжээний Unix (ялангуяа Калифорнийн Их Сургуулиас гаргасан BSD хувилбар)-үүд худалдаанд гарч эхлэв. Эд нараас дурдвал: Xenix, Sequent, HP-UX, Solaris, AIX, сүүлдээ Apple-н OS X, iOS болсон Darwin.

Өнөө үед албан ёсны Unix системүүдээс гадна MINIX, Linux, BSD-н салбарууд (FreeBSD, NetBSD, OpenBSD, DragonFly BSD) гэх мэт Unix төст үйлдлийн системүүд түгээмэл дэлгэрч байгаа. Уламжлалт Unix гэдэг нэр томьёо нь Хувилбар 7 Unix юм уу UNIX System V-н шинж чанарыг агуулж буй үйлдлийн системийг тодорхойлж болно.

Тойм[засварлах]

Unix нь анхандаа олон системд ажилладаг програмыг хөгжүүлэхэд хэрэглэгддэг програмистын ажиллах орчин байсан. Сургалт, судалгааны хүрээнд өргөн тархаж хэрэглэгчид системд зориулж өөрсдийн хэрэгслүүдийг нэмж, өөр хоорондоо хуваалцсанаар уг систем улам томорсоор байв.

Unix нь давхар үйлдэлт, олон хэрэглэгчид, олон системд хөрвөх чадвартай байхаар бүтээгдсэн. Unix систем нь олон төрлийн үзэл ухагдахууныг агуулсан байдаг. Үүнд: өгөгдөл хадгалахдаа ердийн бичвэр (текст) ашигладаг байх, үечилсэн файлын системтэй байх, олон төхөөрөмжийг дэмждэг бөгөөд файлаар мэдээллээ солилцдог байх, олон тооны програм хэрэгсэлтэй байх, команд мөрөнд дамжуулах тэмдэгт ашиглан хэд хэдэн жижиг програмуудыг цугт нь хэрэглэж болдог байх, ижил функцүүдийг агуулсан ганц цул програм байхын эсрэг байх. Эдгээр ойлголтуудыг цугт нь Unix-н философи гэдэг. Керниган, Роб Пайк хоёр Unix-н Програмчлалын Орчин дахь Unix-н философийг "системийн чадал нь програмууд хоорондын уялдаа холбоо, харилцаанаас үүсдэг гэсэн санаа" хэмээн дүгнэжээ.

Unix үйлдлийн системүүд нь сервер, үйлчилгээний тооцоолуур, зөөврийн төхөөрөмжүүдэд өргөн хэрэглэгддэг. Unix-н орчин, хэрэглэгч–үйлчлэгч програмын загвар хоёр нь интернетийн хөгжүүлэлт болон сүлжээний тооцооллыг бүрэлдэн бий болгоход хамгийн чухал хүчин зүйлүүд болсон юм.

Unix, Си програмчлалын хэл хоёуланг нь AT&T хөгжүүлж засгийн газар, сургуулиуд уруу тарааснаар энэ хоёр бусад үйлдлийн системтэй харьцангуй олон төрлийн машин уруу хөрвүүлэгдсэн. Үр дүнд нь Unix бараг нээлттэй систем болсон.

Unix үйлдлийн систем нь дээд удирдах програм буюу цөмийг оролцуулаад олон хэрэгслүүдээс тогтдог. Цөм нь програмыг эхлүүлэх болон зогсоох, файлын систем болон "доод түвшний" ажлуудыг зохицуулах, програмууд нэг нөөц уруу юм уу нэг төхөөрөмж уруу зэрэг хандахад үүсэх зөрчлийг зохицуулах үүрэгтэй.

Бичил цөм хэмээх ойлголт нь том цөмүүдийг багасгах зорилгоор гарсан буюу ихэнх ажлуудыг жижиг жижиг хэрэгслүүдээр биелүүлэхийг зорьдог. Тухайн үед ерийн компьютер нь өгөгдөл хадгалах хатуу диск, оролт гаралтын терминалтай, Unix-н файлын загвар нь алдаагүй, оролт гаралт нь шугаман байсан. Гэсэн ч орчин үеийн систем нь сүлжээгээр холбогддог, олон шинэ төхөөрөмжүүдтэй болсон. График интерфейс хөгжиж файлын загвар нь давхар ажлыг боловсруулж чадахгүй болох нь харагдав. Сүлжээний протоколуудтай хамаатай функцүүд цөмөөс хасагдсан.

Түүх[засварлах]

1960-аад онд Массачусетсийн Технологийн Сургууль, AT&T Беллийн Лаборатори, General Electric (Женерал Электрик)нар GE-645 тооцоолуурт Multics (Мултикс) гэдэг зэрэг тооцоолол хийдэг үйлдлийн системийг анх хөгжүүлсэн. Мултикс нь олон шинэлэг санааг дэвшүүлсэн ч бүтэлгүйтсэн юм.

Мултикс нь дэндүү цогц, нүсэр байснаар зорилгодоо хүрэлгүй Белл Лаборатори аажмаар уг төслөөс гарсан юм. Мултиксыг хөгжүүлж байсан сүүлчийн судлаачид болох Кен Томпсон, Деннис Ритчи, Дуглас Макилрои, Жои Оссанна нар маш цомхон, жижиг байхаар Мултиксыг дахин хийхээр шийдэв. Тэр үед Ритчи: "Бид зөвхөн програмчлахад сайн систем бүтээхээсээ илүүтэй системтэй харьцах бусад зүйлс нь зөв бүтэц зохион байгуулалттай байхыг зорьсон юм…" гэжээ.

Кен Томпсон Мултикс дээрээ ажиллаж байхдаа файл, хуудаслалтын шинэ системийн загварчлалыг бичсэн. Мөн тэрээр Оддын Аялал (Space Travel) гэдэг тоглоомыг програмчилсан боловч тоглоом ажиллахад бага өртөгтэй, өндөр хүчин чадалтай машин шаардагдаж Белл Лабораториосоо нээх их хэрэглэгдээгүй PDP-7 гэдэг машиныг олов. 1969 онд PDP-7 дээрээ Томпсон, Ритчи, Руд Канадей нар Белл Лабораторийн судалгааны багийг удирдаж үечилсэн файлын систем, компьютерын процесс, төхөөрөмжийн файлын үндэс, команд мөрийн хөрвүүлэгч, хэд хэдэн жижиг хэрэгслүүдийг хөгжүүлжээ.

1970-аад он[засварлах]

1970 онд Петер Нейман Multics (Multiplexed Information and Computer Service) гэдэг нэрийг егөөдөж төслийн нэрийг Unics (UNinplexed Information and Computer Sercice) гэж нэрлэв. Unics нь мөн зэрэг олон хэрэглэгчидтэй ажиллаж чаддаг бөгөөд нэрээ Unix (Юникс) болгон өөрчлөв.

Энэ үе хүртэл Белл Лабораториос ямар ч санхүүгийн дэмжлэг байхгүй байв. Компьютерын Ухааны Судалгааны Бүлгэм (Computer Science Research Group) PDP-7-оос том машинд Unix-г хэрэглэхийг хүсэхэд Томпсон, Ритчи хоёр PDP-11/20 машинд зориулж, мөн Unix-тээ бичвэр боловсруулалтыг нэмж оруулахаар тохиролцож арилжаалахаар болжээ. Ингээд санхүү орж ирэв. 1970 онд анх удаа Unix үйлдлийн систем албан ёсны нэрээ авч PDP-11/20 машинд ажилладаг байхаар гарав. Бичвэр хэлбэржүүлэх "roff" гэдэг програм, бичвэр засварлагч нар орсон байв.

Unix-н хамгийн анхны худалдааны хувилбарыг 1972 оны эхээр Нью-Йорк Телефон компанийн Системийн Хөгжүүлэлтийн Төвд Дан Гиеланы удирдлага дор суулгав.

"Үйлдлийн систем мэтийн цогц системийг заавал ассемблер хэлээр програмчлах ёстой" гэгддэг үед Unix нь 1972 онд Си хэлээр дахин бичигдэв. Ассемблераас дээш түвшний хэл болох Си уруу хөрвөснөөр илүү авсаархан болж, багахан хэмжээний машинаас хамаарах кодыг өөрчлөөд бусад системүүд уруу суулгах боломжтой болов.

Unix системийн хувилбар нь гарын авлагынхаа хэвлэлийн дугаараар тодорхойлогддог байв. Жишээ нь "5 дахь хэвлэл UNIX", "UNIX Хувилбар 5" хоёр нь нэг хувилбарыг илэрхийлж байгаа юм. 1975 онд хөгжүүлэгдсээр Хувилбар 4, 5, 6 гарав. Эдгээр хувилбаруудад дамжуулах тэмдэгтийн үндэс нэмэгдэж хөгжүүлэлтийг илүү хурдан, цэгцтэй болгож өгсөн. Хувилбар 5, ялангуяа Хувилбар 6-аас Белл Лабораторийн дотор болон гадна Unix-н олон ялгаатай хувилбарууд үүсэв. Үүнд: PWB/UNIX, анхны худалдааны Unix болох IS/1 гэх мэт. Unix Си хэлээр бичигдсэнээр хөрвөх чадвар нь өсөв. Уоллонгоны Их Сургуулийн баг Unix-г Interdata 7/32 уруу хөрвүүлсэн. Белл Лаборатори судалгааны болоод AT&T-н дотоод хэрэглээнд зориулж хэд хэдэн хөрвүүлэлт хийсэн. Үүнд: Intel 8086 суурьтай компьютер (MMU нэмж хийсэн), UNIVAC 1100 нар орно.

1975 оны 5-р сард ARPA RFC-681 машин дахь ARPA сүлжээний жижиг хостод Unix давхар ажиллагаатай систем нь "олон сонирхолтой чадавхуудтай" гэж уг системийн сайн талуудыг тэмдэглэсэн байдаг.

1978 онд UNIX/32V DEC-үүдэд гарч дараа нь шинэ VAX систем болсон. Тухайн үед 600-аад машин Unix-н ямар нэгэн хувилбаруудаар ажиллаж байлаа. Судалгааны Unix-н хамгийн өргөн тархсан сүүлийн хувилбар болох Хувилбар 7 Unix нь 1979 онд гарав. 1980-аад онд гарсан Хувилбар 8, 9, 10 нь хэдхэн их сургуульд тараагдсан ч шинэ ажил гарч ирэв. Уг судалгаа нь Белл Лабораторийн 9-р Төлөвлөгөө (Plan 9) буюу шинэ шилжимтгэй тархай системийн (portable distributed system) хөгжүүлэлт уруу аваачив.

2000-аад он[засварлах]

2005 онд Sun Microsystems (Сана Микросистемс) компани Solaris (Соларис) системийн (UNIX System V Цуврал 4-д суурилсан) ихэнх кодоо OpenSolaris (Опен Соларис) гэдэг нээлттэй эхийн төсөл болгов. Шинэ Sun OS технологиуд (ялангуяа ZFS файлын систем) нь OpenSolaris төслөөрөө анх гарсан. Удалгүй OpenSolaris-ийн Sun компанийн бус тархацууд гарсан. 2010 онд Oracle (Оракел) компани Sun-ийг өөрийн болгоход OpenSolaris төсөл зогссон боловч бусад тархацууд нь хөгжигдсөөр байгаа.

2038 он[засварлах]

Unix нь системийн цагийг "Unix-н Эрин" (Unix Epoch) буюу 1970 оны 1-р сарын 1-ны 00:00 цагаас эхлэн секундээр тоологдох "signed long" буюу тэмдэгтэй урт бүхэл тоон төрлөөр тодорхойлогдсон time_t төрлийн хувьсагчид хадгалдаг. 2038 оны 1-р сарын 19-нд 32 бит Unix системийн цаг нь 0-ийн хойноос 31 нэг (0x7FFFFFFF) байснаас 1-ийн хойноос 31 тэг (0x80000000) болох буюу тэмдгийн битийг өөрчилснөөр он нь 1901 юм уу 1970 болно. 1970-н оноос өмнөх цагийг цөөн хэрэглэгдэнэ гэж үзвэл time_t төрлийг "тэмдэггүй 32 бит бүхэл тоо"-н төрлөөр өөрчилж болно. Гэхдээ дээрх алдааг зөвхөн 2106 оны 2-р сарын 7 хүртэл л хойшлуулахаас хэтрэхгүй бөгөөд програмуудын цагийн форматын зөрөөнөөс янз бүрийн алдаа гарч болно.

Зарим Unix-ийн хувилбарууд уг алдааг тооцсон байдаг. Жишээ нь 64 битийн Solaris, Linux хоёр time_t-г 64 битийн урт бүхэл тоогоор тодорхойлсон байдаг нь үйлдлийн систем болон 64 битийн програмууд нь 292 тэрбум жилийг зөв илэрхийлж чадах юм. 32 бит time_t-г хэрэглэдэг 32 битийн програмууд нь 64 бит Solaris системд хэвийн ажиллах ч 2038 оны алдаа нь хэвээрээ байна.

Бүтэц[засварлах]

 1.Kernel-бүх process, scheduling зэргийг зохицуулах ба Hardware-тай шууд харилцана.
 2.Shell-хэрэглэгчээс мэдээлэл авч цааш дамжуулах, санах ойгоос програм ажиллуулах гэх мэт үйлдлийг хийнэ.
 3.Бусад Tool буюу хэрэгслүүд-Үйлдлийн системд хэрэг болох хэрэгслүүд буюу бусад программууд.
Unix-ийг дотор нь хоёр ангилж үздэг. Boot  хийх үедээ системийн хаанаас программуудаа унших вэ? Яаж унших вэ? гэдгээр нь ангилал болгон авч үздэг. Өөрөөр хэлбэл ‘’Init’’ хийх төрлөөр нь ангилдаг.
 1.System V
 2.BSD (Berkely Software Distribution)