Документация по ОС FreeBSD Среда, 18.06.2025, 06:40
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Мои статьи [0]
Установка и настройка [281]
X Window [25]
Man pages [30]
Ports & Packages [26]
cvs [18]
Multimedia [20]
Нововсти в мире Unix [0]
RFC [4]
RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Безопасность [52]
Работа с железом [58]
Книги по FreeBSD [17]
Сеть [505]
Программирование [40]
FireWall [58]
Темы экзамена BSDA [14]
Официальные темы экзамена BSDA, включая подробноые описания и советы по обучению.

Главная » Статьи » Установка и настройка

Семь кругов xBSD [2006]

Введение

В 1965 году три компании (Bell Labs, General Electric's, Ford) и Массачусетский Технологический Институт вплотную занялись дорогостоящими экспериментами, целью которых было создание универсальной, переносимой, многопользовательской, высокопроизводительной операционной системы. Для этого проекта General Electric выделила высокопроизводительную 36-разрядную машину GE-645 с неплохим даже по сегодняшним меркам процессором, оснащенную превосходной канальной подсистемой ввода/вывода (совершенно непозволительной для тех времен роскошью).

В ходе проекта, получившего название MULTICS (Multiplexed Information-n-Computing Service), была реализована система, поддерживающая виртуальную память с сегментно-страничной организацией, с раздельными сегментами данных и кода, имеющих набор атрибутов защиты, определяющих привилегии доступа; динамическое связывание модулей в ходе выполнения программы с механизмом «расщепления» разделяемых страниц при записи (copy-on-write в терминологии NT); иерархическую файловую систему, объединяющую в одну логическую древовидную структуру файлы, физически расположенные на разных носителях и поддерживающую файлы, проецируемые в память; оконную подсистему, и ряд других идей, определивших архитектуру ОСей начала XXI века.

Набитая под завязку передовыми технологиями, система оказалась необычайно прожорливой и для эффективной работы требовала оборудования астрономической стоимости. Фактически, единственным пользователем MULTICS оказалась компания Ford, поэтому руководство Bell Labs сочло затею провалившейся и в апреле 1969 приняло решение о выходе из проекта, отозвав своих ведущих разработчиков, среди которых оказались Деннис Ритчи, Кен Томпсон, Мак Илрой и Джон Осанна.

Движимые желанием использовать накопленный опыт для создания дешевого и нетребовательного к аппаратным ресурсам усеченного варианта MULTICS, они обратились к руководству Bell Labs с просьбой приобрести компьютер среднего класса и выделить некоторую сумму под проект. Компания, разочарованная провалом MULTICS, финансировать эту затею наотрез отказалась, но все-таки предоставила Томпсону незадействованный PDP-7, для которого не существовало ни достойного ассемблера, ни библиотек для поддержки вычислений с плавающей точкой. Словом, не было ни хрена, и весь инструментарий пришлось создавать буквально с нуля...
 

СЕМЕЙСТВО XBSD С ОГРОМНОЙ СКОРОСТЬЮ ДВИЖЕТСЯ ПО УЗКОЙ КОЛЕЕ СВОЕЙ РЫНОЧНОЙ НИШИ. СЛЕВА — ОТВЕСНАЯ СКАЛА КОММЕРЧЕСКИХ UNIX-СИСТЕМ, СПРАВА — КРУТОЙ ОБРЫВ В LINUX. ЧТОБЫ ВЫБРАТЬ ДИСТРИБУТИВ СВОЕЙ МЕЧТЫ, НЕОБХОДИМО НЕ ТОЛЬКО ИЗУЧИТЬ FEATURE-LIST, НО И РАССМОТРЕТЬ ИСТОРИЧЕСКИЙ АСПЕКТ, ПОСЛЕ ЧЕГО СТАНЕТ ЯСНО, ПОЧЕМУ ДЛЯ FREEBSD ЕСТЬ ДРАЙВЕРЫ ОТ NVIDIA, А ДЛЯ ОСТАЛЬНЫХ XBSD — НЕТ

«...НЕКОТОРЫЕ СЧИТАЮТ BSD «СТАРОЙ» ОПЕРАЦИОННОЙ СИСТЕМОЙ, НО ТЕ, КТО РАБОТАЕТ НАД НЕЙ, ВИДЯТ ЕЕ СКОРЕЕ СИСТЕМОЙ СО «ЗРЕЛЫМ КОДОМ»

«...САМОЙ БОЛЬШОЙ ОШИБКОЙ, КОТОРУЮ МОЖЕТ ДОПУСТИТЬ ПРОГРАММИСТ, ЯВЛЯЕТСЯ ИГНОРИРОВАНИЕ ИСТОРИИ, И ЭТО ИМЕННО ТА ОШИБКА, КОТОРУЮ СДЕЛАЛИ МНОГИЕ РАЗРАБОТЧИКИ СОВРЕМЕННЫХ ОПЕРАЦИОННЫХ СИСТЕМ...»

Мэтт Диллон
 
 
UNIX

К началу 1970 года система, названная UNICS (Uniplexed Information & Computing Service) и написанная на чистом ассемблере, уже поддерживала примитивный ввод/вывод и несла на своем борту набор вспомогательных утилит для копирования, удаления, редактирования файлов и примитивного командного интерпретатора. Позже «CS» заменили на «X», и система превратилась в UNIX.

Компания высоко оценила работу Томпсона и предложила ему перенести UNIX на PDP-11, что заставило задуматься над повышением мобильности, то есть свести использование ассемблера к минимуму и везде, где только возможно, задействовать высокоуровневые языки. Из которых тогда наибольшей популярностью пользовались Фортран, ориентированный на решение вычислительных задач, и Би, привлекающий простотой и легкостью изучения, наглядностью листингов и неплохой производительностью. Так что выбор остановили на нем.

Вторая версия UNIX появилась в 1972 году. Главным нововведением стала поддержка конвейера (pipe), позаимствованная Илроем из операционной системы DTSS (Dartmouth time-sharing System). Использование интерпретируемого языка Би заметно ухудшило производительность системы, поэтому Ритчи и Томпсон решили написать компилятор, попутно ликвидируя наиболее существенные недостатки Би (например, отсутствие типов). Так появился Си, но это уже совсем другая история...

Третья (промежуточная) версия UNIX отличалась хорошей производительностью, практически не уступающей версии, написанной на ассемблере, но при этом для ее создания требовалось значительно меньше усилий, и она не была связана с какой-то одной конкретной архитектурой. Из 13000 строк операционной системы лишь 800 принадлежали низкоуровневым модулям, написанным на ассемблере.

Четвертая версия UNIX, созданная в 1974 году, получила статус «официальной» и, с одобрения руководства, стала применяться внутри компании. Даже по тем временам система представляла довольно убогое зрелище. Виртуальная память не поддерживалась, динамическое связывание отсутствовало, а файловая система при интенсивном использовании за счет фрагментации могла терять до 60% дискового пространства и ограничивала длину имен всего 14 символами, поэтому в основном UNIX использовалась для управления цифровыми АТС и как текстовый процессор.

Системой заинтересовались и другие компании, но антимонопольное законодательство запрещало Bell Labs заниматься каким-либо другим бизнесом, кроме телефонии, поэтому UNIX распространялась без рекламы и сопровождения по чисто символической цене, сопоставимой с ценой носителя.

Первая сторонняя инсталляция UNIX вне Bell Labs была осуществлена Нилом Граундвотером из компании New York Telephone, после чего на Bell Labs обрушился шквал запросов на UNIX. Приблизительно в это же время на открытом симпозиуме АСМ прошла первая презентация операционной системы UNIX, сопровождаемая докладами Томпосна, которые произвели неизгладимое впечатление на профессора Берклиевского университета Фабри. Ему удалось убедить собственное руководство в необходимости приобретения PDP 11 и заполучить магнитную ленту с исходными текстами последней на тот момент шестой версией UNIX вместе с лицензией, дающей право на «исследование и доработку».

Так произошло разделение UNIX'а на коммерческую и некоммерческую ветви. Из первой выросли SunOS, HP-UX, AIX, Solaris и т. д. Из второй — FreeBSD, NetBSD, OpenBSD и другие BSD-клоны, о которых мы и будем говорить.

BSD

Первая инсталляция UNIX в Беркли была осуществлена в 1974 году на PDP-11, и с этого момента система неуклонно обрастала новым софтом, создаваемым студентами и преподавателями для своих собственных целей. К 1977 году софта накопилось столько, что Билл Джой (в то время аспирант) собрал его в одну кучу и записал на ленту, которую высылал всем желающим под названием 1BSD (Berkeley Software Distribution — распространение софта университета Беркли). Этот «сборник» не был полноценной операционной системой и ставился поверх UNIX 6, которую приходилось приобретать непосредственно у Bell Labs.

Следующая версия 2BSD, выпущенная в 1978 году, становилась поверх UNIX 7 и включала в себя пару новых утилит: текстовый редактор vi и C shell.

В 1978 году в Берлки был установлен первый компьютер семейства VAX, и с этого момента история развития BSD резко изменилась. Официальный UNIX-порт на VAX (UNIX/32V) не использовал всех преимуществ этой системы (прежде всего — страничной организации виртуальной памяти), поэтому студенты практически полностью переписали 32V-ядро и перенесли утилиты из 2BSD, получив к концу 1979 года законченную операционную систему, названную Virtual VAX/UNIX или VMUNIX, она же — 3BSD.

Успех 3BSD привел к тому, что дальнейшая разработка системы финансировалась агентством DARPA, одной из задач которого было создание сети, способной работать даже в условиях ядерной войны (тогда она казалась неизбежной). От Била Джоя BSD отошла к специально сформированной исследовательской группе CSRG (Computer Systems Research Group), выпустившей в 1980 году 4BSD, содержавшую множество мелких улучшений, но не предлагавшую ничего принципиально нового.

Революция свершилась лишь с появлением 4.2 BSD (1983 год), включавшей в себя черновой TCP/IP-стек, улучшенную файловую систему FFS и чертенка по имени Beastie (Бистли) с вилами в руках :).

