Живой Linux своими руками, Эпизод 3: Тюнинг системы



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


Экономим место
Лучше начинать с базовой установки своего дистрибутива и, в зависимости от задач, сносить одни пакеты и ставить другие. Тут главное не увлекаться и знать, что место на диске ограничено, хотя сжатие у squashfs с патчем lzma весьма сильное.

Что можно удалить из базового дистрибутива
Пример с дистрибутивным ядром показателен - его снос высвобождает целых 60Мб. Но есть куча других мелких и не очень утилит, которые не нужны в таком объёме, особенно в бездонной директории /usr. Итак:
  • снос дистрибутивного ядра и замена "живым"
  • aptitude purge python2.4
  • удаление утилит тестирования типа reportbug, installation-report и прочих
  • вырубка всяких альтернативных утилит типа dc, nano, tcsh, portmap
  • прополка от python-selinux, policycoreutils и прочих параноидальных прибамбасов
  • долой info, bind9, whois, finger, telnet....
  • убирать документацию разработчиков из /usr/share/doc и словарей из /usr/share/dict - это не столько сокращает объём сколько уменьшает количество файлов (где-то на 10 тысяч)
  • локали (/usr/share/i18n/locales), мануалы (/usr/share/man) и шрифты оставить только нужные и на тех языках, о которых вы слышали. Локали можно убрать с помощью localepurge.
В общем, следует пройтись с топором по директориям, особенно сильно им размахивая в /usr, где добра больше всего. Всё это поможет сэкономить место для чего-нибудь действительно полезного. Например, для иксов :-)
У меня в итоге получилось, что базовый ISO-образ вместе с иксами, MC и IceWM занимает чуть больше 100Мб. В ходе тестирования в эмуляторе выяснилось, что загружается сие чудо в системах с более чем 64Мб ОЗУ. На ноутбуке загрузилось примерно за минуту, нашло все устройства и даже примонтировало автоматом все диски.


Что стоит установить в базовую систему
Всё сказанное ниже будет сильно зависеть от того, что вы хотите сделать из системы. Но я думаю, совсем не лишним и не обременительным будет установить:
  • облегчённые утилиты для интернет: wget и elinks
  • утилиты тестирования оборудования: dmidecode, lshw, hdparm, memtest86+, bonnie++
  • samba для общения с оффтопичной системой
Это сформирует базовую систему, которую лучше всего скопировать куда-нибудь и сжать в архив. При необходимости её легко дополнять и обвешивать программами под текущие нужды - а дальше можно печь живые диски, как горячие пирожки, при помощи live-скриптов.


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

Автоматический логин
Чтобы каждый раз не писать пароль, лучше всего настроить автоматический вход в систему. Если диск спасательный, то можно сделать так: удалить пакет xdm и поставить mingetty - так обеспечивается вход в систему пользователя без пароля и запуск иксов, когда они нужны.
Итак:
aptitude remove xdm
aptitude install mingetty


После этого заходим в /etc/inittab меняем строку вида
1:2345:respawn:/sbin/getty 38400 tty1
на
1:2345:respawn:/sbin/mingetty --autologin имяпользователя tty1
Заменяя имяпользователя на логин реального юзера, имеем беспарольный вход в систему (взято отсюда). Потом, если потребуются иксы, пишем startx и наслаждаемся.


Настройка иксов

Если вы хотите, чтобы иксы (если они есть, конечно) запускались всегда и везде, нужно прописать драйвер vesa:
Section "Device"
Identifier "Cirrus Logic GD 5446"

Driver "vesa"
BusID "PCI:0:2:0"
EndSection

И не забыть про кириллицу

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle"

EndSection
Если вы эстет, то можно ещё долго изгаляться со шрифтами и прочими рюшечками. Мне и обычных шрифтов хватает - лишь бы там были русские буквы и читалось без особого напряга.

Так же не стоит забывать про разрешение экрана - указывайте все при конфигурации иксов:
dpkg-reconfigure xserver-xorg
Повыключайте разного рода ускоряющие драйверы типа glx и dri, если вы создаёте спасательный диск. В общем, тюнинг системы - дело увлекательное...
Читать далее

MATLAB в Linux: вариант способа работы



30 коммент.
В этой заметке я, по просьбе некоторых трудящихся, опишу свой скромный опыт работы в MATLAB - системе численных математических расчётов, которая может почти всё. Последние версии MATLAB уже интегрируются зачем-то с Adobe Photoshop, Web и появляются тулбоксы по моделированию процесса заварки кофе. Следующая версия, ещё более пухлая, чем предыдущая, с большим количеством рюшечек, бубенчиков и свистелок, думаю, уже будет уметь варить капучино. В этом есть свои отрицательные стороны, о которых можно долго разглагольствовать, выдавая за преимущества. До тех пор, пока любимая ваша программа, работавшая со времён мезозоя, не вывалится в новой версии в любимое теперь MATLAB сообщение out of memory.

