ІСТОРІЯ СТВОРЕННЯ UNIX
Історія ОС UNIX почалася в надрах Bell Telephone Laboratories (тепер AT&T Bell Laboratories) і пов'язана з відомими тепер усім іменами Кена Томпсона, Денніса Рітчі і Брайана Кернігана.
З 1965 по 1969 рік компанія Bell Labs разом з компанією General Electric і групою дослідників з Масачусетского технологічного інституту приймала участь у проекті ОС Multics. Метою проекту було створення багатокористувацької інтерактивної операційної системи, що забезпечує велику кількість користувачів зручними і потужними засобами доступу до обчислювальних ресурсів. Основним недоліком ОС Multics, що, як видно, і перешкодив довести систему до рівня програмного продукту, була її надмірна складність. Серед учасників проекту Multics знаходилися Кен Томпсон і Денніс Рітчі.
Прийнято вважати, що вихідним поштовхом до появи ОС UNIX з'явилася робота Кена Томпсона по створенню комп'ютерної гри "Space Travel". Він робив це в 1969 році на комп'ютері Honeywell 635, що до цього використовувався для розробки проекту MAC. У цей же час Кен Томпсон, Денніс Рітчі та інші співробітники Bell Labs запропонували ідею удосконаленої файлової системи, прототип якої був реалізований на комп'ютері General Electric 645. Однак комп'ютер GE-645, що був розрахований на роботу в режимі розділення часу і не мав достатньої ефективності, не підходив для переносу Space Travel. Томпсон почав шукати заміну і знайшов, що 18-розрядний комп'ютер, який з'явився на цей час, PDP-7 з 4 кілословами оперативної пам'яті і якісним графічним дисплеєм цілком для цього підходить.
Після того, як гра була успішно перенесена на PDP-7, Томпсон вирішив реалізувати на PDP-7 розроблену раніше файлову систему. Додатковою підставою для цього рішення було те, що компанія Bell Labs відчувала потребу в зручних і дешевих засобах підготовки і ведення документації. Незабаром на PDP-7 працювала файлова система, у якій підтримувалися: поняття inodes, підсистема керування процесами і пам'яттю, що забезпечує використання системи двома користувачами в режимі поділу часу, простий командний інтерпретатор і кілька утиліт. Усе це ще не називалося операційною системою UNIX, але вже містило родові риси цієї ОС.
Назву придумав Брайан Керниган. Він запропонував назвати цю двохкористувацьку систему UNICS (Uniplexed Information and Computing System). Назва сподобалася, оскільки, крім іншого, вона нагадувала про участь співробітників Bell Labs у
проекті Multics. Незабаром UNICS перетворилося в UNIX (вимовляється так само, але на одну літеру коротше).
Першими реальними користувачами UNIX стали співробітники патентного відділу Bell Labs. Однак існували деякі проблеми, пов'язані з PDP-7. По-перше, ця машина не належала комп'ютерній групі (була тільки в тимчасовому користуванні). По-друге, можливості цього комп'ютера не задовільняли потреби дослідників. Тому в 1971 році був придбаний новий 16-розрядний комп'ютер фірми Digital Equipment PDP-11/20, і на нього була перенесена UNIX. Варіант системи, що існував до цього часу, був написаний мовою ассемблера, отже можна уявити, що перенос був зовсім не
простою справою. На PDP-11 система підтримувала більшу кількість користувачів. Крім того, була реалізована утиліта форматування текстових документів roff (теж мовою ассемблера).
У листопаді 1971 року був опублікований перший випуск документації по ОС UNIX ("Перша редакція"). Відповідно до цієї "Першої редакції" назвали і відповідний документації варіант системи. Згодом це стало традицією: нова редакція ОС UNIX з'являлася при виході у світ нової редакції документації.
Друга редакція з'явилася в 1972 році. Найбільш істотною якістю "Другої редакції" було те, що система була переписана мовою Бі ("B"). Мова та інтерпретуюча система програмування були розроблені Кеном Томпсоном під впливом існуючої мови BCPL.
Поява варіанта системи, написаного не мовою ассемблера, було помітним просуванням вперед. Однак сама мова Бі багато в чому не задовольняла розробників. Подібно мові BCPL мова Бі була безтиповою, у ній підтримувався тільки один тип даних, що відповідає машинному слову. Інші типи даних емулювались бібліотекою функцій. Денніс Рітчі, що завжди захоплювався мовами програмування, вирішив усунути обмеження мови Бі, додавши в мову систему типів. Так виникла мова Сі ("C"). У 1973 році Томпсон і Рітчі переписали систему мовою Сі. До цього часу існувало близько 25 встановлених ОС UNIX, і це була "Четверта редакція".
У липні 1974 року Томпсон і Ритчи опублікували в журналі Communications of the ACM історичну статтю "UNIX Timesharing Operating System", що поклала початок новому етапу в історії системи. ОС UNIX зацікавилися в університетах. Цьому сприяла політика компанії Bell Labs, що оголосила про можливість безкоштовного отримання вихідних текстів UNIX для використання з метою освіти (потрібно було платити тільки за носії та документацію).
"П'яту редакцію" ОС UNIX, що з'явилась на цей час, одними з перших отримали Каліфорнійський університет м.Берклі й університет Нового Південного Уельсу м.Сідней (Австралія).
У 1975 році компанія Bell Labs випустила "Шосту редакцію" ОС UNIX, відому як V6 або Дослідницький UNIX. Ця версія системи була першої комерційно доступної поза Bell Labs. До цього часу велика частина системи був написаний мовою Сі.
Невеликі розміри мови і наявність порівняно легко переносимого компілятора додавали ОС UNIX V6 нової якості реально переносимої операційної системи. Крім того, потенційна наявність на різних апаратних платформах компілятора мови Сі уможливлювало розробку мобільного прикладного програмного забезпечення.
Важливий крок у цьому напрямку був зроблений Деннісом Рітчі, що у 1976 році створив бібліотеку вводу/виводу (stdio), яка стала фактичним стандартом різних систем програмування мовою Сі. З використанням stdio стало можливо створювати
мобільні прикладні програми, що дійсно не залежать від особливостей апаратури процесора і зовнішніх пристроїв.
Приблизно в цей же час Кен Томпсон під час своєї академічної відпустки відвідав університет м.Берклі й встановив там UNIX V6 на комп'ютері PDP-11/70. Білл Джой (засновник BSD - Berkeley Software Distribution, а згодом засновник і віце-президент компанії Sun Microsystems) був тоді дипломником цього університету.
Після завершення роботи в Bell Labs відправився Річард Міллер з метою обговорити отримані результати з Томпсоном і Рітчі. Незадовго до цього в Bell Labs був закуплений комп'ютер Interdata 8/32. В принципі, компанія Bell Labs була задоволена можливостями і ціною комп'ютерів сімейства PDP-11. Однак 16-розрядна організація цих комп'ютерів обмежувала можливості ОС UNIX (занадто малий розмір віртуальної пам'яті для розробки великих і складних програм). Перехід на 32-розрядні архітектури дозволяв подолати ці обмеження.
Наявність 32-розрядного комп'ютера Interdata 8/32 і наявний позитивний досвід Річарда Міллера по переносу (хоча і не повному) ОС UNIX на Interdata привели до того, що Томпсон і Рітчі вирішили зробити повний перенос UNIX на свою нову
машину. Для початку було потрібно розвинути мову Сі, щоби програмісти могли використовувати особливості 32-розрядних архитектур. Для цього Денніс Рітчі розширив систему типів мови Си типами union, short integer, long integer і unsigned
integer. На додаток до цього, у мові з'явилися розвинуті засоби ініціалізації змінних, бітові поля, макроси і засоби умовної компіляції, регістрові і глобальні змінні та ін. Одним словом, мова Сі стала такою, якої вона описана у найвідомішій книзі Кернігана і Рітчі "Мова програмування Сі" (скорочено прийнято називати цей діалект мови K&R).
Однак однієї розширеної мови Сі було недостатньо для переносу UNIX, оскільки сама організація UNIX V6 була занадто орієнтована на особливості PDP-11. Довелося цілком переписати підсистему керування оперативною і віртуальною пам'яттю і змінити інтерфейс драйверів зовнішніх пристроїв, щоби зробити систему більш легко переносимою на інші архітектури. Результатом роботи стала "Сьома редакція" UNIX (частіше її називають UNIX Version 7). До складу нової версії системи входив компілятор нового діалекту мови Сі PCC (Portable C-Compiler), новий командний інтерпретатор sh, названий також на честь свого творця Bourne-shell, набір нових драйверів пристроїв і багато чого іншого.
Починаючи з 1975 року фірма AT&T почала надавати ліцензії на використання операційної системи як науково-освітнім установам, так і комерційним організаціям. Оскільки основна частина системи поставлялася у вихідних текстах, написаних мовою C, досвідченим програмістам не було потрібно детальної документації, щоби розібратися в архітектурі UNIX. З ростом популярності мікропроцесорів інші компанії переносили UNIX на різні платформи, але простота і зрозумілість операційної системи спокушали багатьох на її розширення і модифікацію, у результаті чого з'явилося багато
різних варіантів базової системи.
Не бажаючи втрачати ініціативу, AT&T у 1982 об'єднала кілька існуючих версій UNIX і створила версію за назвою System III. Ця версія була створена для поширення за межами Bell Labs і AT&T і поклала початок потужній гілці UNIX, що і сьогодні живе і розвивається.
У 1983 була випущена нова версія System V Release 2 (SVR2). У 1987 з'явилася наступна версія - System V Release 3 (SVR3). А в 1989 році була випущена нова основна версія - System V Release 4 (SVR4). Власне кажучи, вона об'єднала можливості декількох відомих версій UNIX: SunOS фірми Sun Microsystems, BSD UNIX компанії Berkeley Software Distibution і попередніх версій System V. Багато компонентів системи були підтримані стандартами ANSI, POSIX, X/Open, SVID.
Четверта редакція UNIX була встановлена в Каліфорнійському університеті в Берклі в 1974. З цього моменту початку свою історію гілка UNIX, відома як BSD UNIX. На сьогодні поширеними версіями, випущеними в Берклі стали системи 4.4BSD і BSD Lite, що з'явилися в 1993 році.
Найбільш популярними на сьогодні є наступні версії.
- AIX - версія UNIX фірми IBM.
- HP-UX - версія UNIX фірми Hewlett-Packard.
- IRIX - версія UNIX фірми Silicon Graphics.
- Digital UNIX - версія UNIX фірми Digital Equipment Corporation (DEC).
- SCO UNIX - версія UNIX фірм Santa Cruz Operation (SCO), Microsoft і Interactive Systems.
- Solaris - версія UNIX фірми Sun Microsystems.
- Linux - вільно розповсюджувана версія UNIX, спочатку була розроблена Лінусом Торвальдсом (Linus Torvalds) в Університеті Хельсінкі (Фінляндія). Linux був створений за допомогою багатьох UNIX-програмістів і ентузіастів з Internet, тих, хто має достатньо навичок і здібностей розвивати систему. Ядро Linux не використовує коди AT&T чи будь-якого іншого приватного джерела, і більшість програм Linux розроблені в рамках проекту GNU з Free Software
Foundation у Cambridge, Massachusetts. Але в нього внесли лепту також програмісти усього світу. Сьогодні Linux - це повноцінна ОС сімейства UNIX, здатна працювати з XWindow, TCP/IP, Emacs, UUCP, mail і USENET. Практично всі найважливіші програмні пакети були встановлені і на Linux, тобто для Linux тепер доступні і комерційні пакети. Усе більша розмаїтість обладнання підтримується у порівнянні з первісним ядром. На сьогодні він цілком конкурентноздатний у порівнянні з робочими станціями Sun Microsystems і Digital Equipment Corporation.
|