Открыть сервис

4.2BSD

4.2BSD — это версия операционной системы Berkeley Software Distribution (BSD), разработанная в Калифорнийском университете в Беркли и выпущенная в августе 1983 года. Она стала одной из наиболее значимых и влиятельных версий BSD, заложившей основы для многих современных Unix-подобных систем, включая последующие версии BSD, а также оказавшей прямое влияние на коммерческие реализации Unix, такие как SunOS и Ultrix.

История

Предпосылки и разработка

Разработка 4.2BSD началась в 1980 году как проект по расширению возможностей 4.1BSD, которая, в свою очередь, была ответом на проблемы производительности 4.0BSD. Основной целью 4.2BSD было создание операционной системы, способной эффективно работать в сетевой среде, поддерживать большие объёмы данных и обеспечивать высокую производительность для научных и инженерных приложений. Ключевым заказчиком и спонсором проекта выступило Агентство перспективных исследовательских проектов Министерства обороны США (DARPA), которое нуждалось в надёжной и масштабируемой Unix-системе для своих исследовательских сетей, в частности ARPANET.

Разработка велась под руководством Билла Джоя и других сотрудников Computer Systems Research Group (CSRG) в Беркли. В процессе работы над 4.2BSD были внесены значительные изменения в ядро, систему управления памятью, файловую систему и сетевой стек. В 1982 году вышла промежуточная версия 4.1aBSD, которая включала первые реализации новой файловой системы и сетевых протоколов. Затем последовали 4.1bBSD и 4.1cBSD, в которых проводились тестирование и доработка.

Релиз и распространение

Официальный выпуск 4.2BSD состоялся в августе 1983 года. Система распространялась по лицензии, которая позволяла использовать её в академических и исследовательских целях, а также в коммерческих продуктах при условии указания авторства. Это способствовало её широкому распространению в университетах, исследовательских лабораториях и компаниях. 4.2BSD стала одной из первых Unix-систем, которая была портирована на архитектуру VAX от Digital Equipment Corporation, что обеспечило ей доступ к мощному и популярному аппаратному обеспечению того времени.

Основные нововведения и особенности

Файловая система Fast File System (FFS)

Одним из наиболее значительных нововведений 4.2BSD стала файловая система Fast File System (FFS), разработанная Маршаллом Кирком МакКузиком и другими. FFS была призвана решить проблемы производительности и надёжности оригинальной файловой системы Unix (UFS), которая была разработана для небольших дисков и неэффективно работала с большими объёмами данных.

Основные особенности FFS:

  • Группировка цилиндров: Диск разбивался на группы цилиндров, каждая из которых содержала собственную суперблок, карту блоков и inode. Это позволяло минимизировать перемещение головок жёсткого диска при чтении и записи данных, увеличивая производительность.
  • Оптимизация размещения данных: FFS стремилась размещать файлы и их метаданные (inode) в одной группе цилиндров, а также обеспечивала последовательное размещение блоков одного файла, что ускоряло последовательное чтение.
  • Поддержка длинных имён файлов: В отличие от предыдущих версий Unix, где имена файлов были ограничены 14 символами, FFS поддерживала имена длиной до 255 символов.
  • Улучшенная надёжность: FFS включала механизмы для восстановления после сбоев, такие как проверка целостности суперблока и использование журнала (хотя полноценное журналирование появилось позже).

FFS стала стандартом для многих Unix-систем на протяжении десятилетий и оказала влияние на разработку файловых систем в других операционных системах, включая ext2/ext3 в Linux.

Сетевой стек и протоколы

4.2BSD стала первой версией BSD, которая включала полноценную реализацию стека протоколов TCP/IP. Это было сделано в рамках контракта с DARPA для поддержки ARPANET. Реализация включала:

  • Протоколы TCP и IP: Базовая передача данных с установлением соединения (TCP) и без установления соединения (UDP).
  • Сокеты (Sockets): Абстракция для сетевого взаимодействия, которая позволяла программам работать с сетевыми соединениями так же, как с файлами. Сокеты стали стандартным интерфейсом для сетевого программирования в Unix.
  • Поддержка ARPANET: Включение протоколов, необходимых для работы в ARPANET, включая Telnet, FTP и SMTP.