\begin{lyrics}
Заготовьте ваши тухлые помидоры...
... ибо автор этих строк сейчас как обычно рубанёт с плеча: MATLAB, друзья, правит балом. Эта нехитрая мысль навеяна, кроме прочего, здоровенным постером на последней странице журнала Physics Today. MATLAB стал языком инженеров и учёных благодаря своей замечательной, просто потрясающе продуманной и отлично написанной документации, простой и понятной интегрированной среде разработки и огромному количеству хорошо сделанных тулбоксов на все случаи жизни.

Под свист пролетающих над авторскими сединами помидоров и прочих несвежих корнеплодов, а также выкриков "Octave наше всё", хочу от всего сердца отметить: да, я знаю про Octave. Octave почти совместима с MATLAB. Octave быстрее, чем MATLAB, хотя и не намного. Octave свободна и не просит много мегабаксов. Но есть много но. Мало документации и она любительская: неоднородна по качеству и сильно уступает MATLAB-овской. Нет графической среды разработки (QtOctave в состоянии бета-версии, и ей ещё расти и расти). Почти совместимость с MATLAB я прочувствовал лично на себе: даже после установки octave-forge, о чём ещё нужно было догадаться, только три маленькие программки из моих почти полусотен матлабовских скриптов заработали без переделки. Остальные потребовали m-файлов из MATLAB и возюкания напильником. Все наши лаборатории в МИФИ, доколь хватает глаз, на MATLAB и я должен взаимодействовать с ними в плане обмена результатами. Так что увы. Это я о том, что если кто-то сумел приспособить Octave для своих задач - я очень за него рад, но в наших конкретных палестинах Octave не конкурент в данный момент из-за недостаточной совместимости с MATLAB.

Но это не вся беда. А беда в том, что в MathWorks, похоже, идеи закончились, и хорошие программисты стали потихоньку уходить. Закономерно стала ощутимо увеличиваться тяжеловесность графической оболочки MATLAB, в особенности всякими Java-прибабахами, столь милыми сердцу индийским программистам. Чем дальше версия, тем больше системные требования при одинаковом функционале. Как сказал один мой хороший знакомый, большой поклонник Windows Vista (она у него не тормозит и работает быстрее XP), "просто добавь памяти до 8Гб и купи себе, наконец, Core2Quad, как я". Меня, как и многих, такой подход, скажем так, не устраивает.
\end{lyrics}

Итак, есть желание работать в MATLAB с некоторым комфортом, таким как подсветка синтаксиса и возможностью переключаться между несколькими функциями, но с малым расходом ресурсов. Есть следующий рецепт:
  1. Устанавливаем в Linux / FreeBSD любой текстовый редактор с табами, подсветкой синтаксиса и выходом на консоль. Я для этого использую kate (подставьте сюда и далее ваш любимый текстовый редактор).
  2. В kate есть выход на консоль (Terminal), где мы запускаем MATLAB без графической оболочки командой: matlab -nojvm
    1. полезно поставить вызов консоли в kate на горячую клавишу (например, Alt+T) - так можно быстро отркрыть консольку и узнать, где в очередной раз вы напортачили в коде.
  3. В терминале kate запустится MATLAB и порадует вас простым командным интерфейсом.
  4. Теперь в kate открываем свои программы, написанные в MATLAB - при этом должна сработать автоматическая раскраска кода.
  5. Для запуска вашей программы переключаемся в консольку в kate и набираем её имя - автодополнение, как и всюду в UNIX, работает по кнопке TAB.
  6. Всё, программа начнёт работать и выдавать вам результаты.
Выглядит это всё так:



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


А теперь сравним
Для сравнения: на моей машине P4-3GHz и 2Gb RAM работает программа, выполняющая деконволюцию изображений размером 5Мпикс (три массива по 5Мпикс, два прямых Фурье-преобразования и одно обратное, деление массивов друг на друга). Так вот, мой MATLAB R14 аж 2004 года выделки такое изображение обрабатывает легко. Я могу в таком режиме matlab -nojvm запустить параллельно обработку ТРЁХ таких изображений, сидеть слушать музыку и писать другой текст.

В лаборатории: Core2Duo 2.6GHz, 2Gb RAM, Windows XP, MATLAB 2007b сходу вываливается на той же самой задаче в out of memory.


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

А для Windows...
Благодаря отзывчивости комментаторов, есть такие варианты использования MATLAB в Windows в экономичном режиме:
Это всё денег не просит, так что скачайте и попробуйте.


Заключение
После того, как руководство лаборатории обновило MATLAB на всех машинах на 2007b и они стали вываливаться в out of memory, я для себя сделал такие выводы:
  • Новые версии - не всегда лучшие, особенно если программа долго разрабатывается и тем более она проприетарная.
  • Работать можно и без графической оболочки, и почти так же комфортно (в вашем любимом текстовом редакторе).
  • Не сломалось - не чини (т.е. нет нужды в новых функциях - не обновляй программу).
А ежели уважаемые комментаторы накидают в комментарии примеров других текстовых редакторов, у которых есть подсветка синтаксиса и выход на консоль - буду очень им признателен. Особливо ежели текстовый редактор работает под Windows.
Читать далее