От Berkley Software Distributions до FreeBSD

Дистрибутивы из Беркли были первыми основанными на UNIX системами, которые ввели многие важные особенности, включая следующие...

  • поддержка виртуальной памяти с подкачкой по требованию;
  • автоматическое конфигурирование аппаратных средств и системы ввода/вывода;
  • быстрая и восстанавливаемая файловая система;
  • примитивы межпроцессного взаимодействия (IPC) на основе сокетов;
  • эталонная реализация TCP/IP.

Версии Беркли нашли свой путь в системы UNIX многих производителей и были внутренне использованы группами разработчиков многих других производителей. Реализация набора сетевых протоколов TCP/IP в 4.2BSD и 4.3BSD и доступность этих систем сыграли ключевую роль в превращении набора сетевых протоколов TCP/IP в международный стандарт. Даже производители He-UNIX-систем, такие, как Microsoft, приспособили дизайн сокетов Беркли для своего интерфейса IPC Winsock.

Выпуски BSD оказали также сильное влияние на стандарт интерфейса операцион­ных систем POSIX (стандарт IEEE 1003.1) и связанные с ним стандарты. Несколько особенностей - такие, как надежные сигналы, управление заданиями, несколько групп доступа для процесса и процедуры для операций с каталогами - были приспособлены из BSD для POSIX.

Ранние выпуски BSD содержали лицензионный код UNIX, требуя таким образом от получателей наличия лицензии исходного кода AT&T для получения и использова­ния BSD. В 1988 г. Беркли разделил свой дистрибутив на лицензированный AT&T и на свободно распространяемый код. Свободно распространяемый код был лицензирован отдельно и мог быть получен, использован и распространен дальше любым желающим. Финальный свободно распространяемый выпуск 4.4BSD-Lite2 из Беркли 1994 г. содержал почти полное ядро и все важные библиотеки и утилиты.

В 1993 г. возникли две группы, NetBSD и FreeBSD, начавшие поддерживать и рас­пространять системы, построенные из свободно распространяемых выпусков, сделан­ных Беркли. Группа NetBSD придавала особое значение переносимости и минимали­стскому подходу, перенеся системы на более чем 40 платформ и продолжая сохранять систему небольшой, чтобы поддерживать встроенные приложения. Группа FreeBSD делала упор на максимальную поддержку архитектуры PC и нацеливала систему на простоту установки и распространение среди как можно более широкой аудитории. В 1995 г. от группы NetBSD отделилась группа OpenBSD для разработки дистрибутива с упором на безопасность. В течение ряда лет было здоровое соперничество среди дистрибутивов BSD, причем они обменивались множеством идей и кодом.

FreeBSD широко используется для поддержки ядра инфраструктуры многих компаний по всему миру. Поскольку она может быть построена с использованием небольшого дис­кового пространства, она находит также возрастающее применение во встроенных при­ложениях. Условия лицензирования FreeBSD не требуют распространения изменений и улучшений системы. Условия лицензирования Linux требуют, чтобы все изменения и улучшения ядра были сделаны доступными в виде исходного кода за минимальную плату. Таким образом, компании, которым нужно контролировать распространение своей интеллектуальной собственности, строят свои продукты с использованием FreeBSD.

Все дистрибутивы BSD доступны либо для загрузки по сети, либо на сменных носителях, таких, как CD-ROM или DVD. Информацию о получении исходного кода и двоичных файлов для FreeBSD можно получить на сайте http://www.FreeBSD.org. Дистрибутив NetBSD откомпилирован и готов к запуску на большинстве архитектур рабочих станций. За дополнительными сведениями обратитесь по адресу http://www.NetBSD.org/. Дистри­бутив OpenBSD откомпилирован и готов к запуску на широком ряде архитектур рабочих станций и был тщательно проверен на предмет безопасности и надежности. За дополнительной информацией обращайтесь на веб-сайт проекта OpenBSD http://www.OpenBSD.org/.

Еще материалы

  • Доставка сигнала потоку -

    Большинство действий, связанных с доставкой сигнала потоку, выполняется в контек­сте этого потока. Поток проверяет свое поле td_siglist на предмет наличия ожидающих сигналов по крайней мере один раз при входе в систему, вызывая cursigQ.

  • Действия psignal в зависимости от состояния потока -

    SLEEPING - Поток заблокирован в ожидании события. Если поток находится в состоянии непрерываемого сна, больше ничего не должно предприни­маться. В противном случае ядро может предпринять действие - либо непосредственно, либо косвенно, - пробудив поток. Есть два дейст­вия, которые можно применить непосредственно. Для сигналов, вызывающих остановку процесса, все потоки в процессе помещаются в состояние STOPPED и родительский процесс уведомляется об из­менении состояния посредством отправки ему сигнала SIGCHLD.

  • Отправка сигнала -

    Реализация сигналов разделена на две части, первая из которых - отправка сигнала процессу, а вторая - распознавание сигнала и доставка его потоку назначения. Сигна­лы может отправлять любой процесс или код, который выполняется на уровне преры­вания. Доставка сигнала обычно имеет место в контексте получающего потока. Но когда сигнал форсирует остановку процесса, действие может быть проведено для всех потоков, связанных с этим процессом в тот момент, когда сигнал был отправлен.

  • История появления сигналов -

    Сигналы первоначально были спроектированы для моделирования исключительных событий, таких, как попытка пользователя завершить вышедшую из-под контроля про­грамму. Они не предназначались для использования в качестве общего механизма меж­процессного взаимодействия, поэтому не было сделано попытки сделать их надежными. В более ранних системах каждый раз при перехвате сигнала восстанавливалось его дей­ствие по умолчанию.

  • Сигналы процессов BSD (Часть 2) -

    Описание сигналов указывается для каждого процесса. Если процесс не указал действие на сигнал, ему предоставляется действие по умолчанию которое может быть одним из следующих: