FreeBSD | это... Что такое FreeBSD? (original) (raw)
FreeBSD | |
---|---|
Приветствие в терминале FreeBSD | |
Разработчик | The FreeBSD Project |
Семейство ОС | BSD UNIX |
Последняя версия | 9.0[1] — 12 января 2012 |
Тип ядра | Монолитное ядро |
Лицензия | BSD |
Состояние | Актуальное |
Веб-сайт | freebsd.org |
FreeBSD — свободная Unix-подобная операционная система, потомок AT&T Unix по линии BSD, созданной в университете Беркли. FreeBSD работает на PC-совместимых системах семейства x86, включая Microsoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM. Готовится поддержка архитектуры MIPS.
FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверов устройств и базовых пользовательских программ (т. н. userland)[2], таких как командные оболочки и т. п., содержится в одном дереве системы управления версиями (до 31 мая 2008 — CVS, сейчас — SVN). Это отличает FreeBSD от GNU/Linux — другой свободной UNIX-подобной операционной системы — в которой ядро разрабатывается одной группой разработчиков, а набор пользовательских программ — другими (например, проект GNU), а многочисленные группы собирают это всё в единое целое и выпускают в виде различных дистрибутивов Linux.
FreeBSD хорошо зарекомендовала себя как система для построения интранет- и интернет-серверов. Она предоставляет достаточно надёжные сетевые службы и эффективное управление памятью.
Помимо своей стабильности, FreeBSD популярна и благодаря своей лицензии, которая существенно отличается от широко известной лицензии GNU GPL — она позволяет использовать код не только в свободном ПО, но и в проприетарном. В отличие от GNU LGPL, которая тоже позволяет использовать свободный код в закрытой программе[3], лицензия BSD более простая и короткая.
Содержание
- 1 История
- 2 Версии системы
- 3 Модель разработки FreeBSD
- 4 Варианты установки
- 5 Порты и пакеты
- 6 Талисманы-логотипы
- 7 Производные системы
- 8 Пасхальные яйца
- 9 См. также
- 10 Литература
- 11 Ссылки
- 12 Примечания
История
Разработка FreeBSD началась в 1993 году с быстрорастущего набора патчей пользователей системы 386BSD. Этот набор позже вырос и отделился от 386BSD в отдельную операционную систему, включив в себя код от Free Software Foundation. Первая официальная версия FreeBSD 1.0 вышла в декабре 1993 года. Walnut Creek CDROM согласилась распространять FreeBSD на компакт-диске и также предоставила для работы проекту отдельный компьютер с интернет-соединением. Затем, в мае 1994 года, последовал успешный выпуск FreeBSD 1.1.
Однако, из соображений законности использования исходных кодов BSD Net/2 в 386BSD, команда разработчиков FreeBSD переработала большую часть системы ко времени выпуска FreeBSD 2.0 в январе 1995 года, используя 4.4BSD-Lite. Руководство к FreeBSD содержит более подробную историческую информацию о происхождении системы[4].
Версии системы
На 8 февраля 2012 года последний релиз FreeBSD имеет номер 9.0[1].
FreeBSD 3
3.0-RELEASE анонсирована 13 октября 1998 года. Основное отличие от 2.2 — переход на ELF исполняемые файлы. Последний 3.5-RELEASE вышел 23 июня 2000 года.
FreeBSD 4
4.0-RELEASE появилась в марте 2000 года и последняя версия 4.11 была выпущена в январе 2005 года. FreeBSD 4 была очень популярной у интернет-провайдеров и хостеров времён первого «пузыря доткомов» и считалась одной из самых стабильных и высокопроизводительных систем класса Unix.
Одним из главных недостатков FreeBSD 4 считается плохая поддержка многопроцессорных систем, особенно в режиме многопоточности.
FreeBSD 4 поставила своеобразный рекорд по продолжительности разработки одной ветки операционной системы — за пять лет было устранено большое количество ошибок и получена на редкость стабильная система.
В середине разработки FreeBSD 4 от нее отпочковался проект DragonFlyBSD, основатели которого поставили своей целью серьезную оптимизацию ядра для высоконагруженных систем, в частности лучшую поддержку многопроцессорности (уменьшение времени, необходимого для переключения потоков и пр.).
FreeBSD 5
Через 3 года разработки, в январе 2003 года, была выпущена долгожданная версия 5.0-RELEASE. Эта версия предоставляла расширенную поддержку многопроцессорности и многопоточности, а также поддержку платформ UltraSPARC и IA-64.
Наибольшие архитектурные изменения в FreeBSD 5 — это изменение механизма блокировки на нижнем уровне ядра, чтобы улучшить поддержку многопроцессорных SMP-систем. Это освободило большую часть ядра от так называемой «гигантской блокировки» (Giant lock). Теперь в ядре появилась возможность выполнять более одной задачи одновременно. Другим важным изменением была реализация «родной» поддержки многопоточности типа M:N под названием Kernel Scheduled Entities (KSE). Начиная с FreeBSD 5.3, эта реализация потоков была установлена по умолчанию, пока не была заменена на реализацию модели 1:1 во FreeBSD 7.
Во FreeBSD 5 была серьёзно изменена система блочного ввода-вывода посредством введения модульной структурной системы преобразования запросов ввода-вывода GEOM (внесённой Poul-Henning Kamp). GEOM даёт возможность создавать различную функциональность, такую как зеркалирование (mirroring) или шифрование (модули GBDE и GELI).
Версии 5.4 и 5.5 были признаны стабильными и высокопроизводительными, но более ранние версии не годились для использования в рабочих условиях.
FreeBSD 6
FreeBSD 6.0 была выпущена 4 ноября 2005 года. 11 ноября 2008 года была выпущена версия 6.4. Эти версии являются продолжением оптимизации поддержки SMP и многопоточности вкупе с расширенной поддержкой стандарта 802.11, записью событий безопасности проекта TrustedBSD, серьезными улучшениями производительности сетевой подсистемы. Основное достижение этого релиза — исключение «гигантской блокировки» (Giant lock) из виртуальной файловой подсистемы (VFS), реализация дополнительной, более производительной поддержки многопоточности (libthr) с моделью 1:1, и добавление OpenBSM — первичного модуля безопасности, который был создан проектом TrustedBSD.
FreeBSD 7
FreeBSD 7.0 выпущена 27 февраля 2008 года. 5 января 2009 года вышла версия 7.1. Новое в этой ветке включает в себя:
- оптимизированный сетевой протокол транспортного уровня SCTP,
- экспериментальная адаптированная версия файловой системы ZFS (разработанной компанией Sun),
- компилятор GCC4.2,
- базовая поддержка платформы ARM,
- новый менеджер памяти jemalloc, оптимизированный для параллельных вычислений[5],
- большие изменения и оптимизации подсистем работы с сетями, аудиоустройствами и SMP-системами[6],
Новая система показала значительные улучшения в скорости по сравнению с предыдущими версиями и системой Linux[7].
4 мая 2009 года вышла версия 7.2. Нововведения в этой версии:
- поддержка семейства процессоров UltraSPARC III (Cheetah) и SPARC64;
- возможность назначения нескольких IPv4- и IPv6-адресов каждой клетке — виртуальной машине Jail;
- реализация техники Superpages, прозрачного объединения страниц памяти для приложений;
- увеличенное до 6 Гб адресное пространство ядра для 64-разрядных процессоров;
- включена поддержка множественных таблиц маршрутизации, в том числе для клеток;
- улучшена совместимость в работе 32-разрядных клеток в 64-разрядном окружении;
- из NetBSD портирован демон btpand с реализацией поддержки профилей Bluetooth Network Access Point (NAP), Group Ad-hoc Network (GN) и Personal Area Network User (PANU);
- добавлен новый драйвер sdhci с поддержкой PCI-SD хост-контроллеров (кард-ридеров);
- обновлен модуль ядра DRM (Direct Rendering Manager) в котором улучшена поддержка графических процессоров (GPU) AMD/ATI, XGI, Intel;
- обновлены драйверы сетевых и дисковых устройств.
На сегодняшний день уже разработаны видеодрайвера NVIDIA для 64-разрядной архитектуры AMD64. Окончательная адаптация файловой системы ZFS v.13 для этой ветки почти завершена[8].
24 января 2011 года вышла версия 7.4.
Поддержка ветки FreeBSD 7 истекает 28 февраля 2013 года
FreeBSD 8
О выходе релиза FreeBSD 8.0 было объявлено 25 ноября 2009 года[9]. Среди нововведений в этой версии можно отметить:
- экспериментальная поддержка MIPS, основанная на разработках Juniper Networks.
- практически неограниченная масштабируемость SMP значительно способствует быстродействию на 16-ядерных системах.
- масштабируемость файловой системы как результат использования блокировки виртуальной файловой системы (VFS).
- работа расширяемой системы безопасности ядра (MAC Framework) из коробки.
- переписанную подсистему USB с улучшенным быстродействием и поддержкой новых устройств. Добавлена поддержка USB-target.
- ZFS более не находится в экспериментальном статусе.
Кроме того, следует отметить:
- Реализован новый контейнер виртуализации, названный «vimage». vimage — это jail с виртуализированным сетевым стеком и может быть создан с помощью команды jail(8)
- Подсистема ipsec(4) теперь поддерживает NAT-Traversal (RFC 3948).
- Поддерживаемые версии GNOME desktop environment (x11/gnome2) и KDE desktop environment (x11/kde4) были обновлены до 2.26.3 и 4.3.1 соответственно.
Стабильная ветка разработки 8-STABLE постоянно развивается, в неё постепенно вливается проверенный и отлаженный код из экспериментальной ветки разработки. Продолжается улучшение надёжности и быстродействия файловых систем UFS2 и ZFS, перерабатывается код протокола сетевого доступа NFS с целью реализации всех возможностей NFSv4.
FreeBSD 9
FreeBSD 9.0 выпущена 12 января 2012 года. Основные изменения:
- Переход на новый модульный инсталлятор BSDInstall
- Интеграция в систему LLVM 3.0/Clang 3.0 для постепенной замены устаревшей версии GCC 4.2.2 в базовой системе
- В DTrace реализованы модули для трассировки 32-разрядных системных вызовов linux32 и freebsd32 на 64-разрядной платформе FreeBSD [amd64]
- Новая реализация программного RAID graid для замены устаревшей подсистемы ataraid
- Дисковая подсистема ATA/SATA по умолчанию заменена на реализацию на базе CAM (Common Access Method)
- Интеграция системы репликации устройств хранения данных HAST
- Для UFS2 техника мягких обновлений (Soft Updates) дополнена технологией журналирования для быстрого восстановления файловой системы после сбоев
- Файловая система UFS2 стала поддерживать операцию TRIM для SSD
- Обновление ZFS до версии 28
- Начальная поддержка архитектуры NUMA в подсистемах управления памятью
- Интеграция в базовую систему Infiniband-стека OFED (OpenFabrics Enterprise Distribution)
- Добавлены новые 10Gb Ethernet-драйверы
- Универсальный USB-драйвер с поддержкой протоколов USB 3.0/2.0/1.1/1.0
- Обеспечена поддержка пяти новых алгоритмов для контроля перегрузки в TCP-стеке
- Обеспечена возможность использования только IPv6 в TCP-стеке базовой системы и в портированных приложениях
- Поддержка сетевого протокола NFSv4
- Новый механизм изоляции выполнения приложений Capsicum
- Реализация интерфейса управления ресурсами RCTL (Hierarchical Resource Limits) в том числе и для Jail
- Графические среды GNOME версии 2.32.1, KDE версии 4.7.3
- Возможен запуск и работа FreeBSD на игровых приставках Sony PlayStation 3
FreeBSD 10-CURRENT
Экспериментальная основная ветвь разработки операционной системы предназначена для разработчиков, тестеров и всех тех, кто интересуется реализациями новых технологий во FreeBSD. Всегда можно получить -CURRENT версию системы, загрузив её исходники из CVS или SVN, самостоятельно откомпилировать и собрать систему. Важная информация обо всех изменениях в системе публикуется в файле /usr/src/UPDATING.
Модель разработки FreeBSD
Существует около 4000 разработчиков, которые работают над системой на добровольной основе. Все они могут читать дерево репозитория, но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером. Кандидатуру нового коммитера предлагает к рассмотрению ментор будущего коммитера. В зависимости от основной области деятельности, новый коммитер утверждается основной командой, portmgr@ или docmgr@. Основная команда является административным ядром проекта и состоит из 9 человек, которые выбираются на 2 года коммитерами из своего состава. Основная команда решает конфликты между коммитерами[10].
Участники проекта разрабатывают ветку CURRENT («текущая» версия) и несколько STABLE («стабильная», стабильность означает гарантию неизменности интерфейсов, как то API, ABI и так далее).
Новый код помещают в ветку CURRENT, где он получает более широкое тестирование. Новые функции, добавленные в CURRENT, могут остаться в системе или от них могут отказаться, если реализация окажется неудачной. Иногда эта версия может оказаться в непригодном для использования состоянии. С началом использования perforce как вспомогательного репозитория, и с выделением projects/ области в svn, проект стремится гарантировать постоянную работоспособность CURRENT.
STABLE-версия содержит только те нововведения, которые прошли проверку в CURRENT. Тем не менее, эта версия тоже предназначена, в основном, для разработчиков. Не рекомендуется обновлять ответственные рабочие серверы до STABLE, предварительно её не протестировав. На основе STABLE регулярно создаются тщательно протестированные разработчиками, группой release-инженеров и более широким кругом пользователей RELEASE-версии.
После выпуска релизов создаются дополнительные ветви разработки для поддержки релизов, но в них вносятся лишь самые необходимые изменения, исправляющие серьёзные ошибки или проблемы с безопасностью системы. До четвёртой версии FreeBSD у стабильной и текущей веток был один и тот же старший номер версии. Затем текущей ветви был присвоен номер 5, а у стабильной остался номер 4.
В настоящее время поддерживаются стабильные ветви разработки 7-STABLE, 8-STABLE и 9-STABLE и текущая 10—CURRENT. Группа разработчиков, исправляющих проблемы безопасности системы (security officers) поддерживает ветвь 7-STABLE для тех пользователей, которые ещё не обновили FreeBSD до версии 8 и 9.
Варианты установки
Операционная система FreeBSD может быть установлена с различных носителей, таких как:
- DVD-ROM;
- CD-ROM;
- USB флэш-накопитель;
- дискета;
- магнитная лента;
- FAT-раздел жёсткого диска;
- удалённый сервер (по протоколу FTP или NFS).
Порты и пакеты
В настоящее время FreeBSD предоставляет пользователю две взаимодополняющие технологии установки программного обеспечения сторонних разработчиков: коллекция портов FreeBSD и бинарные пакеты с программным обеспечением. Любая из этих систем может быть использована для установки самых последних версий приложений с локальных носителей или прямо из сети.
Коллекция портов, как подсистема система сборки и сопровождения устанавливаемых программ, периодически обновляется. Сейчас она насчитывает порядка 22 тысячи портированных на FreeBSD программ[11], среди которых: графические среды GNOME 2.32.1, KDE4 4.7.4, офисные приложения и пакеты OpenOffice.org 3.3.2, LibreOffice 3.4.5, система поддержки печати CUPS 1.5.2, программы доступа в интернет Mozilla Firefox 10.0.2 и Thunderbird 10.0.2, Google Chromium 17.0.963.65, системы управления базами данных PostgreSQL 8.2.23, 8.3.18, 8.4.11, 9.0.7 и 9.1.3, MySQL 4.1.25, 5.0.95, 5.1.61 и 5.5.21, комплекты Java-разработки OpenJDK6 b24 и OpenJDK7 7.2.13, среды разработки Eclipse 3.6.2 c дополнениями для Web-разработки и баз данных и NetBeans 7.1. Инфраструктура интерпретирующих языков представлена Perl 5.12.4 c возможностью перехода на Perl 5.14.2, Python 2.7.2 и Ruby 1.8.7 и 1.9.3.
Талисманы-логотипы
Основным талисманом системы является красный демонёнок, известный также как Beastie. Кроме него, талисманом также считается Devilette, девушка в красном костюме демона.
Производные системы
BSD-лицензия позволяет сохранять коммерческую тайну при модификации FreeBSD для встраиваемых систем и производить другие производные проприетарные системы, что делает FreeBSD привлекательной для промышленности[12]. Вместе с тем, остаётся неизвестным, в какой конкретно технике применяют FreeBSD, кроме маршрутизаторов Juniper и ТВ-панелей[13]. Ниже приведены свободные производные операционные системы.
- DragonFly BSD — ответвление от FreeBSD 4.8, созданное как логическое продолжение 4-й ветви. Она включает систему потоковой обработки сообщений, похожую на ту, которая используется в системах с микроядром.
- FreeSBIE — LiveCD-дистрибутив FreeBSD, похожий на дистрибутив Linux под названием Knoppix.
- Frenzy — другой проект по созданию LiveCD на основе FreeBSD, ориентированный в первую очередь на русскоязычных системных администраторов.
- TrueBSD — белорусский LiveDVD-дистрибутив на основе FreeBSD.
- BSDeviant — ещё один LiveCD.
- PicoBSD — версия FreeBSD на одной дискете.
- MiniBSD — компактный дистрибутив FreeBSD.
- NanoBSD — ещё один компактный дистрибутив FreeBSD.
- mfsBSD — миниатюрный загрузочный LiveCD на базе FreeBSD, загружаемой полностью в оперативную память компьютера.
- Debian GNU/kFreeBSD — производная версия, базирующаяся на наборе инструментов GNU, разрабатывается группой пользователей Debian.
- Darwin — ядро Mac OS X, многие команды взяты от FreeBSD 4/5, разрабатывается компанией Apple, весьма дальний родственник FreeBSD, так как использует ядро Mach.
- m0n0wall — встраиваемый межсетевой экран, основанный на FreeBSD.
- pfSense — ответвление от проекта m0n0wall, отличающееся большей функциональностью.
- FreeNAS — основанное на m0n0wall сетевое хранилище NAS.
- PC-BSD — дистрибутив с графическим инсталлятором и настольной средой KDE по умолчанию.
- РУС-BSD — клон PC-BSD, русифицированный дистрибутив для пользователей стран СНГ, с версии 8.1 РУС-BSD опирается на Frenzy и свои разработки.
- GhostBSD — LiveCD с настольной средой GNOME по умолчанию.
- DesktopBSD — ещё один дистрибутив для домашнего использования.
- BSD Router Project (BSDRP) — компактный программный роутер на базе FreeBSD.
Пасхальные яйца
- Если запустить make c целью love, система выдаст на stdout сообщение Not war. (Работает только на версиях 7.0 и выше)[14].
См. также
FreeBSD на Викискладе? |
---|
- BSD
- Сравнение операционных систем семейства BSD
- Программы UNIX-систем
- Как пропатчить KDE2 под FreeBSD?
Литература
Книги
- FreeBSD HandBook
- Christopher Negus, Francois Caen, BSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD, Wiley, May 5 2008, 309 стр., ISBN 0-470-37603-1.
- Babak Farrokhi , Network Administration with FreeBSD 7: Building, securing, and maintaining networks with the FreeBSD operating system, Packt Publishing, April 14 2008, 280 стр., ISBN 1-84719-264-5.
- Bryan J. Hong, Building a Server with FreeBSD 7, No Starch Press, April 1 2008, 288 стр., ISBN 5-8459-0741-1.
- Joseph Kong, Designing BSD Rootkits: An Introduction to Kernel Hacking, No Starch Press, April 10 2007, 144 стр., ISBN 1-59327-142-5.
- Брайан Таймэн. FreeBSD 6. Полное руководство = FreeBSD 6 Unleashed. — М.: «Вильямс», 2007. — 1056 с. — ISBN 5-8459-0741-1
- Harald Zisler, FreeBSD, Franzis Verlag GmbH, August 31 2006, 381 стр., ISBN 3-7723-6538-8
- Родерик Смит. Полный справочник по FreeBSD = FreeBSD: The Complete Reference. — М.: «Вильямс», 2005. — 672 с. — ISBN 5-8459-0576-1
- Yanek Korff, Paco Hope, Bruce Potter., Mastering FreeBSD and OpenBSD Security, O’Reilly, March 2005. ISBN 0-596-00626-8.
- Майкл Лукас. FreeBSD. Подробное руководство = Absolute BSD. The Ultimate Guide to FreeBSD. — СПб.: Символ-Плюс, 2004. — 616 с. — ISBN 5-93286-066-9
- Dru Lavigne. BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. O’Reilly, May 2004. ISBN 0-596-00679-9.
- Michael Urban, Brian Tiemann. FreeBSD Unleashed, Second Edition. Sams Publishing, April 2003. ISBN 0-672-32456-3.
- Greg Lehey. The Complete FreeBSD, 4th Edition, Documentation from the Source. O’Reilly, April 2003. ISBN 0-596-00516-4.
- Marshall Kirk McKusick, George V. Neville-Neil. The Design and Implementation of the FreeBSD Operating System. Addison Wesley Professional, August, 2004. ISBN 0-201-70245-2.
- Ted Mittelstaedt. The FreeBSD Corporate Networkers Guide. Addison-Wesley, December 2000. Paperback, book & CD edition, 401 pages. ISBN 0-201-70481-1.
- The FreeBSD Handbook, Volume 1: User Guide, 3rd Edition. FreeBSD Documentation Project. FreeBSD Mall, November 2003. ISBN 1-57176-327-9.
- The FreeBSD Handbook, Volume 2: Admin Guide, 3rd Edition. FreeBSD Documentation Project. FreeBSD Mall, September 2004. ISBN 1-57176-328-7.
Журналы
Ссылки
Примечания
- ↑ 1 2 FreeBSD 9.0-RELEASE Announcement (англ.) //FreeBSD.org
- ↑ см. Пространство пользователя
- ↑ Why you shouldn’t use the Lesser GPL for your next library — GNU Project — Free Software Foundation (FSF)
- ↑ О Проекте FreeBSD
- ↑ Jason Evans. A Scalable Concurrent malloc(3) Implementation for FreeBSD (16 апреля 2006). Архивировано из первоисточника 22 августа 2011. Проверено 13 февраля 2008.
- ↑ Federico Biancuzzi. What’s New in FreeBSD 7.0 26 февраля 2008
- ↑ Introducing FreeBSD 7.0
- ↑ The arrow of time — ZFS v13 in 7-STABLE
- ↑ FreeBSD 8.0-RELEASE Announcement
- ↑ МакКузик. FreeBSD. Архитектура и реализация.
- ↑ Самая свежая информация о портах
- ↑ Брайн Таймэн. FreeBSD 6. Полное руководство. С. 30
- ↑ Panasonic G20 review — FlatpanelsHD
- ↑ view
Проект FreeBSD | ||
---|---|---|
Люди | Маршалл Керк Маккузик • Джордан Хаббард • Пол-Хеннинг Камп • Роберт Уотсон • FreeBSD Foundation | |
Производныепроекты | PicoBSD • FreeNAS • ClosedBSD • Форки: Darwin • DragonFly • MidnightBSD • Дистрибутивы: DesktopBSD • PC-BSD • Debian GNU/kFreeBSD • Gentoo/FreeBSD • Live CD: FreeSBIE • Frenzy • TrueBSD • Файрволы: m0n0wall • pfSense | |
Другие проекты | FreeBSD Documentation License • FreeBSD Jail • FreeBSD Ports • Sysinstall |
Семейства дистрибутивов BSD (список • сравнение) | |
---|---|
386BSD | NetBSD • FreeBSD |
NetBSD | OpenBSD • Debian GNU/NetBSD • Gentoo/NetBSD • Jibbed |
OpenBSD | FuguIta • MirOS BSD • |
FreeBSD | Производные: PC-BSD • GhostBSD • FreeNAS • Frenzy • m0n0wall • pfSense; Форки: DragonFlyBSD • MidnightBSD; Гибриды: Debian GNU/kFreeBSD • Gentoo/FreeBSD • |