Нет ничего проще чем то что сложно. Вот и это.....
Оригинал: How To Roll Your Own Linux Distro
Автор: Serdar Yegulalp
Дата: 29 января 2008
Свободный перевод: Алексей Дмитриев
Дата перевода: 21 марта 2008 Хотите ли вы подогнать под свои нужды Knoppix, переделать существующую операционную систему с открытыми кодами, например Puppy Linux, или вы нацелились создать свою собственную систему из ничего, мы поможем вам на этом пути.
Сделай сам. Это тот способ, которым создавался Линукс. Группа энтузиастов, вдохновляемая и ведомая Линусом Торвальдсом, создала величайшую "самодельную" операционную систему, которую когда-либо видел мир. Вам тоже под силу создать собственный дистрибутив Линукс.
Простой восстанавливающий скрипт в Puppy Linux позволяет взять существующую инсталляцию и "свернуть" ее в ISO файл
Звучит довольно устрашающе, и действительно, в этом деле многое, определенно, не для новичков. Но, принимая во внимание множество знаний, которые вы приобретете по ходу работы, и, учитывая результат, эта задача имеет много общего с собиранием компьютера из разрозненных деталей. Допускаю, что в случае сборки компьютера, всегда найдется множество причин, чтобы купить готовый с полки, точно также найдется достаточно оснований скачать готовый дистрибутив и просто пользоваться им. Существует лишь несколько рациональных причин заниматься созданием собственного дистрибутива:
Для самообразования. Иногда лучший способ узнать что-либо - это запустить руки под капот и хорошенько их испачкать, желательно под чьим-нибудь чутким руководством. Нет никакой гарантии, что вы все узнаете. Но вы узнаете вкус процесса познания и поймете, в каком направлении двигаться, чтобы получить ответ на свой вопрос (и как именно его получить), что вы вряд ли приобретете, установив популярный дистрибутив, и выполняя на нем ежедневную работу.
Для решения определенной проблемы, либо для ликвидации пробела. Скажем, если есть какая-нибудь "заковыристая железяка", с которой вы очень хотите работать, вы можете доработать имеющийся дистрибутив, чтобы он хорошо "ладил" с этим устройством. Это может оказаться простейшим подключением поддержки данного устройства в ядре, а может оказаться значительно более сложным делом. А может быть, вы захотите создать дистрибутив для очень специфической цели. (Не так давно я писал про Hikarunix, ныне, к сожалению, заброшенный дистрибутив, посвященный игрокам в Го; трудно придумать нечто более узкоспециальное).
Для развлечения. Я называю это "а почему нет?". Линукс существует, чтобы с ним возиться, так вот и возитесь, и получайте удовольствие. Сомнительно, чтобы вы доверили ценную работу системе, на которую затратили столько времени, но разве это уменьшает удовольствие? А если что-то пойдет наперекосяк, всегда можно все стереть и начать с чистого листа. (В конце концов, вы же не в рабочее время этим занимаетесь, и не в коммерческих целях, верно?)
Предостережения
Прежде чем начитать "ваять", следует хорошо понимать несколько вещей.
Для начала нужно уже знать что-нибудь о Линукс. Прежде чем пытаться создать свой собственный дистрибутив, хотя бы в общих чертах познакомьтесь с Линукс, если вы этого еще не сделали. Короче: попользуйтесь Линуксом какое-то время. Если вы не знаете основ, мало толку пытаться вносить улучшения.
Будьте терпеливы и внимательны. Любой проект такого типа, даже автоматизированный до известной степени, скорее всего, будет долгим и полным разочарований. Не надейтесь закончить все в тот же день; будьте готовы вести заметки о том, как все работает и почему.
Налаживайте все на свой страх и риск. Имейте в виду, что любое изменение может иметь неожиданные последствия. Например, вы решили отключить в ядре поддержку PC карт (возможно потому, что вы не используете ваш переделываемый проект на ноутбуке и не хотите включать эти модули); вам следует задокументировать это на тот случай, чтобы некто, использующий ноутбук, и зависящий от РС карт, не был поставлен в тупик. Даже если вы не собираетесь распространять законченный проект, очень стоит задокументировать основные функциональные изменения. Вы сильно удивитесь через некоторое время, как вы могли забыть о таких вещах. Предпочитайте стабильность скорости. Одна из возможностей, которую вы обнаружите по ходу дела, это возможность использовать оптимизацию компилятора для ускорения процесса. Это значит, для компиляции исходного кода вашего ядра, или инструментальной цепочки, использовать инструкции, предназначенные для специальной разновидности процессора, таких как множественные MMX / SSE / 3Dnow модификации. Беда в том, что применение данных оптимизаций, может оказаться делом, приводящим к сбоям и частым отказам; хуже того, вы можете узнать, насколько это сбойно, уже весьма далеко подвинувшись в процессе сборки. Для начинающих вполне достаточно значений оптимизации, установленных по умолчанию. В документе, который я цитировал выше, Jim Gifford говорит, - "Тот факт, что у меня не было проблем с компиляцией (с определенным набором настроек компилятора), вовсе не означает, что проблем не будет и у вас".
До поры до времени, не пытайтесь использовать сотворенную вами систему для своих ежедневных рабочих задач, чтобы опробовать, насколько она хороша. Работать с ценными материалами, а не с их копиями на такой "самодельной" системе - не самая продуктивная мысль. Существующие, проверенные пользователями дистрибутивы уже прошли всестороннюю обкатку, и вероятность существования в них устойчивых системных ошибок намного меньше. Создание своего собственного дистрибутива дает гораздо меньше уверенности в уровне стабильности или полноты свойств. Но иногда, наткнуться лбом на эти препятствия, является способом изучить их из первоисточника, если у вас есть на то время и склонности.
Переделка существующего дистрибутива
Существуют три основных способа сотворить собственный дистрибутив, их выбор зависит от того, что именно вы хотите усовершенствовать, и от уровня ваших технических знаний, которые вы можете вложить в проект. Первым, наиболее простым, и, возможно, быстро приносящим плоды способом, является переделка уже существующего дистрибутива.
Начало процесса инсталляции Gentoo при помощи Gentoo Live CD. Классическая версия инсталлятора Gentoo из командной строки, работает все так же хорошо, но некоторым удобнее работать в графическом интерфейсе
Перестройка, или переделка, включает установку данного дистрибутива, внесение изменений или усовершенствований, и затем "упаковку" дистрибутива, вместе со всеми изменениями, снова в файл образа (обычно .ISO файл) В последние два года, этот подход стал гораздо проще, благодаря коллекции инструментов и программ для автоматизации процесса, созданных сообществом. Такие инструменты быстро становятся неотъемлемой частью самих дистрибутивов. Так что, если вы "запали" на Линукс, и хотите попробовать свои силы в модификации дистрибутивов, этот путь будет лучшим для старта.
Один из моих любимых дистрибутивов, Puppy Linux, может быть переделан несколькими различными путями. Наиболее кардинальный путь лежит через использование встроенной программы - Puppy Simple CD Remaster script, которая рекомпилирует все в текущей работающей файловой системе на CD. Программа делает паузы, и сообщает вам о ходе процесса, так что вы знаете, когда и где сделать нужные вам изменения, например, изменить настройку "железа" в директории /etc. (Подсказка: Установленный по умолчанию в дистрибутиве Puppy файловый менеджер ROX-Filer, позволяет просматривать .ISO файлы, как директории "только для чтения", так, что вы можете следить за результатами по окончании дела).
Заметьте, что если вы захотите проделать это все с дистрибутивом, установленным на жесткий диск, то лучше будет произвести так называемую "экономную" установку дистрибутива Puppy на жесткий диск, затем произвести желательные изменения, а потом "слепить" все обратно. "Экономная" установка позволяет Puppy сосуществовать с другими операционными системами в одном разделе винчестера (обычно другого Линукса). Все содержимое дистрибутива Puppy устанавливается в виде пяти больших файлов, один из которых является файлом-образом, представляющим файловую систему Puppy. Это отличается от "полной" инсталляции, при которой Puppy требует для себя целый раздел, где "расписывает" все файлы обычным порядком. Simple CD Remaster скрипт, в тот виде, как он есть, не может работать с полной инсталляцией, хотя, якобы, существует способ его "заставить".
Простая программа Simple CD Remaster script, пожалуй, лучший способ войти в курс дела, так как она дает некоторое представление о том, как это все работает, в то же время, держа вас под контролем. Более сложный, но и более технически продвинутый подход - независимая программа HackyRemaster script. Этот скрипт берет содержимое Puppy CD, либо .ISO файл, распаковывает его в рабочую директорию (которая может находиться где угодно), и позволяет вам делать изменения, которые вы найдете нужными, прямо в файловой системе. По окончании, все содержимое снова упаковывается в .ISO файл. Программа Puppy UnleashedEmpty Crust, сильно упрощенная версия Puppy Linux 1.0.7. Эта версия специально отстает на несколько релизов от современной, но способна стать "скелетом" будущей самоделки. подразумевает установку большого архива (1.5 ГB) всех возможных пакетов для Puppy , чтобы использовать его для строительства "самодельного" дистрибутива, Оборотная сторона такого подхода в необходимости закачивать целый архив и хорошо знать все о пакетах, с которыми придется возиться. Еще одна стартовая точка при работе с Puppy - это
Я выбрал в качестве примера перестройки/переделки дистрибутив Puppy за его простоту, но существует много других крупных дистрибутивов с подобными функциями. Всегда полезный Knoppix, live-CD дистрибутив, из которого строится множество других, имеет руководство, где очень подробно описано, как переделывать Knoppix, начиная от удаления/добавления пакетов, и заканчивая изменением внешнего вида и поведения всей системы. И Ubuntu также имеет средства перестройки своих установочных CD, хотя руководство не слишком автоматизировано, имеются написанные сообществом скрипты, для облегчения этой работы.
Попутно упомяну найденный мной в сети хитрый инструмент для создания собственного измененного дистрибутива: Custom NimbleX CD builderNimbleX. Это не так гибко, как собирать дистрибутив вручную, но, тем не менее, весьма полезно. http://custom.nimblex.net/, генерирующий собранный с переделками .ISO файл небольшого, но функционального дистрибутивa NimbleX. Это не так гибко, как собирать дистрибутив вручную, но, тем не менее, весьма полезно.
Библиотека сайта или "Мой Linux Documentation Project"
Оригинал: How To Roll Your Own Linux Distro
Автор: Serdar Yegulalp
Дата: 29 января 2008
Свободный перевод: Алексей Дмитриев
Дата перевода: 21 марта 2008 Хотите ли вы подогнать под свои нужды Knoppix, переделать существующую операционную систему с открытыми кодами, например Puppy Linux, или вы нацелились создать свою собственную систему из ничего, мы поможем вам на этом пути.
Сделай сам. Это тот способ, которым создавался Линукс. Группа энтузиастов, вдохновляемая и ведомая Линусом Торвальдсом, создала величайшую "самодельную" операционную систему, которую когда-либо видел мир. Вам тоже под силу создать собственный дистрибутив Линукс.
Простой восстанавливающий скрипт в Puppy Linux позволяет взять существующую инсталляцию и "свернуть" ее в ISO файл
Звучит довольно устрашающе, и действительно, в этом деле многое, определенно, не для новичков. Но, принимая во внимание множество знаний, которые вы приобретете по ходу работы, и, учитывая результат, эта задача имеет много общего с собиранием компьютера из разрозненных деталей. Допускаю, что в случае сборки компьютера, всегда найдется множество причин, чтобы купить готовый с полки, точно также найдется достаточно оснований скачать готовый дистрибутив и просто пользоваться им. Существует лишь несколько рациональных причин заниматься созданием собственного дистрибутива:
Для самообразования. Иногда лучший способ узнать что-либо - это запустить руки под капот и хорошенько их испачкать, желательно под чьим-нибудь чутким руководством. Нет никакой гарантии, что вы все узнаете. Но вы узнаете вкус процесса познания и поймете, в каком направлении двигаться, чтобы получить ответ на свой вопрос (и как именно его получить), что вы вряд ли приобретете, установив популярный дистрибутив, и выполняя на нем ежедневную работу.
Для решения определенной проблемы, либо для ликвидации пробела. Скажем, если есть какая-нибудь "заковыристая железяка", с которой вы очень хотите работать, вы можете доработать имеющийся дистрибутив, чтобы он хорошо "ладил" с этим устройством. Это может оказаться простейшим подключением поддержки данного устройства в ядре, а может оказаться значительно более сложным делом. А может быть, вы захотите создать дистрибутив для очень специфической цели. (Не так давно я писал про Hikarunix, ныне, к сожалению, заброшенный дистрибутив, посвященный игрокам в Го; трудно придумать нечто более узкоспециальное).
Для развлечения. Я называю это "а почему нет?". Линукс существует, чтобы с ним возиться, так вот и возитесь, и получайте удовольствие. Сомнительно, чтобы вы доверили ценную работу системе, на которую затратили столько времени, но разве это уменьшает удовольствие? А если что-то пойдет наперекосяк, всегда можно все стереть и начать с чистого листа. (В конце концов, вы же не в рабочее время этим занимаетесь, и не в коммерческих целях, верно?)
Предостережения
Прежде чем начитать "ваять", следует хорошо понимать несколько вещей.
Для начала нужно уже знать что-нибудь о Линукс. Прежде чем пытаться создать свой собственный дистрибутив, хотя бы в общих чертах познакомьтесь с Линукс, если вы этого еще не сделали. Короче: попользуйтесь Линуксом какое-то время. Если вы не знаете основ, мало толку пытаться вносить улучшения.
Будьте терпеливы и внимательны. Любой проект такого типа, даже автоматизированный до известной степени, скорее всего, будет долгим и полным разочарований. Не надейтесь закончить все в тот же день; будьте готовы вести заметки о том, как все работает и почему.
Налаживайте все на свой страх и риск. Имейте в виду, что любое изменение может иметь неожиданные последствия. Например, вы решили отключить в ядре поддержку PC карт (возможно потому, что вы не используете ваш переделываемый проект на ноутбуке и не хотите включать эти модули); вам следует задокументировать это на тот случай, чтобы некто, использующий ноутбук, и зависящий от РС карт, не был поставлен в тупик. Даже если вы не собираетесь распространять законченный проект, очень стоит задокументировать основные функциональные изменения. Вы сильно удивитесь через некоторое время, как вы могли забыть о таких вещах. Предпочитайте стабильность скорости. Одна из возможностей, которую вы обнаружите по ходу дела, это возможность использовать оптимизацию компилятора для ускорения процесса. Это значит, для компиляции исходного кода вашего ядра, или инструментальной цепочки, использовать инструкции, предназначенные для специальной разновидности процессора, таких как множественные MMX / SSE / 3Dnow модификации. Беда в том, что применение данных оптимизаций, может оказаться делом, приводящим к сбоям и частым отказам; хуже того, вы можете узнать, насколько это сбойно, уже весьма далеко подвинувшись в процессе сборки. Для начинающих вполне достаточно значений оптимизации, установленных по умолчанию. В документе, который я цитировал выше, Jim Gifford говорит, - "Тот факт, что у меня не было проблем с компиляцией (с определенным набором настроек компилятора), вовсе не означает, что проблем не будет и у вас".
До поры до времени, не пытайтесь использовать сотворенную вами систему для своих ежедневных рабочих задач, чтобы опробовать, насколько она хороша. Работать с ценными материалами, а не с их копиями на такой "самодельной" системе - не самая продуктивная мысль. Существующие, проверенные пользователями дистрибутивы уже прошли всестороннюю обкатку, и вероятность существования в них устойчивых системных ошибок намного меньше. Создание своего собственного дистрибутива дает гораздо меньше уверенности в уровне стабильности или полноты свойств. Но иногда, наткнуться лбом на эти препятствия, является способом изучить их из первоисточника, если у вас есть на то время и склонности.
Переделка существующего дистрибутива
Существуют три основных способа сотворить собственный дистрибутив, их выбор зависит от того, что именно вы хотите усовершенствовать, и от уровня ваших технических знаний, которые вы можете вложить в проект. Первым, наиболее простым, и, возможно, быстро приносящим плоды способом, является переделка уже существующего дистрибутива.
Начало процесса инсталляции Gentoo при помощи Gentoo Live CD. Классическая версия инсталлятора Gentoo из командной строки, работает все так же хорошо, но некоторым удобнее работать в графическом интерфейсе
Перестройка, или переделка, включает установку данного дистрибутива, внесение изменений или усовершенствований, и затем "упаковку" дистрибутива, вместе со всеми изменениями, снова в файл образа (обычно .ISO файл) В последние два года, этот подход стал гораздо проще, благодаря коллекции инструментов и программ для автоматизации процесса, созданных сообществом. Такие инструменты быстро становятся неотъемлемой частью самих дистрибутивов. Так что, если вы "запали" на Линукс, и хотите попробовать свои силы в модификации дистрибутивов, этот путь будет лучшим для старта.
Один из моих любимых дистрибутивов, Puppy Linux, может быть переделан несколькими различными путями. Наиболее кардинальный путь лежит через использование встроенной программы - Puppy Simple CD Remaster script, которая рекомпилирует все в текущей работающей файловой системе на CD. Программа делает паузы, и сообщает вам о ходе процесса, так что вы знаете, когда и где сделать нужные вам изменения, например, изменить настройку "железа" в директории /etc. (Подсказка: Установленный по умолчанию в дистрибутиве Puppy файловый менеджер ROX-Filer, позволяет просматривать .ISO файлы, как директории "только для чтения", так, что вы можете следить за результатами по окончании дела).
Заметьте, что если вы захотите проделать это все с дистрибутивом, установленным на жесткий диск, то лучше будет произвести так называемую "экономную" установку дистрибутива Puppy на жесткий диск, затем произвести желательные изменения, а потом "слепить" все обратно. "Экономная" установка позволяет Puppy сосуществовать с другими операционными системами в одном разделе винчестера (обычно другого Линукса). Все содержимое дистрибутива Puppy устанавливается в виде пяти больших файлов, один из которых является файлом-образом, представляющим файловую систему Puppy. Это отличается от "полной" инсталляции, при которой Puppy требует для себя целый раздел, где "расписывает" все файлы обычным порядком. Simple CD Remaster скрипт, в тот виде, как он есть, не может работать с полной инсталляцией, хотя, якобы, существует способ его "заставить".
Простая программа Simple CD Remaster script, пожалуй, лучший способ войти в курс дела, так как она дает некоторое представление о том, как это все работает, в то же время, держа вас под контролем. Более сложный, но и более технически продвинутый подход - независимая программа HackyRemaster script. Этот скрипт берет содержимое Puppy CD, либо .ISO файл, распаковывает его в рабочую директорию (которая может находиться где угодно), и позволяет вам делать изменения, которые вы найдете нужными, прямо в файловой системе. По окончании, все содержимое снова упаковывается в .ISO файл. Программа Puppy UnleashedEmpty Crust, сильно упрощенная версия Puppy Linux 1.0.7. Эта версия специально отстает на несколько релизов от современной, но способна стать "скелетом" будущей самоделки. подразумевает установку большого архива (1.5 ГB) всех возможных пакетов для Puppy , чтобы использовать его для строительства "самодельного" дистрибутива, Оборотная сторона такого подхода в необходимости закачивать целый архив и хорошо знать все о пакетах, с которыми придется возиться. Еще одна стартовая точка при работе с Puppy - это
Я выбрал в качестве примера перестройки/переделки дистрибутив Puppy за его простоту, но существует много других крупных дистрибутивов с подобными функциями. Всегда полезный Knoppix, live-CD дистрибутив, из которого строится множество других, имеет руководство, где очень подробно описано, как переделывать Knoppix, начиная от удаления/добавления пакетов, и заканчивая изменением внешнего вида и поведения всей системы. И Ubuntu также имеет средства перестройки своих установочных CD, хотя руководство не слишком автоматизировано, имеются написанные сообществом скрипты, для облегчения этой работы.
Попутно упомяну найденный мной в сети хитрый инструмент для создания собственного измененного дистрибутива: Custom NimbleX CD builderNimbleX. Это не так гибко, как собирать дистрибутив вручную, но, тем не менее, весьма полезно. http://custom.nimblex.net/, генерирующий собранный с переделками .ISO файл небольшого, но функционального дистрибутивa NimbleX. Это не так гибко, как собирать дистрибутив вручную, но, тем не менее, весьма полезно.
Библиотека сайта или "Мой Linux Documentation Project"
Последнее редактирование: