Хорошее понимание основных принципов работы файловых систем абсолютно необходимо для понимания того, как работает Linux. В системе все объекты интерпретируются как файлы — файлы данных, разделы, каналы (pipes), сокеты и устройства. Каталог также представляет собой файл, содержащий информацию о других файлах.
Спецификация иерархии файловых систем (FHS, Filesystem Hierarchy Standard) была разработана как «добровольный стандарт», соблюдаемый в большинстве версий Linux. Далее перечислены обязательные элементы корневой файловой системы Linux:
/ | — корневой каталог; | /bin | — важнейшие системные команды; | /boot | — файлы статического загрузчика; | /dev | — файлы устройств; | /etc | — системные конфигурационные файлы, специфические для хоста; | /lib | — общие библиотеки, необходимые для работы локальной системы; | /mnt | — временные точки монтировки; | /opt | — дополнительные программные пакеты (в Linux используются мало); | /proc | — текущая информация о конфигурации и состоянии ядра; | /sbin | — команды администрирования системы; | /tmp | — временные файлы (в нормальных системах они уничтожаются между перезапусками); | /usr | — общие файлы, данные только для чтения и двоичные файлы; | /var | — файлы переменного размера (такие, как почтовые ящики и журналы). |
Следующие каталоги считаются необязательными, потому что они могут находиться в любом месте сети, тогда как обязательные каталоги должны присутствовать для нормальной работы компьютера:
/home | личные файлы пользователя; |
/root | личные файлы суперпользователя. |
Установка заплаток, настройка и обновления ядра Linux — весьма полезные операции, и ничего страшного в них нет. Они принадлежат к числу немногочисленных операций администрирования, требующих перезагрузки, и это обстоятельство может огорчить администраторов, гордящихся длительным временем непрерывной работы. В остальном эта процедура ничем не хуже, чем установка заплаток или обновление любых других программ.
Вам потребуются исходные тексты ядра и дсс, компилятор GNU C. Исходные тексты ядра можно получить из двух источников: на сайте вашего дистрибутива Linux или по адресу http://kernel.org. Разные дистрибутивы Linux в разной степени модифицируют ядро. Red Hat, SuSE и Mandrake вносят значительные изменения, Debian и Slackware ограничиваются минимальными модификациями. Установка «эталонного» ядра с сайта http://kernel.org может привести к нарушению работы дистрибутивов, использующих модифицированное ядро, поэтому лучше использовать исходные тексты ядра для вашего дистрибутива (в главах 2 и 3 рассказано, где достать и как установить программное обеспечение Linux, а в разделе 4.2 описан процесс сборки).
Как и в большинстве программ Linux, при установке заплатки вы не модифицируете существующее ядро. Заплатка применяется к исходным текстам, по которым затем строится новый двоичный файл, поэтому в итоге вы получаете два ядра. Это хорошо, потому что у вас остается исходное ядро на тот случай, если новое ядро не загрузится. Вы можете установить несколько различных ядер и протестировать последние версии в разных конфигурациях.
Основные причины для модификации ядра:
Для системы Linux написано немало программ создания и записи CD/DVD. В настоящее время эта область стремительно развивается, и стандарты CD/DVD еще находятся в хаотическом состоянии. Существует несколько конкурирующих несовместимых стандартов, и на горизонте маячат новые стандарты — крупные компании все стремятся создать «волшебный диск», который можно было бы воспроизводить, но нельзя скопировать. Однако в настоящей главе наше внимание будет сосредоточено не на этой волнующей истории, а на базовых приемах записи дисков CD и DVD с данными. Вам потребуются пакеты cdrtools и dvd+rw-tools.
Для простого создания дисков используйте K3b — графический интерфейс для cdrtools, cdrdao, mkisofs, growisofs и других утилит командной строки. K3b упрощает подготовку дисков и предоставление пользователям привилегий root, необходимых для работы cdrecord и cdrdao. Программа логична и проста в работе; лично я считаю ее лучшим средством записи CD/DVD на всех платформах. Конечно, в мире Linux существует много других альтернатив, в том числе GCombust, X-CD-Roast и Gnome Toaster. Все эти программы просты в использовании, поэтому в настоящей главе будут использоваться средства командной строки. Хорошее владение ими также упростит работу с графическими программами, потому что вы будете понимать их команды и экзотическую терминологию.
Главное новшество ядра 2.6 заключается в том, что для дисков CD/DVD больше не требуется эмуляция SCSI. Вместо того чтобы определять адреса шины SCSI командой cdrecord -scanbus, просто укажите имя устройства:
# cdrecord dev=/dev/hdc <команды>
ВНИМАНИЕ Если вы обновили ядро 2.4 до ядра 2.6, а для работы с дисководами CD/DVD ранее использовался интерфейс IDE-SCSI, проследите за тем, чтобы записи IDE-SCSI были удалены из загрузчика. В противном случае загрузка будет сопровождаться странными ошибками.
В системе Linux существует два отличных загрузчика, GRUB (GRand Unified Bootloader) и LILO (LInux LOader). GRUB новее LILO и обладает большими возможностями. Оба загрузчика отличаются гибкостью и большим потенциалом настройки; кроме того, они способны реализовывать сложные сценарии настройки — такие, как альтернативная загрузка нескольких операционных систем или ядер Linux или передача параметров ядру во время загрузки.
Если вы все еще используете LILO, возможно, настало время подумать о переходе на GRUB. Хотя загрузчики в целом похожи друг на друга, GRUB обладает рядом дополнительных возможностей, которые выводят его на первое место:
И GRUB, и LILO позволяют загружать операционные системы, не входящие в семейство Linux (например, Windows, OS/2, BSD Unix и т. д.). Для операционных систем, которые они не могут загружать напрямую (таких, как Windows), GRUB и LILO применяют цепную загрузку, то есть передают управление собственному загрузчику Windows.
Главная загрузочная запись занимает первые 512 байт первого сектора первого раздела диска. В ней находится таблица разделов и первичный загрузчик — небольшая программа, хранящаяся в первых 446 байтах MBR, которая передает