Вы можете получить исходные тексты с помощью анонимного ftp с
ftp.funet.fi в директории /pub/Linux/PEOPLE/Linus , с
его зеркала, или с другого сервера. Они обычно обозначены как
linux-x.y.z.tar.gz , где x.y.z номер версии. Более
новые (лучшие?) версии и заплатки (patches) обычно находятся в поддиректориях,
таких как `v1.1 ' и `v1.2 '. Самый большой номер имеет
последняя версия и обычно является ``тестовой версией'', это значит, что если вы
нелегко плохо чувствуете себя с альфа или бета версиями, то вы должны
использовать стабильную версию.
Я настоятельно рекомендую вам использовать сервера-зеркала вместо
использования ftp.funet.fi. Здесь приведен короткий список серверов-зеркал и
других серверов:
USA: sunsite.unc.edu:/pub/Linux/kernel
USA: tsx-11.mit.edu:/pub/linux/sources/system
UK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel
Austria: ftp.univie.ac.at:/systems/linux/sunsite/kernel
Germany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus
Germany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus
France: ftp.ibp.fr:/pub/linux/sources/system/patches
Australia: sunsite.anu.edu.au:/pub/linux/kernel
В общем зеркало сервера sunsite.unc.edu является хорошим местом,
где можно взять исходные тексты ядра. Файл /pub/Linux/MIRRORS
содержит список известных серверов-зеркал. Если у вас нет доступа к ftp, то
список систем BBS, которые распространяют linux периодически посылается в группу
comp.os.linux.announce; постарайтесь получить его.
Если вы ищете общую информацию о Linux и его дистрибутивах, то посмотрите на
http://www.linux.org .
Войдите в систему как администратор или выполните команду su , и
перейдите в директорию /usr/src .Если вы устанавливали исходные
тексты ядра при установке linux (как делает большинство), то том у вас уже есть
директория названная `linux ', которая содержит полное дерево
устаревших исходных текстов. Если у вас есть свободное дисковое пространство, то
вы можете сохранить эту директорию. Хорошая идея -- определить какая версия
ядра запущена и соответственно переименовать директорию. Команда `uname
-r ' выдает номер текущей версии ядра. Поэтому, если команда `uname
-r ' выдала `1.0.9 ', то вы должны переименовать (с помощью
`mv ') `linux ' в `linux-1.0.9 '. Если вы не
чувствуете, что поступаете опрометчиво, то просто сотрите всю директорию. В
любом случае убедитесь, что никакой директории `linux ' в
/usr/src до распаковки полного исходного кода ядра.
Теперь распакуйте в /usr/src исходные тексты, пользуясь командой
`tar zxpvf linux-x.y.z.tar.gz ' (если вы получили просто файл
.tar без расширения .gz на конце, то работает команда
`tar xpvf linux-x.y.z.tar '). Содержимое архива будет распаковано.
После окончания процесса, будет существовать новая директория
`linux ' в /usr/src . Перейдите linux и
посмотрите файл README . Там будет раздел с заголовком
`INSTALLING the kernel (Установка ядра) '. Выполните соответствующие
инструкции -- символические ссылки должны быть на своем месте, удалите
старые .o файлы, и т.п.
Замечание: Некоторое из этого являются повторенниями/пояснениями
подобного раздела файла README поставляемого Linus.
Команда `make config ' выполненная в /usr/src/linux
запускает скрипт настройки, которая задает вам много вопросов. Она требует
наличия bash, так что проверьте что bash находятся в /bin/bash ,
/bin/sh , или $BASH .
Существуют некоторые альтернативы команде `make config ' и вы
можете найти их более удобными и легкими для использования. Те, кто работает в X
могут попробовать `make xconfig ', если у вас установлен Tk
(`click-o-rama' - Nat). `make menuconfig ' -- это для тех, у
кого установлен (n)curses и предпочитает текстовые меню. Эти интерфейсы имеют
одно явное преимущество: если вы сделали неправильный выбор в течении настройки,
то очень легко вернуться и исправить ее.
Теперь вы готовы отвечать на вопросы, обычно ответы выглядят как
`y ' (да) или `n ' (нет). Драйвера устройств обычно
имеют опцию `m '. Это означает ``module (модуль)'', обозначая, что
система будет компилировать этот драйвер, но не вставит его прямо в ядро, а
сделает загружаемым модулем. Более комично эта опция описывается как ``maybe
(может быть)''. Некоторые более ясные и некритичные опции здесь не описаны;
смотрите раздел ``Другие опции настройки'' для их краткого описания.
В версиях 2.0.x и более поздних, существует опция `?', которая обеспечивает
краткое описание параметра настройки. Эта информация скорее всего наиболее
свежая.
Эмуляция математических функций ядром
Если у вас нет математического сопроцессора (у вас голый 386 или 486SX), то
вы должны ответить `y ' на этот вопрос. Если у вас есть сопроцессор
и вы все равно ответили `y ', то не беспокойтесь -- сопроцессор
все рано будет использоваться, а эмуляция будет проигнорирована. Единственное
следствие этого в том, что ядро будет больше (расход ОЗУ). Я упоминал о том, что
эмуляция очень медлена; хотя это не очень часто влияет, но все равно вспомните
это, если столкнетесь с малой производительностью системы X-windos.
Поддержка обычных (MFM/RLL) дисков и дисков/cdrom IDE
Вам вероятно необходима эта поддержка; это означает, что ядро будет
поддерживать стандартные жесткие диски PC, которые имеет большинство людей. Этот
драйвер не включает поддержку SCSI дисков; их выбор идет далее в настройке.
Затем у вас спросят о драйверах ``old disk-only (только старых дисков)'' и
``new IDE (новых IDE)''. Вы захотите выбрать один из них; основное отличие в
том, что старые диски поддерживают только два диска на одном интерфейсе, а новые
поддерживают вторичный (secondary) интерфейс и накопители IDE/ATAPI cdrom. Новый
драйвер на 4k больше старого и также предположительно ``улучшен'', убирая
некоторое количество ошибок, он может улучшить производительность вашего диска,
особенно если у вас новое оборудование (типа EIDE).
Поддержка сети
В принципе вы должны ответить `y ', если ваша машина подключена к
сети, такой как internet, или вы хотите использовать SLIP, PPP, term и т.п. для
dial up доступа к internet. Однако много пакетов (таких как оконная система X)
требует поддержку сети, даже если вы не подключены ни к какой сети, вы должны
сказать `y '. Позже у вас спросят, хотите ли вы поддержку TCP/IP;
далее скажите `y ', если вы абсолютно уверены в своем выборе.
Ограничить память до менее 16MB
Существуют работающие с ошибками контролеры DMA на машинах с процессором 386,
которые имеют проблемы с адресацией больше 16 Мб ОЗУ; вы можете ответить
`y ' в случае (редком) если у вас такой контроллер.
System V IPC
Одно из лучших определений IPC (Interprocess Communication, Межпроцессного
сообщения) данов в глоссарии книги по Perl. Не удивительно, что некоторые
программисты на Perl используют этот механизм чтобы позволить процессу общаться
с другими процессами, так же как и другие пакеты (самый заметный из них это
DOOM), так что ответ n не является хорошей идеей, пока вы не будете
точно уверены в том, что вы делаете.
Тип процессора (386, 486, Pentium, PPro)
(в старых ядрах: используйте флаг -m486 для оптимизации для процессора 486)
Традиционно, это делает некоторую оптимизацию для выбранного процессора; ядра
работают быстрее, но ядро может быть несколько больше. В новых ядрах, это однако
больше не является правдой, так что вы должны ввести процессор для которого вы
компилируете ядро. Ядро для ``386'' будет работать на всех машинах.
Поддержка SCSI
Если у вас есть устройства SCSI, то ответьте `y '. У вас запросят
дополнительную информацию, такую как поддержку CD-ROM, дисков, и какой тип
адаптера SCSI у вас имеется. Смотрите SCSI-HOWTO для дополнительной информации.
Поддержка сетевых устройств
Если у вас есть сетевая карта, или вы хотите использовать SLIP, PPP, или
адаптер параллельного порта для подключения к Internet, то ответьте
`y '. Скрипт настройки запросит у вас тип карты и какие протоколы вы
хотите использовать.
Файловые системы
Затем настроечный скрипт запросит у вас поддержку для каких файловых систем
вы хотите иметь в своей системе:
Стандартная (minix) - Более новые дистрибутивы не создают файловые системы
minix, и много людей не используют ее, но все равно хорошая идея настроить ее.
Некоторые программы с ``дисками для восстановления (rescue disk)'' используют ее
и все еще много гибких дисков могут использовать файловую систему minix,
поскольку файловая система minix менее мучительная для использования на гибких
дисках.
Extended fs - это была первая версия расширенной файловой системы, которая
сейчас не является широко используемой. Если вы не знаете точно, что она вам
нужна и сомневаетесь, то скорее всего она вам не нужна.
Second extended - эта файловая система широко используется в новых
дистрибутивах. У вас скорее всего она есть и вам нужно ответить
`y '.
файловая система xiafs - одно время она не была необычно, но во время
написания этого документа я не знал никого использующего эту файловую систему.
msdos - если вы хотите использовать разделы вашего жесткого диска с MS-DOS,
или монтировать гибкие диски, отформатированные под MS-DOS, то ответьте
`y '.
umsdos - эта файловая система расширяет возможности файловой системы MS-DOS
обычными Unix-подобными возможностями, такими как длинные имена. Это не является
полезным для людей (таких как я), кто ``не работает в DOS.''
/proc - одна из величайших вещей со времен изобретения порошкового молока (я
так предполагаю, идея была бесстыдно украдена у Bell Labs). Она не создает
файловую систему proc на диске; она является интерфейсом в виде файловой системы
к ядру и процессам. Много программ, выдающих список процессов (таких как
`ps ') используют ее. Как нибудь попробуйте выполнить `cat
/proc/meminfo ' или `cat /proc/devices '. Некоторые командные
процессоры (в частности rc) используют /proc/self/fd (известный как
/dev/fd в других системах) для ввода/вывода. Вы должны почти всегда
ответить `y ' на этот вопрос; много важных утилит для linux зависят
от этого выбора.
NFS - если ваша машина работает в сети и вы хотите использовать файловые
системы находящиеся на других машинах с помощью NFS, то ответьте
`y '.
ISO9660 - имеется на большинстве CD-ROM. Если у вас есть привод CD-ROM и вы
хотите использовать его в Linux, то ответьте `y '.
OS/2 HPFS - во время написания работает как файловая система только для
чтения для OS/2 HPFS.
System V и Coherent - для разделов машин с System V и Coherent (это другие
варианты Unix для PC).
Но я не знаю какие файловые системы мне нужны!
Хорошо, наберите команду `mount '. Ее вывод будет выглядеть
примерно так:
blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
Посмотрите на каждую строку; слово идущее за словом `type (тип) '
является типом файловой системы. В моем примере мои файловые системы
/ и /usr являются файловыми системами типа second
extended, я использую /proc , и есть гибкий диск смонтированный
используя файловую систему msdos.
Вы можете попробовать выполнить `cat /proc/filesystems ', если у
вас в настоящее время разрешено использование /proc ; эта команда
перечислит файловые системы, поддержку которых имеет ваше ядро.
Настройка редко используемых, не критических файловых систем может вызвать
раздувание вашего ядра; смотрите раздел о модулях чтобы избежать этого и раздел
``Ловушки'' о том, почему раздувшееся ядро является нежелательным.
Символьные устройства
В этом разделе вы выбираете драйвера для вашего принтера (параллельного
принтера), шинной мыши, мыши для PS/2 (многие notebook используют протокол мыши
PS/2 для своих встроенных трекболов), некоторые ленточные накопители и другие
такие же ``символьные'' устройства. Ответьте `y ' где необходимо.
Замечание: Selection это программа, которая позволяет вам использовать мышь
вне системы X window для вырезания и вставки между виртуальными консолями. Она
работает довольно хорошо, если у вас мышь для последовательного порта,
потому-что она хорошо работает с X, но вам необходимо выполнить некоторые
действия, для того чтобы работали другие типы мышей. Поддержка Selection одно
время была опцией настройки, но сейчас она является стандартом.
Замечание 2: Сейчас Selection считается устаревшей. Имя новой программы
``gpm''. Она может делать более фантастические вещи, такие как трансляцию
протокола мыши, работать с несколькими мышами, ..
Звуковые карты
если вы чувствуете огромное желание слышать рявканье biff , то
ответьте `y ', и далее другая программа настройки будет
скомпилирована и будет задавать вам вопросы о вашей звуковой карте. (Примечание
о настройке звуковой карты: когда программа спросит у вас устанавливать ли
полную версию драйвера, то ответьте `n ' и сохраните некоторое
количество памяти в ядре выбором только необходимых возможностей драйвера). Я
сильно рекомендую вам посмотреть в Sound-HOWTO для более детальной информации о
поддержке звука, если у вас есть звуковая карта.
Другие опции настройки
Не все опции настройки перечислены здесь потому-что они слишком часто
меняются или являются очевидными (например, поддержка 3Com 3C509 для компиляции
драйвера для данной карты ethernet). Существует довольно полный список всех
опций (плюс способ поместить их в скрипт Configure ), который собран
Axel Boldt (axel@uni-paderborn.de ) по следующему адресу:
http://math-www.uni-paderborn.de/~axel/config_help.html
или через анонимный FTP по адресу:
ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz
где x.yz это номер версии.
Для последних ядер (2.0.x и более поздних), этот список был интегрирован в
дерево исходных текстов.
Работа над ядром (Kernel hacking)
Из Linus README:
действие опции настройки ``kernel hacking'' обычно проявляется в
более большом или медленном ядре (или оба симптома), и может даже сделать ядро
менее стабильным из-за настройки некоторых подпрограмм на попытку активно
сломать плохой код, чтобы найти проблемы с ядром (kmalloc()). Таким образом
вам скорее всего надо ответить `n' на этот вопрос для ``production'' ядер.
После того как make config выдаст сообщение о том, что ваше ядро
было настроено, вы можете ``проверить (настроить) основной Makefile
для дополнительных настроек'', и т.п.
Теперь вы можете посмотреть в Makefile . Вам вероятно не
понадобится изменять его, но вы не повредите его если посмотрите. Вы можете
также изменить опции в нем с помощью команды `rdev ' после того как
поместите ядро на его место.
|