Категория > Новости > GNU GuixSD. Знакомимся с операционкой нового поколения - «Новости»
GNU GuixSD. Знакомимся с операционкой нового поколения - «Новости»29-06-2020, 12:44. Автор: Fleming |
Роль участников проекта GNU в развитии свободного программного обеспечения невозможно переоценить. Шелл по умолчанию в большинстве UNIX-подобных систем — GNU bash, GCC — все так же один из самых популярных компиляторов, а GNU Emacs — бессменный участник войн редакторов. При этом изначальной цели проекта — разработать свободную операционную систему — так до сих пор и не достигли. Проект был ведущим поставщиком компонентов UNIX-подобных ОС, но большая часть новшеств в разработке дистрибутивов GNU/Linux появлялась в не связанных с GNU и FSF проектах, а их собственные дистрибутивы вроде gNewSense не представляли особого интереса. Чаще всего они были вариантами других дистрибутивов, очищенными от всего несвободного кода. Многие участники проекта GNU, включая основателя проекта Ричарда Столлмана, также отличались любовью к языкам семейства лисп. Неудивительно, если вспомнить, что основатели проекта работали в лаборатории искусственного интеллекта в MIT вместе с разработчиками лисп-машин. При этом в самих операционных системах языки семейства лисп не занимали особого места со времен тех самых лисп-машин — их роль ограничивалась приложениями. Проект GNU Guix (произносится geeks) меняет дело на обоих фронтах. Это не производная другого дистрибутива, а независимый дистрибутив со своим менеджером пакетов и Scheme — языком семейства лисп — в качестве системного скриптового языка. В качестве системы управления сервисами Guix использует не SysV init и не systemd, а GNU sheperd, который произошел из GNU/Hurd и также поддерживает Scheme в качестве языка описания сервисов. Тем не менее Guix появился не на пустом месте. Пакетный менеджер Guix основан на части кода Nix, расширяет его идеи и добавляет поддержку Scheme в качестве языка описаний пакетов и конфигураций. NixOS — идейный предшественник GuixПрежде чем обсуждать Guix, нужно кратко упомянуть о прогрессе в управлении пакетами и пионере их реализации — пакетном менеджере Nix. Все популярные дистрибутивы используют отработанную еще в девяностых схему управления пакетами. У каждого пакета есть версия, в каждый момент в системе может быть только одна версия каждого пакета, обновление пакета требует обновления всех его зависимостей.
Эти проблемы обычно решаются обходными путями — контейнерами, виртуальными окружениями, снимками файловой системы. Лучшие ли это решения из возможных? Есть ли способ разобраться с проблемой на уровне управления пакетами? Авторы Nix задались целью выяснить это экспериментально. Все установленные пакеты Nix устанавливаются в отдельные каталоги с хешем пакета в имени вроде РљСЂРѕРјРµ того, обновление системы — атомарная операция. Если РІРѕ время обновления выдернуть кабель питания, система после перезагрузки окажется РІ состоянии как РґРѕ начала обновления. Более того, обновление РјРѕР¶РЅРѕ откатить назад. Что это — будущее управления пакетами или тупиковый путь? Говорить РѕР± этом РїРѕРєР° рано. Сейчас контейнеры РІ РјРѕРґРµ Рё Сѓ Docker есть финансовая поддержка крупных компаний, РІ то время как исследования управления пакетами Рё разработка новых дистрибутивов держатся РЅР° голом энтузиазме. Язык программирования SchemeScheme — язык РёР· семейства Lisp. Рто семейство весьма велико, Рё его языки объединяет, РїРѕ сути, РѕРґРЅРѕ общее свойство — тождественность РєРѕРґР° Рё данных, Р° значит, Рё неограниченно расширяемый синтаксис. Язык Clojure РІРѕ РјРЅРѕРіРѕРј построен именно РЅР° идеях Scheme, Р° РЅРµ Common Lisp. РџСЂРё этом сам Scheme оставался широко известным языком, РЅРѕ редко применялся РЅР° практике. Его использует культовая РєРЅРёРіР° Structure and Interpretation of Computer Programs, РЅРѕ РЅР° нем РЅРµ написано РЅРё РѕРґРЅРѕР№ сколько-РЅРёР±СѓРґСЊ популярной программы. Так что дея использовать Scheme как фундаментальную часть РћРЎ выглядит весьма радикально, РЅРѕ авторы Guix решились. Давай посмотрим, что РёР· этого вышло. Установка Рё базовая настройкаУстановка РІ VirtualBox РЅРµ представляет никакой сложности. РџСЂРё загрузке СЃ ISO нас встречает вполне типичный псевдографический установщик — РЅР° этом этапе заметить отличия РѕС‚ РґСЂСѓРіРёС… дистрибутивов сложно. ![]() Если ты решишься попробовать РЅР° физическом железе, РЅСѓР¶РЅРѕ учитывать, что разработчики Guix — члены FSF, Р° значит, РІ поставке РїРѕ умолчанию отсутствуют РІСЃРµ несвободные драйверы Рё прошивки. РџРѕРґ конец установки пользователь начинает понимать, РєСѓРґР° попал, — нам советуют искать базовые настройки РІ ![]() Этот файл — скрипт на языке Scheme и хранит указанные при установке настройки в виде S-выражений.
Главное преимущество языков семейства лисп — расширяемый синтаксис. В этом файле Перейти обратно к новости |