Unix

от wiki.linux-bg.org, свободната енциклопедия

След близо четири десетилетия на употреба, UNIX операционната система създадена от лабораториите Бел все още се смята за една от най-мощните и гъвкави ОС (операционни системи) в компютърния свят. Популярността й се дължи на редица фактори, включващи възможността й да върви на различни машини, от микрокомпютри до суперкомпютри, както и лесното й адаптиране от различни производители.

Както други легендарни създания, чиито имена завършват на "x," UNIX се ражда изпод руините на опита в ранните 60 години на 20 век за създаване на стабилна и сигурна операционна система с времеделение.

Взаимните усилия за създаване на такава операционна система завършили с неуспех, но "оцелелите" от лабораториите Бел опитали отново, и това, което било създадено, било ОС, която предлагала на ползвателите си среда характеризираща се с "необичайна простота, мощност, и елегантност..."

Създаванeто на системата наложило и един нов подход в софтуeрния дизайн - решаването на проблема чрез използване на взаимодействащи си по-прости програмки, отколкото създаването на големи монолитни програми.

Развитието и еволюцията на тази система довели до една нова философия в компютърния свят, която станала безкраен извор на вдъхновение и радост от страна на програмистите по целия свят.

Съдържание

Ранните години

В ранните дни на изполването на изчислителните машини, компютърните системи не можели да обменят информация една с друга. Дори различните машини направени от една и съща компания обменяли информация индиректно, с помощта на интерпретатори. За взаймодействие между машини на различни производители не можело и дума да става

В допълнение, операционните системи били доста ограничени и можели да се справят само с ограничени задачи за машината, за която били написани. Проблемът се състоял в това, че ако се обновяла машината с нова, по-мощна, то трябвало да се обнови и ОС-а, а от там и да се въведат отново всички данни в новата машина. В опит за създаване на удобна, интерактивна и използваема компютърна система, която може да поддържа много потребители, група от програмисти от Bell Labs и GE обедини усилията си през 1965 в MIT (Massachusetts Institute of Technology) за създаването на Multics (Multiplexed Information and Computing Service) - система с времеделене за мейнфрейм машини.

С течение на времето, надеждата била заместена с раздразнение, a раздразнението с разочарование, тъй като първоначалните усилия на групата да създаде икономически полезна система пропаднали. Bell Labs се оттеглила от начинанието през 1969, но малка група от работници в Bell Labs Computing Science Research Center в Мъри Хил -- Кен Томпсън( Ken Thompson ),Денис Ричи( Dennis Ritchie ), Дъг МакИлрой(Doug McIlroy), и Джей Еф Осана(J. F. Ossanna) -- продължили да търсят свещения граал.

В действителност Multics работел и се развил като продукт, но не и до нивото, което желаели да постигнат неговите разработчици.

"През 1969, ние започнахме да търсим алтернатива на Multics," казва Ричи. "През цялата 1969 се опитвахме да привлечем подкрепа за създаването на ОС за среден клас машини. Нашите предложения никога не са били ясно и окончателно отхвърлени, но така и не бяха приети". Така плановете за финансиране навлезли в задънена улица. Bell Labs не искали да инвестират твърде много пари в твърде малко хора с твърде неясен план.

Корените на UNIX започват някъде в ранната пролет на 1969, по време на една неофициална дискусия за това какво трябва да може да прави една компютърна операционна система.

Томпсън решава, след като става ясно, че Multics загива, да напише собствена операционна система и да създаде среда, в която да продължи своята бъдеща работа. След края на дискусията започнали да се записват разни бележки с предложения, които положили началото на UNIX. Всеки от разработчиците получавал копие от бележките на другите и тези бележки станали работния документ за създаването на файловата система.

На хоризонта се появява PDP-7 и разработчиците решават да реализират файловата система именно на тази машина. Така през лятото на 1969 Томпсън започва реализация на идеята за файлова система, която до този момент е съществувала само на хартия и се е оформила след многобройни дискусии пред черната дъска в Computing Science Research Center на Bell Labs. Тази файлова система била наречена шеговито от Ричи "тебеширена файлова система."

Томпсън започнал работа по цялата система, като си отделил по седмица за операционната система, обвивката (шелът), редактор и асемблер, който да възпроизвежда себе си. Първото, с което се заловил Томпсън по създаването на ОС-а, било изясняване на изискванията и идеята за процесите. След което той създал малки потребителски програмки за копиране, отпечатване, триене и редактиране на файлове. След което дoшъл редът за създаването на командния интерпретатор, или обвивката.

Така операционната система започва постепенно да придобива форма. През 1970 Браян Кърниган(Brian Kernighan) предлага името "UNIX," нещо като игра на думи с "Multics."

Ричи и Томпсън прехвърлят Unix на PDP-11 посредством телетайп.
Увеличаване
Ричи и Томпсън прехвърлят Unix на PDP-11 посредством телетайп.