В процессе переноса 4.3 BSD на Power 6/32, завершенном к концу 1988 года, произошла реструктуризация исходного кода с выделением системно-зависимых частей в отдельный слой, что значительно увеличивало мобильность системы. Однако 4.3 BSD по прежнему базировалась на UNIX, и ее использование требовало лицензии от Bell Labs (точнее от AT&T, к которой после раскола фирмы отошли все права). А между тем количество оригинального UNIX-кода с каждой версией все уменьшалось и уменьшалось.

Возникла идея — отделить код, написанный вне AT&T (к которому, главным образом, относился TCP/IP-стек), а код T&T переписать и распространять под открытой лицензией. Так зародился проект Net (не путать с NetBSD), выпустивший две версии: Net/1 и Net/2. Причем Net/2 была перенесена Билом Джолизом на 386 (386BSD), а потом... внезапно грянул гром, сгустились тучи и наступили трудные времена :).
 
Подразделение фирмы AT&T с громким названием Unix System Laboratories в 1994 году подало иск о нарушении авторских прав. Суд рассмотрел дело и пришел к заключению, что из 18000 файлов, входящих в BSD, только 3 файла должны быть изъяты и еще 70 модифицированы, чтобы показывать USL-копирайт. Поэтому новая (и последняя) версия BSD вышла в двух вариантах: 4.4BSD-lite — свободно распространяемая, но без части ключевых файлов, и 4.4BSD-Encumbered – в полном составе, но требующая лицензии от AT&T.

