изменение структуры каталогов Unix по умолчанию

изменение структуры каталогов Unix по умолчанию

Можно ли изменить структуру каталогов Unix/Linux по умолчанию? Я имею в виду конфигурацию и без необходимости менять ядро. Или если ядро ​​нужно редактировать, насколько это сложная задача? Является ли структура каталогов по умолчанию (все эти /usr, /bin, /etcкаталоги) жестко закодированной в ядре?

Мне нужно иметь один корневой ( /) каталог, где каждый пользователь сможет свободно создавать свои собственные файлы/каталоги, и один /Linuxкаталог, где будут находиться все файлы ОС (вероятно, в исходной структуре), включая все файлы конфигурации. Каталога "Home" не должно быть вообще, а все файлы конфигурации должны быть одинаковыми для всех пользователей, и их может редактировать только системный администратор.

решение1

Да, это возможно. Но для достижения желаемого требуется приложить немало усилий.

Подробности можно узнать здесьГобо Линукспроект.

GoboLinux — это бесплатная операционная система с открытым исходным кодом, наиболее выдающейся особенностью которой является реорганизация традиционной файловой системы Linux. Вместо того, чтобы следовать стандарту иерархии файловой системы, как в большинстве Unix-подобных систем, каждая программа в системе GoboLinux имеет свое собственное дерево подкаталогов, где можно найти все ее файлы (включая настройки, специфичные для этой программы). Таким образом, программа «Foo» имеет все свои специфические файлы и библиотеки в /Programs/Foo. По словам разработчиков GoboLinux, это приводит к более чистой системе.

решение2

Запрограммирована ли структура каталогов по умолчанию (все эти каталоги /usr, /bin, /etc) жестко в ядре?

Нет, большая часть этого не имеет особого значения для ядра. Однако оно заполняет файловые системы, смонтированные в стандартизированных местах, таких как /procи /dev.

Можно ли изменить структуру каталогов Unix/Linux по умолчанию?

Абсолютно нет. Причина естьстандарт для корневой файловой системыпотому что эти каталоги имеют определенную цель, и они идентифицируются по пути. На самом деле не имеет особого смысла говорить: "Ну ладно, я бы предпочел, чтобы мой /etcкаталог назывался /masterconf". Если вы хотите получить доступ к тому, что все и вся считают /etc, /masterconfвы можете добавить символическую ссылку ln -s /etc /masterconf, но оставьте /etc, поскольку практически все и вся будут искать ее.

По аналогии, кто-то может сказать: «Я хотел бы переименовать все стандартные утилиты — mkdir, ls, cd, и т. д. — так, чтобы они существовали только под теми именами, которые я им дал». Опять же, вы можете создать на них символические ссылки, но для создания стандарта, который позволяет системе настраивать имена для стандартных утилит вместо обычных, будет:

  1. Гораздо сложнее.
  2. Почти наверняка это добавит накладных расходов, поскольку установленным утилитам придется постоянно выполнять какой-то поиск, чтобы разобраться в вашей новой схеме именования.
  3. Совершенно бессмысленно для 99,9999%+ пользователей.

Пункты 1 и 2 являются существенными недостатками, которые не могут быть оправданы в свете 3, поэтому такой системы нет. Аналогично WRT переименовывает части стандартной файловой системы.

Мне нужно иметь...

Опять же, вы можете делать все, что захотите, с символическими или жесткими ссылками (см. man ln), и тогда вы можете использовать их, если вам они больше нравятся. Но не нарушайте стандарт файловой системы,это не является необязательным.

решение3

В целом структура каталогов не навязывается ядром Linux, она навязывается стандартами файловой системы, такими как этот:Стандарт иерархии файловой системы.Статья в Википедии с тем же названиемтакже неплохо объясняет это.

На ваш вопрос о перемещении/изменении. Я бы сказал, что это крайне не рекомендуется, хотя и возможно, так же, как в системе Windows у них есть стандартные расположения, такие как:

  • C:\Windows
  • C:\Пользователи и настройки
  • C:\Программные файлы
  • и т. д.

Сделать системы похожими с точки зрения упаковки имеет смысл как для разработчиков программного обеспечения, так и для пользователей этих систем.

решение4

Многие дистрибутивы в зависимости от обстоятельств изменили структуру каталогов и даже свои названия. Microtic — это устройство, работающее на базе GNU/Linux, но его ядро ​​— просто Linux.

Если вы хотите это сделать, вам следует выполнить следующие шаги:

  1. изменить код ядра
  2. измените код вашего процесса загрузки или напишите его самостоятельно. напримерupstart
  3. измените или реализуйте каталог уровней запуска или, если вы используете UNIX в соответствии с файлами rc, измените их.
  4. Оставьте управление пакетами или каталог использования каждого программного обеспечения. Это очень важно. Не забудьте об этом.
  5. наконец, измените структуру каталогов.

Связанный контент