stringtranslate.com

Распространение программного обеспечения Беркли

Распространение программного обеспечения Беркли или Стандартное распространение Беркли [1] ( BSD ) — это снятая с производства операционная система на базе Research Unix , разработанная и распространяемая Группой исследования компьютерных систем (CSRG) в Калифорнийском университете в Беркли . Термин «BSD» обычно относится к ее потомкам с открытым исходным кодом, включая FreeBSD , OpenBSD , NetBSD и DragonFly BSD .

Первоначально BSD называлась Berkeley Unix , поскольку она была основана на исходном коде оригинальной Unix , разработанной в Bell Labs . В 1980-х годах BSD была широко принята поставщиками рабочих станций в виде проприетарных вариантов Unix, таких как DEC Ultrix и Sun Microsystems SunOS , благодаря ее разрешительному лицензированию и знакомству со многими основателями и инженерами технологических компаний. Эти проприетарные производные BSD были в значительной степени заменены в 1990-х годах UNIX SVR4 и OSF/1 .

Более поздние выпуски BSD послужили основой для нескольких операционных систем с открытым исходным кодом , включая FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Darwin и TrueOS . Они, в свою очередь, использовались проприетарными операционными системами, включая Apple macOS и iOS , которые произошли от них [2] и Microsoft Windows , которая использовала (по крайней мере) часть своего кода TCP/IP, что было законно . [3] Код из FreeBSD также использовался для создания операционной системы для PlayStation 5 , [4] PlayStation 4 , [5] PlayStation 3 , [6] PlayStation Vita , [7] и Nintendo Switch . [8] [9]

История

Простая блок-схема, показывающая историю и график развития Unix, начиная с одного пузыря вверху и 13 притоков внизу потока.
Упрощенная эволюция систем Unix . Не показаны Junos , системное программное обеспечение PlayStation 3 и другие проприетарные версии.

Самые ранние дистрибутивы Unix от Bell Labs в 1970-х годах включали исходный код операционной системы, что позволяло исследователям в университетах модифицировать и расширять Unix. Операционная система прибыла в Беркли в 1974 году по просьбе профессора информатики Боба Фабри , который входил в программный комитет симпозиума по принципам операционных систем , на котором впервые была представлена ​​Unix. Для работы системы был куплен PDP -11/45 , но по бюджетным причинам эту машину использовали группы математики и статистики в Беркли, которые использовали RSTS , так что Unix работал на машине только восемь часов в день (иногда во время днем, иногда ночью). В следующем году более крупный PDP-11/70 был установлен в Беркли на деньги, полученные от проекта базы данных Ingres . [10] Понимание BSD требует глубокого погружения в историю Unix, операционной системы, впервые выпущенной AT&T Bell Labs в 1969 году. BSD зародилась как вариант Unix, который программисты из Калифорнийского университета в Беркли первоначально возглавляли Билл Джой. , начал развиваться в конце 1970-х годов.

Поначалу BSD не была клоном Unix или даже существенно отличающейся от нее версией. Он просто включал некоторые дополнительные функции, которые были переплетены с кодом, принадлежащим AT&T.

В 1975 году Кен Томпсон взял творческий отпуск в Bell Labs и приехал в Беркли в качестве приглашенного профессора. Он помог установить Unix версии 6 и начал работать над реализацией системы на языке Pascal . Аспиранты Чак Хейли и Билл Джой усовершенствовали Паскаль Томпсона и внедрили улучшенный текстовый редактор, например . [10] Другие университеты заинтересовались программным обеспечением Беркли, и поэтому в 1977 году Джой начал компилировать первый дистрибутив программного обеспечения Беркли (1BSD), который был выпущен 9 марта 1978 года. [11] 1BSD была дополнением к версии 6. Unix, а не полноценная операционная система сама по себе. Было разослано около тридцати экземпляров. [10]

Второй дистрибутив программного обеспечения Berkeley (2BSD), выпущенный в мае 1979 года, [12] включал обновленные версии программного обеспечения 1BSD, а также две новые программы Joy, которые сохраняются в системах Unix по сей день: текстовый редактор vi ( визуальная версия ex ) и оболочка C. Билл Джой разослал около 75 копий 2BSD. [10]

VAX -11/780 , типичный мини-компьютер, использовавшийся в ранних системах разделения времени BSD.

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

Черно-белый скриншот входа в эмуляцию 4.3 BSD UWisc VAX
«4.3 BSD UNIX» из Университета Висконсина, около 1987 г. Запуск системы и вход в систему.

