Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

NixOS

Неперевірена версія(що робити?)
Матеріал з Вікіпедії — вільної енциклопедії.

Статус версії сторінки

Сторінка не перевірена

Немаєперевірених версій цієї сторінки; ймовірно, її щене перевіряли на відповідність правилам проєкту.
NixOS
РозробникNixOS contributors (NixOS Foundation[1][2])
Написано наNix expression language[note 1]
Родина ОСLinux (Unix-like)
Робочий станCurrent
Вихідна модельOpen source
Початковий випуск0.1 /2003; 21 рік тому (2003-06-03)
Випущено у
виробництво
2003 Редагувати інформацію у Вікіданих
Репозиторій
Цільовий ринокЗагального призначення
Менеджер пакетівМенеджер пакетів Nix
Платформиi686,x86-64,ARMv7,AArch64
ТипядраМонолітне (ядро Linux)
ЛіцензіяMIT[3][note 2]
nixos.org

NixOS — цедистрибутив Linux, побудований на основі менеджера пакунків Nix . Він використовуєдекларативну систему конфігурації та дозволяє надійно оновлювати систему.[4] Пропонується кілька офіційних «каналів» пакунків[5][6], включаючи поточний стабільний випуск (Stable) і нестабільний (Unstable) випуск, який слідує за останніми розробками. NixOS має інструменти, присвяченіDevOps і завданням розгортання.[7][8]

Історія

[ред. |ред. код]

У 2003 році Елко Дольстра запустив NixOS як дослідницький проект.[9][10] У 2015 році було засновано фонд NixOS з метою підтримки таких проектів, як NixOS, які реалізують суто функціональну модель розгортання.[11]

У травні 2024 року лідер проекту NixOS Елко Долстра звільнився з посади голови керуючої ради після публікації відкритого листа з критикою його дій. Автори листа звинувачують Долстру в авторитарному стилі керівництва, нездатності вирішувати проблеми спільноти та створенні токсичної атмосфери. Долстра відкинув звинувачення, але погодився передати повноваження новій структурі управління, підпорядкованій спільноті. Нова структура управління матиме ширші повноваження для вирішення питань, таких як політика щодо спонсорів, залагодження конфліктів інтересів, повноваження при модеруванні та захист меншин.

Версії

[ред. |ред. код]

NixOS публікує випуски двічі на рік.[12] Раніше це відбувалося приблизно в березні та вересні, але, починаючи з 21.05, NixOS націлена на травень і листопад.[13] Кожен номер версії має формат «YY. MM", наприклад, "20.03" була версія, випущена в березні 2020 року. Кожна версія NixOS має назву, наприклад «Markhor» для випуску 20.03.

Особливості

[ред. |ред. код]

Декларативна конфігураційна модель

[ред. |ред. код]

У NixOS уся операційна система –ядро, програми, системні пакунки,конфігураційні файли тощо – будується менеджером пакунків Nix із опису функціональною мовою збірки. Це означає, що створення нової конфігурації не може перезаписати попередні конфігурації.[14]

Система NixOS налаштовується шляхом запису специфікації функціональних можливостей, які користувач бажає мати на своєму пристрої, у файлі глобальної конфігурації. Наприклад, ось мінімальна конфігурація машини, на якій працюєдемон SSH:[15]

{  boot.loader.grub.device="/dev/sda";  fileSystems."/".device="/dev/sda1";  services.sshd.enable=true;}

Після зміни конфігураційного файлу систему можна оновити за допомогою командиnixos-rebuild switch . Ця команда виконує все необхідне для застосування нової конфігурації, включаючи завантаження та компіляцію пакунків і генерацію файлів конфігурації.

Надійні оновлення

[ред. |ред. код]

Оскільки файли Nix є чистими тадекларативними, їх оцінка завжди дасть однаковий результат, незалежно від того, які пакунки чи файли конфігурації є в системі. Таким чином, оновити систему так само надійно, як і перевстановити з нуля.

Атомарні оновлення

[ред. |ред. код]

NixOS має транзакційний підхід до керування конфігурацією, вносячиатомарні зміни конфігурації, наприклад оновлення. Це означає, що якщо оновлення до нової конфігурації буде перервано – скажімо, на півдорозі зникне живлення – система все одно перебуватиме в узгодженому стані: вона завантажуватиметься у старій або новій конфігурації. В інших системах машина може опинитися в неузгодженому стані та навіть більше не завантажуватися.[16]

Відкати

[ред. |ред. код]

Якщо після оновлення системи нова конфігурація є небажаною, її можна відкотити за допомогою спеціальної команди (nixos-rebuild switch --rollback ). Кожна версія конфігурації системи автоматично відображається в меню завантаження системи. Якщо нова конфігурація виходить з ладу або не завантажується належним чином, можна вибрати старішу версію. Відкат — це легка операція, яка не передбачає відновлення файлів із копій.

Відтворювані конфігурації системи

[ред. |ред. код]

Декларативна модель конфігурації NixOS дозволяє легко відтворити конфігурацію системи на іншому пристрої. Копіювання файлу конфігурації на цільову машину та виконання команди оновлення системи генерує ту саму конфігурацію системи (ядро, програми, системні служби тощо), за винятком частин системи, якими не керує менеджер пакунків, наприклад даних користувача.

Модель на основі вихідного коду з бінарним кешем

[ред. |ред. код]

Мова збірки Nix, яка використовується NixOS, визначає, як створювати пакунки з вихідного коду. Це дозволяє легко адаптувати систему до потреб користувача. Однак, оскільки створення з джерела є повільним процесом, менеджер пакунків автоматично завантажує попередньо зібрані двійкові файли з кеш-серверу, коли вони доступні. Це забезпечує гнучкість моделі керування пакунками на основі вихідного коду з ефективністю двійкової моделі.[17]

Послідовність

[ред. |ред. код]

Менеджер пакунків Nix гарантує, що працююча система відповідає логічній специфікації системи, тобто він перебудує всі пакунки, які потрібно перебудувати. Наприклад, якщо ядро змінено, менеджер пакунків забезпечить перебудову зовнішніх модулів ядра. Так само, коли бібліотеку оновлено, це гарантує, що всі системні пакунки використовують нову версію, навіть пакунки, статично пов’язані з нею.

Багатокористувацьке керування пакунками

[ред. |ред. код]

Для встановлення програмного забезпечення в NixOS не потрібні спеціальні привілеї. Окрім загальносистемного профілю, кожен користувач має спеціальний профіль, у якому він може інсталювати пакунки. Nix також дозволяє одночасно існувати кілька версій пакунка, тому різні користувачі можуть мати різні версії одного пакунка, встановлені у відповідних профілях. Якщо два користувачі інсталюють одну версію пакунка, буде створено або завантажено лише одну копію. Модель безпеки Nix гарантує, що це безпечно, оскільки лише користувачі, яким конфігурація системи явно довіряє, можуть використовувати параметри збірки, які дозволять їм контролювати вміст вихідних даних диференціювання(наприклад, додавання домішок допісочниці або використання ненадійного замінника). Без цих параметрів шляхи можуть бути замінені лише замінником, якому довіряє система, або локальною збіркою програмного середовища у пісочниці, якій неявно довіряють.

Реалізація

[ред. |ред. код]

NixOS базується насистемі керування пакунками Nix, яка зберігає всі пакунки окремо один від одного в сховищі пакунків.

Встановлені пакунки ідентифікуютьсякриптографічним хешем усіх вхідних даних, використаних для їх збірки. Зміна інструкцій зі створення пакунка змінює його хеш, і це призведе до встановлення іншого пакунка в сховищі пакунків. Ця система також використовується для керування файлами конфігурації, гарантуючи, що нові конфігурації не перезаписують старі.

Наслідком цього є те, що NixOS не дотримуєтьсястандарту ієрархії файлової системи. Єдиним винятком є то що створенесимвольне посилання/bin/sh на версіюbash у сховищі Nix (наприклад:/nix/store/s/5rnfzla9kcx4mj5zdc7nlnv8na1najvg-bash-4.3.43/ ); і хоча NixOS має каталог/etc для зберігання загальносистемних конфігураційних файлів, більшість файлів у цьому каталозі є символьними посиланнями на згенеровані файли в/nix/store, такі як/nix/store/s2sjbl85xnrc18rl4fhn56irkxqxyk4p-sshd_config. Відмова від використання глобальних каталогів, таких як/bin, є частиною того, що дозволяє одночасно існувати кілька версій пакунка.

Рецензія

[ред. |ред. код]

Джессі Сміт, оглядаючи NixOS 15.09 для DistroWatch Weekly у 2015,[18] написав:

Мені дуже подобається шлях який NixOS бере, щоб позбавитися від турботи про оновлення пакетів, розміщуючи кожну зміну у своє окреме "покоління", та я виявив, що з погляду кінцевого користувача NixOS працює так само як і будь-який інший дистрибутив Linux. Налаштувати NixOS не для початківців, та я не думаю, що NixOS призначена для використання як операційна система для настільних ПК загального призначення. Але те, що робить NixOS, це дає нам корисний майданчик у якому розглянути менеджер пакунків Nix, та я вважаю, що це дуже цікава технологія, яка заслуговує на подальше дослідження та прийняття додатковими дистрибутивами.

Огляд NixOS 21.11 "Porcupine" за 2022 рік ужурналі Full Circle зробив висновок:

Загалом NixOSGnome 21.11 вражає своєю серйозністю, акуратністю та елегантністю. Якщо ви є шанувальником немодифікованого робочого столу Gnome, то ви знайдете тут багато до вподоби. Зворотною стороною цього дистрибутива є крута крива навчання для керування пакетами, включаючи оновлення тощо. Незалежно від того, з якого дистрибутива ви прийшли, вам доведеться багато чого навчитися, щоб мати змогу зробити Nix добре працювати для вас у командному рядку.[19]