Группа CSRG была распущена, но вместо того, чтобы умереть, 4.4BSD породила множество клонов, доживших до наших дней и занимающих солидную нишу на рынке серверов и высокопроизводительных рабочих станций.

FreeBSD

Проект FreeBSD, возглавляемый Джорданом Хабардом, Нэтом Вильямсом и Родом Гримесом, стартовал в начале 1993 года, отпочковавшись от проекта «Unofficial 386BSD Patchkit». Он представлял собой выполненный Биллом Джолицем порт BSD на 386-машине, так и не доведенный до конца. Реализованный им patchkit-механизм создавал много проблем, количество которых увеличивалось с каждым днем, делая работу с системой все более неудобной. Указанная троица активистов предложила Биллу свою помощь, но была отвергнута без каких-либо объяснений. Билл, в свою очередь, был послал на хутор за бабочками, благо лицензия позволяла дорабатывать систему без его согласия.

Объединив 4.3BSD-Lite («Net/2») с 386BSD и подключив Free Software Foundation, Джордан, Нэт и Род к концу 1993 года сотворили полноценный дистрибутив операционной системы, получивший название FreeBSD (предложенное Дэвидом Гринманом), подчеркивающее свободу использования. Другим важным шагом стало распространение системы на CD-ROM фирмой Walnut Creek, что для пользователей, лишенных интернета (а в 1993 году доступ к нему имели немногие), было очень даже актуально.