Скоро става ясно, че времето на PDP-7 безвъзвратно отминава. Предложението за купуване на PDP-11 за $65,000 било одобрено, след като двамата шефове на изследователските отдели Дъг МакИлрой и Лий Макмеън осъзнали възможностите на новата операционна система. PDP-11 пристигнала през лятото на 70-та година, но тя била толкова нова, че още го нямало дискът за нея. Така че усилията по прехвърлянето на UNIX започнали чак през декември същата година.

Първият потенциален клиент на UNIX бил патентното ведомство към Bell Labs, който оценявал в момента комерсиални системи за подготовка на патентни приложения. Оценката била въз основа на факта колко лесно се редактира и форматира. UNIX се справил - експериментът бил успешен и патентното ведомство започнало употреба на UNIX, като по този начин станала първата институция, която признава и одобрява работата на екипа.

"Останалото," казва Ричи, "е история."

Раждането на C

Първата версия на UNIX била написана на асемблер, но желанието на Томпсън било тя да бъде написана на език от по-високо ниво. Томпсън пробвал през 1971 да използва Fortran на PDP-7, но се отказал още първите дни. След това той написал много прост език, който нарекъл B и който работел на PDP-7. Работел, но не без проблеми. Първо, защото програмките за него се интерпретирали, а това е бавен процес. Второ, основите на езика B, който бил базиран на BCPL, не били подходящи за машина като новата PDP-11.

Ричи използвал PDP-11 за да добавя нови типове към B, който за малко се наричал NB от "New B"(нов B), след което започнал да пише компилатор за него. Така започнал да се заражда добре познатият ни C.

Втората фаза - пренаписването на UNIX на C била доста по-бавна. Томпсън старирал пренаписването през 1972, но се сблъскал с два проблема: как да прехвърли контрола от един процес на друг и как да създаде подходяща структура от данни, тъй като в оригиналната версия на C нямало структури от данни. Комбинацията от тези два проблема накарала Кен да вдигне ръце в края на лятото. През годините Ричи добавил към C така необходимите структури, подобрил доста кода и чак тогава станало възможно пренаписването на цялата ОС на C.

Друго нововъведение, което води от UNIX е разработването на пайпове ( pipe - тръба), които дават възможност на програмистите да навържат няколко процеса, да използват специфичен вход и изход. Идеята се води на Дъг МакИлрой, тогава шеф на центъра за компютърни изследвания, а самата реализация се пада на Томпсън.

Ражда се нова философия

Докато Томпсън и Ричи обсъждали пред черната дъска файловата система, МакИлрой скицирал на неговата черна дъска идеята за това как да се свържат няколко процеса и работел на идеята за създаване на език, който да прави това. Въпреки че било доста трудно, МакИлрой не се отказал от идеята. През периода от 1970 до 1972 се оформяла идеята, която впоследствие залегнала в командния интерпретатор на UNIX и била реализирана от Кен. Топмсън пренаписал няколко от програмите за една нощ, за да напаснат, и така започнали да се раждат онези адски поредици от команди само-на-един-ред.

Така се зародила и философията за правенето на малки, но стабилни, програмки, които да си взаймодействат с другите. Тези програмки били като инструментите в гаража - когато ти потрябват, да ги използваш.

Начинаещите вече можели да експериментират с пайповете, навързвайки няколко програми за решаване на конкретна задача.

Получило се така, че с прости програмки можела да се реши голяма задача, и това ставало естествено и разбираемо (за програмистите естествено).

Тръгва славата на UNIX

През 1976-77 Кен Томпсън си взима 6 месеца отпуск от Bell Labs за да преподава като гостуващ професор във факултета по информатика в Бъркли. Това, на което учил студентите, естествено било UNIX. Докато бил във Бъркли той продължил разработката на UNIX и стигнал до версия 6.

Тази версия станала моментален хит и бързо се разпространила из академичните среди. Когато Томпсън се върнал в Bell Labs, студентите и професорите продължили да подобряват UNIX. Впоследствие много от тези подобрения били внедрени в това, което е известно сега като Berkeley Software Distribution ( BSD ) Version 4.2. BSD била купена от много университети. UNIX се разпространявал посредством академичен лиценз, който бил относително евтин, както и правителствен и комерсиален лиценз от 1975. Университетът в Бъркли разпространил славата на UNIX със създаването на Групата за Компютърни Изследвания (ГКИ), ръководена в началото от Робърт Фабри (Robert Fabry). ГКИ създава TCP/IP протоколите, които са основата на Internet и които присъствали в тяхната BSD дистрибуция. Експанзията на UNIX в академичните среди била и благодарение на това. Digital VAX машините били на цена, която можели да си позволят университетите. Впоследствие, UNIX е играл и ключова роля при създаването и изграждането на Internet, тъй като повечето VAX компютри, които са били в мрежата, са вървяли под UNIX.

