[devel] dumby

Peter Novodvorsky =?iso-8859-1?q?nidd_=CE=C1_altlinux=2Eru?=
Чт Авг 2 11:56:17 MSD 2001


Привет!

Некоторым известно, а некоторым еще нет, я работаю
над  новым вариантом установщика. Он лежит в CVS
в модуле dumb-installer.

Вчера ночью я написал описание к этому  делу, надеюсь
это  кого-то заинтересует. Жду ваших  коммитов и горячего
обсуждения моего дизайна dumb (dumb дизайна?).

Вот сам  спек
-------------------------


Dumby -- прототип нового модульного установщика

1. Цели
-------

  * Прозрачность кода
  * Малая требовательность к аппаратному обеспечению компьютера
  * Модульность программы установки

2. Устройство установщика
-------------------------

После загрузки ядра из init загружается компонент dumby, main-menu.
Это основная часть установщика, она загружает другие компоненты.
При составлении прототипа, была определены следующие шаги, которые
должен выполонить установщик:
  * Разбить диск(и) на разделы
  * Достать базовую систему [1] из источника
  * Распаковать базовую систему в нужные разделы
Все эти шаги были распределены на подзадачи, которые выполняют
отдельные компоненты.

[1] Базовая система, это файлы, содержащиеся в пакетах от которых
зависит пакет basesystem.

3. Компоненты Dumby
-------------------

Каждый компонент Dumby кроме main-menu состоит из программы и файла
опсания вида:

  Name: dumby-component
  Description: Component of dumby
  Depends: another-dumby-component one-another-dumby-component
  Provides: common-dumby-component
  Command: /usr/share/dumby/dumby-component/dumby-component

Поле Name содержит кодовое название компонента, Description, его описание,
которое будет выдано пользователю.

Некоторые шаги установщика не могут быть выполнены без других шагов,
например, распаковка базовой системы не может  быть выполнена до
разбивки диска. Поле Depends содержит кодовые названия шагов от
которых зависит данный шаг.

Поле Command содержит команду, которая загрузит программу данного шага.

5. Приемники, иначе ``retrievers''
----------------------------------

Так как источники базовой системы могут быть самые разные, то надо
реализовать некоторый  единый интерфейс с ним. Работа с приемниками
разделена на две части -- настройка приемников и работа приемника.

На этапе настройки пользователь выбирает нужныйему приемник и настраивает
его. Рассмотрим пример ftp-приемника.  При его настройке,  пользователю
нужно настроить сеть и выбрать сервер-источник.

Работу ftp-приемника можно описать так:

(cd /target; wget -O - ftp://source.host/path/to/$1.tgz | tar -zx)



4. Описание компонентов Dumby
-----------------------------

4.1 main-menu
-------------

Программа этого компонента обрабатывает файлы описания компонентов,
составляет список доступных на текущий момент шагов и дает пользователю
выбрать один из них.

4.2 partitioner
---------------

Name: partitioner
Description: Partition the harddisk
Depends:

На этом шаге пользователь разбивает диск/диски. Сначала ему выдается
перечень дисков в компьютере, и он выбирает тот, который хочет разбить
на разделы. Затем загружается программа для разбивки дисков [1].

Состояние компонента: еще не написан

[1] Скорее всего это будет cfdisk

4.3 partition-config
--------------------

Name: partition-config
Description: Configure partitions
Depends: partitioner

На этом шаге пользователь выбирает точки монтирования разделов и
раздел(ы) swap.

4.4 network-config
------------------

Name: network-config
Description: Configure Network
Depends: drivers-config

4.5 drivers-config
------------------

Name: drivers-config
Description: Configure Drivers
Depends: retrierver-config

Зависит от retriever-config, так как надо откуда-то брать драйверы.
На данный момент взят modconf из debian.

4.4 ftp-retriever-config
------------------------

Name: ftp-retriever-config
Description: Configure ftp retriever
Provides: retriever-config
Depends: network-config partition-config

4.5 cdrom-retriever-config
--------------------------

Name: cdrom-retriver-config
Description: Configure cdrom retriever
Provides: retriever-config
Depends: partition-config

4.6 floppy-retriever-config
---------------------------

Name: floppy-retriever-config
Description: Configure floppy retriever
Depends: partition-config
Provides: retriever-config

4.7 {http,ssh,etc}-retriever-config
-----------------------------------

Name: {http,ssh,etc}-retriever-config
Description: Configure {http,ssh,etc} retriever
Provides: retriever-config
Depends: partition-config

4.8 bootloader-inst
-------------------

Name: bootloader-inst
Description: Configure and install bootloader
Depends: partition-config

4.9 reboot
----------

Name: reboot
Description: Reboot the system

5. Tasklist
------------

Для  начала нужны следующие работующие компоненты:
main-menu, partitioner, partition-config, cdrom-retriever-config,
bootloader-inst, reboot (;-)). 
После того, как их удастся соединить вместе, будет  готовый
installer с CD.


_______________________________________________
Devel mailing list
Devel на linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel



Подробная информация о списке рассылки Devel