Тем временем начался очередной виток судебных разборок вокруг 4.3BSD-Lite, изымающий все новые куски критического кода, что задержало выход FreeBSD 2.0, выпущенной только в конце 1994 года и уже полностью свободной от нападок правообладателей оригинального UNIX-кода, преемником которого стала Novell.

На данный момент текущая версия - 6.1 - придерживает главным образом x86 и другие платформы (Pentium/Athlon/x64-86/UltraSPARCR/IA-64/ARM) и остается самой популярной xBSD-системой. Несмотря на то, что она в основном ориентирована на серверное использование и, в отличие от LINUX, разработчики FreeBSD не покушаются на рынок десктопов, она используется и там. Кстати говоря, FreeBSD – единственная xBSD-система, для которой фирма NVIDIA периодически выпускает драйверы.

Но сравнивать LINUX и FreeBSD некорректно хотя бы потому, что в LINUX разработкой ядра занимается один коллектив, а дистрибутивы клепают все кому не лень, что порождает несовместимость и неразбериху. А во FreeBSD и ядро, и прикладные программы находятся в одном CVS. Продукты сторонних производителей с закрытым кодом включаются в дистрибутив только при необходимости (например, драйверы). Но все-таки включаются, что, в конечном счете, идет на благо пользователей.

Лицензия BSD относится к числу наиболее демократичных и, в отличие от GPL, являющейся прототипом «развитого социализма», действительно предоставляет полную свободу в использовании исходного кода, в том числе и закрытых коммерческих продуктов, таких как CISCO OS, MAC OS X, Windows и т. д. Демократичность проявляется и в отношение главного конкурента — FreeBSD: BSD поддерживает режим эмуляции LINUX (Linux compatibility layer), позволяя запускать двоичные программы, исходные тексты которых недоступны: StarOffice, Netscape, Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Skype, Doom 3, Quake 4, Unreal Tournament, SeaMonkey и т. д.

FreeBSD сохранила чертенка Бистли в качестве логотипа, но в 2005 году объявила конкурс на его «стилизованную» версию, победителем которого стало изображение «рогатой» сферы.

NetBSD

За полгода до появления проекта FreeBSD четыре программиста (Крис Деметру, Тео де Раадт, Дама Гласс и Чарлз Ханнум) решили переработать исходные тексты BSD, чтобы повысить качество кода и максимально упростить его перенос на другие архитектуры, включая процессоры с ограниченными возможностями, используемые во встраиваемых системах.

Желая подчеркнуть сетевую ориентацию будущей системы, ее назвали NetBSD и, отталкиваясь от 4.3BSD, Net/2 и 386BSD, программисты уже в начале 1993 года выпустили первый официальный релиз - NetBSD 0.8, работающий только на PC и «потерявший» несколько утилит из Net/2.

Логотипом системы стал флаг, поднимаемый чертями, попирающими PC. Выглядело слишком задиристо, и в следующей «ревизии» черти и компьютеры из логотипа были изъяты. Остался лишь стилизованный флаг.

Следующий релиз — NetBSD 0.9, вышедший через полгода, в основном представлял собой «работу над ошибками» без существенных улучшений. NetBSD 1.0, вышедшая в конце 1994 года, оказалась первой многоплатформенной Net-системой, поддерживающей помимо x86 еще и HP 9000 Series 300, Amiga, 68k Macintosh, Sun-4c и PC532. Как и FreeBSD, NetBSD столкнулась с необходимостью переписывания больших кусков изъятого кода, что задержало выпуск следующей версии.

Но процессорные платформы умирали быстрее, чем их успевали поддерживать.

