Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
- | [[Спецкурс по Linux, весна 2007, 08 лекция (от 13 апреля)|Предыдущая лекция]] | [[Спецкурс по Linux, весна 2007, 10 лекция (от 27 апреля)|Следующая лекция]]
| + | == From Ebaums Inc to MurkLoar. == |
- | | + | We at EbaumsWorld consider you as disgrace of human race. |
- | '''Авторский вариант:'''
| + | Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated. |
- | | + | Dig yourself a grave - you will need it. |
- | = Как самому сделать дистрибутив = | + | |
- | | + | |
- | Это будет состоять из теории, потому что практика будет состоять из перечисления команд и исправления их неисправимывх рособенностей.
| + | |
- | | + | |
- | | + | |
- | Необходимость сосздания собственного дистрибутива не сщущалась до последнего времени. Тем не менее, 2/3 из них именно самодельные, сделанные на колене, причёём на обычном лысом колене, и большая часть из них есть небольшая модификаця муществующих.
| + | |
- | | + | |
- | | + | |
- | Довольно долго дело изготоааления дистрибутива было жделом компании, поэтому до сих пор в этом деле много работу которую нужно делать, зная многое. К тому же, если мы доведём дистрибутивостроение до полной прозрачности, то Вася Пупкин, как тодбео у него что-то не заработает, должен изучать большойц пласт различной информации. В образовательном дистрибутиве те же проблемы, ибо с одной стороный он должен быть гибким, с другой, не прищлось бы много учить.
| + | |
- | | + | |
- | | + | |
- | Вдруг, ни с того, ни с сего, захотели сделать дистрибутив. Если мы хотим, то хотим потому что хотим, или есть цели и задачи, которые надо рещить. Для начала надо решить, для чего это сделать:
| + | |
- | | + | |
- | * Цели --- зачем?
| + | |
- | | + | |
- | * Задачи – что и как?
| + | |
- | | + | |
- | | + | |
- | * Довольно часто оказывается, что либо для ваших целей достаточно выбрать существующий дистрибутив
| + | |
- | | + | |
- | * Существующий дистрибутив и модифицируете его нетехнологичным образом
| + | |
- | | + | |
- | * Создание нового дистрибутива --- если ни один не приводит к цели, а модификация более ресурсоёмка. Новый дистрибутив делать на базе другого рисковано.
| + | |
- | | + | |
- | | + | |
- | У ГК цели научиться это делать. Поэтому он не модет научиться ни первое, ни второе, ибо задача --- освоить третий способ.
| + | |
- | | + | |
- | | + | |
- | Дистрибутив --- такой набор программных продуктов, который позволяет сделать ОС на компьютере.
| + | |
- | | + | |
- | | + | |
- | 4 этапа того, что мы делаем, когда делаем дистрибутив:
| + | |
- | | + | |
- | * Сборка, deployment. Есть набор, нужно сделать так, чтобы этот набор появился на каком-то носителе.
| + | |
- | | + | |
- | * Активация (загрузка). Идея в том, что когда вы планируете сделать ОС на одном отдельно взятом устройствек, вам нужно сделать, чтобы то, что вы положиди на диск, включилось и заработало.
| + | |
- | | + | |
- | * Подготовка аппаратуры, логики, всего подряд. Приведение аппаратурно-логической части в соответствие (например, партишионинг диска). Некая одноразовая опекрация, которая позволяет поставить ОС.
| + | |
- | | + | |
- | Недостатком эвляется то, что это --- маленькая ОС.
| + | |
- | | + | |
- | * Живая система. Идея в том, что чем больше действий по превращанию дистра в ОС будет выполнятся ..., тем меньше накладные расходы.
| + | |
- | | + | |
- | | + | |
- | == Стадии ==
| + | |
- | | + | |
- | === Активация ===
| + | |
- | | + | |
- | Какие задачи, какие задачи должны решаться:
| + | |
- | | + | |
- | * Собственно, загрузка, видимо, ядро и стартовый виртуальный диск (vmlinuz + initrd). Если грузиться с дискетки, то на одной дискетнке будет ядро, на другой виртуальный диск, и надо сказать, чтобы поменяли диск. Чаще всего используется syslinux, там есть загрузчик с исо, хдд, по пхе. Обычно сначала грузится первичный загрузчик, который маленикий-хиленьекий, но умеет грузить крутой загрузчик. В бзд это такая миниОС на ФОРТе, линуксоидам это было делать лень, они сделали лило/граб которые умеют грузить два диапазона секторов, и там уже свой маленький линукс, только очень маленький, который уже грузит настоящий линукс.
| + | |
- | | + | |
- | * Распознать азовые устройства. Например, диск, с которого грузиться, и который надо примонтировать. И настройка. Скорее всего, автоматисческая: почему автоматическая, так как стадия активации не должна быть интерактвной.
| + | |
- | | + | |
- | ** Одно забавное ответвление: нам надо перезодить на остальные стадии? Мы всё уже нашли и можем работать. Таких дистрибутивов довольно много, это дистрибутивы, связанные с ограниченной функциональности. Это два рода: embedded-системы, которые собственно так и устроены. И всякие сетевые маршрутизаторы.Пример: RAD Linux.
| + | |
- | | + | |
- | ** Как правило, этот инитрд может быть построен по технологии busybox, это некая процедура, которая состоит в слкдующем: берутся те утилиты, котрые нужны, причём сильно урезанные, которые причём компилируются в один большой статический бинарник, то поскольку это линух, то она по ссылке опрделеяется, кто она сегодня, и делает, что нужно. Хотя, когда место не так ограничено, его мол\жно не использовать. Даже так предполагают делать не все, например, ребята из Монта... делают это путём хакинга ядра.
| + | |
- | | + | |
- | | + | |
- | Допустим, мы хотим сделать дистрибутив, но нам недостаточно сделать активацию и расслабиться. Тогда нам нужно настроить устройства для поднготовительной стадии. Например, настроить сеть, чтобы ставить дистрибутив. или настроить raid. Этим занимаются специальные программы. В Альте есть такая штука propagater. Она умеет настраивать сеть, умеет распознавать всякие железяки и монтировпать их. То есть занимается предварительной настройкой.
| + | |
- | | + | |
- | | + | |
- | Если вдруг мы рещили, что мы идёём дальше, то объём этого безобразия должен быть как можно меньшк, там нельзя ставить пакеты, там нет много красивых вещей.
| + | |
- | | + | |
- | | + | |
- | == Стадия подготовки ==
| + | |
- | | + | |
- | | + | |
- | Это ещё хуже. Ое уже не уплющенный, мы можем всё загрузить, но стадия подговтовки, как и активизации, то настройка неинтерактивная. Отличие от стадии активации в том, что это настощая система. Но, он урезаный по функциональности, всё, что не поставили, там нет. И не сохраняются настройки, он константный.
| + | |
- | | + | |
- | | + | |
- | Здесь так же два пути:
| + | |
- | | + | |
- | * Дистрибутив готов. Если у вас ограниченный круг задач, то можно сказать всё, дистрибутив готов, запустим иксы, запустим опенофис, а потом человек может сохранять всё на флешку. Решение пользовательских задач.
| + | |
- | | + | |
- | * Подготовиться к полноценной установке настоящего линукса куда-то на носитель, с котроого будет производиться загрузка. Установка от депроймнта имеет мелкие отличия. Это разные вещи, но технология дона.
| + | |
- | | + | |
- | | + | |
- | ==== Live ====
| + | |
- | | + | |
- | * Настройка либо автоматическая, либо предварительная
| + | |
- | | + | |
- | * ПО: иксы, виндов менеджер, файрфокс, все утилитыЮ необходимые для сборки презентаций.
| + | |
- | | + | |
- | * Эивая система работает не так, как на стадии подготовитедьной. При загрузке всё смонтировано как ридонли, а тут надо перемонтировать часть на запись. В эту систему надо подложить некое количество файлов, которые делают ей Лив.
| + | |
- | | + | |
- | //пишется “профиль”, читается “хаки”
| + | |
- | | + | |
- | * вы приняли рещение самостояетльно сделать дистр, следовательно, имеющиеся рещения не удовлетворяют. Следовательно, надо подложить спецконтент, это уже нестоящие хаки.
| + | |
- | | + | |
- | ** “авт”
| + | |
- | | + | |
- | ** патчи --- предварительная ручная работа на стадии деплоймента
| + | |
- | | + | |
- | | + | |
- | ==== Инсталлер ====
| + | |
- | Свои проблемы
| + | |
- | | + | |
- | * Хорошим является то, что не нужно предусматривать широкий круг задач.
| + | |
- | | + | |
- | | + | |
- | Если это инсталлер, то это инсталлер куда:
| + | |
- | | + | |
- | * Подготовка устройства --- разбиение диска, указание маунтпоинтов.
| + | |
- | | + | |
- | * Наполнение системного устройства.
| + | |
- | | + | |
- | ** Либо просто наваливаете: cp -r /bin, /lib... Чем это хорошо: сё с собой. Чем плохо: некоторые файлы из тех, которые есть на подготовительной стадии, не нужно копировать. Тем самым, декларируете, что система, которая инсталлируется, такая же, какая и на подготовительном этапе. Поэтому хочется, чтобы инсталлер сооружал другой дистр. Кроме того, нужно получить такую систему, чтобы можно потом было порулить пакетами.
| + | |
- | | + | |
- | ** Установить пакеты в пустое место.
| + | |
- | | + | |
- | * Мелкая и гадкая стадия – отличие от лив --- вся система настроена для загрузки с сидюка, а нужно, чтобы грузилась с набега ещё на стадии активации. Тут начинается искуственный интеллект --- изобрести и вписать такие настройки в живую систему, чтобы она заработает. Настройка живой системы. Одна тонкость, которую не используют в Альте: при переходе из стадии в стадию нам необязательно перезагружаться. Это ещё хоршо тем, то можно пользоваться не только тем софтом, который на стадии подготовки, а вообще, какой хотите.
| + | |
- | | + | |
- | | + | |
- | ==== Живая система ====
| + | |
- | | + | |
- | | + | |
- | * Доустановка пакетов. В том числе, выборочная.
| + | |
- | | + | |
- | * Настройка всего. Настоящий джедай может настроить всё сам, как в генту, но окошко о трёх элементах быстроее, чем правка конфига.
| + | |
- | | + | |
- | * first-time скрипты. Некоторые пакеты работуют в первый раз не так, как остальные, например, ссх-демон, ему надо сгенерить ключ.
| + | |
- | | + | |
- | | + | |
- | === Deployment ===
| + | |
- | | + | |
- | | + | |
- | Сейчас рассказывали про то, что делается после того, как воткнули сидюк. Вопрос: а откуда взялся в этот сидюк? Тут область наименее технологичная, и это либо шеллскрипт, который всё делает. Тем не менее, изготовление загрузочного диска, деплоймент, разбивается на стадии:
| + | |
- | | + | |
- | * Создание дерева ФС, которое имеет место на стадлии подготовки быть
| + | |
- | | + | |
- | ** Установка пакетов в chroot --- из репозитория и собственноручных
| + | |
- | | + | |
- | ** Запустить first-time скрипты
| + | |
- | | + | |
- | ** Перенос некоторого контента
| + | |
- | | + | |
- | * Сборка загрузочной среды, собрать парочку инитрд+ядро
| + | |
- | | + | |
- | * Эта ФС, которую собрали, может быть большой, и может не умещаться на ночитель, с которого будем грузиться, и к тому же она ридонли, полэтому можно её хорошенько упаковать. Упаковка ФС, например, с помощью squash fs. Надостаток в том, что если воткнуть его в компьютер под виндовз, то увидите только один файл squash. А можно положить
| + | |
- | | + | |
- | * Просто файлы. Например, инсталлятор супер-пуперский аспшный. Но просто файлы это не просто файлы
| + | |
- | | + | |
- | ** Просто контент
| + | |
- | | + | |
- | ** Пакеты. Можно положить их в ФС, но сквошфс такой пождлянки не ожидает, да и доустанавливать пакеты будет неудобно
| + | |
- | | + | |
- | * Записать на сидюк, без этого сидюк не получится. Засовывание этих трёх частей в те места, откуда они будут взяты: сд, флеш, сеть...
| + | |
- | | + | |
- | | + | |
- | Когда мы подготавливаем дистрибути, весь дистрибутив за исключением двух мест не зависит от того, что это будет и куда его поместить. Есть мелка детальЮ связанная с покетом настройки. Некоторые части этого процесса можно убрать.
| + | |
- | | + | |
- | | + | |
- | Единственное, что не рассказал ГК: как сделать ливсиди из сизифа, но для этого достаточно поставить пакет spt3.
| + | |
- | | + | |
- | | + | |
- | Как сделать свой инсталлятор: нужно 6 крепких молодцев, тайной знания, как делать инсталлятор, обладают ровно 2 человека. По двое держут, оставшиеся двое допытываются. Они пользуются поделием spt, которое не имеет документации.
| + | |
- | | + | |
- | {{Спецкурс по Linux, весна 2007}}
| + | |
- | {{Lection-stub}}
| + | |