ОС BSD: 23 роки на службі Мережі, Unix, Операційні системи, статті

У книзі історії BSD набагато більше сторінок, ніж в історії Linux. Беручи початок в далеких сімдесятих, BSD пережила епоху UNIX-мейнфреймів і розквіту найрізноманітніших UNIX-систем. Вона і до цього дня доводить свою вічність і затребуваність в особі сучасного покоління вільних, в дусі opensource-часу, дистрибутивів. Цієї осені виходить новий реліз FreeBSD 5.3, перший в стабільній гілці 5 і знаменує перехід на новий якісний рівень. Не за горами реліз NetBSD 2.0, що має приблизно таке ж значення. І те й інше – безумовно, справжня подія для всіх bsd “шників. Ця стаття – посвята легендарної операційній системі.


Професор з Берклі


Йшов 1973 рік. Час початку розквіту глем-року, в’єтнамської війни і операційної системи UNIX. Тієї самої, початкової, від AT & T (Bell Labs), яка встигла з моменту першого релізу 1971 року (UNIX Time Sharing System First Edition, або просто UNIX System V1) дорости до четвертої версії, випущеної в листопаді. І в листопаді ж, на симпозіумі «Принципи проектування операційних систем» в університеті Пурдью (Purdue) автори UNIX Кен Томпсон і Денніс Рітчі виступили зі свом першою доповіддю на тему нової ОС. На цьому симпозіумі був присутній професор Боб Фабрі з Каліфорнійського університету Берклі, якого настільки вразила краса операційки, що він відразу ж замовив копію дистрибутива на магнітній стрічці для свого університету. Про комерційний застосуванні UNIX тоді не було й мови, AT & T вільно роздавала вихідні тексти своєї системи для вивчення в освітніх установах.


Для установки і вивчення UNIX спільними зусиллями факультетів комп’ютерних наук, математики і статистики університет Берклі придбав новий комп’ютер PDP-11/45 від DEC. І в січні 1974 року аспірант Кейт Стендіфорд вже вставляв свежеполученной стрічку з UNIX System V4 в зчитує привід терміналу. Як правило, в університетах, які отримали копію UNIX, установку системи виконував сам Кен Томпсон. Але в Берклі вирішили обійтися силами своїх студентів. Через якийсь час допомогу Кена таки знадобилася – система періодично аварійно валилася. Замість того, щоб відправитися в Берклі, Томпсон подзвонив Стендіфорду і вказав того з’єднати модем з телефоном, щоб мати можливість віддалено налагоджувати систему. З’ясувалося, що проблема була в драйвері дискового контролера – PDP-11/45 виявилася першою в практиці Томпсона машиною, що мала два диски на одному контролері, на що драйвер не був розрахований. Так почалася співпраця Bell Labs і Каліфорнійського університету по вдосконаленню UNIX.


Пізніше в університеті з’явився ще один комп’ютер під управлінням UNIX. Машини в Берклі, як і в інших вузах того часу, працювали строго за розкладом – комусь був потрібен UNIX, комусь – RSTS, власна операційка від DEC, що ставилася тоді на все PDP. З 8 ранку до 4 вечора на комп’ютері працював UNIX, а потім до півночі – RSTS. Це дуже не влаштовувало професорів Юджина Вонга і Майкла Стоунбрейкера, яких настільки захопили можливості нової ОС, що вони захотіли швидше перенести на неї розробляється ними велику базу даних INGRES. Машинного часу постійно не вистачало, і навесні 1975 року в Берклі з’явився ще один DEC-11/40 під управлінням вийшла до того моменту UNIX System V5. До осені INGRESS під UNIX розійшлася в кількості декількох сотень екземплярів, в результаті чого Берклі отримав репутацію університету, в якому народжуються дійсно великі проекти.


Інтерес студентів до UNIX був воістину величезним, і восени 1975 року Фарби зі Стоунбрейкера вирішили придбати нову модель PDP-11/70, яка була набагато могутніше попередніх. В цей же час Кен Томпсон, випускник Каліфорнійського університету, вирішив ненадовго відвідати свою альма-матер і захопив з собою найостаннішу на той момент версію UNIX – System V6, яку встановили на нову PDP-11/70.


Народження BSD


Отже, до 1976 року в Берклі було вже кілька машин під управлінням UNIX. Але про серйозну її доопрацюванні ніхто не думав, поки системою не зацікавилися два студенти, тільки що закінчили навчання, – Білл Джой і Чак Хейлі. Спочатку вони проводили дні і ночі за PDP-11/70, працюючи над компілятором та мовою Pascal, в результаті зробивши його найкращим середовищем для навчання студентів програмуванню. Потім, після заміни текстових телетайпів на екранні термінали, Джой виявив, що текстовий редактор ed, що використовувався тоді, їх уже не влаштовує. І він приступив до роботи над своїм редактором, який назвав ex.


У 1976 році, після від’їзду Кена Томпсона Джой і Хейлі стали самостійно колупатися в нутрощах ядра UNIX. Результатом цього стали невеликі зміни в коді і кілька виправлень. Ці два хлопці стали першими Кернел-хакерами з Берклі.


У 1977 році Білл Джой, усвідомивши, що одними виправленнями не обійтися, почав робити свій дистрибутив. Так 9 березня 1978 з’явився «Berkeley Software Distribution» – перший реліз операційної системи Берклі. Він включав в себе горезвісну Pascal-систему з усіма вихідними текстами і редактор ex. Протягом наступного року за різними вузам розійшлося 30 копій нової ОС. Потім на PDP Берклі знову оновили пристрої введення, поставивши новенькі термінали ADM-3a, і Джой вирішив написати текстовий редактор, який використовував би всю візуальну потужність нових моніторів. Так народився великий і жахливий vi (visual editor). Крім того, Джой вирішив проблему сумісності виведення на терміналах різного типу, написавши не менш знамениту бібліотеку termcap. Все це увійшло в другій реліз ОС, «Second Berkeley Software Distribution», що вийшов 10 травня 1979. Пізніше ім’я скоротили до лаконічного 2BSD. Фінальна версія другого релізу, 2.11BSD, з поліпшеннями і доповненнями, зробленими в результаті обширного тестування системи в кількох університетах, була встановлена ​​на сотні PDP-11 машин по всьому світу. По суті, відбулося перше серйозне клонування класичного UNIX. Вельми вдале клонування.


У 1978 році шістнадцятибітну PDP вже не задовольняли багатьох хакерів, їм на зміну прийшли VAX – нові потужні машини від DEC, що працюють під ОС VMS. Зрозуміло, в Bell Labs портувала свою, вже сьому версію UNIX на нові машини, проте їх система не використала всіх переваг віртуальної пам’яті VAX. До вирішення цієї проблеми залучили Кернел-хакерів з Берклі на чолі з Біллом Джоєм. Джой був вражений можливостями нового заліза – ця система залишала PDP-11 далеко за бортом. Так він почав портувати 2BSD на VAX.


Поки його колеги Пітер Кесслер і Кірк Маккусік портувала Паскаль, Джой переписав ex і vi, свою нову командну оболонку C shell і інші утиліти. В результаті, в 1979 році Берклі випустила закінчену збірку 2BSD під VAX.


Одночасно з цією подією Bell Labs вирішила поставити UNIX на комерційні рейки і заснувала підрозділ з підготовки та випуску стабільних релізів. UNIX перестав бути дослідницьким проектом, представляючи тепер комерційний продукт AT & T. Роль центру розробки UNIX, що раніше належала Bell Labs, тепер перейшла до Берклі.


До 1979 року американське агентство передових оборонних розробок DARPA (Defence Advanced Research Projects Agency) зіткнулося з проблемою старіння багатьох комп’ютерів, що становлять її знамениту мережу ARPANET. У разі заміни треба було б перенести все програмне забезпечення на нові машини. Позначалася різношерстість мережі – різні машини, різні операційні системи. Було ясно, що для подальшого масштабування та розвитку мережі необхідна стандартизація. Так як вибір єдиної апаратної платформи для побудови мережі представлявся важко буде, стандартизацію вирішили провести на рівні ОС. Зрозуміло, в якості єдиної операційної системи був обраний UNIX, який, здавалося, можна перенести на саме неймовірне залізо.


Восени 1979 року професор Фарби почув про інтерес DARPA до UNIX і запропонував послуги свого університету. Що вийшов в грудні того ж року реліз 3BSD підтвердив, що нова система як не можна краще підходила потреб військових, і в квітні 1980-го Берклі отримала півторарічний контракт DARPA. Під контрактні роботи була створена організація Computer System Research Group (CSRG) – відділення університету, куди входили студенти і професори, зайняті роботою над BSD. Результат не змусив себе чекати – в жовтні того ж року виходить 4.0BSD з поштовою системою, планувальником завдань і багатьма іншими поліпшеннями. DARPA залишилася задоволена результатом і продовжила контакт, збільшивши інвестиції майже в п’ять разів.


Наступний реліз BSD повинен був, за логікою, називатися 5BSD. Проте в AT & T визнали, що користувачі можуть сплутати 5BSD c їх поточним комерційним релізом, System V (5). З цієї причини Берклі вирішила ввести додаткову нумерацію релізів. Так, наступними були 4.1BSD і 4.2BSD.


Продовжений контракт з DARPA передбачав створення нової швидкої файлової системи (Fast File System), щоб ефективно використовувати можливості нових жорстких дисків, підтримку процесів з багатогігабайтні адресним простором, створення механізму гнучкого взаємодії між процесами, а також єдиного інтегрованого стека мережевих протоколів для спілкування машин в ARPANET.


Джой зайнявся взаємодії між процесами (що згодом одержало назву UNIX sockets), реалізацію файлової системи взяв на себе Маккусік, а Роб Гурвіц реалізував TCP / IP, яку потім включили в ядро BSD. Тоді ж були написані мережеві утиліти для взаємодії по мережі: rcp, rsh, rlogin, rwho. Вийшла настільки хороша система, що розробники вирішили випускати її не тільки для DARPA.


Слідом за проміжними релізами 4.1a і 4.1b була випущена 4.2BSD. Популярність нового релізу виявилася приголомшливою – за півтора року він розійшовся тиражем більше тисячі копій! Зі своєю новою файловою системою FFS і інтегрованою підтримкою мережі ОС з Берклі залишила UNIX System V далеко позаду. І хоча потім багато можливостей 4.2BSD були перенести в System V, BSD довго залишалася лідером на ринку UNIX-систем.


Навесні 1982 року Джой, напевно, вирішив, що основне вже зроблено, тому пішов у Sun Microsystems. Тим не менш, в системі ще багато чого потрібно було налагодити, про що свідчили тести продуктивності і багрепорти. Це нормальне явище, коли ОС стає популярною. Маккусік співтовариші залишилися в CSRG, займаючись очищенням багів і підготовкою нового релізу. 4.3BSD була випущена через довгі 4 роки в червні 1986. Багато користувачів за цей час повернулися до UNIX System V, що встигла придбати підтримаю мережі та багато інших можливостей, що з’явилися в 4.2BSD. Так що новий реліз осі Берклі дозволив поправити її похитнулися позиції.


В кінці вісімдесятих ера VAX підходила до кінця. Передбачаючи це, Джой ще під час підготовки релізу 4.1 займався розподілом коду ядра на машинно-залежні та незалежні частини, щоб надалі їх було простіше адаптувати під нові процесори. Змінити VAX повинна була архітектура Power 6/32 від «Computer Consoles, Inc.», І в Берклі навіть випустили 4.3BSD під кодовою назвою «Tahoe», закінчивши роботу Джоя з розділення коду. Проте популярності нова платформа не здобула і незабаром померла. Як би там не було, саме вона стала каталізатором завершення робіт по створенню цієї пристосованість системи. Це згодом зіграло свою роль, коли BSD портувала на безліч апаратних платформ.


Мережа, BSD-ліцензія і Великий Суд


Кінець вісімдесятих років – це розквіт різноманітних юніксової ОС і мережевих технологій. До цього часу вже стало ясно, що без мережі далі нікуди, тому основна увага приділялася мережевим компонентам. Вгадай з трьох разів, у кого в ті роки була краща реалізація стека протоколів TCP / IP? Ось чому співтовариство було так зацікавлене у вільному використанні вихідних кодів операційки Берклі. CSRG, слідуючи традиціям дослідного духу, завжди випускав свою систему разом з исходниками, але, на жаль, не міг надавати право іншим організаціям використовувати їх для застосування в своїх продуктах. Цього не дозволяла ліцензія, по якій AT & T поширювала исходники свого UNIX. А BSD, хоч і була самостійною системою, грунтувалася на коді від Bell Labs. Так що будь-який користувач BSD був зобов’язаний купити ліцензію на UNIX у AT & T. Але стек TCP / IP для BSD був цілком розроблений в Берклі, тому влітку 1989 року приймається рішення випустити так званий «Networking Release 1», або 4.3BSD Net / 1 – по суті, шматок операційної системи, що містить код мережевого стека протоколів і супутніх утиліт. Код випустили під новою ліцензією, яку так і назвали – BSD License. Відповідно до неї будь-хто міг вільно завантажити вихідні тексти і використовувати їх у своїх цілях, у тому числі комерційних, без будь-яких відрахувань Берклі, лише тільки зберігши копірайти в тексті файлів і вказавши в документації до свого продукту, що він заснований на коді з Берклі.


