Крошка Цахес по прозванию Tiny Core Linux

Автор: Алексей Федорчук

На дистрибутив Tiny Core Linux я наткнулся совершенно случайно, просматривая Distrowatch — занятие, которому я одно время предавался ежедневно. Появился он там на первой странице по понятной причине — в связи с выходом очередной версии, 2.1. Каюсь, что все предыдущие версии прошли мимо меня — тем интересней было с ним ознакомиться.

Первичное знакомство пришлось произвести по материалам на самом Distrowatch‘е и по данным там ссылкам на обзоры — официальный сайт проекта в тот момент не работал (потом, правда, заработал). Некоторые из этих материалов я не только прочитал, но даже перевёл (их можно видеть здесь и здесь ).

Дистрибутив Tiny Core разрабатывается Робертом Шинглдекером (Robert Shingledecker), судя по всему, совсем недавно — первое упоминание его на Distrowatch’е датируется 11 марта 2009 года (версия 1.2).

Из приведённых описаний можно было понять, что это — суперминималистический дистрибутив, размер iso-образа которого составляет 11 (!) Мбайт. И которые, тем не менее, включает не только комплект консольных утилит, обеспечиваемый busybox’ом, но даже Иксы и оконный менеджер JWM. Есть и чисто консольный вариант — minicore, который вообще тянет всего на 7 Мбайт.

Скачать оба варианта образов можно отсюда , в отличие от собственно сайта, этот источник работает.

Дистрибутив работает в режиме LiveCD, но может быть «установлен» на винчестер или флэшку. При старте с любого носителя он целиком грузится в оперативную память, то есть если использовать CD-носитель, то привод высвобождается для других целей.

Сам по себе дистрибутив практически не содержит никаких приложений. Однако таковые, именуемые в терминологии TC расширениями (extentions) могут быть получены из репозитория и «установлены» посредством собственного пакетного менеджера. Из дальнейшего рассмотрения станет ясно, почему в обоих случаях слово «установлены» я употребляю в кавычках.

Списки доступных пакетов можно видеть здесь и здесь . Они идентичны, и различаются лишь способом обращения: пакеты TCE устанавливаются по сети, инкорпорируясь в виртуальный корень файловой системы в оперативной памяти, пакеты же TCZ разворачиваются из локально хранимых сжатых архивов. Есть ещё один режим работы — сохранение на локальном носителе пакетов TCE. Впрочем, всё это описано в одной из переводных заметок , так что углубляться в детали режимов работы TC я не буду.

Минимальные требования к аппаратуре более чем скромны: процессор i486DX и 32 Мбайт RAM. Рекомендуется, однако, процессор Pentium 2 или выше, и 128 Мбайт оперативной памяти. При этом, в отличие от многих компактных аналогов, дистрибутив позиционируется разработчиком не столько как реаниматор старого «железа», сколько как вполне полноценная самостоятельная система. В связи с этим он включает в себя вполне современные компоненты, в частности, ядро 2.6.29.1; версии пакетов в репозитории также достаточно актуальны.

Прочитанное вызвало интерес и желание пощупать Tiny Core руками. Скачать и сболванить 11 Мбайт было делом недолгим, загрузить с компакта — и того быстрее: сам по себе старт системы происходит практически мгновенно, основное время уходит на поиски DHCP-сервера и сканирование дисков на предмет понятных для TC разделов, вносимых автоматически в виртуальный /etc/fstab в режиме noauto. Чтобы более не возвращаться к этому вопросу, замечу, что в число понятных входят разделы с ext3, но не с ext4 — и это не смотря на достаточно современное ядро, что следует поставить в безусловный минус.

По завершении загрузки я оказался в среде JWM — это такой легкий, но весьма функциональный оконный менеджер , разработанный Джо Вингбермюле (Joe Wingbermuehle). Доступ к приложениям обеспечивается из контекстного меню, вызываемого щелчком правой или средней кнопкой мыши на рабочем столе. Кроме того, наиболее употребимые приложения (терминал, управляющая панель, менеджер пакетов) можно запустить из нижней панели запуска, сделанной в Mac’овском стиле. Имеется и верхняя doc-подобная панель запущенных задач. В общем, не смотря на непритязательный внешний вид, вполне функциональная рабочая среда:

tiny-core-cpanel.png

Реактивность системы просто фантастическая, что и не удивительно: ведь она целиком сидит в оперативной памяти.

Вход в систему осуществляется от специального аккаунта tc, имеющего права обычного пользователя. Так что действия, требующие прав администратора (например, монтирование накопителей), следует выполнять через sudo — для пользователя tc она не требует пароля. Команда же su не работает, требуя установки на неё бита суидности. Поскольку su извлекается из busybox’а, простого способа изменить такое положение я не вижу.

А вот /usr/sbin/sudo — это отдельная команда, со своим собственным конфигом /etc/sudoers, хотя и виртуальным. Так что при желании её можно настроить. Есть также средство для создания обычных пользовательских аккаунтов — adduser. В общем, в отличие от ряда аналогичных систем (например, Puppy), в Tiny Core в принципе можно организовать обычное для «настоящих» Unix-систем разграничение прав доступа. Разумеется, при работе с компакта все эти настройки будут действенны только в текущем сеансе. Правда, при выходе из системы предлагается опция — выполнить backup оных. Для чего сначала через кнопку Backup/Restore надлежало определить устройство для сохранения (например, флжшку или раздел диска). Тем не менее, это было не очень интересно.

Набор штатных приложений не велик, и сводится с сущности к терминалу (rxvt), в котором функционирует командная оболочка ash и набор утилит, обеспечиваемых, как уже говорилось, busybox’ом. Имеется также вьювер изображений и средство для изготовления скриншотов. Всё остальное можно получить из репозиториев с помощью собственного средства управления пакетами.

Менеджер управления пакетами, работающий в графическом режиме, прост до предела. Для начала надо соединиться с одним из репозиториев (TCZ или TCE), после чего в левом фрейме появляется список доступных пакетов:

tiny-core-packagemanager.png

При выборе какого-либо из них в правом фрейме выводится его описание, список зависимостей, и так далее. Для установки достаточно нажать кнопку Install Selected, после чего пакет скачивается и устанавливается. Разрешение зависимостей происходит автоматически. Пакеты инкорпорируются в виртуальную корневую файловую систему. То есть при работе чисто с компакта инсталляция их действенна только на текущий сеанс.

Так что всё сказанное, естественно, вызвало желание установить систему на локальный носитель — флэшку или раздел диска (я выбрал второй вариант, благо места у меня нынче хоть отбавляй).

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

Для начала я ознакомился с содержимым компакта. Оно оказалось следующим:

  • каталог isolinux с файлами, обеспечивающими загрузку системы с CD;
  • ядро системы bzImage, объёмом 1,9 Мбайт,
  • сжатый образ корневой файловой системы tinycore,gz, объёмом 8,7 Мбайт.

И это было всё. Из чего метод установки системы на винчестер вытекал, как четыре из дважды два. То есть потребовались следующие действия:

  • создание раздела да диске — я сделал логический раздел /dev/sda9;
  • создание файловой системы на нём — по указанной выше причине таковой следовало выбрать ext3;
  • копирование образов ядра и корневой файловой системы на новый раздел.

Теперь оставалось только обеспечить загрузку Tiny Linux, для чего в свой общий конфиг GRUB’а я внёс следующие строки:

title           Tiny Core
root            (hd0,8)
kernel          (hd0,8)/bzImage tce=sda9
initrd          (hd0,8)/tinycore.gz
quiet

Передаваемый ядру параметр tce=sda9 определяет устройство, на которое должны сохраняться устанавливаемые пакеты. Оно же потом будет определено как устройство для хранения backup’ов индивидуальных настроек.

Выполнив указанные действия, я перезагрузи Tiny Core уже с винчестера — столь же успешно и быстро, как и с CD. В результате раздел /dev/sda9 оказался автоматически смонтированным при старте, и на него помещались образы устанавливаемых пакетов, которые потом разворачивались в оперативную память — вся система по прежнему помещалась в tmpfs. Так что на быстродействие это ничуть не повлияло.