NixOS 22.11 "Raccoon" перевірено Liam Proven уThe Register:

Порівняно зі звітами про NixOS лише два-три роки тому, ми виявили, що її було дуже просто встановити та працювати. Це свідчить про те, що інструменти добре дозрівають та досягають певного рівня досконалості, але з погляду першого використання у нас немає попереднього базового рівня для порівняння. Це дуже не традиційний дистрибутив чи навіть традиційнийUnix, але він працює, та ми бачимо його привабливість.[20]

NixOS 23.11 "Tapir" перевірено Джессі Смітом наDistroWatch:


NixOS є рідкісним самоцвітом бо, я не думаю, що стикався з будь-якими помилками під час його використання. Дистрибутив був стабільним, він добре працював із моїм обладнанням, та я не зіткнувся з жодною проблемою під час його використання. Я відчуваю, що NixOS варто спробувати, особливо якщо ви системний адміністратор та хочете розгорнути (або підтримувати) ідентичні дистрибутиви на кількох машинах.[21]

Примітки

[ред. |ред. код]
  1. Різні інші мови програмування використовуються у NixOS (станом на грудень 2023).
  2. Різні інші ліцензії використовуються для програмного забезпечення, що входить до складу NixOS, наприклад,ядро Linux ліцензовано підGNU GPL версії 2.0 (станом на грудень 2023)

Див. Також

[ред. |ред. код]

Посилання

[ред. |ред. код]
  1. Community - nixos.org.Архів оригіналу за 23 вересня 2022. Процитовано 23 вересня 2022.
  2. NixOS/nixos-foundation - Github.GitHub.Архів оригіналу за 23 вересня 2022. Процитовано 23 вересня 2022.
  3. nixpkgs/COPYING at master · NixOS/nixpkgs · GitHub. Github.com. Процитовано 19 вересня 2015.
  4. DistroWatch.com: NixOS. Distrowatch.com. Процитовано 19 вересня 2015.
  5. Nix channels - NixOS Wiki.wiki.nixos.org. Процитовано 10 лютого 2022.
  6. NixOS Infra Status.status.nixos.org. Процитовано 10 лютого 2022.
  7. NixOps - The NixOS Cloud Deployment Tool. Nixos.org. Процитовано 19 вересня 2015.
  8. svanderburg/disnix. Nixos.org. Процитовано 19 вересня 2015.
  9. Dolstra, Eelco (2003).Integrating Software Construction and Software Deployment(PDF).Lecture Notes in Computer Science.2649: 102—117.doi:10.1007/3-540-39195-9_8.ISBN 978-3-540-14036-8. Архіворигіналу(PDF) за 21 квітня 2019.
  10. Dolstra, Eelco (2006).The Purely Functional Software Deployment Model(PDF) (Ph.D.). Архіворигіналу(PDF) за 9 червня 2019.
  11. Stichting NixOS Foundation. Nixos.org. Процитовано 19 вересня 2015.
  12. Governance. Nixos.org. Архіворигіналу за 16 серпня 2020. Процитовано 28 серпня 2020.
  13. Nix RFCS (Request for Comments).GitHub. 17 грудня 2021.
  14. Dolstra, Eelco; Hemel, Armijn (2007).Purely Functional System Configuration Management(PDF). Архіворигіналу(PDF) за 6 липня 2019.
  15. About NixOS. Nixos.org. Процитовано 19 вересня 2015.
  16. van der Burg, Sander; Dolstra, Eelco; de Jonge, Merijn (2008).Atomic Upgrading of Distributed Systems(PDF). Архіворигіналу(PDF) за 15 січня 2019.
  17. Dolstra, Eelco (2005).Secure Sharing Between Untrusted Users in a Transparent Source/Binary Deployment Model(PDF). Архіворигіналу(PDF) за 26 вересня 2019.
  18. DistroWatch Weekly, Issue 637, 23 November 2015
  19. Hunt, Adam (28 жовтня 2022).Review - NixOS(PDF).Full Circle magazine.Архів(PDF) оригіналу за 28 жовтня 2022. Процитовано 28 жовтня 2022.
  20. Proven, Liam.NixOS 22.11 'Raccoon': Like a proof of concept you can do things with OSes.
  21. Smith, Jesse.NixOS 23.11.
  22. About — GuixSD.www.gnu.org(англ.). Процитовано 3 травня 2018.

Зовнішні посилання

[ред. |ред. код]
Android
Arch
Debian
Ubuntu
Інші
Fedora
Gentoo
Slackware
Mandriva
Інші
Розробку
припинено
Debian
Gentoo
Slackware
Інші
Linux
Tux, талісман Linux
Дистрибутиви
GNU
Інтерфейс користувача
Менеджери вікон
Застосування
Ключові особи
ЗМІ
Мобільність
Інше
Отримано зhttps://uk.wikipedia.org/wiki/NixOS
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2025 Movatter.jp