Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

3. Как настраивать ядро

3.1 Получение исходных текстов

Вы можете получить исходные тексты с помощью анонимного 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.

3.2 Распаковка исходных текстов

Войдите в систему как администратор или выполните команду 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 файлы, и т.п.

3.3 Настройка ядра

Замечание: Некоторое из этого являются повторенниями/пояснениями подобного раздела файла 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'' ядер.

3.4 Что теперь? (Makefile)

После того как make config выдаст сообщение о том, что ваше ядро было настроено, вы можете ``проверить (настроить) основной Makefile для дополнительных настроек'', и т.п.

Теперь вы можете посмотреть в Makefile. Вам вероятно не понадобится изменять его, но вы не повредите его если посмотрите. Вы можете также изменить опции в нем с помощью команды `rdev' после того как поместите ядро на его место.


[ Назад | Оглавление | Далее ]










helloworld.ru © 2001-2021
Все права защищены