BSD и другие системы

 CSRG объединяла возможности не только систем UNIX, но и других операционных систем. Многие из особенностей драйверов терминалов 4BSD взяты от TEXEX/TOPS-20. Управление заданиями (концепция - не реализация) происходит от TOPS-20 и от несо­вместимой системы с разделением времени (Incompatible Timesharing System - ITS) MIT. Интерфейс виртуальной памяти, впервые предложенный для 4.2ВSD и реализо­ванный в конечном счете в 4.4ВSD, был основан на интерфейсе отображения файлов и интерфейсе уровня страниц, которые впервые появились в TENEX/TOPS-20. Совре­менная система виртуальной памяти FreeBSD была приспособлена от Mach, которая сама является ответвлением 4.3BSD. Часто исходной точкой в проек­тировании новых возможностей был Multics.

Поиск эффективности был главным фактором большей части работы CSRG. Неко­торые улучшения эффективности были сделаны вследствие сравнений с патентован­ными операционными системами для VAX, VMS [Joy, 1980; Kashtan, 1980].

Другие варианты UNIX приняли многие особенности 4BSD. UNIX System V AT&T [AT&T, 1987], стандарт POSIX.l IEEE [P1003.1, 1988] и связанный Федеральный стан­дарт обработки информации (Federal Information Processing Standard - FIPS) Нацио­нального бюро стандартов (National Bureau of Standards - NBS) приняли следующее.

  • Управление заданиями
  • Надежные сигналы.
  • Несколько групп с правами доступа к файлу
  • Интерфейсы файловых систем.

Группа X/OPEN (первоначально состоявшая лишь из европейских производите­лей, но теперь включающая большинство производителей UNIX США) создала Руко­водство по переносимости X/OPEN [X/OPEN, 1987], а недавно Руководство специфи­кации 1170. Эти документы определяют как интерфейс ядра, так и многие вспомога­тельные программы, доступные пользователям системы UNIX. Когда в 1993 г. фирма Novell приобрела UNIX от AT&T, она передала исключительное право владения именем UNIX группе X/OPEN. Таким образом, все системы, которые хотят обозначать себя как UNIX, должны отвечать спецификациям интерфейсов X/OPEN. К настоящему времени ни одна система BSD не была когда-либо проведена через тесты специфика­ций интерфейсов X/OPEN, поэтому ни одна из них не может называться UNIX.

Руководства X/OPEN приняли многие из возможностей POSIX. Стандарт POSIX.1 является также международным стандартом ISO с названием SC22 WG15. Таким обра­зом, возможности POSIX были приняты в большинстве UNIX-подобных систем по всему миру.

Механизм межпроцессного взаимодействия сокетов 4BSD был спро­ектирован для обеспечения переносимости и немедленно перенесен в System III AT&T, хотя он никогда не распространялся с этой системой. Реализация 4BSD набора сетевых протоколов TCP/IP широко используется в качестве основы для дальней­ших реализаций на системах от машин AT&T ЗВ с System V до VMS со встроенными операционными системами, такими, как VxWorks.

CSRG тесно сотрудничала с производителями, системы которых были основаны на 4.2BSD и 4.3BSD. Эта одновременная разработка внесла свой вклад в упрощение дальнейших переносов 4.3BSD и продолжающейся разработки системы.

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

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

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

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

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

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

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

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

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

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

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