История операционных систем

Topuk (torick@xakep.ru)

Спецвыпуск Xakep, номер #014, стр. 014-042-3

Одной из организаций, серьезно заинтересовавшихся этой осью и первой получившей <Пятую редакцию UNIX> был Калифорнийский университет города Беркли, в котором учился юноша по имени Билл Джой, будущий создатель BSD и основатель Sun Microsystems...

Выпьем пивка (<Клина> или <Мельника> - мне в связи с <Клинское-пати> стало уже по барабану) за здоровье Билла Джоя - если бы не он, фиг вам, а не <фряшная бздя>.

<Шестая редакция UNIX> (aka UNIX V6), выпущенная в 1975 году, стала первым коммерчески распространяемым Юниксом. Большая ее часть была написана на С, но увы, переносить систему на компьютеры с архитектурой принципиальной отличной от PDP`шной было весьма затруднительно. Затруднительно, но возможно.

Первый перенос был осуществлен в 1977 году. Абстрагируясь от виртуальности, можно сказать, что это был перенос из Америки в Австралию, потому что в Университете Воллонгонга, что на материке кенгуру и бумерангов, работал завкафедрой Джюрис Рейндфельдс, которого серьезно протащило от шестой редакции. Но так как позволить себе PDP-11 компьютерная кафедра универа не могла, пришлось закупать более дешевый 32-битный компьютер Interdata 7/32. Родная ОСь компа OSMT/32 не обладала нужными мультиюзерскими возможностями, поэтому пришлось профессору заняться переносом UNIX V6, заказав в Университете Беркли кучу исходников на магнитных лентах. Ему в этом поспособствовал Ричард Миллер, который к январю создал компилятор С, что и позволило в середине февраля 1977 года получить свой вариант UNIX, работавший на Интердате.

Домашнее задание: попробуй перенести Windows 98 SE на компьютеры Power Macintosh, дабы прочувствовать вкус крови и пота, сошедших с Миллера и Рейндфельдса.

Миллеровский Юниксоид работал скорее как операционная среда, ставящаяся поверх OSMT/32. Куча функций, имеющихся в <шестерке>, отсутствовала. Но это, как ни крути, был первый блин, и был он не таким уж и комом.

Миллер отправился в Bell Labs и наглядно разъяснил Кену Томпсону & Co, сколь он крут. Кен пошарил по округе, наткнулся на свежекупленный Interdata 8/32, по архитектуре схожий с замученным компьютером Университета Воллонгонга. Денис сказал: <ОК, переносим <шестерку> на Интердату>, и работа закипела. Для начала был расширен язык С, в систему которого были добавлены типы union, short integer, long integer и unsigned integer, дабы использовать особенности 32-битной архитектуры. Помимо прочего, появились средства инициализации переменных, битовые поля, макросы и средства условной компиляции, регистровые и глобальные переменные. Много позже Денис и Кен написали книгу <Язык программирования Си>, в котором конкретно и четко расписали 32-битную вариацию своего детища.

Увы, но и здесь встали препятствия. Юникс слишком привык к PDP-11, и Денису пришлось полностью переписать подсистему управления оперативной и виртуальной памятью, заодно изменив интерфейс драйверов внешних устройств. Все это позволило сделать систему легко переносимой на другие архитектуры и было названо <Седьмая редакция> (aka Unix Version 7). Помимо прочего, в дистрибутив системы входил компилятор для портации ОС на другие архитектуры, а также набор новых драйверов.

Назад на стр. 014-042-2  Содержание  Вперед на стр. 014-042-4

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001