Вчинок хлопців з Берклі викликав виключно позитивну реакцію. Кілька великих компаній виклали вихідні коди на свої ftp-сервера для вільного доступу, в університет, крім подяк, надійшло безліч пожертвувань грошових коштів на подальший розвиток ОС.


І незабаром Берклі випустив вже другу версію свого мережевого релізу. В ньому з’явилися кардинальні зміни в підсистемі віртуальної пам’яті (код взятий з проекту Mach університету Карнегі-Мелона) і нова мережева файлова система (NFS). В обох випадках використовувалися готові напрацювання дружніх університетів, що показало вигоду й цінність BSD-ліцензії – замість того щоб писати щось з нуля, можна використовувати те, що написали інші, у відповідь надаючи їм свої напрацювання. Таким чином не було потреби винаходити велосипед, і час витрачалося на нові розробки.


Новий реліз BSD повинен був мати порядковий номер 4.4, проте в Берклі вирішили попередньо протестувати зміни, випустивши на початку 1990 року реліз 4.3BSD-Reno.


Незабаром після цього один з розробників BSD Кейт Бостік згадав про вдалий досвід з мережевим релізом і зазначив, що непогано б випустити і решту системи під BSD-ліцензією. Однак для цього треба було б переписати величезна кількість утиліт з бібліотек, які прийшли в BSD з AT & T UNIX. Ведучі на той момент розробники Кірк Маккусік і Майк Карельс скептично сприйняли ідею – аж надто великий був обсяг роботи. Але Бостік не здавався. Він зважився на експеримент, який в якійсь мірі потім був повторений Линусом Торвальдсом і став основою розвитку систем з відкритими вихідними кодами. Бостік закликав BSD-хакерів з усією мережі переписати UNIX-утиліти, керуючись лише інструкціями того, що ті повинні робити. 18 місяців по тому практично всі утиліти і бібліотеки були переписані. У Берклі тепер була дійсно своя система. Залишалося переписати ядро, яке на той час вже значною мірою було своїм. І Маккусік, Карельс, Бостік, закинувши всі справи, почали рядок за рядком вивчати файли ядра, що залишилися з часів AT & T UNIX. В результаті залишилося всього шість файлів, які, на думку розробників, так просто переписати б не вдалося. Їх вирішили залишити на місці і в червні 1991 року Берклі випустила «Networking Release 2 »(4.3BSD Net / 2). Тепер практично вся система (крім шести файлів ядра) була абсолютно доступна всім бажаючим під самою дружньої в світі BSD-ліцензією. Це і визначило майбутнє вічне життя BSD.


У дев’яностих роках IBM PC остаточно захопила нішу недорогих комп’ютерів. Через півроку після другого мережевого релізу, Білл Джоліц почав портувати Net / 2 на архітектуру i386, переписавши відсутні 6 файлів. Він назвав свою роботу 386/BSD і розповсюдив її по мережі. Витівка виявилася вдалою, і незабаром групи користувачів 386/BSD зайнялися написанням патчів і удосконаленням системи. Так стартували сучасні проекти NetBSD і FreeBSD.


Сам Джоліц разом з деякими членами CSRG пішов просувати BSD в комерцію, заснувавши компанію BSDI (Berkeley Software Design, Inc.). Благо, код, випущений під BSD-ліцензією, дозволяв продавати дистрибутив без вихідних кодів. BSDI активно рекламувала свою нову систему BSD / OS як UNIX, і всім зацікавленим пропонувалося дзвонити по телефону 1-800-ITS-UNIX. Однак компанію AT & T обурив такий крок, і вона в особі Unix System Laboratories (USL), підрозділи з продажу та розробці UNIX, зажадала негайно припинити рекламувати продукт BSDI як UNIX і прибрати номер телефону. Умови були виконані, і BSDI навіть змінила рекламу свого продукту, пояснюючи, що це не UNIX. Однак USL цього було мало, і вона подала в суд на BSDI, звинувативши компанію в продажу коду, що належить Bell Labs. У відповідь BSDI надала докази, що її система – це не що інше, як копія продукту, вільно поширюваного університетом Берклі плюс шість додаткових файлів, написаних програмістами компанії. За код Берклі BSDI, ясна річ, відповідальності не несла, так що перемога в суді була за нею.


USL не вгамовувалася і подала в суд на Каліфорнійський університет в особі CSRG. Після місяців довгих розбирань було вирішено безпосередньо звірити код операційних систем, щоб знайти в BSD шматки коду USL. В результаті з Net / 2 були видалені 3 файла, що залишилися з часів UNIX System V5, і ще в 70 файлів були додані копірайти USL. Все інше на той час вже було переписано хакерами з CSRG в рамках підготовки Net / 2. Вільна система зберегла свободу!