Сетевой стек 4.2BSD стал основой для развития интернета. Он был портирован на множество других платформ и лёг в основу сетевых реализаций в коммерческих Unix-системах, а также в Linux и Windows.

Управление памятью и виртуальная память

4.2BSD включала улучшенную систему управления памятью, основанную на страничной организации. Она поддерживала:

  • Виртуальную память: Процессы могли использовать адресное пространство, превышающее физическую память, за счёт подкачки страниц на диск.
  • Разделение памяти: Поддержка совместного использования памяти между процессами (shared memory) и отображения файлов в память (memory-mapped files).
  • Динамическое распределение памяти: Ядро могло выделять и освобождать память для процессов и системных структур по мере необходимости.

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

Другие улучшения

  • Поддержка сигналов: Расширенная модель сигналов, позволяющая процессам обрабатывать асинхронные события.
  • Утилиты и библиотеки: Включение новых утилит, таких как vi (текстовый редактор, разработанный Биллом Джоем), csh (C shell), make (система сборки), diff (сравнение файлов), grep (поиск текста) и многих других.
  • Документация: 4.2BSD поставлялась с обширной документацией, включая справочные руководства (man pages) и руководства по системному администрированию.

Влияние и наследие

Влияние на коммерческие Unix-системы

4.2BSD оказала огромное влияние на коммерческие Unix-системы. Многие компании, такие как Sun Microsystems (SunOS), Digital Equipment Corporation (Ultrix), Hewlett-Packard (HP-UX) и IBM (AIX), лицензировали код 4.2BSD и использовали его в своих продуктах. В частности, SunOS, выпущенная в 1983 году, была основана на 4.2BSD и стала одной из самых популярных рабочих станций Unix.

Влияние на последующие версии BSD

4.2BSD стала основой для последующих версий BSD, включая 4.3BSD (1986), 4.4BSD (1993) и, в конечном счёте, для современных BSD-систем, таких как FreeBSD, NetBSD и OpenBSD. Многие из её нововведений, такие как FFS и сокеты, остаются ключевыми компонентами этих систем.

Влияние на Linux и другие системы

Хотя Linux не является прямой производной от BSD, многие концепции и реализации, разработанные в 4.2BSD, были заимствованы и адаптированы в Linux. Например, файловая система ext2 была основана на принципах FFS, а сетевой стек Linux был вдохновлён BSD-сокетами.

Влияние на развитие интернета

Реализация TCP/IP в 4.2BSD стала стандартом де-факто для сетевого взаимодействия. Она обеспечила надёжную и эффективную основу для ARPANET и, впоследствии, для интернета. Многие протоколы и утилиты, разработанные для 4.2BSD, такие как Telnet, FTP и SMTP, стали основой для современных интернет-протоколов.

Критика и ограничения

Несмотря на свои достижения, 4.2BSD не была лишена недостатков. Основные критики касались:

  • Сложность: Система была значительно сложнее предыдущих версий Unix, что требовало от системных администраторов и разработчиков более глубоких знаний.
  • Производительность: Хотя FFS была значительным улучшением, она всё ещё могла быть неэффективной на некоторых типах дисков и при определённых нагрузках.
  • Совместимость: 4.2BSD не была полностью совместима с AT&T System V Unix, что приводило к проблемам с переносимостью программного обеспечения.
  • Лицензирование: Исходный код 4.2BSD содержал код AT&T, что ограничивало его распространение и использование в коммерческих продуктах без лицензирования.

Источники

  • McKusick, M. K., Joy, W. N., Leffler, S. J., & Fabry, R. S. (1984). A Fast File System for UNIX. ACM Transactions on Computer Systems, 2(3), 181–197.
  • Quarterman, J. S., & Hoskins, J. (1985). Notable Computer Networks. Communications of the ACM, 28(10), 1014–1029.
  • Salus, P. H. (1994). A Quarter Century of UNIX. Addison-Wesley.
  • McKusick, M. K., & Neville-Neil, G. V. (2005). The Design and Implementation of the FreeBSD Operating System. Addison-Wesley.
  • Leffler, S. J., McKusick, M. K., Karels, M. J., & Quarterman, J. S. (1989). The Design and Implementation of the 4.3BSD UNIX Operating System. Addison-Wesley.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →