GoboLinux: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
→Ссылки: с оформлением нормально — переведено с enwiki. |
MBHbot (обсуждение | вклад) м стилевая правка, replaced: } '''GoboLinux''' — это → } '''GoboLinux''' — |
||
(не показано 19 промежуточных версий 12 участников) | |||
Строка 1: | Строка 1: | ||
{{Карточка ОС |
{{Карточка ОС |
||
| название = GoboLinux |
|||
| логотип = |
|||
| изображение = GoboLinux 016.png |
|||
| подпись = |
|||
| разработчик = |
|||
| семейство = [[Linux]] |
|||
| основана на = |
|||
| исходный код = [[Открытое программное обеспечение|открытый]] |
|||
| последняя версия = 017<ref>[https://gobolinux.org/release_notes_017.html GoboLinux 017 - Release Notes] {{Wayback|url=https://gobolinux.org/release_notes_017.html |date=20200603105857 }}.</ref> |
|||
| дата выпуска последней версии = [[24 мая]] [[2020 год]]а |
|||
| частота обновления = |
|||
| последняя тестовая версия = |
|||
| дата выпуска последней тестовой версии = |
|||
| метод обновления = |
|||
| менеджеры пакетов = |
|||
| поддерживаемые платформы = [[AMD64]] |
|||
| ядро = [[монолитное ядро]] [[Ядро Linux|Linux]] |
|||
| интерфейс = [[Awesome]] |
|||
| лицензия = [[GNU GPL]] |
|||
| состояние = активный<ref>[http://distrowatch.com/table.php?distribution=gobo Статус разработки на DistroWatch] {{Wayback|url=http://distrowatch.com/table.php?distribution=gobo |date=20120612061516 }}.</ref> |
|||
| сайт = {{url|http://gobolinux.org/}} |
|||
|дата первого релиза |
| дата первого релиза = |
||
| последняя доступная версия = |
|||
| дата выпуска последней доступной версии = |
|||
| поддерживаемые языки = [[английский]], [[португальский]], [[венгерский язык|венгерский]], [[немецкий]], [[испанский]] |
|||
}} |
|||
'''GoboLinux''' — |
'''GoboLinux''' — [[Свободное ПО|свободная]] [[операционная система]] семейства [[Linux]], выделяющаяся отходом от принятых в этом семействе стандартов ([[Filesystem Hierarchy Standard]]) в пользу упрощения управления и использования системы. Ключевые решения — это изменённая иерархия файлов, способ загрузки системы и управление пакетами, отчасти схожее с решениями [[Gentoo]]. |
||
== Общая информация == |
== Общая информация == |
||
Файловая система в GoboLinux в корне меняет и упорядочивает исторически сложившуюся модель остальных [[Linux]] |
Файловая система в GoboLinux в корне меняет и упорядочивает исторически сложившуюся модель остальных [[Linux]]-систем — здесь она является не только хранилищем файлов, но и своеобразной [[Система управления пакетами|системой управления пакетами]]. Так, каждая программа, со всеми настройками, библиотеками и прочими файлами, хранится в своём отдельном каталоге. Более того — в нём же могут располагаться и одновременно использоваться сразу несколько версий этой программы (каждая в своём подкаталоге с номером версии). Благодаря такой схеме управление программами упрощается до тривиальных файловых операций, взамен ограниченной системы команд типичных пакетных менеджеров<ref>[http://www.netbsd.org/gallery/pkgsrc-interviews.html#gobo-linux pkgsrc and the concepts of package management 1997-2007 (part 2)] {{Wayback|url=http://www.netbsd.org/gallery/pkgsrc-interviews.html#gobo-linux |date=20180619113018 }}.</ref>. |
||
Если быть точным, набор управляющих программ для пакетов в GoboLinux всё же есть, но они, скорее, играют роль «упрощающих скриптов» (даже написаны они на [[bash]]) — все те же операции над файлами можно проделать и вручную, что резко повышает «ремонтируемость» системы и гибкость управления. |
Если быть точным, набор управляющих программ для пакетов в GoboLinux всё же есть, но они, скорее, играют роль «упрощающих скриптов» (даже написаны они на [[bash]]) — все те же операции над файлами можно проделать и вручную, что резко повышает «ремонтируемость» системы и гибкость управления. |
||
Корневая иерархия каталогов в GoboLinux также подверглась модернизации — взамен разбросанных каталогов bin, lib, local, shared |
Корневая иерархия каталогов в GoboLinux также подверглась модернизации — взамен разбросанных каталогов bin, lib, local, shared в системе имеется центральный каталог, под которым собраны все файлы по типам. Например, все исполняемые файлы (вернее, их символические ссылки, ведущие в персональный bin-каталог программы) собраны в каталоге <tt>/System/Links/Executables</tt>. Этот единообразный подход резко упрощает управление всей системой — становится маловероятно встретить ошибку «программа не найдена» или изменить неправильный конфигурационный файл — для всех них определено одно и только одно место. Fedora слили <tt>/bin</tt> и <tt>/usr/bin</tt> в [[2012 год]]у<ref>[https://fedoraproject.org/wiki/Features/UsrMove Features/UsrMove] {{Wayback|url=https://fedoraproject.org/wiki/Features/UsrMove |date=20180619113317 }}. Fedora Project Wiki.</ref>, а [[Debian]] включил слияние <tt>/usr</tt> по умолчанию в [[2016 год]]у<ref>[http://metadata.ftp-master.debian.org/changelogs/main/d/debootstrap/ Index of /changelogs/main/d/debootstrap/] {{Wayback|url=http://metadata.ftp-master.debian.org/changelogs/main/d/debootstrap/ |date=20180619113156 }}.</ref>. |
||
Несмотря на радикальные различия, GoboLinux не нарушает работы существующих программ, жёстко завязанных на иерархии каталогов: в системе по-прежнему есть физические каталоги <tt>/usr</tt>, <tt>/lib</tt> и т. д., но для более удобного обращения с системой |
Несмотря на радикальные различия, GoboLinux не нарушает работы существующих программ, жёстко завязанных на иерархии каталогов: в системе по-прежнему есть физические каталоги <tt>/usr</tt>, <tt>/lib</tt> и т. д., но для более удобного обращения с системой они скрываются от пользователя [[Модуль ядра|модулем ядра]] ''GoboHide''. |
||
GoboLinux отличается и другими нововведениями, такими как новая [[init|система запуска]], отличная от SysV или BSD. Готовится к выпуску и новая система управления пакетами, которая будет включать управление не только классическим набором линукс-программ, но и модулями из таких гетерогенных систем как [[CPAN]] из [[Perl]] или [[RubyGems]] из [[Ruby]] — установка модулей из этих репозиториев станет такой же прозрачной, как и для любой обычной программы. |
GoboLinux отличается и другими нововведениями, такими как новая [[init|система запуска]], отличная от SysV или BSD. Готовится к выпуску и новая система управления пакетами, которая будет включать управление не только классическим набором линукс-программ, но и модулями из таких гетерогенных систем как [[CPAN]] из [[Perl]] или [[RubyGems]] из [[Ruby]] — установка модулей из этих репозиториев станет такой же прозрачной, как и для любой обычной программы. |
||
== Иерархия файловой системы == |
== Иерархия файловой системы == |
||
[[File:Gobolinux-filesystem-bashdirectory.png|thumb|right| |
[[File:Gobolinux-filesystem-bashdirectory.png|thumb|right|Пример иерархии файловой системы в файловом менеджере]] |
||
На структуру GoboLinux повлияли ранние системы, такие как [[NeXTSTEP]], [[AtheOS]] и [[BeOS]], которые использовали собственную структуру файловой системы, сохраняя заметную совместимость с Unix. В корне GoboLinux лежат 6 |
На структуру GoboLinux повлияли ранние системы, такие как [[NeXTSTEP]], [[AtheOS]] и [[BeOS]], которые использовали собственную структуру файловой системы, сохраняя заметную совместимость с Unix. В корне GoboLinux лежат 6 каталогов: Programs, Users, System, Files, Mount и Depot. Содержимое каждого из них описано ниже. |
||
* '''/Programs/''' — |
* '''/Programs/''' — этот каталог содержит по одному каталогу на каждую установленную программу. Каждый из них, в свою очередь, содержит один или больше каталогов для разделения версий и, возможно, каталоги Settings и Variable. Примеры путей — <tt>/Programs/Bash/3.0/bin/bash</tt>, <tt>/Programs/Xorg-Server/Settings/X11/xorg.conf</tt>. |
||
* '''/Users/''' — |
* '''/Users/''' — этот каталог содержит домашние каталоги пользователей. Например, для пользователя <tt>harley</tt> домашним каталогом будет <tt>/Users/harley</tt>. |
||
* '''/System/''' — |
* '''/System/''' — важные системные файлы. Большинство управляется системными утилитами (например, <tt>/System/Settings/passwd</tt>) и скриптами GoboLinux (например, <tt>/System/Links</tt>). |
||
** '''Links/''' — |
** '''Links/''' — содержит каталоги с символическими ссылками на файлы из <tt>/Programs</tt>. |
||
*** '''Environment/''' — |
*** '''Environment/''' — ссылки на файлы окружения. Эти файлы собираются вместе в один файл, который потом загружается [[оболочка операционной системы|шеллом]], позволяя программам устанавливать [[переменная окружения|переменные окружения]]. |
||
*** '''Executables/''' — |
*** '''Executables/''' — содержит ссылки на файлы из каталогов <tt>bin</tt> и <tt>sbin</tt> каждого пакета. |
||
*** '''Headers/''' — |
*** '''Headers/''' — этот каталог содержит ссылки на файлы из каталога <tt>include</tt> каждого пакета. |
||
*** '''Libraries/''' — |
*** '''Libraries/''' — ссылки на файлы из каталога <tt>lib</tt> каждого пакета. |
||
*** '''Manuals/''' — |
*** '''Manuals/''' — содержимое <tt>man</tt> и <tt>info</tt>. |
||
*** '''Shared/''' — |
*** '''Shared/''' — ссылки на файлы из каталога <tt>share</tt> каждого пакета. |
||
*** '''Tasks/''' — |
*** '''Tasks/''' — ссылки на файлы из каталога <tt>Resources/Tasks</tt> каждого пакета. |
||
** '''Settings/''' — |
** '''Settings/''' — конфигурационные файлы и ссылки на файлы из каталога <tt>Settings</tt> каждого пакета. |
||
*** '''BootScripts/''' — [[ |
*** '''BootScripts/''' — [[скрипт]]ы, используемые при загрузке системы. Это [[символическая ссылка]] на каталог <tt>Settings/BootScripts/</tt>, находящийся в <tt>/Programs/BootScripts</tt>. |
||
** '''Variable/''' — |
** '''Variable/''' — различные [[файл регистрации|журналы]], временные файлы и файлы очередей. |
||
*** '''tmp/''' — |
*** '''tmp/''' — временные файлы. |
||
** '''Kernel/''' — |
** '''Kernel/''' — Каталоги, относящиеся к [[ядро операционной системы|ядру]]. |
||
*** '''Boot/''' — |
*** '''Boot/''' — программы и файлы конфигурации, используемые во время загрузки системы. Здесь находятся ядро и конфигурационные файлы [[загрузчик операционной системы|загрузчика]]. |
||
*** '''Devices/''' — |
*** '''Devices/''' — файлы устройств (этим каталогом управляет [[udev]]). |
||
*** '''Modules/''' — |
*** '''Modules/''' — содержит модули ядра, упорядоченные по версии ядра. |
||
*** '''Objects/''' — |
*** '''Objects/''' — предоставляет доступ к информации об устройствах и настройки ядра (появилось в качестве виртуальной файловой системы [[sysfs]] в ядре [[Linux]] 2.6). |
||
*** '''Status/''' — |
*** '''Status/''' — предоставляет доступ к информации о процессах (виртуальная файловая система [[procfs]]). |
||
* '''/Files/''' — |
* '''/Files/''' — хранит используемые программами данные, которые не являются частью этих программ. Файлы в данном каталоге обычно самодостаточные, например, шрифты, кодеки, плагины и тому подобные, которые не требуют управления со стороны менеджера пакетов. Программы могут создавать здесь свои подкаталоги, чтобы хранить данные, относящиеся к системе, в которой они установлены. Например, Compile — сборщик пакетов в GoboLinux — использует эту возможность. |
||
* '''/Mount/''' — |
* '''/Mount/''' — содержит [[точка монтирования|точки монтирования]] для подключения дополнительных локальных и удалённых файловых систем. Содержит такие точки монтирования, как CD-ROM, Floppy и Zip. |
||
* '''/Depot/''' — |
* '''/Depot/''' — хранилище пользовательских файлов. Это хранилище пользователи могут организовывать так, как им надо. Никакие подкаталоги <tt>/Depot/</tt> не входят в стандартную иерархию GoboLinux. |
||
== Программа «Compile» == |
== Программа «Compile» == |
||
<!-- How many recipes are available? This would be a good thing to know. --> |
<!-- How many recipes are available? This would be a good thing to know. --> |
||
[http://gobolinux.org/index.php?page=compile Compile] — утилита, позволяющая скачать [[исходники]] указанной программы, распаковать их, скомпилировать и установить в систему одной командой (например, |
[http://gobolinux.org/index.php?page=compile Compile] — утилита, позволяющая скачать [[исходники]] указанной программы, распаковать их, скомпилировать и установить в систему одной командой (например, <code>Compile foo</code>, чтобы установить программу foo из исходников). Compile использует простые сценарии компиляции, называемые «рецептами» ({{lang-en|«recipes»}})<ref>[http://www.linux.com/articles/60133 GoboLinux’s recipe for delicious package management] {{Wayback|url=http://www.linux.com/articles/60133 |date=20080917021209 }}. [[Linux.com]].</ref>. |
||
Compile в чём-то схожа<ref>[http://developers.slashdot.org/article.pl?sid=04/06/05/1949213 ''GoboLinux Compile — A Scalable Portage?''] |
Compile в чём-то схожа<ref>[http://developers.slashdot.org/article.pl?sid=04/06/05/1949213 ''GoboLinux Compile — A Scalable Portage?''] {{Wayback|url=http://developers.slashdot.org/article.pl?sid=04/06/05/1949213 |date=20110524121715 }} [[Slashdot]].</ref> с системой [[Portage]] в [[Gentoo]], которая основана на [[FreeBSD Ports]] и выполняет установку, руководствуясь «[[ebuild]]'ами». Но система Portage создана для работы в традиционной файловой иерархии, совместимой с [[FHS]], а система Compile расширяет возможности файловой иерархии в GoboLinux до сферы управления пакетами. Так, в GoboLinux файловая система служит менеджером пакетов (см. «The Ideas Behind ''Compile''»<ref>[http://gobolinux.org/index.php?page=doc/articles/compile «The Ideas Behind ''Compile''»] {{Wayback|url=http://gobolinux.org/index.php?page=doc%2Farticles%2Fcompile |date=20100613074440 }} {{webarchive|url=https://web.archive.org/web/20100613074440/http://gobolinux.org/index.php?page=doc%2Farticles%2Fcompile |date=2010-06-13 }}</ref>). |
||
Система Compile появилась в GoboLinux версии 011. До этого велись разговоры о [[портирование программного обеспечения|портировании]] системы Portage из Gentoo в GoboLinux в качестве проекта ''GoboPortage'' на [[Sourceforge.net]].<ref>[http://forums.gentoo.org/viewtopic-t-241718-highlight-gobolinux.html |
Система Compile появилась в GoboLinux версии 011. До этого велись разговоры о [[портирование программного обеспечения|портировании]] системы Portage из Gentoo в GoboLinux в качестве проекта ''GoboPortage'' на [[Sourceforge.net]].<ref>[http://forums.gentoo.org/viewtopic-t-241718-highlight-gobolinux.html GoboGentoo] {{Wayback|url=http://forums.gentoo.org/viewtopic-t-241718-highlight-gobolinux.html |date=20070930181640 }}. Gentoo Forums.</ref><ref>[http://sourceforge.net/projects/goboportage/ GoboPortage] {{Wayback|url=http://sourceforge.net/projects/goboportage/ |date=20070312021346 }}. SourceForge.net.</ref> |
||
Другие особенности Compile: |
Другие особенности Compile: |
||
* '''Скачивает исходники пакетов из первоисточника''': хранилище дистрибутива (или одно из его зеркал) содержит только рецепты. Рецепты могут скачиваться |
* '''Скачивает исходники пакетов из первоисточника''': хранилище дистрибутива (или одно из его зеркал) содержит только рецепты. Рецепты могут скачиваться "на лету" либо заранее все сразу. |
||
* '''Использует минималистичные и декларативные сценарии компиляции''': обычная последовательность «configure; make; make install» может быть записана в виде двухстрочного рецепта, что очень облегчает поддержку рецептов в актуальном состоянии. |
* '''Использует минималистичные и декларативные сценарии компиляции''': обычная последовательность «configure; make; make install» может быть записана в виде двухстрочного рецепта, что очень облегчает поддержку рецептов в актуальном состоянии. |
||
* '''Поддерживает зависимости в стиле GoboLinux''': программы, скомпилированные пользователем «вручную» тоже учитываются при учёте зависимостей пакетов. |
* '''Поддерживает зависимости в стиле GoboLinux''': программы, скомпилированные пользователем «вручную», тоже учитываются при учёте зависимостей пакетов. |
||
* '''Не зависит от путей''': может работать в так называемом режиме «Rootless»<ref>{{cite web | title = GoboLinux: An Interview with Lucas Villa Real] | url = http://www.packtpub.com/article/GoboLinux-An-Interview-with-Lucas-Villa | author = Mayank Sharma | date = |
* '''Не зависит от путей''': может работать в так называемом режиме «Rootless»<ref>{{cite web | title = GoboLinux: An Interview with Lucas Villa Real] | url = http://www.packtpub.com/article/GoboLinux-An-Interview-with-Lucas-Villa | author = Mayank Sharma | date = 2007-08-21 | accessdate = 2008-03-31 | archive-date = 2008-04-18 | archive-url = https://web.archive.org/web/20080418032904/http://www.packtpub.com/article/GoboLinux-An-Interview-with-Lucas-Villa | deadlink = no }}</ref> — установке GoboLinux, например, в каталог $HOME внутри другого дистрибутива. |
||
== Отличия от традиционных дистрибутивов == |
== Отличия от традиционных дистрибутивов == |
||
=== Файловая иерархия === |
=== Файловая иерархия === |
||
В иерархии GoboLinux файлы сгруппированы по функциональному назначению в категории с использованием индексации, основанной на [[симлинк]]ах. Индекс хранится в |
В иерархии GoboLinux файлы сгруппированы по функциональному назначению в категории с использованием индексации, основанной на [[симлинк]]ах. Индекс хранится в каталоге <tt>/System/Links/</tt>: все исполняемые файлы доступны в <tt>/System/Links/Executables/</tt>, все библиотеки — в <tt>/System/Links/Libraries</tt>, и так далее. Такой подход устраняет традиционные, характерные для [[FHS]] различия между несущественными файлами, находящимися в <tt>/usr</tt>, и критически необходимыми файлами, которые находятся в корне <tt>/</tt>. Разработчики других дистрибутивов стараются этого придерживаться, потому что такие различия были когда-то полезны, но сегодня, в совершенно другой, современной среде, они не являются необходимостью.{{нет АИ|20|03|2015}} |
||
=== Симлинки === |
=== Симлинки === |
||
Существуют [[символическая ссылка|символические ссылки]], обозначающие обычные |
Существуют [[символическая ссылка|символические ссылки]], обозначающие обычные каталоги Unix, но указывающие на структуру каталогов GoboLinux. Поэтому можно найти каталоги <tt>/etc</tt>, <tt>/var/log</tt> и <tt>usr/bin</tt> на старых местах. Эти ссылки указывают на эквивалентные каталоги в <tt>/System/Links/</tt>, так что ключевые пути, такие как <tt>/bin/sh</tt> или <tt>/etc/passwd</tt>, остаются корректными. Такие ссылки совместимости скрываются из виду с помощью модуля ''GoboHide'' для ядра. Этот модуль, который реализует сокрытие файлов в Linux, используется чисто из эстетических соображений и вовсе не обязателен. |
||
=== Суперпользователь === |
=== Суперпользователь === |
||
[[Суперпользователь]], традиционно известный как «root» с UID равным 0, может иметь любое другое имя в GoboLinux, выбираемое при установке. В отличие от других дистрибутивов, в GoboLinux |
[[Суперпользователь]], традиционно известный как «root» с UID равным 0, может иметь любое другое имя в GoboLinux, выбираемое при установке. В отличие от других дистрибутивов, в GoboLinux домашний каталог суперпользователя вовсе не <tt>/root</tt>, а <tt>/User/NAME</tt> — как и у других пользователей. Согласно статье hisham{{нет АИ|2|07|2018}}, так было решено, потому что ему никогда не нравилось понятие обособленного суперпользователя. |
||
=== Система загрузки === |
=== Система загрузки === |
||
GoboLinux использует собственную процедуру запуска, в отличие от других дистрибутивов Linux, в которых применяются системы запуска |
GoboLinux использует собственную процедуру запуска, в отличие от других дистрибутивов Linux, в которых применяются системы запуска systemd или System V. В каталоге <tt>/System/Settings/BootScripts</tt> лежат несколько файлов, которые полностью управляют процессом загрузки: <tt>BootUp</tt> и <tt>ShutDown</tt> выполняются, соответственно, во время запуска и остановки системы. В дополнение к ним можно создавать скрипты для различных «уровней запуска» ({{lang-en|«runlevel»}}), чтобы управлять способами, которыми может быть загружена система (например, создать скрипт Single для однопользовательского режима, Multi — для многопользовательского, Graphical — для графического режима, и так далее). Файл <tt>/System/Settings/BootOptions</tt> отделяет настройки системы от других скриптов. Скрипты для запуска или останова [[демон (программа)|демонов]] и применения настроек находятся в <tt>/System/Links/Tasks</tt> и могут быть запущены скриптами загрузки. |
||
== Релизы == |
== Релизы == |
||
Релизы нумеруются в [[восьмеричная система счисления|восьмеричной системе счисления]]. Авторы говорят, что они выбрали её из-за нуля в первой цифре (в языке [[Си (язык программирования)|Си]] при записи чисел в восьмеричной системе в первой цифре ставится ноль), и является насмешкой над гонкой за версиями, происходившей среди дистрибутивов примерно в 1999 году. Если читать число как десятичное, то происходит предсказуемый «скачок» версии каждые 8 релизов. До версии 014 в GoboLinux не было минорных релизов, то есть версия состояла всего из одного числа, чтобы не вводить в заблуждение, что один релиз более стабилен, чем другой. Традиция была нарушена при выпуске релиза 014.01 — обновления, которое содержало, в основном, исправления [[Программная ошибка| |
Релизы нумеруются в [[восьмеричная система счисления|восьмеричной системе счисления]]. Авторы говорят, что они выбрали её из-за нуля в первой цифре (в языке [[Си (язык программирования)|Си]] при записи чисел в восьмеричной системе в первой цифре ставится ноль), и является насмешкой над гонкой за версиями, происходившей среди дистрибутивов примерно в 1999 году. Если читать число как десятичное, то происходит предсказуемый «скачок» версии каждые 8 релизов. До версии 014 в GoboLinux не было минорных релизов, то есть версия состояла всего из одного числа, чтобы не вводить в заблуждение, что один релиз более стабилен, чем другой. Традиция была нарушена при выпуске релиза 014.01 — обновления, которое содержало, в основном, исправления [[Программная ошибка|ошибок]] релиза 014. |
||
⚫ | |||
⚫ | |||
⚫ | * 014.01<ref>{{cite web|title=GoboLinux 014.01 Released|url=http://osnews.com/story/19578/GoboLinux_014.01_Released|author=Thom Holwerda|date= |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
* Релизы до 005 использовались только внутри группы разработчиков. |
* Релизы до 005 использовались только внутри группы разработчиков. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | * 014.01<ref>{{cite web |title=GoboLinux 014.01 Released |url=http://osnews.com/story/19578/GoboLinux_014.01_Released |author=Thom Holwerda |date=2008-04-04 |accessdate=2008-04-04 |archiveurl=https://www.webcitation.org/68EpoAkFA?url=http://www.osnews.com/story/19578/GoboLinux_014.01_Released |archivedate=2012-06-07 |deadurl=yes}}</ref> — 30 марта 2008: обновление для релиза 014, содержащее исправления багов и несколько обновлений пакетов. |
||
⚫ | |||
⚫ | |||
== Портирование == |
== Портирование == |
||
По данным на март 2006 года Gobolinux официально выпускается только под [[i686]], и [[портирование]] под [[i386]] носит частный характер, а потому неполный. Однако в 2003 году Hisham Muhammad, главный разработчик в проекте GoboLinux, написал «Сляпанное наспех руководство по портированию»<ref>[http://www.gobolinux.org/index.php?page=doc/articles/porting_guide Quick-and-Dirty Porting Guide]{{ |
По данным на март 2006 года Gobolinux официально выпускается только под [[i686]], и [[портирование]] под [[i386]] носит частный характер, а потому неполный. Однако в 2003 году Hisham Muhammad, главный разработчик в проекте GoboLinux, написал «Сляпанное наспех руководство по портированию»<ref>[http://www.gobolinux.org/index.php?page=doc/articles/porting_guide Quick-and-Dirty Porting Guide] {{Wayback|url=http://www.gobolinux.org/index.php?page=doc%2Farticles%2Fporting_guide |date=20161021000834 }}.</ref> для тех, кто хотел портировать GoboLinux под платформу [[PowerPC]] и другие архитектуры. Он также занимался портированием сам.<ref>[http://gobo.kundor.org/wiki/GoboLinux_PPC GoboLinux PPC] {{Wayback|url=http://gobo.kundor.org/wiki/GoboLinux_PPC |date=20080109200346 }}.</ref> Были получены версии для [[встраиваемая система|встраиваемых систем]], таких как [[ARM (архитектура)|ARM]] и [[SuperH]], которые легко делались с помощью утилиты Bootstrap<ref>[http://embedded.gobolinux.org GoboLinux Embedded] {{Архивировано|url=https://archive.today/20120629165707/http://embedded.gobolinux.org/ |date=2012-06-29 }}.</ref>, специально созданной для автоматизации портирования. |
||
== Мнения == |
== Мнения == |
||
[[LWN.net]] рассмотрел GoboLinux 010 в [[2004 год]]у<ref>[https://lwn.net/Articles/67196/ GoboLinux - Fun with File System Hierarchy |
[[LWN.net]] рассмотрел GoboLinux 010 в [[2004 год]]у<ref>[https://lwn.net/Articles/67196/ GoboLinux - Fun with File System Hierarchy] {{Wayback|url=https://lwn.net/Articles/67196/ |date=20180619140143 }}. LWN.net.</ref>. |
||
Linux.com написал обзор на GoboLinux 013<ref>[https://www.linux.com/news/gobolinuxs-recipe-delicious-package-management GoboLinux's recipe for delicious package management | |
Linux.com написал обзор на GoboLinux 013<ref>[https://www.linux.com/news/gobolinuxs-recipe-delicious-package-management GoboLinux's recipe for delicious package management] {{Wayback|url=https://www.linux.com/news/gobolinuxs-recipe-delicious-package-management |date=20180619113326 }}. Linux.com.</ref>. |
||
⚫ | Джесси Смит из DistroWatch Weekly рассмотрела GoboLinux 015<ref>DistroWatch Weekly, [https://distrowatch.com/weekly.php?issue=20140609#feature Issue 562] {{Wayback|url=https://distrowatch.com/weekly.php?issue=20140609#feature |date=20180619114610 }}, 9 June 2014.</ref>. Смит также рассмотрела версию 016<ref>DistroWatch Weekly, [https://distrowatch.com/weekly.php?issue=20170123#gobo Issue 696] {{Wayback|url=https://distrowatch.com/weekly.php?issue=20170123#gobo |date=20180619140101 }}, 23 January 2017.</ref>. |
||
⚫ | Джесси Смит из DistroWatch Weekly рассмотрела GoboLinux 015<ref>[https://distrowatch.com/weekly.php?issue=20140609#feature |
||
== Примечания == |
== Примечания == |
||
{{примечания |
{{примечания}} |
||
== Литература == |
|||
* {{Статья|автор=Мэтт Хэнсон|заглавие=Что за штука GoboLinux|ссылка=|язык=|издание=[[Linux Format]]|тип=|год=2014|месяц=08|число=|том=|номер=186|страницы=60-61|issn=}} |
|||
== Ссылки == |
== Ссылки == |
||
{{Портал|Свободное программное обеспечение}} |
|||
* {{официальный сайт|http://www.gobolinux.org/}} |
* {{официальный сайт|http://www.gobolinux.org/}} |
||
* [http://blog.gobolinux.org/ Блог Michael — разработчика GoboLinux, публикующего все новости касательно GoboLinux] |
* [https://web.archive.org/web/20100815112711/http://blog.gobolinux.org/ Блог Michael — разработчика GoboLinux, публикующего все новости касательно GoboLinux] |
||
* {{DistroWatch|gobolinux|NAME=GoboLinux}} |
* {{DistroWatch|gobolinux|NAME=GoboLinux}} |
||
* [http://www.linux.com/articles/49173?tid=127 Обзор GoboLinux на Linux.com] |
* [https://web.archive.org/web/20070807165102/http://www.linux.com/articles/49173?tid=127 Обзор GoboLinux на Linux.com] |
||
{{Дистрибутивы Linux}} |
{{Дистрибутивы Linux}} |
Текущая версия от 14:15, 30 января 2024
GoboLinux | |
---|---|
Семейство ОС | Linux |
Исходный код | открытый |
Первый выпуск | 20 марта 2002[3][4] |
Последняя версия | 017[1] (24 мая 2020 года) |
Поддерживаемые языки | английский, португальский, венгерский, немецкий, испанский |
Поддерживаемые платформы | AMD64 |
Тип ядра | монолитное ядро Linux |
Интерфейс | Awesome |
Лицензия | GNU GPL |
Состояние | активный[2] |
Веб-сайт | gobolinux.org |
Медиафайлы на Викискладе |
GoboLinux — свободная операционная система семейства Linux, выделяющаяся отходом от принятых в этом семействе стандартов (Filesystem Hierarchy Standard) в пользу упрощения управления и использования системы. Ключевые решения — это изменённая иерархия файлов, способ загрузки системы и управление пакетами, отчасти схожее с решениями Gentoo.
Общая информация
[править | править код]Файловая система в GoboLinux в корне меняет и упорядочивает исторически сложившуюся модель остальных Linux-систем — здесь она является не только хранилищем файлов, но и своеобразной системой управления пакетами. Так, каждая программа, со всеми настройками, библиотеками и прочими файлами, хранится в своём отдельном каталоге. Более того — в нём же могут располагаться и одновременно использоваться сразу несколько версий этой программы (каждая в своём подкаталоге с номером версии). Благодаря такой схеме управление программами упрощается до тривиальных файловых операций, взамен ограниченной системы команд типичных пакетных менеджеров[5].
Если быть точным, набор управляющих программ для пакетов в GoboLinux всё же есть, но они, скорее, играют роль «упрощающих скриптов» (даже написаны они на bash) — все те же операции над файлами можно проделать и вручную, что резко повышает «ремонтируемость» системы и гибкость управления.
Корневая иерархия каталогов в GoboLinux также подверглась модернизации — взамен разбросанных каталогов bin, lib, local, shared в системе имеется центральный каталог, под которым собраны все файлы по типам. Например, все исполняемые файлы (вернее, их символические ссылки, ведущие в персональный bin-каталог программы) собраны в каталоге /System/Links/Executables. Этот единообразный подход резко упрощает управление всей системой — становится маловероятно встретить ошибку «программа не найдена» или изменить неправильный конфигурационный файл — для всех них определено одно и только одно место. Fedora слили /bin и /usr/bin в 2012 году[6], а Debian включил слияние /usr по умолчанию в 2016 году[7].
Несмотря на радикальные различия, GoboLinux не нарушает работы существующих программ, жёстко завязанных на иерархии каталогов: в системе по-прежнему есть физические каталоги /usr, /lib и т. д., но для более удобного обращения с системой они скрываются от пользователя модулем ядра GoboHide.
GoboLinux отличается и другими нововведениями, такими как новая система запуска, отличная от SysV или BSD. Готовится к выпуску и новая система управления пакетами, которая будет включать управление не только классическим набором линукс-программ, но и модулями из таких гетерогенных систем как CPAN из Perl или RubyGems из Ruby — установка модулей из этих репозиториев станет такой же прозрачной, как и для любой обычной программы.
Иерархия файловой системы
[править | править код]На структуру GoboLinux повлияли ранние системы, такие как NeXTSTEP, AtheOS и BeOS, которые использовали собственную структуру файловой системы, сохраняя заметную совместимость с Unix. В корне GoboLinux лежат 6 каталогов: Programs, Users, System, Files, Mount и Depot. Содержимое каждого из них описано ниже.
- /Programs/ — этот каталог содержит по одному каталогу на каждую установленную программу. Каждый из них, в свою очередь, содержит один или больше каталогов для разделения версий и, возможно, каталоги Settings и Variable. Примеры путей — /Programs/Bash/3.0/bin/bash, /Programs/Xorg-Server/Settings/X11/xorg.conf.
- /Users/ — этот каталог содержит домашние каталоги пользователей. Например, для пользователя harley домашним каталогом будет /Users/harley.
- /System/ — важные системные файлы. Большинство управляется системными утилитами (например, /System/Settings/passwd) и скриптами GoboLinux (например, /System/Links).
- Links/ — содержит каталоги с символическими ссылками на файлы из /Programs.
- Environment/ — ссылки на файлы окружения. Эти файлы собираются вместе в один файл, который потом загружается шеллом, позволяя программам устанавливать переменные окружения.
- Executables/ — содержит ссылки на файлы из каталогов bin и sbin каждого пакета.
- Headers/ — этот каталог содержит ссылки на файлы из каталога include каждого пакета.
- Libraries/ — ссылки на файлы из каталога lib каждого пакета.
- Manuals/ — содержимое man и info.
- Shared/ — ссылки на файлы из каталога share каждого пакета.
- Tasks/ — ссылки на файлы из каталога Resources/Tasks каждого пакета.
- Settings/ — конфигурационные файлы и ссылки на файлы из каталога Settings каждого пакета.
- BootScripts/ — скрипты, используемые при загрузке системы. Это символическая ссылка на каталог Settings/BootScripts/, находящийся в /Programs/BootScripts.
- Variable/ — различные журналы, временные файлы и файлы очередей.
- tmp/ — временные файлы.
- Kernel/ — Каталоги, относящиеся к ядру.
- Boot/ — программы и файлы конфигурации, используемые во время загрузки системы. Здесь находятся ядро и конфигурационные файлы загрузчика.
- Devices/ — файлы устройств (этим каталогом управляет udev).
- Modules/ — содержит модули ядра, упорядоченные по версии ядра.
- Objects/ — предоставляет доступ к информации об устройствах и настройки ядра (появилось в качестве виртуальной файловой системы sysfs в ядре Linux 2.6).
- Status/ — предоставляет доступ к информации о процессах (виртуальная файловая система procfs).
- Links/ — содержит каталоги с символическими ссылками на файлы из /Programs.
- /Files/ — хранит используемые программами данные, которые не являются частью этих программ. Файлы в данном каталоге обычно самодостаточные, например, шрифты, кодеки, плагины и тому подобные, которые не требуют управления со стороны менеджера пакетов. Программы могут создавать здесь свои подкаталоги, чтобы хранить данные, относящиеся к системе, в которой они установлены. Например, Compile — сборщик пакетов в GoboLinux — использует эту возможность.
- /Mount/ — содержит точки монтирования для подключения дополнительных локальных и удалённых файловых систем. Содержит такие точки монтирования, как CD-ROM, Floppy и Zip.
- /Depot/ — хранилище пользовательских файлов. Это хранилище пользователи могут организовывать так, как им надо. Никакие подкаталоги /Depot/ не входят в стандартную иерархию GoboLinux.
Программа «Compile»
[править | править код]Compile — утилита, позволяющая скачать исходники указанной программы, распаковать их, скомпилировать и установить в систему одной командой (например, Compile foo
, чтобы установить программу foo из исходников). Compile использует простые сценарии компиляции, называемые «рецептами» (англ. «recipes»)[8].
Compile в чём-то схожа[9] с системой Portage в Gentoo, которая основана на FreeBSD Ports и выполняет установку, руководствуясь «ebuild'ами». Но система Portage создана для работы в традиционной файловой иерархии, совместимой с FHS, а система Compile расширяет возможности файловой иерархии в GoboLinux до сферы управления пакетами. Так, в GoboLinux файловая система служит менеджером пакетов (см. «The Ideas Behind Compile»[10]).
Система Compile появилась в GoboLinux версии 011. До этого велись разговоры о портировании системы Portage из Gentoo в GoboLinux в качестве проекта GoboPortage на Sourceforge.net.[11][12]
Другие особенности Compile:
- Скачивает исходники пакетов из первоисточника: хранилище дистрибутива (или одно из его зеркал) содержит только рецепты. Рецепты могут скачиваться "на лету" либо заранее все сразу.
- Использует минималистичные и декларативные сценарии компиляции: обычная последовательность «configure; make; make install» может быть записана в виде двухстрочного рецепта, что очень облегчает поддержку рецептов в актуальном состоянии.
- Поддерживает зависимости в стиле GoboLinux: программы, скомпилированные пользователем «вручную», тоже учитываются при учёте зависимостей пакетов.
- Не зависит от путей: может работать в так называемом режиме «Rootless»[13] — установке GoboLinux, например, в каталог $HOME внутри другого дистрибутива.
Отличия от традиционных дистрибутивов
[править | править код]Файловая иерархия
[править | править код]В иерархии GoboLinux файлы сгруппированы по функциональному назначению в категории с использованием индексации, основанной на симлинках. Индекс хранится в каталоге /System/Links/: все исполняемые файлы доступны в /System/Links/Executables/, все библиотеки — в /System/Links/Libraries, и так далее. Такой подход устраняет традиционные, характерные для FHS различия между несущественными файлами, находящимися в /usr, и критически необходимыми файлами, которые находятся в корне /. Разработчики других дистрибутивов стараются этого придерживаться, потому что такие различия были когда-то полезны, но сегодня, в совершенно другой, современной среде, они не являются необходимостью.[источник не указан 3558 дней]
Симлинки
[править | править код]Существуют символические ссылки, обозначающие обычные каталоги Unix, но указывающие на структуру каталогов GoboLinux. Поэтому можно найти каталоги /etc, /var/log и usr/bin на старых местах. Эти ссылки указывают на эквивалентные каталоги в /System/Links/, так что ключевые пути, такие как /bin/sh или /etc/passwd, остаются корректными. Такие ссылки совместимости скрываются из виду с помощью модуля GoboHide для ядра. Этот модуль, который реализует сокрытие файлов в Linux, используется чисто из эстетических соображений и вовсе не обязателен.
Суперпользователь
[править | править код]Суперпользователь, традиционно известный как «root» с UID равным 0, может иметь любое другое имя в GoboLinux, выбираемое при установке. В отличие от других дистрибутивов, в GoboLinux домашний каталог суперпользователя вовсе не /root, а /User/NAME — как и у других пользователей. Согласно статье hisham[источник не указан 2358 дней], так было решено, потому что ему никогда не нравилось понятие обособленного суперпользователя.
Система загрузки
[править | править код]GoboLinux использует собственную процедуру запуска, в отличие от других дистрибутивов Linux, в которых применяются системы запуска systemd или System V. В каталоге /System/Settings/BootScripts лежат несколько файлов, которые полностью управляют процессом загрузки: BootUp и ShutDown выполняются, соответственно, во время запуска и остановки системы. В дополнение к ним можно создавать скрипты для различных «уровней запуска» (англ. «runlevel»), чтобы управлять способами, которыми может быть загружена система (например, создать скрипт Single для однопользовательского режима, Multi — для многопользовательского, Graphical — для графического режима, и так далее). Файл /System/Settings/BootOptions отделяет настройки системы от других скриптов. Скрипты для запуска или останова демонов и применения настроек находятся в /System/Links/Tasks и могут быть запущены скриптами загрузки.
Релизы
[править | править код]Релизы нумеруются в восьмеричной системе счисления. Авторы говорят, что они выбрали её из-за нуля в первой цифре (в языке Си при записи чисел в восьмеричной системе в первой цифре ставится ноль), и является насмешкой над гонкой за версиями, происходившей среди дистрибутивов примерно в 1999 году. Если читать число как десятичное, то происходит предсказуемый «скачок» версии каждые 8 релизов. До версии 014 в GoboLinux не было минорных релизов, то есть версия состояла всего из одного числа, чтобы не вводить в заблуждение, что один релиз более стабилен, чем другой. Традиция была нарушена при выпуске релиза 014.01 — обновления, которое содержало, в основном, исправления ошибок релиза 014.
- Релизы до 005 использовались только внутри группы разработчиков.
- 005—2003: первый публичный релиз в сети.
- 006 — 9 мая 2003: добавлен модуль GoboHide, введено использование песочницы для установки пакетов.
- 007 — 22 октября 2003: добавлен каталог Resources для хранения метаданных о пакетах.
- 010 — 7 января 2004: добавлен графический установщик, доступный в среде рабочего стола, запущенного с LiveCD.
- 011 — 7 июня 2004: добавлена утилита Compile — инструмент сборки пакетов в GoboLinux.
- 012 — 6 июня 2005: добавлена утилита Manager для управления системой в графическом интерфейсе.
- 013 — 2 ноября 2006: добавлена утилита Listener, позволяющая следить за событиями в файловой системе и назначать действия, выполняемые автоматически.
- 014 — 31 декабря 2007: новый стабильный релиз, включающий обновления пакетов, исправления ошибок и новые версии утилит управления GoboLinux-ом.
- 014.01[14] — 30 марта 2008: обновление для релиза 014, содержащее исправления багов и несколько обновлений пакетов.
- 015 alpha — 21 января 2014: Релиз первой альфы после долгого перерыва.
- 015 — 7 мая 2014: первая стабильная версия после шестилетнего перерыва.
Портирование
[править | править код]По данным на март 2006 года Gobolinux официально выпускается только под i686, и портирование под i386 носит частный характер, а потому неполный. Однако в 2003 году Hisham Muhammad, главный разработчик в проекте GoboLinux, написал «Сляпанное наспех руководство по портированию»[15] для тех, кто хотел портировать GoboLinux под платформу PowerPC и другие архитектуры. Он также занимался портированием сам.[16] Были получены версии для встраиваемых систем, таких как ARM и SuperH, которые легко делались с помощью утилиты Bootstrap[17], специально созданной для автоматизации портирования.
Мнения
[править | править код]LWN.net рассмотрел GoboLinux 010 в 2004 году[18].
Linux.com написал обзор на GoboLinux 013[19].
Джесси Смит из DistroWatch Weekly рассмотрела GoboLinux 015[20]. Смит также рассмотрела версию 016[21].
Примечания
[править | править код]- ↑ GoboLinux 017 - Release Notes Архивная копия от 3 июня 2020 на Wayback Machine.
- ↑ Статус разработки на DistroWatch Архивная копия от 12 июня 2012 на Wayback Machine.
- ↑ Muhammad H. A bit of history // The Unix tree rethought: an introduction to GoboLinux — 2003.
- ↑ https://github.com/gobolinux/gobolinux.org/blob/master/lang/en_US/pages/k5.html#L28-L71
- ↑ pkgsrc and the concepts of package management 1997-2007 (part 2) Архивная копия от 19 июня 2018 на Wayback Machine.
- ↑ Features/UsrMove Архивная копия от 19 июня 2018 на Wayback Machine. Fedora Project Wiki.
- ↑ Index of /changelogs/main/d/debootstrap/ Архивная копия от 19 июня 2018 на Wayback Machine.
- ↑ GoboLinux’s recipe for delicious package management Архивная копия от 17 сентября 2008 на Wayback Machine. Linux.com.
- ↑ GoboLinux Compile — A Scalable Portage? Архивная копия от 24 мая 2011 на Wayback Machine Slashdot.
- ↑ «The Ideas Behind Compile» Архивная копия от 13 июня 2010 на Wayback Machine Архивировано 13 июня 2010 года.
- ↑ GoboGentoo Архивная копия от 30 сентября 2007 на Wayback Machine. Gentoo Forums.
- ↑ GoboPortage Архивная копия от 12 марта 2007 на Wayback Machine. SourceForge.net.
- ↑ Mayank Sharma. GoboLinux: An Interview with Lucas Villa Real] (21 августа 2007). Дата обращения: 31 марта 2008. Архивировано 18 апреля 2008 года.
- ↑ Thom Holwerda. GoboLinux 014.01 Released (4 апреля 2008). Дата обращения: 4 апреля 2008. Архивировано из оригинала 7 июня 2012 года.
- ↑ Quick-and-Dirty Porting Guide Архивная копия от 21 октября 2016 на Wayback Machine.
- ↑ GoboLinux PPC Архивная копия от 9 января 2008 на Wayback Machine.
- ↑ GoboLinux Embedded Архивировано 29 июня 2012 года..
- ↑ GoboLinux - Fun with File System Hierarchy Архивная копия от 19 июня 2018 на Wayback Machine. LWN.net.
- ↑ GoboLinux's recipe for delicious package management Архивная копия от 19 июня 2018 на Wayback Machine. Linux.com.
- ↑ DistroWatch Weekly, Issue 562 Архивная копия от 19 июня 2018 на Wayback Machine, 9 June 2014.
- ↑ DistroWatch Weekly, Issue 696 Архивная копия от 19 июня 2018 на Wayback Machine, 23 January 2017.
Литература
[править | править код]- Мэтт Хэнсон. Что за штука GoboLinux // Linux Format. — 2014. — Август (№ 186). — С. 60-61.
Ссылки
[править | править код]- gobolinux.org — официальный сайт GoboLinux
- Блог Michael — разработчика GoboLinux, публикующего все новости касательно GoboLinux
- GoboLinux на сайте DistroWatch
- Обзор GoboLinux на Linux.com