My PPS Homework

UNIX

Виктор  Георгиев Стоянов

Технологично училище “Електронни системи” към ТУ-София, www.elsys-bg.org

  1. Въведение

Unix е компютърна операционна система, разработена през 60-те и 70-те години на миналия век от група специалисти от AT&T, работеща в Bell Labs. Част от тези тази група са Кен Томпсън, Денис Ричи и Дъглас МакИлрой. В днешно време Unix има различни версии, разработени през годините от AT&T, както и от други комерсиални доставчици и некомерсиални организации.

Сегашният собственик на търговската марка UNIX е консорциумът за индустриални стандарти The Open Group. Правата върху изходния код на Unix обаче са оспорвани в дело от 2004 г., в което доставчикът на UNIX SCO Group обвинява Novell в оклеветяване на името . Забележете, че собственикът на търговската марка използва названието UNIX, а не Unix. Терминът UNIX не е акроним, а следва историческата конвенция компютърните системи да се именуват с главни букви като ENIAC и MISTIC.

Само системи, напълно съвместими и сертифицирани по UNIX спецификацията Single UNIX Specification  могат да се наричат “UNIX”. Другите се наричат “Unix-подобни” .

В началото на 70-те и 80-те, когато компютрите не са толкова разпространени, академичните кръгове са вдъхновени от Unix, което води до широкомащабното ѝ възприемане и то най-вече на варианта BSD, създаден в Калифорнийски университет – Бъркли, а също и от нови компании като Sun Microsystems. В наши дни в допълнение на сертифицираните Unix системи, Unix-подобните операционни системи като Linux и Mac OS X са често срещани.

Понякога названието традиционен Unix се използва за Unix или за операционна система с характеристики на Version 7 Unix или UNIX System V.

Unix операционните системи се използват както за сървъри, така и за работни станции. Този вид среда и моделът клиент-сървър са основни елементи при разработването на Интернет и при създаването на компютърните мрежи, тоест в контраст с разработките на операционни системи за персонални компютри.

Както Unix, така и C, разработени от AT&T и разпространени в службите на американското правителство и академичните институции, са приспособявани към различни архитектури и операционни системи. В резултат на това Unix се свързва с понятието “отворена система”.

Unix е проектирана като преносима, многозадачна и многопотребителска, когато е във времеразделяща конфигурация. За тези системите са характерни особености  като, използването на неформатиран текст за запазване на данни, йерархична файлова система. Също така устройствата и някои видове процеси се третират като файлове, използват се голям брой малки програми, които могат да бъдат навързани заедно чрез интерпретатор на командна линия и чрез канали, в контраст с използването на една монолитна програма със същата функционалност. Тези концепции са известни като философия на Unix.

В Unix, “операционната система” се състои от тези инструменти заедно с ядрото kernel, коетое основната контролираща програма. Ядрото отговаря за пускане и спиране на програмите, за работа с файловите системи и за други задачи от “високо ниво”, които са общи за повечето програми. Най-важната му задача обаче е, че то контролира директния достъп до хардуера и разрешава конфликтите, като например когато две програми едновременно искат достъп до едно и също устройство. Затова ядрото има специални привилегии за достъп до системата, което води до отделянето на “потребителско” и “системно” пространство.

Микроядрото се опитва да намали размера на ядрото, като разделя ядрото на много малки части изпълняващи определени операции. Във времената на мейнфрейм машините, когато “нормалният” компютър се състоеше от твърд диск и терминали за вход-изход, файловият модел на Unix работеше много добре, тъй като входно-изходните операции бяха “линейни”. Но модерните системи имат и по-нови периферни устройства и използват графичен потребителски интерфейс, при който действието с мишката е нов, “събитиен модел” и моделът на Unix не функционира така добре. През 80-те разработчиците насочват усилията си към системите, поддържащи тези нови устройства, за да осигурят неблокиращ вход-изход, да създадат варианти на междупроцесна комуникация, различни от pipe, както и за изваждането на мрежовите протоколи от ядрото.

2. Компоненти

UNIX системата е направена от няколко елемента, които по принцип са пакетирани заедно: Ядрото kernel и още – среда за разработка, библиотеки, документи и преносимия програмния код. UNIX е всичко в едно – пълна софтуерна система. Това е ключовов развитието на операционната система – била използвана за обучение, предизвикала голям интерес. Всички тези компоненти не направили системата голяма или по друг начин казано оригиналната V7 UNIX дистрибуция, съдържаща всичко необходимо плюс сорс кода и документацията не били повече от 10 мегабайта.

3.  История

През 60-те, Масачузетският технологичен институт, AT&T Bell Labs и General Electric работят по експерименталната операционна система Multics, където името идва от Multiplexed Information and Computing Service, предназначена за мейнфрейм компютъра GE-645. Целта е създаването на комерсиален продукт, но успех не е постигнат. Multics е интреактивна операционна система с много нови възможности и повишена сигурност. В резултат от проекта е създаден краен продукт, но с много ниска производителност.