Бизнес средите проявяват интерес

С разпространението на UNIX в академичния свят, започва и интересът от страна на различни бизнес среди - благодарение на новоназначените програмисти, които използвали UNIX в университети.

Появила се нова възможност за бизнеса - писане на комерсиални програми за UNIX. Това, което помагало на UNIX, било неговото времеделение, многозадачност, възможноста да се използва от много потребители на мини или големи мейнфрейм машини, както и неговите e-mail възможности.

През 1984, AT&T се отделя от Bell и създава независимо подразделение AT&T Computer Systems. Създаването на подразделението позволява на комуникационния гигант да влезе в компютърния бизнес. Новото подразделение създало редица компютърни продукти, един от които е UNIX - System 5, който вървял на 3B компютърната серия от AT&T .

С нарастването на версиите на UNIX, UNIX System Group ( USG ), която била формирана през 1970 като подръжка на UNIX в самата Bell System, била реорганизирана и така се родила UNIX Software Operation (USO) през 1989.

Различни други компании също продавали компютри с UNIX. За пример ще посоча Sun Microsystems, SGI, Hewlett-Packard, NCR и IBM.

В Бъркли, а и не само там, програмистите започнали "подобряване" на UNIX, като добавяли нови възможности и приложения, подобрявали кода, опитвайки се да извлекат максималното от системата. С времето се появили множество версии на UNIX, включително официалните версии на Bell Labs.

Ето и някои ранни версии:

   * Version 6 - 1975 - приложение - Университети
   * Version 7 - 1978 - приложение - Университети и комерсиални организации. Положена е основата на System V.
   * System III - 1981 - приложение - Комерсиални организации
   * System V, Release 1 - 1983 - приложение - Комерсиални организации
   * System V, Release 2 - 1984 - приложение - Комерсиални организации, цялостни подобрения
   * Version 8 - 1985 - приложение - Университети
   * Version 9 - 1986 - приложение - Университети
   * Version 10 - 1989 - приложение - Университети

В допълнение ще посоча, че има няколко университетски версии, най-важната от която BSD дистрибуцията, създадена в Бъркли. AT&T сключва съюз със Sun Microsystems за интегриране на най-добрите черти на UNIX в една унифицирана система. Докато това решение било аплодирано от мнозина, една група от лицензиралите UNIX се оплакала от предимството, което Sun ще получи спрямо другите лицензирали UNIX за комерсиални цели. През 1988 загрижените формирали специална група наречена Open Systems Foundation ( OSF ), чиято цел била да се "разкрие" UNIX в рамките на UNIX обществото. Междувременно няколко големи компании, които през това време рекламирали техните собствени версии на UNIX, също се присъединили към OSF.

В отговор AT&T и втора голяма група от лицензиралите UNIX за комерсиална употреба създали своя група, която нарекли UNIX International. Скоро търканията между двете групи и техните действия били определени от пресата като "UNIX войни."

Когато пропаднали усилията за обединяване на тези две групи, всяка от двете групи излязла със своя версия на "отворен" UNIX. Това имало положителни и отрицателни аспекти - броят на UNIX версиите спаднал до 2, но още 2 версии на UNIX трябвало да се добавят към големия куп. Как се развива UNIX През 1993 Novell Corporation купува USL и UNIX от AT&T и се ражда UnixWare. През 1995 Novell продава целият си UNIX бизнес на Santa Cruz Operation ( SCO ).

През всички тези години в лабораториите на Bell Labs не спират разработката на UNIX, като се разработват Versions 8, 9 и 10.

Къде е мястото на UNIX в наши дни

Успехът на UNIX се преплита с този на C, първият език за програмиране от високо ниво, който съчетава в себе си ефективността на асемблер. Както UNIX, така и програмите писани на C могат лесно да бъдат прехвърляни от машина на машина, без да се прави основно пренаписване на софтуера.

UNIX-базирани системи в момента се продават от различни компании. Такива системи са Solaris* на Sun Microsystems, HP-UX* на Hewlett-Packard, AIX* на IBM и Tru64 UNIX* на Compaq. В допълнение има много свободни UNIX подобни ситеми като ГНУ/Линукс , FreeBSD и NetBSD .

UNIX е системата, която използват повечето от големите Internet сървъри, университети и голяма част от академичните и изследователски среди. Повечето от комерсиалния софтуер е написан на C или C++, наследника на C, който е разработен отново в Bell Labs, или пък Java, C++ наследника на разработен от Sun Microsystems.

По развитието на софтуера и хардуера през годините може да се проследи и влиянието на UNIX в компютърния сектор. Голяма част от подходите и идеите в UNIX са повлияли при създаването на голяма група от операционни системи.

"30 години след създаването си UNIX продължава да е феномен" - учудва се Ричи.


Външни препратки

Лични инструменти