Показаны сообщения с ярлыком livecd. Показать все сообщения
Показаны сообщения с ярлыком livecd. Показать все сообщения

вторник, ноября 20, 2012

LiveMath IV



Дошли руки собрать очередную версию LiveMath.

LiveMath — это LiveDVD, содержащий большой набор свободного математического ПО. Предполагается для использования в основном в демонстрационных целях, но может также использоваться для постоянной работы.

Картинка для привлечения внимания:

(на картинке слева вверху FriCAS считает интегралы в специальных функциях, а справа R выводит графики по данным, включенным в поставку для примера).

В этот раз LiveMath основан на Ubuntu 12.10 (Quantal), плюс некоторое количество дополнительного софта. LiveMath IV содержит (среди прочего):

Системы компьютерной алгебры:

  • Maxima 5.27 (http://maxima.sourceforge.net) - полнофункциональная система аналитических вычислений.
  • Fricas 1.1.8 (http://fricas.sourceforge.net) и OpenAxiom 1.4.1 (http://open-axiom.org)  - обе актуальные версии мощной системы компьютерной алгебры Axiom.
  • YaCas 1.3.2 (http://yacas.sourceforge.net) - еще одна система компьютерной алгебры.
  • PARI/GP 2.5.1 (http://pari.math.u-bordeaux.fr/) - широко используемая компьютерно-алгебраическая система, разработанная для быстрых вычислений в теории чисел (факторизации, алгебраическая теория чисел, эллиптические кривые...).
  • GAP 4r4p12 (http://www.gap-system.org/) - свободно распространяемый, открытый и расширяемый программный комплекс для применения в области вычислительной дискретной математики, в частности, теории групп.
  • Mathomatic 15.8.2  (http://www.mathomatic.org/) - переносимая, универсальная программа, которая может решать, упрощать, группировать, дифференцировать, интегрировать и сравнивать алгебраические выражения.

Системы автоматизации доказательств:

  • ACL2 4.3 (http://www.cs.utexas.edu/users/moore/acl2/) - язык программирования для моделирования компьютерных систем и средство, помогающее доказывать свойства этих моделей.
  • Coq 8.3.pl4 (http://coq.inria.fr/) - система автоматизированного построения доказательств, с помощью которой, кроме всего прочего, была решена проблема четырех красок.
  • Agda2 2.3.0 (http://wiki.portal.chalmers.se/agda/pmwiki.php) - язык программирования с зависимыми типами и система автоматизации доказательств.
  •  Prover9/Mace4, Otter и пр.

Системы численных вычислений:

  • SciLab 5.3.3  (http://www.scilab.org/) - пакет научных программ для численных вычислений, предоставляющий мощное открытое окружение для инженерных и научных расчетов.
  • GNU Octave 3.6.2 (http://www.octave.org/) - язык высокого уровня, предназначенный для выполнения математических вычислений;
  • FreeMat 4.0 (http://freemat.sourceforge.net/) - свободная среда для быстрой разработки, научного прототипирования и обработки данных, имеет интерфейс и синтаксис языка, подобные MatLab.
  • Yorick 2.2.02 (http://yorick.sourceforge.net/) -специализированный С-подобный язык для создания симуляторов с упором на скорость вычислений.
  •  Dynare 4.3.0 (http://www.dynare.org/).

Образовательные программы:

  • Kig 4.9.2 (http://edu.kde.org/kig/), Geogebra 4.0.34.0 (http://geogebra.org), DrGeo 1.1.0  — интерактивная геометрия.
  • KAlgebra 4.9.2
  • KMPlot 4.9.2 — средство для построения графиков.

Обработка и визуализация данных:

  • Gnuplot 4.6.0
  • Mayavi2 4.1.0 (http://code.enthought.com/projects/mayavi/#Mayavi2) - открытый пакет научной 2D и 3D визуализации данных.
  • OpenDX 4.4.4 (http://www.opendx.org/) - программное средство для анализа данных в графическом виде, визуализации научных данных.
  • GGobi 2.1.10 (http://www.ggobi.org/) - среда визуализации многомерных данных;
  • QtiPlot 0.9.8.8 - позиционируется как замена для Microcal Origin - программа для несложной статистической обработки данных, построения всяческих графиков.
  • Grace 5.1.22 (http://plasma-gate.weizmann.ac.il/Grace/) - программа для подготовки двумерных графиков по численным данным.
  • PAW 2.14.04 (http://cern.ch/paw/) - интерактивная программа анализа и графического представления результатов. Может применяться для анализа большого и очень большого объёма данных.
  • ROOT 5.34.00 (http://cern.ch/root/) - наследник PAW, интерактивная система обработки и визуализации очень больших объёмов научных данных.
  • GNU R 2.15.1 (http://r-project.org/) - мощный язык статистических вычислений, используемый профессиональными статистиками.
  • GRETL 1.9.9 (http://gretl.sourceforge.net/) - система эконометрического анализа.
  • Udav 0.7.1.2 (http://udav.sourceforge.net/) - инструмент визуализации данных.

Работа с графами

  • Tulip 0.5.11
  • GraphThing 1.3.2
  • Cytoscape 2.8.3
  • Rocs 1.7.2

Научные редакторы:

  • TeXLive 2012.20120611 - полноценный дистрибутив TeX.
  • TeXmacs 1.0.7.15  (http://texmacs.org) - текстовый редактор для набора математических и прочих научных текстов, также позволяет включать в документ сессии FriCAS, Maxima, Octave, SciLab и других систем компьютерной математики. Данная версия использует Qt, так что выглядит заметно приятнее старых, и работает несколько шустрее.
  • Kile 2.1.2 (http://kile.sourceforge.net/) - интегрированная среда подготовки документов с помощью TeX.
  • Texmaker 3.4 (http://www.xm1math.net/texmaker/) - интегрированная оболочка для LaTeX.
  • TeXworks  0.5- лёгкая оболочка для LaTeX.
  • LyX 2.0.3.

Также LiveMath IV содержит среду XFCE 4.10, LibreOffice 3.6.2. Для "больших" систем (ROOT, PAW, R, Octave) включена значительная часть имеющихся в репозиториях Ubuntu пакетов. Для многих изначально "консольных" систем включены GUI-обёртки, для некоторых по несколько, на выбор. К большинству программ есть документация. Возможна установка системы на жёсткий диск с помощью стандартного установщика Ubuntu.

Полный список установленных пакетов.

Загрузить образ ISO. (2 GB). Образ гибридный: можно записать на DVD или на флешку. Выложен образ на моём домашнем сервере, суперскоростей не обещаю.


К сожалению, у меня нет времени, чтобы тестировать все эти программы. То, что я протестировал - работает. Багрепорты принимаются в комментариях или на e-mail portnov at bk dot ru, но мгновенного исправления не обещаю.

LiveMath сделан с помощью Ubuntu Construction Kit (http://uck.sourceforge.net/), так что каждый, в принципе, может сделать себе нечто подобное. Вероятно, это окажется проще, чем качать моё изделие.

суббота, марта 20, 2010

LiveMath III

Это продолжение к стародавнему посту: http://iportnov.blogspot.com/2007/09/livemath-livecd.html.

К сожалению, редко оказывается достаточно времени, чтобы собрать свежую версию LiveMath. Однако же вот, собрал. В этот раз LiveMath основан на Ubuntu 9.10 (Karmic) с добавлениями из Ubuntu Lucid и "Ubuntu Scientific Remix". LiveMath III содержит (среди прочего):

Системы компьютерной алгебры:
Maxima (http://maxima.sourceforge.net) - полнофункциональная система аналитических вычислений;
Fricas (http://fricas.sourceforge.net) - мощная система компьютерной алгебры;
YaCas (http://yacas.sourceforge.net) - еще одна система компьютерной алгебры;
PARI/GP (http://pari.math.u-bordeaux.fr/) - широко используемая компьютерно-алгебраическая система, разработанная для быстрых вычислений в теории чисел (факторизации, алгебраическая теория чисел, эллиптические кривые...);
GAP (http://www.gap-system.org/) - свободно распространяемый, открытый и расширяемый программный комплекс для применения в области вычислительной дискретной математики, в частности, теории групп;
Mathomatic (http://www.mathomatic.org/) - переносимая, универсальная программа, которая может решать, упрощать, группировать, дифференцировать, интегрировать и сравнивать алгебраические выражения;

Системы автоматизации доказательств:

ACL2 (http://www.cs.utexas.edu/users/moore/acl2/) - язык программирования для моделирования компьютерных систем и средство, помогающее доказывать свойства этих моделей;
Coq (http://coq.inria.fr/) - система автоматизированного построения доказательств, с помощью которой, кроме всего прочего, была решена проблема четырех красок;
Также Prover9/Mace4 и некоторые другие;

Системы численных вычислений:

SciLab (http://www.scilab.org/) - пакет научных программ для численных вычислений, предоставляющий мощное открытое окружение для инженерных и научных расчетов;
GNU Octave (http://www.octave.org/) - язык высокого уровня, предназначенный для выполнения математических вычислений;
FreeMat (http://freemat.sourceforge.net/) - свободная среда для быстрой разработки, научного прототипирования и обработки данных, имеет интерфейс и синтаксис языка, подобные MatLab;
Yorick (http://yorick.sourceforge.net/) - компактная программная среда, предназначенная для комплексного решения научно-инженерных вычислительных задач;

Образовательные программы:
Kig (http://edu.kde.org/kig/), Carmetal, DrGeo, GeoGebra - интерактивная геометрия;
KAlgebra;
Инструменты построения графиков - kmplot, gnuplot;

Обработка и визуализация данных:
Mayavi2 (http://code.enthought.com/projects/mayavi/#Mayavi2) - открытый пакет научной 2D и 3D визуализации данных;
OpenDX (http://www.opendx.org/) - программное средство для анализа данных в графическом виде, визуализации научных данных;
GGobi (http://www.ggobi.org/) - среда визуализации многомерных данных;
LabPlot (http://labplot.sourceforge.net/) - программа для анализа и визуализации различных данных;
QtiPlot - позиционируется как замена для Microcal Origin - программа для несложной статистической обработки данных, построения всяческих графиков;
Grace6 (http://plasma-gate.weizmann.ac.il/Grace/) - программа для подготовки двумерных графиков по численным данным;
PAW (http://cern.ch/paw/) - интерактивная программа анализа и графического представления результатов. Может применяться для анализа большого и очень большого объёма данных;
ROOT (http://cern.ch/root/) - наследник PAW, интерактивная система обработки и визуализации очень больших объёмов научных данных;
GNU R (http://r-project.org/) - мощный язык статистических вычислений, используемый профессиональными статистиками;
GRETL (http://gretl.sourceforge.net/) - система эконометрического анализа;

Научные редакторы:
TeXLive - полноценный дистрибутив TeX;
TeXmacs (http://texmacs.org) - текстовый редактор для набора математических и прочих научных текстов, также позволяет включать в документ сессии Axiom, Maxima, Octave, SciLab и других систем компьютерной математики;
Kile (http://kile.sourceforge.net/) - интегрированная среда подготовки документов с помощью TeX;
Texmaker (http://www.xm1math.net/texmaker/) - интегрированная оболочка для LaTeX;

Также LiveMath III содержит среду Gnome 2.28, OpenOffice.org 3.1, Gnumeric. Для "больших" систем (ROOT, PAW, R, Octave) включена значительная часть имеющихся в репозиториях Ubuntu пакетов. Для многих изначально "консольных" систем включены GUI-обёртки, для некоторых по несколько, на выбор. К большинству программ есть документация. Возможна установка системы на жёсткий диск с помощью стандартного установщика Ubuntu.

UPD. Полный список установленных пакетов: http://iportnov.ru/files/LiveMath.packages.txt

К сожалению, у меня нет времени, чтобы тестировать все эти программы. То, что я протестировал - работает. Багрепорты принимаются в комментариях или на e-mail portnov at bk dot ru, но мгновенного исправления не обещаю.

LiveMath сделан с помощью Ubuntu Construction Kit (http://uck.sourceforge.net/), так что каждый, в принципе, может сделать себе нечто подобное. Вероятно, это окажется проще, чем качать моё изделие.

Взять можно здесь: http://portnov.homelinux.net/LiveMath%20III.iso (размер образа - 2Gb), может быть удобнее окажется торрент: http://iportnov.ru/files/LiveMath%20III.iso.torrent (честно говоря, не знаю, заработает ли). У меня сейчас нет хостинга, на котором я бы мог размещать большие ISO-образы. Так что учтите, что portnov.homelinux.net - это мой домашний сервер, обычно бывает включён примерно с 8:00 до 22:00 MSK, суперскоростей не обещаю. Если кому-то позарез нужно скачать в другое время - пишите, так уж и быть, оставлю включённым на ночь :)

среда, сентября 05, 2007

LiveMath: Продолжаю штамповать LiveCD.

Сделал еще один лайв, этот в основном - демонстрационного назначения (хотя, в принципе, вполне пригоден для работы). Соответственно названию, содержит кучу математического софта:

Системы компьютерной алгебры:
Maxima (http://maxima.sourceforge.net) - полнофункциональная система аналитических вычислений;
Axiom (http://axiom-developer.org) - мощная система компьютерной алгебры;
YaCas (http://yacas.sourceforge.net) - еще одна система компьютерной алгебры;
PARI/GP (http://pari.math.u-bordeaux.fr/) - широко используемая компьютерно-алгебраическая система, разработанная для быстрых вычислений в теории чисел (факторизации, алгебраическая теория чисел, эллиптические кривые...);
GAP (http://www.gap-system.org/) - свободно распространяемый, открытый и расширяемый программный комплекс для применения в области вычислительной дискретной математики, в частности, теории групп;
Mathomatic (http://www.mathomatic.org/) - переносимая, универсальная программа, которая может решать, упрощать, группировать, дифференцировать, интегрировать и сравнивать алгебраические выражения;
Системы автоматизации доказательств:
ACL2 (http://www.cs.utexas.edu/users/moore/acl2/) - язык программирования для моделирования компьютерных систем и средство, помогающее доказывать свойства этих моделей;
Coq (http://coq.inria.fr/) - система автоматизированного построения доказательств, с помощью которой, кроме всего прочего, была решена проблема четырех красок;
HOL (http://hol.sourceforge.net) - система автоматизации доказательств для логики высших порядков;
Системы численных вычислений:
SciLab (http://www.scilab.org/) - пакет научных программ для численных вычислений, предоставляющий мощное открытое окружение для инженерных и научных расчетов;
GNU Octave (http://www.octave.org/) - язык высокого уровня, предназначенный для выполнения математических вычислений;
Tela (http://www.geo.fmi.fi/prog/tela.html) - "интерактивный тензорный язык" для численных вычислений;
Разное:
Yorick (http://yorick.sourceforge.net/) - компактная программная среда, предназначенная для комплексного решения научно-инженерных вычислительных задач;
GNU R (http://r-project.org/) - мощный язык статистических вычислений, используемый профессиональными статистиками;
GRETL (http://gretl.sourceforge.net/) - система эконометрического анализа;
Kig (http://edu.kde.org/kig/) - интерактивная геометрия;
Инструменты построения графиков - geg, kmplot, gnuplot;
Визуализация данных:
Mayavi (http://mayavi.sourceforge.net/) - открытый пакет научной 2D и 3D визуализации данных;
OpenDX (http://www.opendx.org/) - программное средство для анализа данных в графическом виде, визуализации научных данных;
GGobi (http://www.ggobi.org/) - среда визуализации многомерных данных;
LabPlot (http://labplot.sourceforge.net/) - программа для анализа и визуализации различных данных;
Grace6 (http://plasma-gate.weizmann.ac.il/Grace/) - программа для подготовки двумерных графиков по численным данным;
PAW (http://cern.ch/paw/) - интерактивная программа анализа и графического представления результатов. Может применяться для анализа большого и очень большого объёма данных;
Научные редакторы:
teTeX (http://www.tug.org/tetex/) - полноценный дистрибутив TeX;
TeXmacs (http://texmacs.org) - текстовый редактор для набора математических и прочих научных текстов, также позволяет включать в документ сессии Axiom, Maxima, Octave, SciLab и других систем компьютерной математики;
Kile (http://kile.sourceforge.net/) - интегрированная среда подготовки документов с помощью TeX;
Texmaker (http://www.xm1math.net/texmaker/) - интегрированная оболочка для LaTeX;
LyX (http://www.lyx.org/) - WYSIWYM (What You See Is What You MEAN) редактор который работает как front end to LaTeX;

Здесь не упомянуты пара текстовых редакторов, браузер, почтовик, а также фронт-енды к упомянутым системам, ну и еще кучка дополнительных программ. Все основные программы с встроенным хелпом, а также на CD есть еще подборка документации по ним.

пятница, августа 31, 2007

Пара слов о Xorg

Вот, хочу сообщить тем кто не знает. Современный Xorg (начиная, как минимум, с 7.0) в состоянии сам определить параметры монитора и видеокарты. Настолько в состоянии, что может работать без конфига (xorg.conf) вообще! Правда, он не может сам догадаться, что нам надо вводить с клавиатуры русские буквы итп, такие вещи в конфиге все-такие приходится прописывать.
Это я на самом деле в продолжение темы о LiveCD. Ибо там традиционно вставал вопрос - как написать универсальный xorg.conf ?
Сейчас это практически не проблема. Указываем
Driver "vesa"
Этого вполне достаточно на большинстве видух (ну да, 3Д ускорением и не пахнет, но зачем оно на LiveCD?). Для всех остальных добавляем куда-нибудь в startup-скрипты такой код:
DRIVER=$(egrep -o 'x11=[a-z0-9]+' /proc/cmdline | cut -d'=' -f2)
if [ "$DRIVER" ]
then sed -i -e "s/vesa/$DRIVER/" /etc/X11/xorg.conf
fi
Это позволяет указать нужный драйвер при запуске livecd (в приглашении isolinux вводим, например: "linux x11=sis").
Опции VertRefresh и HorizSync (которые в свое время, помнится, могли стоить испорченной видухи или монитора) не указываем вообще. Xorg их сам спросит у монитора и выставит максимальную рабочую частоту. Аналогично, можно не указывать строчку Modes. Или указать, перечислив возможные разрешения: Modes "1024x768" "800x600" "640x480".

понедельник, мая 14, 2007

Как сделать маленький LiveCD "вручную"

Я сделал уже второй livecd, правда этот - уже совсем специального назначения - для развертывания системы из образа. Так что у меня выработалась некая технология изготовления таких микро-дистрибутивов.
Пакеты я беру из своего debian etch (а шо? много уже скомпилированного софта). Но я считаю, что на liveCD система управления пакетами вроде apt совершенно ни к чему. Поэтому перед установкой в создаваемую систему я конвертирую deb-пакеты в обычные тарболлы (.tar.gz), благо это совсем просто (вот скрипт).
Далее, из идеи о минимальном дистрибутиве сразу следует, что на диске должно быть только то, что необходимо в данном случае. Поэтому начинаем создание livecd с установки самых нужных пакетов. Например, в последнем случае у меня был скрипт-инсталятор, написанный на bash+dialog. Значит, на диске нужны: bash, dialog и их (жесткие) зависимости. Скрипт использует cp с компанией - значит, нужен пакет coreutils.
Зависимости надо как-то отслеживать, не вручную же? В качестве внешней (по отношению к создаваемой системе) базы данных зависимостей я использую базу apt-cache моей рабочей системы.
Все это делается, естественно, скриптами. Вот скрипт, устанавливающий tar.gz в директорию с создаваемой системой. Этот скрипт находит deb-пакет, конвертирует его в tar.gz (используя вышеприведенный deb2targz), и устанавливает его. Наконец, этот скрипт устанавливает сначала зависимости пакета, а потом и сам пакет. Таким образом, пакеты ставятся в систему командой install-depends <имя-пакета>.
Замечание 1: скрипт install-depends устанавливает только непосредственные зависимости пакета. Т.е. если пакет A зависит от B, а B зависит от C, то команда install-depends A поставит пакеты A и B, но не поставит пакет C. Это пока приходится отслеживать вручную. Благо, в маленьких системах таких случаев мало. А для большой системы можно и скрипт поправить (а можно и нормальный пакетный менеджер поставить).
Замечание 2: всем скриптам нужна директория, выделенная под новую систему, и в ней директория с именем packages. Там будут складываться установленные пакеты (deb и tar.gz), и там же будет храниться файл installed.list со списком установленных пакетов - чтобы не устанавливать одно и то же два раза.
Замечание 3: во всех приводимых скриптах перед использованием нужно везде прописать правильные директории, по контексту вроде понятно, какие. Если непонятно - спросите в комментах.
Таким образом, по кусочкам, в выделенной директории оказывается более-менее рабочий вариант системы (по вопросам, какие пакеты надо ставить для того, чтобы работало то или другое, например login, загляните в LFS - полезная книжка). После того, как поставлен bash с зависимостями, в созданную систему можно chroot'нуться (chroot /path/to/live /bin/bash), и работать уже "изнутри".
После установки пакетов понадобится еще кое-какая доводка, чтобы система стала совсем рабочей - написание /etc/fstab, /etc/inittab и еще чего понадобится (в инсталяторе, например, мне ни inittab, ни fstab не понадобились). Сюда же относится написание startup сценариев - тут у вас полная свобода, пишите что вам надо. Для совсем простых систем можно вообще не ставить sysvinit, а в качестве init использовать самописный скрипт на bash.
Таким образом получается система, в которой можно работать как в chroot-среде. Теперь нужно обеспечить ее загрузку. Для этого, прежде всего, нужно ядро.
Можно взять дистрибутивное ядро. Оно сконфигурировано так, чтобы загружаться на чем угодно. Есть у него недостаток - оно модульное, и нужность тех или иных модулей определяется скриптами при каждой загрузке. Скрипты а) выполняются относительно долго и б) сложные, захочешь чего-то сделать по-своему - скорее всего сломаешь. Однако пару "дистрибутивное ядро + скрипты из рабочей системы" я посоветую для тех livecd, которые должны загружаться на совсем разных конфигурациях железа.
Если круг оборудования более определен, можно собрать для него свое ядро. Это окажется необходимо, если загружаться надо на самом распоследнем железе - дистрибутивное ядро его не поддерживает. Это также необходимо, если вы хотите применить к ядру патчи, которых нет в дистрибутивном ядре. Например, в LiveIDE я использую SquashFS, чтоб впихнуть всего побольше.
Для маленьких систем можно собрать монолитное ядро. Это хорошо тем, что ядро само определит все оборудование, какое оно знает, т.е. скрипты для определения оборудования не нужны. Конечно, эта идея не пройдет, если поддерживать нужно очень широкий круг оборудования. Но, например, из ядра для инсталятора я выкинул поддержку звуковых карт, сети и еще много чего - оно в момент установки не нужно.
Для загрузки нужен загрузчик. Я использую isolinux. Настроить его совсем несложно, все описано в документации. В качестве примера настройки можете взять содержимое директории isolinux/ на установочном CD вашего дистрибутива.
Загрузчик загрузит ядро. А ядро, по идее, должно запустить /sbin/init. Но для этого оно должно примонтировать корневую ФС. А где у нас будет корень? CD-ROM не подходит из-за того, что на разных машинах он подключен по-разному - то он /dev/hdb, а то вовсе /dev/scd0. Поэтому на LiveCD в качестве корневой ФС (по крайней мере, на первом этапе загрузки) традиционно используют initrd.
initrd - это файл образа любой ФС, понимаемой ядром (поддержка этой ФС должна быть вкомпилирована в ядро намертво, т.е. не модулем). Можно этот образ пожать при помощи gzip, получив initrd.gz - ядро умеет такие образы распаковывать.
Что класть в initrd? В initrd может быть, как минимум, три варианта:
  • Совсем минимальная система, которая только и делает, что находит диск и монтирует его в качестве "настоящей" корневой ФС;
  • Вся система;
  • Часть системы, способная загрузиться и подмонтировать остальные части системы с cd.
Первый вариант обычно используется в "настольных" системах. Его можно использовать и для livecd, в том случае, если основная (live) система занимает как раз что-то около 500..700Мб. Если система занимает больше - нужно использовать сжатие отдельных частей системы, для того, чтобы с ними работать, нужна уже не совсем тривиальная система.
В LiveIDE у меня используется третий вариант. Директория /usr сжата в образ squashfs, а все остальное находится в initrd.
Для маленьких систем имеет смысл использовать второй вариант - помещение системы в initrd целиком.
Файловая система, находящаяся в памяти имеет следующие преимущества: 1) она доступна на чтение/запись (а cd и squashfs - только на чтение); 2) если, кроме ядра и initrd, с диска ничего не грузится, диск можно достать из привода сразу после загрузки. Ну а недостаток большого initrd очевиден - он занимает много места в памяти.
Для загрузки ядра с initrd в качестве корневой ФС нужна следующая строка в isolinux.cfg:
append initrd=initrd.gz load_ramdisk=1 ramdisk_size=50000 rw root=/dev/ram0
В параметре ramdisk_size нужно указать число, несколько превосходящее размер распакованного initrd.
Если в системе не используется sysvinit, а используется свой init-скрипт, нужно дописать к этой строке что-то вроде "init=/sbin/install-image" .
Теперь создаем образ initrd (например, так: dd if=/dev/zero of=initrd bs=1024 count=40x1024), форматируем его (mkfs.ext2 initrd), монтируем как loop-устройство (mount -o loop initrd /mnt/initrd), кладем туда все, что решили положить, отмонтируем и сжимаем (gzip initrd). Создаем директорию (mkdir output/), из которой будем собирать образ диска, в нее кладем директорию isolinux, создаем директорию isolinux/kernel, туда кладем ядро и initrd. По мере надобности кладем файлы/директории в корневую директорию диска.
Для создания загрузочного iso-образа используем команду вроде следующей
mkisofs -o /path/to/live-image.iso -r -V "My Live CD" -v -no-emul-boot -boot-load-size 4 -boot-info-table -b isolinux/isolinux.bin -c isolinux/isolinux.boot /path/to/output

Конечно, вряд ли все получится с первого раза. Чтобы не пороть кучу cd-болванок, образы можно тестировать под эмулятором (qemu).

ЗЫ. Я в курсе, что это "не совсем дебиан-вей". Это, скорее, слако-вей. Но этот способ гораздо более гибкий.

вторник, февраля 27, 2007

Live IDE

Сочиняю в связи с надоевшим вопросом "а IDE под линукс есть?". Как известно, правильный ответ - "*nix это и есть IDE". В подтверждение - делаю Linux Live CD узкого назначения - Live IDE. Пакеты беру из своего Debian testing/unstable. Софт выбран соответственно назначению лайва:
gvim 7.0 +plugins (taglist, NERDTree, SourceCodeObserver, bufexplorer, marksbrowser, MRU);
gcc, g++ 4.1 с комплектом (всякие gdb, gprof итп);
glade-2;
free pascal 2.0;
ghc6.6 (glasgow haskell compiler);
perl 5.8.8 - само собой;
python2.4;
man-ы, естественно ;)
evince, xpdf и djview - для просмотра документации;
irssi и dillo - чтоб можно было и в инет вылезти;
ну и набор dev-пакетов для библиотек - gtk1/2, glade-2, и тп.
В настоящий момент лайв грузится и работает, но есть десяток мелких багов, думаю за недельку их исправлю. Размер iso - 250Mb (вероятно, будет увеличиваться, но не знаю, насколько). Если кому-то интересно посмотреть - скажите куда можно залить 250Мб ;) Впрочем, в основном я об этом сообщаю не для того, чтоб все бросились сливать мой лайв, а скорее для того, чтоб указать, что создание live-cd узкого назначения - дело несложное, особенно если есть какой-то подходящий лайв, который можно положить в основу. Если б у меня был slackware live cd и работающая слака под боком - наверное, я бы стал делать диск на основе слаки, и заняло бы это у меня день от силы. Но слаки у меня нет, так что я потратил 4 дня на сочинение системы по методу LFS, только не из исходников, а из пакетов debian. Зато узнал много нового ;)
В общем - кому, как мне, приходится заниматься разработкой на компах, на которых нет возможности установить юникс - сочините себе такой лайв из любимого дистрибутива.

UPD. Образ занимает уже 350Мб, зато LiveCD поддерживает аж 10 языков программирования: C, C++, C#(mono), Java(JDK5), FreePascal2.0, Haskell,Ocaml,Perl,Python,Ruby.

пятница, июля 07, 2006

Ubuntu 6.06 Dapper Drake - Краткий репортаж из LiveCD


Итак, наконец-то ко мне пришла партия свежих Ubuntu и я могу на это посмотреть ;) Сейчас вот пишу непосредственно загрузившись с LiveCD. Должен сказать, изменения в текущей версии по сравнению с предыдущей значительные.




Первое бросающееся в глаза изменение - теперь комплект Ubuntu состоит из одного диска вместо двух, этот один диск совмещает в себе LiveCD и установочный диск. Зато в комплект теперь входят наклейки - очевидно, на корпус. Наклеек к десяти дискам пришло почему-то двенадцать.



Процедура запуска LiveCD стала значительно менее "устрашающей" для простого юзера. Именно, имеем вместо текстового интерфейса, сильно смахивающего на установщик Debian, графический. При запуске появляется графическая менюшка типа "Обычный запуск", "безопасный режим" и прочее. Нажав F2, можно выбрать язык. После выбора пункта "Обычный запуск" появляется очень насмешившее меня окошко, выглядещее совсем как в Windows XP, с прогрессбаром "Загружается ядро Linux". После этого начнается (опять-таки в графическом режиме с прогрессбаром) собственно загрузка системы. Грузится LiveCD долго, зато работает потом весьма шустро.



После запуска перед нами предстает GNOME во всей красе. На рабочем столе оказывается папка Examples, содержащая, как ни странно ;), примеры - графических, музыкальных, видео- и просто текстовых файлов, которые можно посмотреть имеющимся на LiveCD софтом. Рядом с ней - значок Install, запускающий, соответственно, процесс установки системы на винчестер.



Еще из изменений рабочего стола бросилось то, что из контекстного меню десктопа исчез пункт "Создать терминал", ранее традиционный в GNOME. Видимо, таким образом разработчики Ubuntu хотят подчеркнуть, что теперь для работы с Linux командная строка не обязательна.



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



Странно, что мои разделы на винтах автоматически определились (их видно в окне "Компьютер"), но не примонтировались (при двойном клике на значке система жалуется, что /dev/hdx# не является съемным устройством). GParted почему-то не увидел таблицу разделов на /dev/hda, хотя на /dev/hdb и /dev/hdd - увидел. Вручную все разделы примонтировались без проблем. В общем, над этим разработчикам еще работать и работать.




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



Локализация системы теперь гораздо более полная, переведена даже справка. Диалог выхода из системы теперь не стандартный гномовский, а свой, с большими красивыми кнопками.



В целом, я думаю, Ubuntu 6.06 вполне подходит для целей первоначального ознакомления с Linux. Более продвинутому пользователю такая дружелюбность обычно ни к чему.






Last updated 07-Jul-2006 17:01:23 YEKST