Архитектура x86 стремительно захватывала все новые рыночные ниши, и легкость переноса уже не являлась решающим фактором, определяющим популярность системы. Пользователей гораздо больше интересовала стабильность и защищенность. В результате, среди разработчиков возник раскол, закончившийся в 1994 году выходом Тео де Раадта из проекта. Но, несмотря на это, развитие NetBSD было продолжено.

В конце 2004 вышла NetBSD 2.0, а еще через год — NetBSD 3.0, поддерживающая свыше полусотни различных платформ (в том числе и PDA), естественную (native) многопоточность, симметричные многопроцессорные системы... Но особой популярности она так и не смогла завоевать.

OpenBSD

В 1994 году Тео де Раадт покинул лагерь NetBSD с тем, чтобы в конце 1995 года основать свой клон NetBSD, концентрирующийся на защищенности и безопасности. Руководствуясь лозунгом «security by default» (безопасность по умолчанию), Тео де Раадт вместе с единомышленниками кардинально переработали конфигурацию системы, действуя по принципу «все, что явно не разрешено — запрещено», и провели тщательный аудит исходных текстов на предмет всевозможных ляпов и дыр, которых там было предостаточно.

Новая система получила название OpenBSD, с логотипом, изображающим ощетинившуюся рыбу-собаку (pufferfish), с колючками, выпирающими во все стороны, что, по всей видимости, символизировало «хрен меня сломаешь». Впрочем, также использовался и чертенок (с нимбом над головой), а рыба-собака со временем обрела снисходительную улыбку :).

Первая публичная версия OpenBSD 1.2 вышла в середине 1996 года, а через несколько месяцев появилась и OpenBSD 2.0. Воспользовавшись сетевым сканером Ballista (позже переименованным в Cybercop Scanner), созданным по спецзаказу компанией Secure Networks, разработчики продолжали вылавливать потенциальные уязвимости и усиливать защищенность, выпустив через некоторое время OpenBSD 2.3.

Политика включения в дистрибутив постороннего кода очень жестокая, и если производитель «зажимает» исходные тексты, делая невозможным их аудит, то этот код не включается, несмотря на потери конечных пользователей.

Система действительно оказалась намного более устойчивой к атакам, чем ее клоны, и вплоть до июня 2002 года на www.OpenBSD.org красовался слоган «No remote computer hole in the default install, in nearly 6 years» (ни одной удаленной дыры в конфигурации по умолчанию за последние 6 лет). Но затем Марк Давд из Internet Security Systems обнаружил уязвимость в OpenSSH (http://xforce.iss.net/xforce/alerts/id/advise123), позволяющую атакующему заполучить права root'а. Поэтому слоган пришлось менять, и в настоящее время на www.OpenBSD.org значится «Only one remote hole in the default install, in more than 8 years!» (только одна удаленная дыра в конфигурации по умолчанию за более чем восьмилетний срок!").

В середине 2006 года была выпущена последняя на данный момент версия OpenBSD 3.9, остающаяся самой защищенной и широко используемой в качестве серверов в критических инфраструктурах BSD-системой, хотя и не так широко, как FreeBSD.

заключение

Мир xBSD-систем довольно разнообразен и дружелюбно настроен к профессионалам. В отличие от LINUX, технология которого тесно смешена с пропагандой, а конструктивные огрехи затыкаются идеологической подоплекой противостояния Microsoft, xBSD крепко держит свою рыночную нишу и никаким «миссионерством» не занимается, поскольку «объять необъятное нельзя». И пока LINUX стремительно превращается в Windows, перенимая ее худшие черты и теряя свои преимущества, высоко ценимые профессионалами (в первую очередь — предсказуемость поведения и командную строку), BSD с годами только крепчает, обеспечивая удобство и комфорт тем, кто разбирается.



Источник: http://www.xakep.ru/magazine/xs/069/008/1.asp
Категория: Установка и настройка | Добавил: oleg (24.02.2008) | Автор: КРИС КАСПЕРСКИ АКА МЫЩЪХ
Просмотров: 870 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 1
1 n0name  
0
Ссылка на источник ведет на другую статью.

ЗЫ. Спасибо за хороший сайт


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025