После выпуска 4.3BSD в июне 1986 года было решено, что BSD отойдет от устаревшей платформы VAX. Платформа Power 6/32 (под кодовым названием «Tahoe»), разработанная Computer Consoles Inc. , в то время казалась многообещающей, но вскоре после этого разработчики отказались от нее. Тем не менее, порт 4.3BSD-Tahoe (июнь 1988 г.) оказался ценным, поскольку привел к разделению машинно-зависимого и машинно-независимого кода в BSD, что улучшило будущую переносимость системы.

Помимо переносимости, CSRG работала над реализацией стека сетевых протоколов OSI , улучшениями системы виртуальной памяти ядра и (совместно с Ван Джейкобсоном из LBL ) новыми алгоритмами TCP/IP, чтобы приспособиться к росту Интернета. [13]

До этого все версии BSD использовали собственный код Unix AT&T и, следовательно, подпадали под действие лицензии на программное обеспечение AT&T. Лицензии на исходный код стали очень дорогими, и несколько сторонних сторон выразили заинтересованность в отдельной версии сетевого кода, который был разработан полностью вне AT&T и не подпадал под действие лицензионных требований. Это привело к появлению Networking Release 1 ( Net/1 ), который был доступен нелицензиатам кода AT&T и мог свободно распространяться в соответствии с условиями лицензии BSD . Он был выпущен в июне 1989 года.

После Net/1 разработчик BSD Кейт Бостик предложил выпускать больше разделов системы BSD, не принадлежащих AT&T, под той же лицензией, что и Net/1. С этой целью он начал проект по переопределению большинства стандартных утилит Unix без использования кода AT&T. В течение восемнадцати месяцев все утилиты AT&T были заменены, и было установлено, что в ядре осталось лишь несколько файлов AT&T. Эти файлы были удалены, и результатом стал выпуск в июне 1991 года Networking Release 2 (Net/2), почти полной операционной системы, которую можно было свободно распространять.

Net/2 был основой для двух отдельных портов BSD на архитектуру Intel 80386 : бесплатная 386BSD от Уильяма и Линн Джолитц и проприетарная BSD/386 (позже переименованная в BSD/OS) от Berkeley Software Design (BSDi). Сама 386BSD просуществовала недолго, но стала исходной базой кода для проектов NetBSD и FreeBSD , которые были начаты вскоре после этого.

Вскоре у BSDi возникли юридические проблемы с дочерней компанией AT&T Unix System Laboratories (USL), которая в то время владела авторскими правами на System V и торговой маркой Unix. Иск USL против BSDi был подан в 1992 году и привел к запрету на распространение Net/2 до тех пор, пока не будет определена обоснованность претензий USL по авторским правам на источник. Судебный процесс замедлил развитие свободных программ-потомков BSD почти на два года, пока их правовой статус был под вопросом, и в результате системы, основанные на ядре Linux , не имевшие такой юридической двусмысленности, получили большую поддержку. Иск был урегулирован в январе 1994 года в основном в пользу Беркли. Из 18 000 файлов в дистрибутиве Беркли только три пришлось удалить и 70 изменить, чтобы показать уведомления об авторских правах USL. Еще одним условием мирового соглашения было то, что USL не будет подавать дальнейшие иски против пользователей и распространителей кода, принадлежащего Беркли, в предстоящем выпуске 4.4BSD. [14]

Последним выпуском в Беркли стал 4.4BSD-Lite Release 2 в 1995 году , после чего CSRG была распущена и разработка BSD в Беркли прекратилась. С тех пор поддерживается несколько вариантов, прямо или косвенно основанных на 4.4BSD-Lite (таких как FreeBSD , NetBSD , OpenBSD и DragonFly BSD ).

Разрешительный характер лицензии BSD позволил многим другим операционным системам, как с открытым исходным кодом , так и с проприетарным, включать исходный код BSD. Например, Microsoft Windows использовала код BSD в своей реализации TCP/IP [15] и включала в себя перекомпилированные версии сетевых инструментов командной строки BSD, начиная с Windows 2000 . [16] Darwin , основа Apple macOS и iOS , основана на 4.4BSD-Lite2 и FreeBSD. Различные коммерческие операционные системы Unix, такие как Solaris , также включают код BSD.

Связь с исследовательской Unix

Начиная с 8-го издания, версии Research Unix в Bell Labs имели тесную связь с BSD. Это началось, когда 4.1cBSD для VAX была использована в качестве основы для Research Unix 8-го издания. Это продолжалось и в последующих версиях, таких как 9-е издание, которое включало исходный код и улучшения по сравнению с 4.3BSD. В результате эти более поздние версии Research Unix были ближе к BSD, чем к System V. В сообщении Usenet от 2000 года Деннис Ритчи описал эту связь между BSD и Research Unix: [17] [ нужен лучший источник ]

