FreeBSD

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
FreeBSD
Логотип FreeBSD
Екран привітанняЕкран привітання FreeBSD
Розробник FreeBSD Project
Родина ОС BSD
Стан проекту Актуальне
Модель сирцевого коду Відкриті
Останній стабільний випуск 10.0/ 20 січня 2014; 88 днів тому
Тип ядра Монолітне
Ліцензія BSD
Веб-сайт www.freebsd.org

FreeBSD — UNIX-подібна операційна система, коріння якої тягнеться від AT&T UNIX, через Berkeley Software Distribution (BSD) гілку операційних систем 386BSD та 4.4BSD. Працює на Intel x86 (IA-32), сумісних з ПК системах (включно з Microsoft Xbox, а також DEC Alpha, Sun, Itanium (IA-64), AMD64, PowerPC та NEC PC-98 архітектурах. FreeBSD добре зарекомендувала себе як система для побудови інтранет- і інтернет-серверів. Вона надає достатньо надійні мережеві служби і ефективне управління пам’яттю.

FreeBSD розробляється як повноцінна операційна система. Ядро, драйвери пристроїв та базові користувацькі утиліти (так звані Userland), на кшталт командного процесору (shell) розробляються в єдиному дереві сирцевих текстів. Це одна з головних відмінностей системи від Linux, у котрій робота над розробкою ядра ведеться однією групою програмістів, базових користувацьких утиліт іншою (наприклад, проектом GNU), і усе це збираються третіми групами у так званий дистрибутив.

Історія та розробка[ред.ред. код]

Талісман проекту FreeBSD

Розробка FreeBSD почалася в 1993 році із набору патчів користувачів системи 386BSD, що швидко зростав. Цей набір пізніше виріс і відокремився від 386bsd в окрему операційну систему, що увібрала код від Free Software Foundation. Перша офіційна версія FreeBSD 1.0 вийшла у грудні 1993 року. Walnut Creek CDROM погодилася поширювати FreeBSD на компакт-диску і також надала для роботи проекту окремий комп’ютер з інтернет-з’єднанням. Керівництво до FreeBSD містить докладнішу історичну інформацію про походження системи[1].

Проте, в січні 1995 року з міркувань законності використання запозиченого у 386BSD коду, а також через судовий процес між Novell та Берклі, проект випустив спеціальну версію системи FreeBSD 2.0, де було переписано більшу частину її коду, чимало якого запозичено у 4.4BSD-Lite.

FreeBSD 3.0 приніс до проекту багато змін: перехід до двійкового формату ELF, з’явилася початкова підтримка SMP-систем і 64-розрядної архітектури Alpha. У свій час, гілка 3.х серйозно критикувалася, оскільки багато змін не були очевидно вигідними і мало впливали на роботу, однак, вона була необхідним кроком у розвитку проекту, котрий допоміг гілці 4.х стати дуже успішною.

FreeBSD 4 була дуже популярною серед інтернет-провайдерів і хостерів часів першого «міхура доткомів» і вважалася за одну з найстабільніших і високопродуктивних систем класу Unix. Одним з головних недоліків FreeBSD 4 вважається погана підтримка багатопроцесорних систем, особливо в режимі багатонитевості. FreeBSD 4 поставила своєрідний рекорд за тривалістю розробки однієї гілки операційної системи — за п’ять років було усунено велику кількість помилок і отримана на рідкість стабільна система. В середині розробки FreeBSD 4 від неї відокремився проект Dragonflybsd, засновники якого поставили собі за мету серйозну оптимізацію ядра для високо-навантажених систем, зокрема кращу підтримку багатопроцесорності (зменшення часу, необхідного для перемикання ниток і ін.).

Модель розробки FreeBSD[ред.ред. код]

Існує близько 4000 розробників, які працюють над системою на добровільній основі. Всі вони можуть читати дерево репозиторія, але не можуть вносити зміни. Замість цього розробник звертається до комітера, який має право вносити зміну до коду. Існує близько 400 комітерів. Розробник може вирости по соціальних сходах проекту і стати комітером. Кандидатуру нового комітера пропонує до розгляду ментор майбутнього комітера. Залежно від основної області діяльності, новий комітер затверджується основною командою, portmgr@ або docmgr@. Основна команда є адміністративним ядром проекту і складається з 9 чоловік, які вибираються на 2 роки комітерами зі свого складу. Основна команда вирішує конфлікти між комітерами[2].

Учасники проекту розробляють гілку CURRENT («поточна» версія) і декілька STABLE («стабільна», стабільність означає гарантію незмінності інтерфейсів, як API, ABI і так далі).

Новий код поміщають у гілку CURRENT, де він отримує ширше тестування. Нові функції, додані в CURRENT, можуть залишитися в системі або від них можуть відмовитися, якщо реалізація виявиться невдалою. Інколи ця версія може опинитися в непридатному для використання стані. З початком використання perforce як допоміжного репозиторія, і з виділенням projects/ області в svn, проект прагне гарантувати постійну працездатність CURRENT.

STABLE-версія містить тільки ті нововведення, які пройшли перевірку в CURRENT. Проте, ця версія теж призначена в основному для розробників. Не рекомендується оновлювати відповідальні робочі сервери до STABLE, заздалегідь її не протестувавши. На основі STABLE регулярно створюються ретельно протестовані розробниками, групою release-інженерів і ширшим довкола користувачів RELEASE-версії.

Після випуску релізів створюються додаткові гілки розробки для підтримки релізів, але в них вносяться лише найнеобхідніші зміни, що виправляють серйозні помилки або проблеми з безпекою системи. До четвертої версії FreeBSD у стабільної і поточної гілок був один і той же старший номер версії. Потім поточній гілці був привласнений номер 5, а у стабільної залишився номер 4.


Спочатку, FreeBSD використовувала в якості свого логотипу демона BSD, однак у 2005 році, був влаштований конкурс на створення нового логотипу. 8 жовтня 2005 змагання завершилися, і переміг у них Anton K. Gural, малюнок котрого став новим логотипом проекту. Однак, демон BSD залишається талісманом проекту FreeBSD.

Ліцензія[ред.ред. код]

Як і споріднені з нею операційні системи, код FreeBSD розповсюджується під різними ліцензіями. Весь код ядра і весь новостворений код розповсюджується під ліцензією BSD, котра дозволяє будь-кому використовувати і розповсюджувати FreeBSD скільки їм заманеться.

FreeBSD популярна завдяки своїй ліцензії, яка істотно відрізняється від широко відомої ліцензії GNU GPL — вона дозволяє використовувати код не лише в вільному ПЗ, але і в пропрієтарному. На відміну від GNU LGPL, яка теж дозволяє використовувати вільний код в закритій програмі[3], ліцензія BSD простіша і коротша.

Частина коду утиліт розповсюджується за ліцензіями GPL, LGPL, ISC, CDDL та Beerware.

Деякий код доступний лише у двійковому вигляді, на кшталт шару абстрагування апаратних засобів (HAL) драйверів для бездротових пристроїв Atheros та утиліт для Adaptec AAC RAID (поставляється у вигляді пакету).

Сумісність з Linux[ред.ред. код]

FreeBSD забезпечує сумісність з деякими іншими UNIX-подібними операційними системами, зокрема, з Лінукс. Шар сумісності надає можливість працювати з програмним забезпеченням для Лінукс, котре розповсюджується лише у двійковому форматі, і не може бути портовано на FreeBSD.

FreeBSD має два можливих варіанти сумісності: для користувачів та для розробників. Варіант для користувачів має назву, що починається linux_base а для розробників — linux_dist. Обидва варіанти можна встановити із портів, розділ emulators (емулятори).

Відгалуження[ред.ред. код]

Графік поширеності систем родини BSD з дослідження використання BSD 2005 року[4] Кожен опитуваний міг назвати кілька варіантів BSD
  • DragonFlyBSD — відгалуження від FreeBSD 4.8. Вона має систему потокової обробки повідомлень, схожу на ту, що застосовується в системах із мікроядром.
  • FreeNAS — дистрибутив на базі мінімального FreeBSD, орієнтований для створення NAS-систем
  • Frenzy — LiveCD-дистрибутив на базі FreeBSD, орієнтований на україномовних та російськомовних системних адміністраторів.
  • FreeSBIE — LiveCD-дистрибутив FreeBSD.
  • BSDeviant — також LiveCD-дистрибутив FreeBSD.
  • PicoBSD — мініатюрна версія FreeBSD, відгалуження від другої вітки, в наш час не розвивається.
  • Darwin — ядро Mac OS X, чимало запозичило у FreeBSD, розробляється фірмою Apple.
  • PC-BSD — дистрибутив із графічним інсталятором, орієнтований на настільні системи.
  • DesktopBSD — дистрибутив для настільних систем.
  • TrueBSD — дистрибутив для настільних систем.
  • RoFreeSBIE — румунський дистрибутив для настільних систем.

Версії системи[ред.ред. код]

Ім'я Дата виходу релізу Примітки та особливості
FreeBSD 1.0 Листопад 1993 року Серед ключових поліпшень:
FreeBSD 2.0 Березень 1994 року Серед ключових поліпшень:
FreeBSD 3.0 13 жовтня 1998 року Серед ключових поліпшень:
  • Перехід на ELF виконувані файли.
  • з'явилася початкова підтримка SMP систем
  • з'явилася початкова підтримка 64 розрядної архітектури Alpha..
FreeBSD 4.0[5] Березнь 2000 року Серед ключових поліпшень:
  • OpenSSH 1.2 було інтегровано до базової системи.
  • OpenSSL v0.9.4 було інтегровано до базової системи.
  • Gdb 4.18
  • IPfilter 3.3.8


FreeBSD 5.0 Січень 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).

FreeBSD 5.1[6] Червень 2003 року Серед ключових поліпшень:
  • Експериментальна систем AMD Athlon 64 і Opteron.
FreeBSD 5.2[7] Січень 2004 року Серед ключових поліпшень:
  • Повна підтримка одно чи багатопроцесорних систем AMD Athlon 64 і Opteron.
  • Клієнт підтримки Network File System V4.
  • Gnome 2.4
  • KDE 3.1
FreeBSD 5.3[8] Листопад 2004 року Серед ключових поліпшень:
  • X.org 6.7
  • Gnome 2.6.2
  • KDE 3.3.0
  • GCC 3.4.2
  • Binutils 2.15
  • GDB 6.1
FreeBSD 5.4[9] Травень 2005 року Серед ключових поліпшень:
  • Виправлено велику кількість помилок безпеки.
FreeBSD 5.5[10] Травень 2006 року Серед ключових поліпшень:
  • Виправлено велику кількість помилок безпеки.
FreeBSD 6.0[11] 4 листопада 2005 року Серед ключових поліпшень:
  • Експериментальна підтримка PowerPC.
FreeBSD 6.1[12] Травень 2006 року Серед ключових поліпшень:
  • BIND 9.3.2
  • sendmail 8.13.6
FreeBSD 6.2[13] Січень 2007 року Серед ключових поліпшень:
  • KDE 3.5.4, GNOME 2.16.1.
  • GCC 3.4.6
  • BIND 9.3.3
