Как правило, в различных UNIX-системах используется одно и то же программное обеспечение. Например, во всех системах работают популярные серверы sendmail и Apache, а также Х WindowSystem. Ниже перечислено то, что действительно отличает UNIX-системы друг от друга.
· Ядро. Ядро — это программный компонент, составляющий основу операционной системы. Оно служит интерфейсом между пользовательскими программами и аппаратными устройствами компьютера, управляет файлами и процессами и выполняет ряд других низкоуровневых задач. Таким образом, ядро обеспечивает стабильность операционной системы и определяет ее характеристики, например перечень поддерживаемых аппаратных устройств (некоторые устройства обслуживаются внешними драйверами).
· Аппаратная поддержка. UNIX-системы работают не только на платформе х86. Производительность процессоров х86 ставит их на нижнюю ступень, по крайней мере в семействе процессоров универсального назначения. Некоторые UNIX-системы ориентированы на суперкомпьютеры, и обычные операционные системы, такие как FreeBSD, не могут с ними конкурировать. Поддержка конкретных аппаратных устройств (модемов, сетевых и звуковых плат и т.д.) зависит от ядра и вспомогательных программ.
· Стратегия распространения. Некоторые разновидности UNIX распространяются как коммерческие продукты, но в основном они представляют собой системы с открытым исходным кодом. Это означает, что любой желающий может получить исходный код системы, модифицировать его и распространить дальше. Системы с открытым исходным кодом значительно дешевле в эксплуатации, чем их коммерческие аналоги. Впрочем, в 1990-е годы коммерческие разновидности UNIX упали в цене, а некоторые из них даже стали бесплатными для определенного круга применений.
· Стандартный набор и конфигурация программного обеспечения. UNIX существует уже около трех десятилетий, и за это время появилось множество версий популярных утилит, конфигурируемых самыми разными способами. В каждой UNIX-системе свой набор стандартных программ. В одних системах используются конфигурационные сценарии BSD-типа, в других — сценарии System V. Наиболее распространенным почтовым сервером является программа sendmail, но в некоторых системах работают другие серверы. Подобные различия определяют уникальность каждой операционной системы семейства UNIX. Если сравнивать UNIX и, скажем, Windows, то эти различия несущественны, но в то же время их более чем достаточно для того, чтобы при переходе из одной UNIX-системы в другую приходилось покупать справочное руководство.
Ядро FreeBSD является производным от открытой реализации исходного ядра AT&TUNIX. Изначально система предназначалась для процессоров семейства Intel х86, но впоследствии стала поддерживать родственные семейства процессоров компаний AMD, VIA (Cyrix), Transmeta и других (большей частью не существующих сегодня). Ведутся работы по переносу системы на другие процессоры, например Alpha, но они еще далеки от завершения.
Ядро FreeBSD отличается монолитностью, т.е. имеет единую логическую структуру. Вспомогательные компоненты, например драйверы файловой системы, помещаются в так называемое пространство ядра и потому могут контролировать аппаратные компоненты и структуры данных ядра. В некоторых разновидностях UNIX применяется иная модель, называемая микроядром. В такой схеме ядро имеет меньший размер и взаимодействует с внешними компонентами, реализующими традиционные функции ядра, в частности доступ к файловой системе. У каждого подхода есть свои сторонники.
FreeBSD — это операционная система с открытым исходным кодом. Большинство ее компонентов распространяется на условиях лицензии BSD . Эта лицензия разрешает модификацию и последующее распространение исходного кода на тех условиях, которые выберет разработчик. Теоретически это означает, что кто угодно может модифицировать код системы и продать его как коммерческий продукт. Другой популярной лицензией для систем с открытым исходным кодом является GPL (GNU General Public License). Она требует, чтобы любые модификации распространялись с соблюдением исходных требований GPL. Такую лицензию имеет ядро Linux, и отсюда проистекают многие различия между FreeBSD и Linux. Во FreeBSD используются программные компоненты, имеющие лицензию BSD, а в Linux больше GPL-компонентов. Это не влияет напрямую на работу операционной системы, но многие утилиты существуют в разных вариантах в зависимости от типа лицензии.
Некоторые разновидности UNIX патентованы. Например, системы Solaris компании Sun и AIX компании IBM являются коммерческими системами. Иногда их можно использовать бесплатно, как в случае Solaris для платформы х86, но чаще всего за лицензию коммерческой версии UNIX приходится платить. Различия между открытыми и коммерческими системами лежат в основном в концептуальной и экономической плоскостях. С функциональной точки зрения FreeBSD во многом эквивалентна своим коммерческим аналогам.
Коммерческие и открытые системы часто совместимы. Программы, имеющие открытый исходный код, можно запускать в коммерческой операционной системе, и наоборот: коммерческие программы можно запускать в открытой ОС. Тем не менее большинство программ FreeBSD имеет открытую лицензию.
Помимо FreeBSD широко распространены следующие разновидности UNIX.
· NetBSD. Это одна из трех операционных систем, производных от 386/BSD. Две другие — FreeBSD и OpenBSD. NetBSD отличается от FreeBSD тем, что перенесена на большее число процессоров. Принципы их лицензирования и общая структура весьма схожи, но FreeBSD остается более популярной, так как активнее рекламируется и чуть проще в инсталляции и применении.
· ОрепBSD. Эта система славится своей безопасностью. Ее разработчики потратили немало усилий на то, чтобы создать систему, которую не так просто взломать. Как и NetBSD, OpenBSD схожа с FreeBSD по конфигурации, принципам лицензирования и доступному программному обеспечению.
· Linux. Linux можно считать отдельным семейством операционных систем с открытым исходным кодом. С технической точки зрения Linux — это лишь ядро; в дистрибутив Linux входят ядро и пакеты программ, составляющие операционную систему. По общим принципам конфигурирования и составу программных средств FreeBSD больше отличается от Linux, чем от NetBSD и OpenBSD. Стоит обратить внимание на то, что пользователи, не знакомые с UNIX, иногда считают FreeBSD дистрибутивом Linux. Это не так. FreeBSD не использует ядро Linux и отличается множеством конфигурационных нюансов. FreeBSD следует считать производной от дистрибутива BSD (Berkeley Software Distribution), тогда как Linux является свободно распространяемой, полностью переработанной реализацией UNIX, гораздо слабее связанной с ранними версиями BSD и AT&TUNIX.
· Solaris. Это коммерческая разновидность UNIX, выпущенная компанией Sun и используемая в основном на ее серверных платформах. Серверы Sun, работающие на процессорах SPARC, являются конкурентами высокопроизводительных систем на базе процессоров х86 старших моделей. Операционная система Solaris может работать и на платформе х86, однако набор ее драйверов меньше, чем у FreeBSD. Система Solaris удобна для разработчиков, которые пишут программы для компьютеров Sun. В остальных случаях более предпочтительным выбором для персональных компьютеров являются FreeBSD и Linux.
· AIX. Это коммерческая разновидность UNIX, выпущенная компанией IBM для своего специализированного оборудования. Подобно системам компании Sun, AIX нацелена на верхний сегмент рынка серверов, поэтому мало конкурирует с FreeBSD.
· IRIX. Большинство рабочих станций Silicon Graphics работает под управлением IRIX — коммерческой разновидности UNIX. Ранее основным достоинством этих систем была оптимизированная обработка высококачественной графики, с их помощью создавались спецэффекты для кинофильмов. Сегодня в этот сегмент рынка активно вторгаются недорогие компьютеры на базе процессоров х86, но позиции Silicon Graphics и IRIX все еще сильны.
В целом основными конкурентами FreeBSD являются другие BSD-системы и Linux. FreeBSD популярнее своих "родственников" на платформе х86, поэтому активнее поддерживается сторонними разработчиками. Эта система разрабатывалась с акцентом на простоту инсталляции и администрирования; здесь она опережает NetBSD и OpenBSD. Достоинством OpenBSD является улучшенная безопасность, а NetBSD поддерживает не только процессоры х86. Что касается Linux, то у нее больше отличий в плане аппаратной и программной поддержки и ее лицензирование основывается на несколько иных принципах. Для новичков, которым требуется UNIX-система универсального назначения с открытым исходным кодом, FreeBSD и Linux подойдут в одинаковой степени. Но Linux развивается гораздо хаотичнее, и различия между ее многочисленными дистрибутивами часто сбивают с толку неопытных пользователей.
FreeBSD вряд ли можно считать конкурентом коммерческих разновидностей UNIX, ориентированных на компьютеры, которые превосходят по производительности системы на базе процессоров х86. Если в организации используются высокопроизводительные серверы Sun, IBM или SGI в сочетании с недорогими персональными компьютерами, то на последних можно установить FreeBSD, поскольку процедуры администрирования FreeBSD и коммерческих разновидностей UNIX во многом схожи. Иногда системы х86 старших моделей напрямую конкурируют с системами Sun, IBM и SGI младших моделей. Достоинством первых является низкая цена, но для них сложнее заключать контракты на сервисное обслуживание.
Программная среда
До этого мы рассматривали, какое место занимает FreeBSD в ряду других операционных систем. Теперь нужно выяснить, как она взаимодействует с другими операционными системами. Такое взаимодействие может происходить как между компьютерами сети, так и в пределах одного компьютера. Полезно также узнать кое-что об истории FreeBSD, чтобы понять главные принципы ее разработки, ее слабости и недостатки.
История разработки FreeBSD
История FreeBSD, как и UNIX вообще, довольно запутанна. Она начинается в 1969 г. с появления первой (довольно примитивной) версии UNIX, разработанной компанией AT&T. Далее свой вклад в систему вносили энтузиасты Калифорнийского университета в Беркли и многочисленные добровольцы, существующий код неоднократно менялся, пополнялся набор системных утилит. Исходная версия AT&T UNIX породила несколько вариантов (или ветвей, как их еще называют). Хорошие идеи, появлявшиеся в одной ветви, часто воплощались в других ветвях. В истории UNIX были периоды, когда поставщики систем работали над устранением различий между ветвями. Тем не менее сегодня UNIX — это не одна операционная система, а целое семейство.