stringtranslate.com

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

Berkeley Software Distribution или Berkeley Standard Distribution [1] ( BSD ) — это устаревшая операционная система на основе Research Unix , разработанная и распространяемая Computer Systems Research Group (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 . Они, в свою очередь, использовались проприетарными операционными системами, включая macOS и iOS от Apple , которые произошли от них [2] и Microsoft Windows (по крайней мере с 2000 года и XP ), которая использовала (по крайней мере) часть своего кода 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, который программисты Калифорнийского университета в Беркли, изначально возглавляемые Биллом Джоем , начали разрабатывать в конце 1970-х годов. Он включал дополнительные функции, которые были переплетены с кодом, принадлежащим AT&T.

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

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

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

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

Черно-белый скриншот входа в систему эмуляции BSD UWisc VAX 4.3
"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 использовали проприетарный код AT&T Unix и, следовательно, подпадали под лицензию программного обеспечения AT&T. Лицензии на исходный код стали очень дорогими, и несколько сторонних сторон выразили заинтересованность в отдельном выпуске сетевого кода, который был разработан полностью вне AT&T и не подпадал бы под требования лицензирования. Это привело к выпуску Networking Release 1 ( Net/1 ), который был доступен нелицензиатам кода AT&T и свободно распространялся в соответствии с условиями лицензии BSD . Он был выпущен в июне 1989 года.

После Net/1 разработчик BSD Кейт Бостик предложил, чтобы больше не-AT&T разделов системы BSD были выпущены под той же лицензией, что и 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 , основа для macOS и iOS от Apple , основана на 4.4BSD-Lite2 и FreeBSD. Различные коммерческие операционные системы Unix, такие как Solaris , также включают код BSD.

Связь с Research 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] [ требуется лучший источник ]

Research Unix 8th Edition начинался с (я думаю) 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, и что Berkeley UNIX гораздо больше подходит для исследовательской среды, которая требует более быстрой файловой системы, лучшей обработки виртуальной памяти и большего разнообразия языков программирования .

Технологии

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

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

Unix Беркли был первым Unix, включавшим библиотеки, поддерживающие стеки интернет-протоколов : сокеты Беркли . Реализация предшественника IP в Unix, 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 (Berkeley Standard Distribution) . Получено 3 августа 2021 г.
  2. ^ "Руководство по программированию ядра Apple: обзор BSD" . Получено 27 марта 2021 г. .
  3. ^ "На самом деле Windows использует некоторый код BSD". Архивировано из оригинала 25 марта 2018 г. Получено 24 марта 2018 г.
  4. ^ "Ядро". PlayStation 5 Dev Wiki .
  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. ^ Cao (8 марта 2017 г.). "Nintendo Switch запускает FreeBSD". FreeBSDNews.com . Архивировано из оригинала 26 июля 2020 г. . Получено 26 июля 2020 г. .
  10. ^ abcd Salus, Peter H. (2005). "Глава 7. BSD и CSRG". Демон, Гну и Пингвин . Groklaw . Архивировано из оригинала 14 июня 2020 г. Получено 6 сентября 2017 г.
  11. ^ Салус (1994), стр. 142
  12. ^ Туми, Уоррен. «Подробности архивов PUPS». tuhs.org . The Unix Heritage Society . Архивировано из оригинала 9 июля 2006 г. . Получено 6 октября 2010 г. .
  13. ^ МакКьюсик, МК; Карелс, МДж; Склауэр, Кейт; Фолл, Кевин; Тейтельбаум, Марк; Бостик, Кейт (1989). "Текущие исследования Исследовательской группы компьютерных систем Беркли" (PDF) . Труды весенней конференции Европейской группы пользователей Unix .
  14. ^ Эрик С. Рэймонд. «Искусство программирования Unix: происхождение и история Unix, 1969–1995». Архивировано из оригинала 5 октября 2014 г. Получено 18 июля 2014 г.
  15. Barr, Adam (19 июня 2001 г.). «Microsoft, TCP/IP, Open Source и Licensing». Архивировано из оригинала 14 ноября 2005 г. Получено 7 июня 2019 г.
  16. ^ "BSD Code in Windows". everything2.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. ^ Чессон, Г. Л. (1976). «Сетевая система Unix». Обзор операционных систем ACM SIGOPS . 9 (5): 60–66. doi : 10.1145/1067629.806522 .
  21. ^ RFC681 ​
  22. ^ Quarterman, John S.; Silberschatz, Abraham; Peterson, James L. (декабрь 1985 г.). «4.2BSD и 4.3BSD как примеры системы Unix». Computing Surveys . 17 (4): 379–418. CiteSeerX 10.1.1.117.9743 . doi :10.1145/6041.6043. S2CID  5700897. 

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

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