AT&T Bell Labs се оттегля и насочва ресурсите си към други проекти. Един от разработчиците от екипа на Bell Labs обаче, Кен Томпсън, продължава да работи, и създава игра за GE-645 мейнфрейм, наречена Пътуване в пространството  или  „Space Travel“ на английски. Но изпълнявана на GE машината тя е бавна и доста скъпа – изпълнението ѝ струва $75 от дефицитното компютърно време.

С помощта на Дени Ричи Томпсън пренаписва играта на асемблер за друга машина на Digital Equipment Corporation – PDP-7. Този проект заедно с работата му по проекта Multics, кара Томпсън да започне работа по нова операционна система за PDP-7. Той и Ричи ръководят екипа от разработчици от Bell Labs, сред които и Руд Канадей , разработващ файловата система както и новата многозадачна операционна система. Тя включва интерпретатор от командна линия.

През 2000, SCO продава целия UNIX бизнес на Caldera Systems, по късно променила името си на The SCO Group. Този нов играч на пазара започна съдебни процеси срещу потребители и доставчици на Linux. SCO твърдят, че Linux съдържа защитен от закона Unix код притежание на The SCO Group. Другите твърдения са нарушение на търговската тайна от IBM, или нарушаване на договора от бивши клиенти на Santa Cruz преминали към Linux. Но Novell отрича твърденията на SCO че държи правата на UNIX кода. Според Novell, SCO са франчайз за Novell, която държи основните права, и право на вето към лицензиите давани от SCO, и 95% от прихода. SCO Group не е на това мнение и го оспорва в процеса наречен SCO срещу Novell.

През юни 2005 година, Sun Microsystems решават да открият част от изходния код на Solaris 10 и да стартират проекта OpenSolaris.

4. Въздействие

UNIX оказва значително въздействие върху всички следващи операционни системи. За разлика от използвания при ранните компютри асемблер тя е написана на език от високо ниво.

В сравнение с много съвременни операционни системи, третиращи всички видове файлове като към прости масиви от байтове, Unix има драстично опростен файлов модел. В йерархията на файловата система, в която се съдържат и служебните програми и периферните устройства, като например принтери, терминали, или дискове, е необходимо да се осигури единен интерфейс. Това обаче не пасва на простия модел за “поток от байтове”.

Unix популяризира йерархичната файлова система с произволно вложени субдиректории, първоначално въведена от Multics. Останалите разпространени операционни системи в тази ера също можеха да разделят запаметяващото устройство на директории или сектори, но те най-често се ограничаваха само до едно ниво. Няколко големи частни операционни системи накрая разшириха обхвата на под-директориите подобно на Multics. Йерархията DEC’s RSX-1M’s за “потребителска група” се развива в така наречените VMS директории, а CP/M се развива в MS-DOS 2.0 субдиректория, докато йерархията на HP MPE group.account и IBM SSP и OS/400 системи библиотеки се свива в по-обширните POSIX файлови системи.

Друго нововъведение на Multics, разпространено от Unix, е създаването на команден програмен интерпретатор с командна линия, достъпна на потребителско ниво и с допълнителни команди, които са представени като отделни програми. Unix ядрото използва същия език за интерактивни команди, който се използва за скриптиране, защото shell скриптовете нямаха отделен контролен работен език както JCL на IBM. Понеже shell- а и командите на операционната система били просто “още една програма”, потребителят можеше да избере или дори сам да напише собствения си shell. Нови команди може да се добавят без шелът да се променя. Нововъведената командна линия на Unix за създаване на вериги от процеси тип производител-потребител, представлява един мощен програмен модел, широко достъпен за всички. Много от по-късно създадените интерпретатори с командна линия са вдъхновени от Unix shell-а.

Най-опростеният подход при Unix беше изборът на ASCII текст за почти всички файлови формати. В оригиналната версия на Unix нямаше двоични редактори, а цялата система беше конфигурирана чрез използването на командни скриптове в shell- a. Фокусирането върху текста и байтовете направи системата далеч по-мащабируема и подвижна от други системи. С времето текстово-базираните приложения доказаха, че са широко използваеми в други области, като например печатни езици като PostScript и интернет протоколите, като например Telnet, FTP, SMTP, HTTP и SIP.

Unix популяризира синтаксис за правилни изрази, който намери широко разпространение. Програмният интерфейс на Unix се превърна в основен стандарт на операционните системи. Програмният език С, скоро разпространен и извън рамките на Unix, вече се използва в много системи и приложения за програмиране.

Ранните Unix разработчици допринесоха за теорията на модулацията и повторната употреба в софтуерната инженерна практика, използвайки “Софтуерния” растеж.

Unix осигурява TCP/IP мрежовите протоколи за сравнително евтини компютри, които допринесоха за интернет експлозията, осигуриха свързаност в реално време и които формират основата за изпълнението на много други платформи.

Политиката на Unix за предимно он-лайн документация (поддържана в продължение на много години) и готовите системни кодове, достъпни за всички програмисти, дава началото на движението за “софтуер с отворен код” през 1983. Водещите разработчици на Unix (и на програми, които го напускат) открай време се придържат към определен набор от културни норми за разработка на софтуер, които са станали също толкова важни и толкова влиятелни като технологията на Unix; това е наречено „философията на Unix“.

Advertisements