FreeBSD 6.3[14] Січень 2008 року Серед ключових поліпшень:
  • X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.
  • BIND 9.3.4
  • sendmail 8.14.2
FreeBSD 6.4 11 листопада 2008 року Ці версії є продовженням оптимізації підтримки smp і багатонитевості разом з розширеною підтримкою стандарту 802.11, записом подій безпеки проекту TRUSTEDBSD, серйозними поліпшеннями продуктивності мережевої підсистеми. Основне досягнення цього реліза — виключення «гігантського блокування» (Giant lock) з віртуальної файлової підсистеми (VFS), реалізація додаткової, продуктивнішої підтримки багатонитевості (libthr) з моделлю 1:1, і додавання OPENBSM — первинного модуля безпеки, який був створений проектом TRUSTEDBSD.
FreeBSD 7.0[15] 27 лютого 2008 року Серед ключових поліпшень:
  • X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.
  • Виправлено помилки в роботі з unionfs.
  • GNU C compiler 4.2.1.
  • BIND 9.4.2.
FreeBSD 7.1[16] 5 січня 2009 року Серед ключових поліпшень:
  • оптимізований мережевий протокол транспортного рівня SCTP
  • журналування у файловій системі ufs 2
  • експериментальна адаптована версія файлової системи ZFS (розробленою компанією Sun)
  • компілятор GCC4.2
  • базова підтримка платформи ARM
  • новий менеджер пам'яті jemalloc, оптимізований для паралельних обчислень[17],
  • великі зміни і оптимізації підсистем роботи з мережами, аудіопристроями і smp-системами[18]

Нова система показала значні поліпшення в швидкості в порівнянні з попередніми версіями і системою Linux[19].

FreeBSD 7.2 4 травня 2009 року Серед ключових поліпшень:
  • підтримка сімейства процесорів 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 для цієї вітки майже завершена[20].

FreeBSD 7.3[21] Березень 2010 року Серед ключових поліпшень:
  • Gnome 2.28.2
  • KDE 4.3.5
  • Підтримка ZFS V13.
  • Підтримка BIND 9.4-ESV
  • Підтримка Perl 5.10
