|
Во время плясок с бубном ночи напролёт вокруг линухового компьютера невольно начинаешь интересоваться внутренним строением операционной системы.
Различные дистрибутивы довольно неповоротливы даже на шустрых машинах. Все дело в универсальности - поставил и готово. Графические средства настройки, куча полезных и абсолютно ненужных программ - все это пожирает ресурсы системы. Изучить внутреннюю структуру такой ОСи можно лишь постепенно выгребая из нее мусор. Gentoo Linux отличается от всех известных дистрибутивов. Основная задача - донести конечному пользователю полностью готовый применению продукт, а значит, по мнению разработчиков Gentoo, навязать свое мнение и ограничить пользователя в свободе выбора. Смысл Gentoo - разрешить пользователю делать ему все что заблагорассудится, работать с теми программами, которые он считает необходимыми. Как это сделать, не прибегая к изощрённым методам, искоренения нерадивых программ и установки других? Ответ прост - установить систему по правилу "ничего лишнего" c данным набором программ. "Таких дистрибутивов нет" , - скажите вы и ошибётесь. Этот коварный Gentoo - и есть искомый дистрибутив. Смысл его таков. Вы вручную собираете систему из исходников. Компиляция абсолютно всех программ. Не подумайте, что придется вручную решать все зависимости. Заимствованная у BSD система портов позволяет громогласной командой "Явись!"(emerge) загрузить и установить необходимый пакет. Про сборку голыми руками - это к LFS - Linux From Scraches - Линукс из исходников. Тут и зависимости, и проблемы с совместимостью, и проч. На сайте gentoo.org говориться о замечательных свойствах Gentoo Linux. Gentoo появился на основе разработок собственного дистрибутива Даниэла Роббинсона под названием Enoch Linux. Уже тогда основной целью дистрибутива являлась собственная сборка(подобная LFS), оптимизированная под конкретное аппаратное обеспечение и содержащая минимальный, необходимый пользователю, набор программ. Тесты показывают, что производительность оптимизированных под вашу архитектуру программ увеличивается на 10-200% по сравнению с готовыми сборками, поставляемыми вместе с дистрибутивами. Естественно, чем старее процессор, тем стандартнее его набор команд, т.е. установка Gentoo Linux оправдана на новых процессорах, позволяя использовать все их возможности по полной программе. Gentoo Linux доступен на сайте в двух основных вариантах: *MinimalCD, в который включены лишь компоненты, необходимые для успешной инсталляции системы,- ядро, утилиты, сетевые утилиты, модули поддержки оборудования. *LiveCD - в него входит графический инсталлятор, позволяющий ещё более простым способом установить дистрибутив. Целью данной статью является не поголовное посвящение обычных пользователей в гентушников, а всего лишь сломать некоторые стереотипы, а ля "Gentoo это ужасно сложно и т.п." и показать, что Gentoo - это очередной шаг к пониманию философии СПО. Предупреждение: без безлимитного канала интернет, либо при отсутствии в кольце вашего провайдера зеркала(где траффик обычно бесплатен) Gentoo Linux ставить бессмысленно - практически все загружается с интернета. На сайте Gentoo можно загрузить Packade CD, позволяющий существенно уменьшить необходимый траффик. А пока на ваш компьютер устанавливается Gentoo Linux, вы можете попробовать купить квартиру в Краснодаре от застройщика Загрузив необходимое ядро(вписав gentoo в командной строке), вы запустите загрузку системы с диска. Подключите сетевую карту к интернету - если в вашей сети присутствует dhcp-сервер, то просто замечательно, если нет, то придется устанавливать параметры сети вручную , при помощи net-setup. Программа спросит вас некоторые параметры, и в завершение вы получите работающее соединение. Когда система загрузится, на экране останется исключительно командная строка. Это главный инструмент управления. В пределах данной статьи ничего не будет настроено при помощи графики, поднятие графической среды выходит за пределы данной статьи. Для начала приготовим жесткий диск - его необходимо разбить и отформатировать. Для этого существует утилита fdisk. Какой шине подключен ваш диск?Жесткий в Linux расположен /dev/hda, где h - это параметр IDE- диска, а s- SCSI или SATA. Если ваш винт висит на IDE0 как master, то это "а", если IDE0 как Slave, то это "b" и т.д. Вызываем программу командой: # fdisk /dev/hda(решетка обозначает, что команда выполняется с правами root, решетку, разумеется, вводить не нужно). МЫ попадем в простой текстовый интерфейс. При нажатии клавиши m приводится список букв, соответствующих определённым командам. Диск следует разбить примерно так: /boot ~50мб в начале диска в файловой системе ext2, ext3, reiserfs /swap 100-200% от RAM в начале диска swap/ 1-2гб ближе к началу диска в файловой системе ext2, ext3, reiserfs /usr 1-10гб в зависимости от потребностей в середине диска в файловой системе ext2, ext3, reiserfs /home много конец диска в файловой системе ext2, ext3, reiserfs Выходим из программы и форматируем разделы командами, в зависимости от типа ФС:
Монтируем разделы. Нам необходимо сделать так, что бы каталоги на LiveCD незаметным для ядра образом превратились в нам необходимые: # mount -t /mnt/gentoo/ /dev/hda Так делаем с каждым разделом. Не забудем так же включить своп-раздел: # swapon /dev/hda Командой df -h проверим, все ли правильно мы смонтировали. Перейдем в "корневой каталог":
Загружаем с ближайшего к нам зеркала архив стадии и снимок дерева портеджей при помощи wget: # wget # wget Наиболее близким для жителей России зеркалом является зеркало Яндекса. Что бы не писать длинный путь к нужному файлу, попробуйте искать при помощи консольного браузера links. Адрес http://www.gentoo.org/main/en/mirrors2.xml ведет с списку зеркал. После загрузки двух, довольно весомых, архивов, распакуем их: # tar -xvjpf stage3-i686.2009.0.tar.bz2 # tar -xvjpf portage-latest.tar.bz2 -C /mnt/gentoo/usr Первым делом нам необходимо настроить конфигурациооный файл - /etc/make.conf. В нем содержится основная информация о том, как производить компиляцию. Пишем следующее:
CHOST = "i686-pc-linux-gnu" - показывает, под какую систему была скомпилирована ось. Этот параметр критичен - его изменение грозит крахом системы. CFLAGS = "-O3 -march=pentium3-mfpmath-sse -pipe" - оптимизация компиляции под конкретную платформу. Цифра 0-3 показывает степень оптимизации. Чем выше значение, тем полнее используются возможности процессора, но при этом компиляция более долгая. Золотая середина - 2. Другие 2 параметра - привязка к определенной архитектуре. Хотите универсальности - используйте - march=i686, хотите мощи - указывайте ваш процессор. Полное описание параметров настройки gcc можно найти на http://gcc.gnu.org/onlinedics/gcc-3.4.3/gcc/i386-and-x86_002d64-Options.html CXCFLAGS="${CFLAGS}" SYNC="rsync://rsync.gentoo.nnov.ru/gentoo-portage" GENTOO_MIRRORS="ftp://linuxarchive.nnov.ru/pub/Unix/Gentoo/" Последние 2 строки - путь к зеркалу и портеджам. fstab позволяет настроить правила монтирования разделов при загрузке ОС, либо при ручном монтировании каких-либо устройств:
Вот пример файла: # /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro 0 1 /dev/sda6 /home ext3 defaults 0 2 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/sdb1 /media/hd ntfs-3g user, noauto 0 0 Левая колонка - это нужный нам раздел. Вторая колонка - точка монтирования в системе. Третья колонка показывает, какая ФС применяется. Четвертая колонка вводит дополнительные параметры. Последние две цифры - это уровень дампа и порядковый номер для fsck. Первая указывает на принадлежность к системе резервирования данных. Если стоит 1, то система будет участвовать в системе резервирования данных, если нет - то должен стоять ноль. Вторая цифра показывает, необходимо ли проверять диск на ошибки. 0 - не надо, 1(для /) и 2(не для /) - надо. Сохраняем документ. Настраиваем сеть. Она понадобиться нам после загрузки системы с жесткого диска. Файл /mnt/gentoo/etc/resolv.conf содержит информацию о DNS-серверах. Что бы вручную ее не вводить, просто скопируйте данные:
Файл сетевых параметров /etc/conf.d/net содержит данные для успешного подключения в интернет. #Задаем параметры вручную
#Полуаем параметры автоматически config_eth0=("dhcp") dhcp_eth0="nodns nontp nonis" Выбираем один из двух вариантов в зависимости от наличия dhcp-сервера в сети. Установка. Монтируем /proc #mount -t proc none /mnt/gentoo/proc монтируем /dev #mount -o bind /dev /mnt/gentoo/dev proc - это псевдофайловая система, содержащая т.н. специальные файлы - интерфейсы работы с драйверами ядра. Для командной строки корневой каталог до сих пор находится на LiveCD. Изменяем это командой: # chroot /mnt/gentoo /bin/bash Для полного перемещения в устанавливаемый Gentoo обновим переменные среды: #env-update #source /etc/profile #eport PS1="(chroot) $PS1" Осталось немного: собрать ядро и установить начальный загрузчик. Собираем ядро. #emerge-sync - обновим дерево портеджей, чтобы исключить вероятность разных версий. Загружаем исходники ядра: # USE=" -doc symlink" emerge gentoo-sources Параметр USE - самый функциональный в Gentoo. Используется в make.conf. Он указывает, с поддежркой чего будет откомпилирован тот или иной пакет. Не будь этого USE, установка Gentoo была бы слишком простой. Для начала компиляции осталось настроить ядро:
После небольшого раздумья и компиляции нескольких файлов перед нами предстает окно настройки ядра с псевдографическим интерфейсом. Проштудируйте море информации по поводу настройки ядра Gentoo, а также каждый пункт меню. Добавляйте только те модули, которые вам действительно необходимы. Помните-по умолчанию включены все необходиые модули. Модули можно добавить в ядро в виде модулей(т.е. загружаемые по мере необходимости), либо в виде части ядра - тогда модуль всегда будет доступен. Драйвера устройств лучше добавлять в ядро, а различные функциональные части - в модуль. Не бойтесь добавлять лишний модуль, а вот удаляйте с некоторым подозрением. Выходим из меню настроек, сохраняем изменения и... Компилируем ядро командой :
В зависимости от производительности компьютера и степени оптимизации под архитектуру время компиляции может занять разное время - от 5 минут до пары часов. НА моих 850 Мгц компиляция прошла за ~1 час. Система готова, однако осталось сделать так, что бы все крутилось само и не приходилось пользоваться liveCD. # rc-update add net.eth0 default - активация сетевого подключения при загрузке системы.(Надеюсь вы подключили драйвер вашей сетевой платы) # passwd - пароль суперпользователя(root'а) # emerge syslog-ng # rc-update add syslog-ng default Устанавливаем и просим при загрузке активировать систему журналирования. Если ваш провайдер использует dhcp, установите dhcp-клиент:
Последний этап - настройка загрузчика. Здесь 3 варианта - либо lilo, либо Grub. Второй - лучше, первый - проще. Настраиваем lilo, из-за его простоты:
Теперь осталась только одна команда:
Теперь загрузчик записан в MBR и при старте компьютера BIOS сможет передать ему управление. Для перезагрузки системы проделываем несколько важных команд:
Циферки побежали, перезагружается и на экране предстает lilo. Это уже хороший знак. Выбираем наше ядро и... Здесь возможны 2 варианта: Либо все будет хорошо, тогда можно продолжать установку системы, либо kernel panic, тогда придется грузиться с liveCD и производить конфигурацию/компиляцию ядра заново, пока все не станет хорошо. В итоге мы получили полностью рабочую базовую систему. Разумеется, необходимо обвесить ее различным ПО. |
|
![]() |
Дизайн и программирование - Balandin Ivan |
![]() |
© 2009-2011 Юникс-Про.ру
|