Исследование Unix 8-го издания началось (я думаю) с BSD 4.1c, но с огромными объемами, извлеченными и замененными нашими собственными материалами. Это продолжалось с 9-го и 10-го числа. Я думаю, что обычный пользовательский набор команд был немного более BSD-привкусом, чем SysVish, но он был довольно эклектичным.

Связь с Системой V

Эрик С. Рэймонд резюмирует давние отношения между System V и BSD, заявляя: «Разделение было примерно между длинношерстными и короткошерстными; программисты и технические специалисты, как правило, выстраивались в ряд с Беркли и BSD, более бизнес-ориентированные типы — с AT&T и System V. " [18]

В 1989 году Дэвид А. Карри написал о различиях между BSD и System V. Он охарактеризовал System V как часто рассматриваемую как «стандартную Unix». Однако он описал BSD как более популярную среди университетских и государственных компьютерных центров из-за ее расширенных функций и производительности: [19]

Большинство университетских и правительственных компьютерных центров, использующих UNIX, используют Berkeley UNIX, а не System V. Для этого есть несколько причин, но, пожалуй, две наиболее важные заключаются в том, что Berkeley UNIX предоставляет сетевые возможности, которые до недавнего времени (выпуск 3.0) были совершенно недоступны в System V. V, и что UNIX Беркли гораздо больше подходит для исследовательской среды, где требуется более быстрая файловая система, лучшая обработка виртуальной памяти и большее разнообразие языков программирования .

Технологии

Розетки Беркли

Черно-белый скриншот руководства по эмуляции Lisp для 4.3 BSD UWisc VAX
4.3 BSD от Университета Висконсина . Отображение man - страницы Franz Lisp .
SunOS 4.1.1 P1270750 Лента 1/4 дюйма
Лента для SunOS 4.1.1, производной от 4.3BSD
Рабочая станция Sony NEWS под управлением операционной системы NEWS-OS на базе BSD.

Unix Беркли была первой Unix, включавшей библиотеки, поддерживающие стеки интернет-протоколов : сокеты Беркли . Unix-реализация предшественника IP, NCP ARPAnet , с клиентами FTP и Telnet , была разработана в Университете Иллинойса в 1975 году и доступна в Беркли. [20] [21] Однако нехватка памяти на PDP-11 привела к усложнению конструкции и проблемам с производительностью. [22]

Благодаря интеграции сокетов с файловыми дескрипторами операционной системы Unix стало почти так же легко читать и записывать данные по сети , как и получать доступ к диску. Лаборатория AT&T в конечном итоге выпустила собственную библиотеку STREAMS , которая включала большую часть той же функциональности в программный стек с другой архитектурой, но широкое распространение существующей библиотеки сокетов снизило влияние нового API . Ранние версии BSD использовались для создания SunOS компании Sun Microsystems , основав первую волну популярных рабочих станций Unix.

Бинарная совместимость

Некоторые операционные системы BSD могут запускать собственное программное обеспечение нескольких других операционных систем на той же архитектуре , используя уровень двоичной совместимости . Это намного проще и быстрее, чем эмуляция ; например, он позволяет запускать приложения, предназначенные для Linux , на полной скорости. Это делает BSD подходящими не только для серверных сред, но и для рабочих станций, учитывая растущую доступность коммерческого программного обеспечения или программного обеспечения с закрытым исходным кодом только для Linux. Это также позволяет администраторам переносить устаревшие коммерческие приложения, которые могли поддерживать только коммерческие варианты Unix, в более современную операционную систему, сохраняя функциональность таких приложений до тех пор, пока они не будут заменены лучшей альтернативой.

Стандарты

Текущие варианты операционной системы BSD поддерживают многие распространенные стандарты IEEE , ANSI , ISO и POSIX , сохраняя при этом большую часть традиционного поведения BSD. Как и AT&T Unix , ядро ​​BSD является монолитным , что означает, что драйверы устройств в ядре работают в привилегированном режиме как часть ядра операционной системы.

Потомки BSD

Несколько операционных систем основаны на BSD, включая FreeBSD , OpenBSD , NetBSD , MidnightBSD , MirOS BSD , GhostBSD , Darwin и DragonFly BSD . И NetBSD, и FreeBSD были созданы в 1993 году. Первоначально они были производными от 386BSD (также известной как «Jolix») и объединили исходный код 4.4BSD-Lite в 1994 году. OpenBSD была ответвлением NetBSD в 1995 году, а DragonFly BSD — ответвлением от FreeBSD в 2003 году.