За підсумками судових розглядів остаточна версія релізу BSD вийшла під назвою 4.4BSD-Lite влітку 1994 року, під тією ж ліцензією, що і Net / 2. Важливим рішенням суду був той факт, що USL не мала права судити якусь організацію, що використовує 4.4BSD-Lite в якості бази для своєї ОС. Тому всі розробники, вже випускали свої релізи на основі Net / 2 (а на той час вже існували NetBSD і FreeBSD, що базувалися на 386/BSD), були змушені перейти на нові вихідні тексти. Що вони і зробили за найкоротший час.


4.4BSD-Lite2. BSD is dead, Long Live BSD!


2 червня 1995 вийшла 4.4BSD-Lite Release 2 з невеликими поліпшеннями і доповненнями. Після цього останнього релізу група CSRG університету Берклі оголосила про свою відставку. За 20 років BSD з клона UNIX перетворилася в самостійну ОС, подарувавши світові надійну файлову систему, еталонну реалізацію стека TCP / IP, систему друку LPD і, що найголовніше, свободу. Після розпуску CSRG BSD не думала вмирати. FreeBSD на той час стала лідируючою unix-like ОС на intel-машинах, NetBSD портувала на безліч платформ, BSD / OS пропонувала чудові комерційні рішення. Берклі виконали свою місію, пустивши UNIX у вільне плавання по мережевому океану, і плавання це буде тривати вічно.


Відмінності BSD і Linux


Якщо ти прочитав статтю, ти, напевно, сам зможеш відповісти на це питання. BSD – це ціла операційна система з 30-річною історією, тоді як Linux – всього лише ядро, само по собі до вживання не придатне. Тому, говорячи про дистрибутивах Linux, коректніше називати їх GNU / Linux – операційна система GNU з ядром Linux. GNU – це фонд програмного забезпечення, який з’явився в 80-ті роки з метою створити вільний UNIX, поширюваний під GPL-ліцензією. Батько GNU GPL і – Річард Столлман.


Якщо говорити про технічну сторону справи, то в BSD, на відміну від класичної UNIX System, немає поняття рівня запуску (runlevels), а є тільки два режими – однокористувацький (single user) і розрахований на багато користувачів (Multi user). Відповідно, є різниця в розташуванні керуючих скриптів і в поведінці деяких утиліт. Нарешті, BSD має історично сформовану ієрархію файлової системи, набору сервісів і скриптів, тоді як в Linux все згадане скаче від дистрибутива до дистрибутива, як розробники побажають.


Нікси


За аналогією з неофіційним терміном «* nix», що позначає все UNIX-системи, існує термін «xBSD», який вживається у випадку, якщо мова йде не про конкретний проект, а про сімейство дистрибутивів в цілому.


BSD-ліцензія


BSD-ліцензія, напевно, сама ліберальна за всю історію. Її вимоги можна сформулювати у трьох пунктах:


– Не стверджуй, що ти написав це. Зберігай наші копірайти у вихідних текстах. Якщо поширюєш свій продукт тільки в бінарному вигляді – вказуй в супровідній документації, що він використовує код з Берклі.


– Не використовуй наше ім’я для просування свого продукту. Те, що ти зробив, засноване на коді BSD, але не має права називатися BSD. Наша марка не може використовуватися в рекламних цілях.


– Не пред’являти претензії, якщо щось не запрацює. Немає жодних гарантій, код надається AS IS, на свій страх і ризик.


BSD Daemon


Всі знають, що символ BSD – симпатичний демон. З’явився він у 1988 році з легкої руки Кирка Маккусіка, що придумав талісман для 4.3BSD. Зрозуміло, той, первісний демон виглядав не зовсім так, як сучасний, символізує FreeBSD. Ознайомитися з його історією в картинках можна за адресою www.mckusick.com / beastie / index.html. Еві Немет в своїй класичній хрестоматії «Unix System Administration Handbook »так пояснює походження цього талісмана:« Багато людей лякаються і думають, що демон в даному випадку – це щось сатанинське. Однак це не demon, а daemon, в грецькій міфології означає приблизно те ж, що нинішній ангел-хранитель, добрий дух ». Як же звуть цього милашка? Маккусік стверджує, що у демона немає імені, і це предмет його особливої ​​гордості, але якщо ти хочеш, можеш називати його Beastie.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*