FreeBSD 7.4[22] 24 січня 2011 року Серед ключових поліпшень:
  • Gnome 2.32.1
  • KDE 4.5.5
  • Виправлено численну кількість помилок.
FreeBSD 8.0 25 листопада 2009 року[23] Серед нововведень в цій версії можна відзначити:
  • експериментальна підтримка 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 відповідно.
FreeBSD 9.0 12 січня 2012 року Серед ключових поліпшень:
  • перехід на новий модульних інсталятор BSDInstall,
  • інтеграція в базову систему компілятора Clang в якості заміни GCC,
  • нова реалізація програмного RAID (graid),
  • інтеграція системи реплікації пристроїв зберігання даних (HAST),
  • оновлення ZFS до версії 28,
  • активація журналювання Soft Updates для UFS,
  • удосконалення TCP-стека, підтримка п'яти нових алгоритмів для контролю перевантаження в TCP,
  • новий універсальний USB-драйвер з підтримкою USB 3.0,
  • новий механізм ізоляції виконання програм Capsicum,
  • реалізація RCTL для встановлення індивідуальних обмежень ресурсів для Jail.
FreeBSD 9.1 30 грудня 2012 року Серед ключових поліпшень:
  • новий драйвер для відеопроцесорів Intel с підтримкою GEM/KMS;
  • швидкий фреймворк для пакетного I/O у середовищі користувача — netmap(4);
  • поліпшеня у файловій системі ZFS з проекту illumos;
  • CAM Target Layer — підсистема емуляції дискових пристроїв й процесорів;
  • опційний новий стек для стандарту C++11 с LLVM libc++ и libcxxrt;
  • можливість монтування devfs, nullfs и ZFS в jail;
  • розширена підтримка локалей POSIX2008, сумісна з доповненнями Darwin;
  • поліпшення у GEOM;
  • підтримка AVX FPU у ядрі;
  • нові драйвери: oce(4), sfxge(4), hpt27xx(4).
FreeBSD 10.0[24] 20 січня 2014 Серед ключових поліпшень:
  • Перехід на використання за замовчуванням компілятора Clang 3 для архітектур i386 и AMD64. GCC відтепер не збирається як частина базової системи;
  • Додано KMS-модуля для відеокарт AMD;
  • Реалізація клієнта NFSv4.1;
  • Інтеграція гіпервізора BHyVe;
  • Включення напрацювань щодо оптимізації продуктивності файлових систем UFS/FFS;
  • Заміна DNS-сервера BIND на Unbound і LDNS;
  • Підтримка ізольованих контейнерів VPS;
  • Адаптація для роботи на Raspberry Pi;
  • Поліпшення підтримки архітектури ARM;
  • Включення інтерфейсу Virtio;
  • Інтеграція напрацювань проекту CARP2;
  • Переробка пакетного фільтра pf для багатоядерних систем;
  • Новий стек iSCSI;
  • Підтримка збільшення розміру розділів UFS без відмонтування;
  • Підтримка у ZFS операції TRIM для SSD-накопичувача, стиснення LZ4 і оптимізація NOP-запису;
  • Інтеграція підсистеми FUSE (файлові системи в просторі користувача);
  • Підтримка USB Audio 2.0.

Варіанти установки[ред.ред. код]

Операційна система FreeBSD може бути встановлена з різних носіїв, таких як:

Порти і пакети[ред.ред. код]

В даний час FreeBSD надає користувачеві дві взаємодоповнюючі технології установки програмного забезпечення сторонніх розробників: колекція портів FreeBSD і бінарні пакети з програмним забезпеченням. Будь-яка з цих систем може бути використана для установки найостанніших версій додатків з локальних носіїв або прямо з мережі. Тепер колекція портів налічує понад 22 тис. додатків самого різного призначення[25].

Талісмани-логотипи[ред.ред. код]

Основним талісманом системи є червоне чортеня, відомий також як beastie. Окрім нього, за талісман також вважається Devilette, дівчина в червоному костюмі демона.

Відомі користувачі[ред.ред. код]

FreeBSD використовують як платформу на багатьох великих серверах такі компанії, як:

Див. також[ред.ред. код]

Примітки[ред.ред. код]

Література[ред.ред. код]

2008, 280 стор., ISBN 1-84719-264-5.

Посилання[ред.ред. код]

Хаббардом (Jordan Hubbard)

FREEBSD канали на twitter[ред.ред. код]

FREEBSD jabber-конференции[ред.ред. код]