BSD также использовалась в качестве основы для нескольких проприетарных версий Unix, таких как SunOS от Sun , DYNIX от Sequent , NeXTSTEP от NeXT , Ultrix от DEC и OSF/1 AXP (теперь Tru64 UNIX ). NeXTSTEP позже стал основой для macOS от Apple Inc.

Смотрите также

Рекомендации

  1. ^ «Почему вам следует использовать лицензию в стиле BSD для вашего проекта с открытым исходным кодом» . Проект FreeBSD . BSD (стандартное распределение Беркли) . Проверено 3 августа 2021 г.
  2. ^ «Руководство по программированию ядра Apple: обзор BSD» . Проверено 27 марта 2021 г.
  3. ^ «На самом деле Windows ДЕЙСТВИТЕЛЬНО использует некоторый код BSD» . Архивировано из оригинала 25 марта 2018 года . Проверено 24 марта 2018 г.
  4. ^ «Ядро». Вики для разработчиков PlayStation 5 .
  5. ^ «Программное обеспечение с открытым исходным кодом, используемое в PlayStation 4» . Архивировано из оригинала 12 декабря 2017 года . Проверено 3 октября 2019 г.
  6. ^ «Программное обеспечение с открытым исходным кодом, используемое в PlayStation 3» . Архивировано из оригинала 11 ноября 2017 года . Проверено 8 декабря 2022 г.
  7. ^ «Программное обеспечение с открытым исходным кодом, используемое в PlayStation Vita» . Архивировано из оригинала 12 декабря 2017 года . Проверено 8 декабря 2022 г.
  8. Ссылки 情報|Nintendo». www.nintendo.co.jp . Архивировано из оригинала 26 июля 2020 года . Проверено 26 июля 2020 г.
  9. Цао (8 марта 2017 г.). «Nintendo Switch работает под управлением FreeBSD». FreeBSDNews.com . Архивировано из оригинала 26 июля 2020 года . Проверено 26 июля 2020 г.
  10. ^ abcd Салус, Питер Х. (2005). «Глава 7. BSD и CSRG». Демон, Гну и Пингвин . Гроклав . Архивировано из оригинала 14 июня 2020 года . Проверено 6 сентября 2017 г.
  11. ^ Салус (1994), с. 142
  12. ^ Туми, Уоррен. «Сведения об архивах ПУПС». tuhs.org . Общество наследия Unix . Архивировано из оригинала 9 июля 2006 года . Проверено 6 октября 2010 г.
  13. ^ М. К. МакКьюсик, М. Дж. Карелс, Кейт Склоуэр, Кевин Фолл, Марк Тейтельбаум и Кейт Бостик (1989). Текущие исследования Исследовательской группы компьютерных систем Беркли. Учеб. Европейская группа пользователей Unix.
  14. ^ Эрик С. Рэймонд. «Искусство программирования для Unix: истоки и история Unix, 1969–1995». Архивировано из оригинала 5 октября 2014 года . Проверено 18 июля 2014 г.
  15. Барр, Адам (19 июня 2001 г.). «Майкрософт, TCP/IP, открытый исходный код и лицензирование». Архивировано из оригинала 14 ноября 2005 года . Проверено 7 июня 2019 г.
  16. ^ «Код BSD в Windows» . all2.com . 20 марта 2001 года. Архивировано из оригинала 25 августа 2008 года . Проверено 20 января 2009 г.
  17. Деннис Ричи (26 октября 2000 г.). «alt.folklore.computers: BSD (Деннис Ричи)». Архивировано из оригинала 14 июля 2014 года . Проверено 3 июля 2014 г.
  18. ^ Рэймонд, Эрик С. Искусство программирования для Unix. 2003. с. 38
  19. ^ Карри, Дэвид. Использование C в системе UNIX: Руководство по системному программированию. 1989. стр. 2–3.
  20. ^ Чессон, GL (1976). «Сетевая система Unix». Обзор операционных систем ACM SIGOPS . 9 (5): 60–66. дои : 10.1145/1067629.806522 .
  21. ^ RFC  681
  22. ^ Квартерман, Джон С.; Зильбершац, Авраам; Петерсон, Джеймс Л. (декабрь 1985 г.). «4.2BSD и 4.3BSD как примеры системы Unix». Вычислительные опросы . 17 (4): 379–418. CiteSeerX 10.1.1.117.9743 . дои : 10.1145/6041.6043. S2CID  5700897. 

Библиография

Внешние ссылки