![]() | |
![]() | |
Developer | Семейство ОС NetBSD Foundation |
---|---|
Unix-like | |
Рабочее состояние | Текущая |
Исходная модель | Открытый исходный код |
Первый выпуск | 19 апреля 1993 г .; 27 лет назад (1993-04-19) |
Последний выпуск | 9.1 / 18 октября 2020 г.; 3 дня назад (2020-10-18) |
Последняя предварительная версия | 9.99.x / Ежедневные сборки |
Репозиторий | ![]() |
Менеджер пакетов | pkgsrc |
Платформы | Alpha, ARM, PA-RISC, 68k, MIPS, PowerPC, SH3, SPARC, RISC-V, VAX, x86 |
Kernel тип | Monolithic с динамически загружаемыми модулями, ядром rump |
Userland | BSD |
Default пользовательским интерфейсом | Unix shell |
License | Лицензия BSD с двумя пунктами |
Официальный сайт | netbsd.org |
NetBSD - это бесплатный Unix-подобный операционная система на основе Berkeley Software Distribution (BSD). Это был первый потомок BSD с открытым исходным кодом, официально выпущенный после того, как 386BSD был разветвлен. Он продолжает активно развиваться и доступен для многих платформ, включая серверы, настольные компьютеры, карманные устройства и встроенные системы.
Проект NetBSD фокусируется на ясности кода, тщательном проектировании и переносимости на многие компьютерные архитектуры.. Его исходный код находится в открытом доступе и разрешен по лицензии.
Изначально NetBSD была создана из версии 4.3BSD-Reno дистрибутива Berkeley Software Distribution от Computer Systems Research Group Калифорнийского университета в Беркли через их исходный код Net / 2 и проект 386BSD. Проект NetBSD начался в результате разочарования в сообществе разработчиков 386BSD темпами и направлением развития операционной системы. Четыре основателя проекта NetBSD, Крис Деметриу, Тео де Раад, Адам Гласс и Чарльз Ханнум, считали, что более открытая модель разработки принесет пользу проекту: модель, ориентированная на переносимый, чистый и правильный код. Они стремились создать унифицированную многоплатформенную операционную систему производственного качества на основе BSD. Название "NetBSD" было выбрано на основании важности и роста сетей, таких как Интернет в то время, и распределенного, совместного характера их разработки.
Репозиторий исходного кода NetBSD был создан 21 марта 1993 года, а первый официальный выпуск NetBSD 0.8 был выпущен 19 апреля 1993 года. Он был производным от 386BSD 0.1 плюс неофициальный пакет исправлений версии 0.2.2, с несколькими программами из сети / 2, отсутствующий в реинтеграции 386BSD, и различные другие улучшения. Первый многоплатформенный выпуск, NetBSD 1.0, был выпущен в октябре 1994 года и, будучи обновленным с использованием исходных кодов 4.4BSD-Lite, не содержал юридически ограниченного кода 4.3BSD Net / 2. В том же 1994 году по спорным причинам из проекта был отстранен один из основателей Тео де Раадт. Позже он основал новый проект OpenBSD из разветвленной версии NetBSD 1.0 в конце 1995 года. В 1998 году NetBSD 1.3 представила коллекцию пакетов pkgsrc.
До 2004 года выпуски NetBSD 1.x выпускались примерно раз в год с небольшими выпусками «патчей» между ними. Начиная с выпуска 2.0, NetBSD использует семантическое управление версиями, и каждому основному выпуску NetBSD соответствует увеличенный номер основной версии, то есть основными выпусками, следующими за 2.0, являются 3.0, 4.0 и так далее. Предыдущие второстепенные выпуски теперь разделены на две категории: «стабильные» отладочные выпуски xy и выпуски xyz, содержащие только критические исправления и исправления безопасности.
Согласно девизу проекта («Конечно, он работает с NetBSD») NetBSD был перенесен на большое количество 32- и 64-битные архитектуры. Они варьируются от VAX миникомпьютеров до Pocket PC PDA. По состоянию на 2019 год NetBSD поддерживает 59 аппаратных платформ (для 16 различных наборов инструкций ). Ядро и пользовательская среда для этих платформ построены из центрального унифицированного дерева исходного кода, управляемого CVS. В настоящее время, в отличие от других ядер, таких как μClinux, ядро NetBSD требует наличия MMU в любой заданной целевой архитектуре.
Портативности NetBSD способствует использование интерфейсов уровня аппаратной абстракции для низкоуровневого доступа к аппаратному обеспечению, например, шина ввода / вывода или DMA. Используя этот уровень переносимости, драйверы устройств можно разделить на «машинно-независимые» и «машинно-зависимые» компоненты. Это упрощает использование одного драйвера на нескольких платформах, скрывая детали доступа к оборудованию, и сокращает объем работы по переносу его в новую систему.
Это позволяет использовать конкретный драйвер устройства для карты PCI для работы без модификаций, будь то в слоте PCI на IA-32, Alpha, PowerPC, SPARC или другом архитектура с шиной PCI. Кроме того, один драйвер для конкретного устройства может работать через несколько разных шин, например, ISA, PCI или PC Card.
Для сравнения: код драйвера устройства Linux часто необходимо переделывать для каждой новой архитектуры. Как следствие, при переносе усилий разработчиков NetBSD и Linux NetBSD потребовалось гораздо меньше времени на перенос на новое оборудование.
Эта независимость от платформы помогает при разработке встроенных систем, особенно начиная с NetBSD 1.6, когда весь набор инструментов компиляторов, ассемблеров, компоновщиков и других инструментов полностью поддерживает кросс-компиляцию.
В 2005 году в качестве демонстрации переносимости NetBSD и ее пригодности для встраиваемых приложений компания Technologic Systems, поставщик оборудования для встраиваемых систем, разработала и продемонстрировала кухонный тостер.
на базе NetBSD и коммерческие порты для встроенных платформ, включая AMD Geode LX800, Freescale процессоры PowerQUICC, Marvell Orion, AMCC 405 процессоры PowerPC, Intel XScale серии IOP и IXP были доступны и поддерживаются компанией Wasabi Systems.
Среда кросс-компиляции NetBSD (также известная как «build.sh») позволяет разработчику построить полную систему NetBSD для архитектуры из более мощной системы с другой архитектурой. (кросс-компиляция ), в том числе в другой операционной системе (фреймворк поддерживает большинство POSIX -совместимых систем). Для некоторых встроенных систем, использующих NetBSD, не потребовалось никакой дополнительной разработки программного обеспечения, кроме набора инструментов и целевого рехоста.
Особенности NetBSD pkgsrc (сокращение от «источник пакета»), фреймворк для создания и управления сторонними пакетами прикладного программного обеспечения. По состоянию на октябрь 2019 года коллекция pkgsrc состоит из более чем 20 000 пакетов. Сборка и установка таких пакетов, как KDE, GNOME, HTTP-сервер Apache или Perl выполняется с использованием системы make-файлов. Это может автоматически получить исходный код, распаковать, исправить, настроить, собрать и установить пакет, чтобы его можно было снова удалить позже. Альтернативой компиляции из исходного кода является использование предварительно скомпилированного двоичного пакета. В любом случае любые предварительные требования / зависимости будут установлены системой пакетов автоматически без необходимости ручного вмешательства.
pkgsrc поддерживает не только NetBSD, но и несколько других вариантов BSD, таких как FreeBSD и Darwin / Mac OS X и другие Unix-подобные операционные системы, такие как Linux, Solaris, IRIX и другие, а также Interix. pkgsrc ранее был принят в качестве официальной системы управления пакетами для DragonFly BSD.
NetBSD поддерживает SMP с момента выпуска NetBSD 2.0 в 2004 году., который изначально был реализован с использованием подхода гигантской блокировки. Во время цикла разработки выпуска NetBSD 5 была проделана основная работа по улучшению поддержки SMP; большинство подсистем ядра были модифицированы для использования подхода тонкой блокировки. Были реализованы новые примитивы синхронизации , и в феврале 2007 года активация планировщика была заменена на 1: 1 потоковую модель. Был реализован масштабируемый планировщик потоков M2, хотя старый Планировщик 4.4BSD по-прежнему используется по умолчанию, но был изменен для масштабирования с помощью SMP. Для улучшения синхронизации были реализованы потоковые программные прерывания . Система виртуальной памяти, распределитель памяти и обработка ловушек были сделаны безопасными для MP. Структура файловой системы, включая VFS и основные файловые системы , была изменена для обеспечения безопасности MP. С апреля 2008 года единственными подсистемами, работающими с гигантской блокировкой, являются сетевые протоколы и большинство драйверов устройств.
NetBSD предоставляет различные функции в области безопасности. Инфраструктура авторизации ядра (или Kauth) - это подсистема, управляющая всеми запросами авторизации внутри ядра и используемая как общесистемная политика безопасности. Это позволяет внешним модулям подключать процесс авторизации. NetBSD также включает функции защиты от эксплойтов, ASLR, KASLR, ограниченный mprotect () и Segvguard из проекта PaX и GCC Stack Smashing Protection <400.>(SSP, или также известный как ProPolice, включен по умолчанию, начиная с NetBSD 6.0) расширения компилятора. Проверенные исполняемые файлы (или Veriexec) - это подсистема целостности файлов в ядре NetBSD. Он позволяет пользователю устанавливать цифровые отпечатки (хэши) файлов и выполнять ряд различных действий, если файлы не соответствуют их отпечаткам пальцев. Например, можно разрешить Perl запускать только сценарии, соответствующие их отпечаткам. Драйвер криптографического устройства (CGD) позволяет использовать диски или разделы (включая CD и DVD) для зашифрованного хранилища.
Монитор виртуальной машины Xen поддерживается в NetBSD начиная с выпуска 3.0. Использование Xen требует специальной среды загрузки перед ядром, которая загружает специализированное ядро Xen в качестве «ОС хоста» (Dom0). Любое количество виртуализированных компьютеров с «гостевыми ОС» (DomU), со специальной поддержкой Xen / DomU или без нее, может работать параллельно с соответствующими аппаратными ресурсами.
Необходимость в стороннем диспетчере загрузки, таком как GRUB, была устранена с помощью Xen-совместимого диспетчера загрузки NetBSD 5. NetBSD 6 как Dom0 сравнивалась с Linux, в некоторых тестах показала лучшую производительность, чем Linux.
Начиная с NetBSD 9.0, ускоренная виртуализация обеспечивается с помощью собственного гипервизора NVMM (NetBSD Virtual Machine Monitor). Он предоставляет API виртуализации, libnvmm
, который может использоваться эмуляторами, такими как QEMU. Уникальным свойством NVMM является то, что ядро никогда не обращается к памяти гостевой виртуальной машины, а только создает ее. HAXM предоставляет альтернативное решение для ускорения в QEMU только для процессоров Intel, подобно Linux KVM.
NetBSD 5.0 представила ядро rump, архитектуру для запуска драйверов в пользовательском пространстве путем эмуляции ядра - космические звонки. Эта архитектура с любым ядром позволяет добавить поддержку драйверов NetBSD к другим архитектурам ядра, от exokernels до монолитных ядер.
NetBSD включает в себя множество корпоративных функций, таких как iSCSI, журналируемая файловая система, управление логическими томами и файловая система ZFS.
Интерфейс bio (4) для независимого от производителя RAID управления томами с помощью bioctl доступен в NetBSD с 2007 года.
Журнальная файловая система WAPBL, расширение файловой системы BSD FFS, была предоставлена компанией Wasabi Systems в 2008 году.
Диспетчер логических томов NetBSD основан на повторной реализации устройства BSD. -mapper и порт инструментов Linux Logical Volume Manager. В основном он был написан во время Google Summer of Code 2008.
Файловая система ZFS, разработанная Sun Microsystems, была импортирована в базовую систему NetBSD. в 2009 году. В настоящее время порт ZFS для NetBSD основан на ZFS версии 22.
Файловая система CHFS Flash memory была импортирована в NetBSD в ноябре 2011 года. CHFS - это файловая система, разработанная на факультете программной инженерии Университета Сегеда, Венгрия, и является первой файловой системой с открытым исходным кодом для Flash, написанной для NetBSD.
На уровне исходного кода NetBSD почти полностью соответствует стандарту POSIX.1 (IEEE 1003.1-1990) и в основном соответствует POSIX.2 (IEEE 1003.2-1992).
NetBSD обеспечивает двоичную совместимость уровня системного вызова на соответствующих архитектурах процессоров с предыдущими выпусками, а также с некоторыми другими операционными системами, производными от UNIX и UNIX-подобными, включая Linux и другие производные от 4.3BSD, такие как SunOS 4. Это позволяет пользователям NetBSD запускать множество приложений, которые распространяются только в двоичной форме для других операционных систем, обычно без существенной потери производительности.
Различные форматы «чужих» дисков файловой системы также поддерживается в NetBSD, включая ZFS, FAT, NTFS, Linux ext2fs, Apple HFS и OS X UFS, RISC OS FileCore / ADFS, AmigaOS Fast File System, IRIX EFS, Файловая система Unix версии 7 и многие другие с помощью PUFFS.
Сценарии пространства ядра с язык программирования Lua - относительно новая функция в NetBSD; он доступен начиная с NetBSD 7.0. Язык Lua (то есть его интерпретатор и стандартные библиотеки) был первоначально перенесен на ядро NetBSD во время Google Summer of Code 2010 и с тех пор претерпел несколько улучшений. Между пространством пользователя и Lua пространства ядра есть два основных различия: ядро Lua не поддерживает числа с плавающей запятой ; поэтому доступны только целые числа Lua. Он также не имеет полной поддержки библиотек пользовательского пространства, которые зависят от операционной системы (например, io и os).
В NetBSD с 1999/2000 г. использовалась встроенная среда аппаратного мониторинга, а в 2003 г. она послужила источником вдохновения для OpenBSD sysctl hw.sensors, когда некоторые драйверы NetBSD переносились на OpenBSD.
По состоянию на март 2019 года в NetBSD было около 85 драйверов устройств, экспортирующих данные через API инфраструктуры envsys.. Начиная с версии 2007 года, сериализация данных между ядром и пользовательской средой выполняется через XML списки свойств с помощью NetBSD proplib (3).
Чистый дизайн NetBSD, высокая производительность, масштабируемость и поддержка многих архитектур привели к ее использованию во встроенных устройствах и серверах, особенно в сетевых приложениях.
Коммерческая операционная система реального времени, QNX, использует сетевой стек на основе кода NetBSD и предоставляет различные драйверы, перенесенные из NetBSD.
Dell Force10 использует NetBSD в качестве базовой операционной системы, которая поддерживает FTOS (операционная система Force10), который используется в коммутаторах / маршрутизаторах с высокой масштабируемостью. Force10 также сделала пожертвование в фонд NetBSD Foundation в 2007 году, чтобы помочь дальнейшим исследованиям и сообществу открытых разработчиков.
предоставляет коммерческий продукт BSD, сертифицированный Wasabi, на основе NetBSD с проприетарными корпоративными функциями и расширениями, ориентированными на встраиваемые, серверы и приложения для хранения данных.
NetBSD использовалась в НАСА для измерения микрогравитационной среды на Международной космической станции и для исследования TCP для использования в спутниковых сетях.
В 2004 году SUNET использовала NetBSD для установки рекорда наземной скорости Internet2. NetBSD был выбран «из-за масштабируемости кода TCP».
NetBSD также используется в продуктах Apple AirPort Extreme и Time Capsule вместо собственной OS X (большая часть кода уровня Unix унаследована от кода FreeBSD, но часть - из кода NetBSD).
Операционная система смартфона T-Mobile Sidekick LX 2009 основана на NetBSD.
Операционная система Minix система использует в основном среду пользователя NetBSD, а также инфраструктуру пакетов pkgsrc, начиная с версии 3.2.
Части macOS были изначально взяты из NetBSD, например, командная строка пользовательского пространства инструменты. Это произошло потому, что они уже были перенесены в системы PowerPC.
Все ядро NetBSD и большая часть основного исходного кода пользовательского пространства выпущены в соответствии с условиями лицензии BSD (два, три и четыре пункта варианты). По сути, это позволяет каждому использовать, изменять, распространять или продавать его по своему усмотрению, при условии, что они не удаляют уведомление об авторских правах и текст лицензии (варианты из четырех пунктов также включают условия, касающиеся рекламных материалов). Таким образом, разработка продуктов на основе NetBSD возможна без внесения изменений в исходный код общедоступного. Напротив, GPL, которая не применяется к NetBSD, предусматривает, что изменения в исходном коде продукта должны быть переданы получателю продукта, когда продукты, производные от этих изменений, будут выпущены.
20 июня 2008 года NetBSD Foundation объявила о переходе на лицензию BSD с двумя пунктами, сославшись на озабоченность по поводу поддержки UCB пункта 3 и применимости пункта 4 в отрасли.
NetBSD также включает Инструменты разработки GNU и другие пакеты, на которые распространяется GPL и другие лицензии с открытым исходным кодом. Как и в случае с другими проектами BSD, NetBSD разделяет их в своем базовом дереве исходного кода, чтобы упростить удаление кода, имеющего более ограничительные лицензии. Что касается пакетов, то установленными лицензиями на программное обеспечение можно управлять, изменяя список разрешенных лицензий в файле конфигурации pkgsrc (mk.conf
).
В следующей таблице перечислены основные релизы NetBSD и их примечательные особенности в обратном хронологическом порядке. Второстепенные релизы и патчи не включены.
Условные обозначения: | Старая версия, не поддерживается | Старая версия, все еще поддерживается | Текущая стабильная версия | Последняя предварительная версия | Будущий выпуск |
---|
Основные выпуски | Дата выпуска | Важные функции и изменения |
---|---|---|
Текущая стабильная версия: 9.0 | 14 февраля 2020 г. |
|
Старая версия, но все еще поддерживается: 8.0 | 17 июля 2018 г. |
|
Старая версия, больше не поддерживается: 7.0 | 8 октября 2015 г. |
|
Старая версия, больше не поддерживается: 6.0 | 17 октября 2012 г. |
|
Старая версия, больше не поддерживается: 5.0 | 29 апреля 2009 г. |
|
Старая версия, больше не поддерживается: 4.0 | 19 декабря 2007 г. |
|
Старая версия, больше не поддерживается: 3.0 | 23 декабря 2005 г. |
|
Старая версия, больше не поддерживается: 2.0 | 9 декабря 2004 г. |
|
Старая версия, больше не поддерживается: 1.6 | 14 сентября 2002 г. Был представлен |
|
Старая версия, больше не поддерживается: 1.5 | 6 декабря 2000 г. |
|
Старая версия, больше не поддерживается: 1.4 | 12 мая 1999 г. |
|
Старая версия, больше не поддерживается: 1.3 | 9 марта 1998 г. |
|
Старая версия, больше не поддерживается: 1.2 | 4 октября 1996 г. |
|
Старая версия, больше не поддерживается: 1.1 | 26 ноября 1995 г. |
|
Старая версия, нет дольше поддерживается: 1.0 | 26 октября 1994 г. |
|
Старая версия, больше не поддерживается: 0.9 | 20 августа 1993 г. |
|
Старая версия, больше не поддерживается: 0.8 | 20 апреля 1993 г. |
|
Флаговый логотип NetBSD, разработанный Грантом Биссеттом, был представлен в 2004 году и представляет собой абстракцию их старого логотипа, разработанного Шоном Мюллером в 1994 году. Версия Мюллера была основана на знаменитой фотографии Второй мировой войны Поднятие флага на Иводзима.
NetBSD Foundation является юридическим лицом, которое владеет интеллектуальной собственностью и товарными знаками, связанными с NetBSD, и 22 января 2004 г. стало 501 (c) 3 некоммерческая организация, освобожденная от налогов. Члены фонда - разработчики, у которых есть доступ к CVS для фиксации. В NetBSD Foundation есть Совет директоров, избираемый голосованием членов на два года.
Хостинг для проекта в основном предоставляется Колумбийским университетом, и Университет Западного Вашингтона, обслуживаемый CDN, предоставленный Fastly. Зеркала для проекта распространены по всему миру и предоставляются волонтерами и сторонниками проекта.
![]() | Wikimedia Commons содержит носители, относящиеся к NetBSD. |