Интересно, что в системе существует единственная локаль — POSIX, и единственный поддерживаемый язык (сами знаете, какой). Тем не менее, установив первым делом браузер links, я с удивлением обнаружил, что могу спокойно читать русские веб-страницы. Столь же успешно кириллица воспринималась и текстовым редактором nano, хотя вводить символы кириллицы, разумеется, было невозможно. Эти два приложения я выбрал для первоочередной установки из-за их простоты и компактности, на пробу.

Всё это вселило в меня оптимизм — ведь для превращения Tiny Core во всамделишнюю систему оставалось только доустановить необходимые пакеты и выполнить должные настройки. Чем я и планирую заняться на досуге в ближайшее время.

В заключение — несколько слов о том, зачем всё это нужно. Ведь, казалось бы, при нынешних объёмах винчестеров разница между 10 и 100 Мбайтами нечувствительна, и экономия тут выглядит не актуальной.

На мой взгляд, главной особенностью Tiny Core является не её компактность как таковая, а как раз наоборот — расширяемость. Посредством её можно осуществить вековую мечту истинных линуксоидов всех времён, стран и народов — собрать систему, в которой не было бы ни единой ненужной программы. Причём сделать это куда быстрее и эффективнее, нежели при использовании source based дистрибутивов типа Gentoo. А практически такие системы могут быть востребованы в двух сферах — пресловутых АРМах и современных недобуках.

В заметке использованы иллюстрации из обзора с Distrowatch’а.

Крошка Цахес по прозванию Tiny Core Linux: 13 комментариев

  1. Тоже слежу за TinyCore с тех пор, как он появился на DistroWatch’е. Устанавливать можно ещё проще: я экстрагировал из имиджа tinycore и bzImage, кинул их в каталог /boot своего Kubuntu и вписал пару строчек в Grub. Такой метод описал сам Шинглдекер на своём форуме. Только надо ещё указать папку для расширений (сейчас сижу не под своей системой, точно не скажу, как).

  2. Воплощением давней мечты линуксоидов уже довольно давно и плотно занимается LFS. По скорости разворачивания может быть Tiny и перегонит LFS, но только в базовой инсталляции, так как для получения всех тех же расширенных возможностей его, точно так же как и LFS, перед использованием необходимо тщательно обточить напильником.

    P.S. «занятие, еоторому», «и это не смотря на довстаточно», «пыполнить backup оных.»

  3. Вообще в нормальных дистрибутивах есть или netinstall или minimal c иксами и каким то icewm или клоном фокса.
    Так что «мечта линуксоида» довольно просто реализуется и на нормальных дистрибутивах :-)

  4. Интересный дистрибутив. Ничего подобного не видел. Спасибо за обзор.

    З.Ы. В заголовке тоже опечаточка.

  5. <p>2 Windows User<br />
    Да, можно было вытащить и прямо из образа — но я хотел на него предварительно поглядеть, стоит ли этим вообще заниматься. Оказалось — стоит.</p>

  6. 2 maxym
    > Воплощением давней мечты линуксоидов уже довольно давно и плотно занимается LFS.
    ____
    А Вы пробовали? Даже не столько собрать LFS, сколько его поддерживать хотя бы на одной отдельно взятой машине? Не говоря уже о нескольких :)

  7. <p>2 Serg Markov<br />
    Опять-таки, возьмите и сравните с какой-нибудь Ubuntu CLI only :)</p>
    <p>Вообще, сравнение с «нормальными» дистрибутивами в данном случае не имеет смысла — мы имеем дело с совершенно иным явлением.</p>

  8. Опять-таки, возьмите и сравните с какой-нибудь Ubuntu CLI only

    А с Debian netinstall ? :-)

  9. не понял заголовка статьи… «Крошка Цахес», по воспоминаниям из детства, это мелкий, омерзительный горбун со сказки. А в статье дистрибутив преподносится с положительной стороны…. если и проводить аналогии со сказочным миром, то наверное стоит указать образом «Маленького Мука» или «Храброго Портняжку» ;)

    ЗЫ Эмоции при написании коммента негативом не отдавали, а несли оттенок добродушного иронизирования :) (во как загнул!)

  10. А интересно дистрибудив поддерживает САМБУ!

  11. Ждём продолжения по опыту с локализацией… Подумываю попробывать данную систему на asus eee pc 701, на скриншоте видно что в репе есть даже драйвер madwifi, стало быть вифи уже заведется =)

Обсуждение закрыто.