-------------------------------------------------------------- Цей текст ╓ перекладом статт╕ з ZDnet Help, ори╜╕нал яко╖ знаходиться за адресою: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213052,00.html/ This story was printed from Help , located at http://www.zdnet.com/zdhelp . --------------------------------------------------------------

Переклад Дмитра Ковальова, 5 березня 1999. kov@tokyo.email.ne.jp
Ори╜╕нал перекладу можна знайти за адресою: http://www.asahi-net.or.jp/~as9d-kvlv/

Ядро сандала
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 4:50 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213052,00.html

Ядро Л╕накса - серце програмано╖ системи GNU/Linux про яку Ви вже так багато чули. Але що ж воно таке?

Ядро - це нововведення Л╕наса Торвальдса (Linus Torvalds), якому належить право торгово╖ марки на назву "Linux." Авторськ╕ права на вих╕дний текст ядра належать багатьом програм╕стам по всьому св╕ту, ╕ в╕н л╕цензований на умовах Загально╖ Л╕ценз╕╖ GNU (GNU Public License), що робить практично неможливим будь-кому отримувати невиправдан╕ доходи маючи контроль над ядром. Нав╕ть для Л╕наса. З ц╕╓╖ причини комерц╕йн╕ розповсюджувач╕ Л╕накса, так╕, наприклад як Калдера (Caldera) чи S.U.S.E. можуть будувати сво╖ системи навколо ядра Л╕накса, не боючись того, що одного для вони стануть PowerComputing для Apple Л╕наса чи Алена Кокса (Alan Cox). Вс╕ власники авторських прав на ядро Л╕накса повинн╕ висловити свою згоду, якщо раптом таке малося б трапитися.

Б╕льш╕сть основних комплект╕в Л╕накса -- Деб╕ан (Debian), RedHat, Slackware, тощо -- користуються одним ╕ тим же ядром, ось чому вони вважаються в основному р╕вними у в╕дношенн╕ стаб╕льност╕ та над╕йност╕. (Одне основне виключення -- це MkLinux ф╕рми Apple, який користу╓ться м╕кроканальною системою Мах (Mach) з "Л╕накс серверами", як╕ працюють поверх ц╕╓╖ системи.)

Ядро саме по соб╕ насл╕ду╓ традиц╕йну ф╕лософ╕ю Юн╕кса - спец╕ал╕зуватися в деталях. Юн╕кс╕вськ╕ програми спроектован╕ таким чином, що вони вм╕ють робити одну функц╕ю дуже добре. Таким чином, ядро займа╓ться задачами низького р╕вня, такими, як вид╕лення пам'ят╕, доступ до файлово╖ системи, сп╕лкування з зал╕зом та доступом до мереж╕ для програм, як╕ працюють на вершин╕ цього ядра. На в╕дм╕ну в╕д MacOS або Windows ядро не включа╓ в себе жодно╖ в╕конно╖ оболонки чи граф╕чного середовища (GUI) (Навпаки користувач╕ Л╕накса можуть вибрати для себе один з багатьох р╕зноман╕тних X сервер╕в чи менеджер╕в в╕кон (Window Manager), як╕ працюють в користувацькому простор╕ пам'ят╕, або ж вони можуть працювати з консоллю).


Нульова група, негативний резус
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 4:50 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213059,00.html

П╕сля установки Л╕накса, Ви отриму╓те соб╕ ядро нульово╖ групи, яке спроектоване для просто╖ установки в будь-як╕й систем╕ з великим вибором апаратних засоб╕в чи метод╕в установки (Люди з нульовою групою кров╕ ╓ "ун╕версальними донорами", кров в╕д них може переливатися будь-кому, незалежно в╕д його групи кров╕.) Таким чином, ядро ма╓ п╕дтримку для PCMCIA, в╕ртуальних RAM диск╕в, вс╕х тип╕в апаратури та с╕тьових плат та протокол╕в, та файлових систем, та ще таких речей, якими Ви можливо н╕коли в житт╕ не будете користуватися. Нав╕ть б╕льше того, при кожн╕й загрузц╕ системи, Ви ма╓те чекати на те, що вс╕ ц╕ апаратн╕ пристро╖ будуть шукатися ядром ╕ не будуть знайден╕ в систем╕. Мало того, кожен з цих пристро╖в займа╓ пам'ять в працюючому ядр╕, так само як в Мак╕нтош╕ загружен╕ системн╕ розширення, як╕ не використовуються.

Добра новина - це те, що Ви, як користувач Л╕накса, ма╓те повний доступ до вих╕дних текст╕в одн╕╓╖ з найкращих операц╕йних систем в св╕т╕ на сьогодн╕ш╕й день! Ви можете скомп╕лювати соб╕ власне настро╓не ядро, яке саме п╕дходить для Ваших потреб та вимог Вашо╖ системи, ╕ скоротити таким чином час потр╕бний на загрузку системи та об'╓м необх╕дно╖ пам'ят╕, ╕ можливо також зб╕льшивши швидк╕сть роботи системи. Як м╕н╕мум в одному випадку було пом╕чено зб╕льшення BogoMIPS'╕в (Bogus, Meaningless Indication of Performance - тобто фальшиве, позбавлене сенсу вим╕рювання виробничо╖ потужност╕) з 267 до 327 п╕сля комп╕лювання настро╓ного ядра, хоча в б╕льшост╕ випадк╕в цей показник залиша╓ться незм╕нним. Гммм...

Кр╕м цього ╓ ще одна дуже важлива причина, щоб комп╕лювати соб╕ нове ядро. Якщо та, яка вже в печ╕нках Вам сидить пита╓ться про зуст╕ч десь на природ╕ чи де╕нде, Ви просто в╕дпов╕да╓те: "Н╕, н╕, прошу пан╕, я ще мушу скомп╕лювати св╕й кернел!" Це ╖╖ напевне поставить на м╕сце!

Або ще - новий випуск Тисячол╕тнього П╕нгв╕на буде мати п╕дтримку то╖ апаратури, яку Ви ма╓те, чи буде мати нов╕ можливост╕, що ╖х Вам би хот╕лося попробувати або можливо всього-навсього щоб досягти кращо╖ виробничо╖ потужност╕. Верс╕я 2.2 ядра ма╓ ц╕лу купу нових можливостей, найкраще джерело для набуття нових знань, що я можу порекомендувати це ця чудова стаття Джозефа Праневича (Joseph Pranevich). Переглядаючи цей вражаючий список, нав╕ть не в╕риться що *все це* зроблено добров╕льцями.

╤ ще остання причина, яка може спонукати Вас комп╕лювати нове ядро - це використання звуку. Для встановлення системи, як зрозум╕ло, звук не потр╕бен, ╕ тому стандартне ядро його не п╕дтриму╓. Але, через те, що Ви, звичайно-ж хочете перетворити свою портативну машину в програвача 'mp3', ╕ через це в╕д Вас вимага╓ться мати звукову п╕дтримку в ядр╕!


Давай, компаль!
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 5:06 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213066,00.html

Отож, бачу, що я Вас вмовив, ╕ Ви ма╓те бажання хоч разок спробувати це саме "комп╕лювання". Добре! Що саме головне при цьому -- будьте певними, що Ваша система в╕д цього не постражда╓ в тому випадку, якщо щось п╕де не так. Ви будете комп╕лювати нове ядро в област╕ пам'ят╕, яка повн╕стю в╕дд╕лена в╕д Вашо╖ робочо╖ верс╕╖ ядра. Нове ядро не перехопить керування машиною до того часу, поки Ви не додасте нове ядро до Вашого системного загрузчика (boot loader), перегрузитесь ╕ явно не вкажете назву нового ядра при загрузц╕. Дал╕ - про це з б╕льшими подробицями.

До того, як почати, можливо Вам би варто було пролистати к╕лька перших стор╕нок чудовогоKernel HOW-TO. Цей документ - оф╕ц╕йне слово в╕д Проекту Документац╕╖ Л╕накса (Linux Documentation Project). В╕н пояснить, як Вам встановити вих╕дн╕ тексти ядра, як╕ Ви зняли з ╤нтернету та купу ╕нших речей про ядро Л╕накса, таких як, що таке модул╕ ядра та що з ними робити.

П╕сля того, як вих╕дн╕ тексти в╕рно встановлен╕ (або символ╕чно прив'язан╕ до /usr/src/linux), ╕д╕ть ╕ читайте README, який Ви знайдете в /usr/src/linux/README. Цей документ пояснить конкретн╕ детал╕ того ядра, яке Ви ма╓те. Сл╕дкуйте за рекомендац╕ями цього документу дуже уважно.

Кр╕м цього непогано якби Ви переглянули /usr/src/linux/Documentation. В ц╕й директор╕╖ Ви також знайдете багато конкретних рекомендац╕й щодо таких речей, як звукова плата та ╖╖ конф╕╜урац╕я. Тут також знаходиться документ Changes в якому ╓ ╕нформац╕я про м╕н╕мальний комп╕лятор необх╕дний для цього ядра, разом з рекомендац╕ями про те, де знайти поновлення до тих чи ╕нших пакет╕в, коли вони застар╕ли.

Як т╕льки все зда╓ться приведеним до ладу, Вам треба створити файл /usr/src/linux/.config, який буде керувати процесом комп╕ляц╕╖. Цей файл створю╓ться одним з чотирьох способ╕в.

Найб╕льш фундаментальний з чотирьох - це, мабуть make oldconfig. В╕н просто в╕зьме стар╕ параметри в╕д Вашого працюючого ядра ╕ поновить ╖х щоб вони п╕дходили до нового. Можете спробувати скористуватися цим способом, якщо Ви вже ран╕ше комп╕лювали соб╕ ядро для системи.

Другий спос╕б - це команда make config. П╕сля цього Ви попада╓те в сес╕ю запитань та в╕дпов╕дей на командному рядку. Але цей процес найб╕льш болюч╕ший, бо якщо Ви помилитесь ╕з в╕дпов╕ддю на бодай одне запитання, Вам треба буде починати спочатку.

По-трет╓, можете скористуватися командою make menuconfig. Цей спос╕б запропону╓ класичний текстовий ╕нтерфейс з меню, дуже схожий на той, що Ви бачили при установц╕ Л╕накса. Може в╕н ╕ не забезпечу╓ достатньо п╕дказок однак при користуванн╕ ним Ви можете консультуватися з документом Kernel HOW-TO для пошуку в╕дпов╕дей на запитання.

╤ нарешт╕, якщо Ваш X працю╓ нормально ╕ Ви встановили в систем╕ Tcl/Tk, з працюючо╖ сес╕╖ X можете виконати команду make xconfig. Ця команда приведе в д╕ю дуже ч╕ткий ╕ ╕нформативний ╕нтерфейс для конф╕гурац╕╖ ядра, який ма╓ довжелезн╕ ряди кнопок, як╕ дозволять Вам вмикнути чи вимкнути т╕ чи ╕нш╕ опц╕╖ в ядр╕, або вказати скомп╕лювати ц╕ опц╕╖ як модул╕ для ядра. Кожна така опц╕я ма╓ зв'язану з нею п╕дказку. В п╕дказц╕ Ви знайдете коротке техн╕чне пояснення та пораду щодо вибору, що його Вам треба зробити в╕дносно ц╕╓╖ опц╕╖. А н╕хто ж ╕ не сумн╕вався, що комп╕ляц╕я ядра не така вже й проста справа. Що ж Вам потр╕бн╕ будуть деяк╕ поглиблен╕ знання про Вашу систему, але в наш час таку ╕нформац╕ю досить таки легко в╕дшукати на ╤нтернет╕, якщо нав╕ть у Вас нема╓ кер╕вництва користувача системи.


Зроби мен╕ Март╕н╕
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 4:59 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213139,00.html

Нарешт╕, тепер Ви вже створили файл .config ╕ вже час повернутися знову до /usr/src/linux/README щоб прочитати там що робити дал╕. В╕н скаже Вам в╕дредагувати файл /usr/src/linux/Makefile (але скор╕ше всього Вам цього робити не прийдеться -- читайте коментар╕ ╕ виконуйте ╕нструкц╕╖). П╕сля цього Ви викону╓те команду make dep ╕ от Ви вже готов╕ до комп╕лювання.

Власне комп╕лювання ядра може зайняти в╕д менше, н╕ж хвилина часу на багатопроцесорн╕й робоч╕й станц╕╖ з Alfa процесором до п╕втори години на 386 з 8 МБайтами пам'ят╕. Моя P-II/266 вимага╓ на це б╕ля 4 хвилин. Надрукуйте make zImage ╕ дайте йому в╕д╕рватися!

Коли це зроблено, перев╕рте все, що видала програма чи не пом╕тите Ви в ньому якихось помилок. Команда make досить явно вказу╓ на помилки, як╕ трапилися при робот╕. Наприклад, коли я вперше комп╕лював ядро, команда зак╕нчилася ╕з статусом 1 ╕ видала пов╕домлення про те, що не може знайти певну ут╕л╕ту -- думаю що це було bin86. Я встановив необх╕дну ут╕л╕ту, попробував знову, ╕ цього разу програма зак╕нчилася з статусом 0. Вйо!

Якщо Ви сконф╕гурували що-небудь у вигляд╕ модул╕в, то саме тепер час зробити make modules та make modules_install. ╤ оце ╕ все!


Операц╕я "Ы" - резервування
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 5:00 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213146,00.html

Тепер Ви вже готов╕ випробувати Ваше нове ядро. Спочатку, скоп╕юйте образ нового компресованого ядра з директор╕╖ /usr/src/linux/arch/i386/boot/zImage (будемо вважати для простоти, що Ви встановлю╓те ядро на PC) в те м╕сце, де знаходяться ядра у Ваш╕й систем╕, або в коренев╕й файлов╕й систем╕, або (як у мо╓му Деб╕ан╕ - Debian в директор╕╖ /boot.

Якщо Ви користу╓тесь LILO як сво╖м системним загрузчиком, зроб╕ть резервну коп╕ю Вашого lilo.conf (нехай в╕н буде називатися lilo.conf.0 для прикладу) ╕ пот╕м в╕дредагуйте lilo.conf щоб вставити в нього рядок в якому буде стояти "prompt" ╕ створ╕ть кр╕м того новий розд╕л "image=" для нового ядра. Наприклад:

boot=/dev/hda1
root=/dev/hda1
install=/boot/boot.b
prompt
map=/boot/map
vga=normal
delay=20
image=/vmlinuz
    label=Linux2.0
    read-only
image=/boot/vmlinuz-2.2.0
    label=Linux2.2
    read-only

Зверн╕ться до "man lilo.conf" якщо Ви ма╓те запитання щодо цього. Тепер виконайте lilo щось типу ./lilo ╕ в╕н повинен сказати, що в╕н додав новий образ ядра (разом ╕з тими, що були ран╕ше). Тепер Ви вже готов╕ до перегрузки ╕ до того, щоб попробувати ядро. Але стоп! Перед тим, як Ви перегрузите систему впевн╕ться, що Ви записали в lilo.conf (як╕ назви Ви дали тим чи ╕ншим ядрам); система запита╓ у Вас при загрузц╕ яке ядро треба грузити - хоча деяк╕ верс╕╖ lilo видають п╕дказку якщо Ви натиснете <tab> ╕ покаже вс╕ ядра, що ╓ в систем╕.


Займися сво╓ю справою, Orville Redenbacher!
Генр╕ К╕н╜ман (Henry Kingman), Help Channel
February 19, 1999 5:00 PM PT
URL: http://www.zdnet.com/zdhelp/stories/main/0,5594,2213152,00.html

Це практично ╕ все, що треба було зробити. Спод╕ваюсь, вих╕дн╕ тексти Вашого нового ядра 2.2 зак╕нчили загружатися, ╕ все пройшло усп╕шно ╕ гладко. Спод╕ваюсь, що гнучк╕сть та глибина, до яко╖ ядро Л╕накса дозволя╓ керувати собою, вразили Вас. Звичайно, може ╕ не важко скомп╕лювати ядро для того, щоб став працювати звук або щоб п╕дключити нову плату. Але з ╕ншого боку високо техн╕чний ╕ в той же час як╕сь простуват╕ в╕кна п╕дказок в команд╕ make xconfig приносять певне задоволення, ╕ дають можлив╕сть кра╓м ока зазирнути в дивний але правдивий св╕т речей, ╕ того, як вони справд╕ працюють. Це -- р╕дк╕сн╕ ╕ чудов╕ реч╕, нав╕ть для тих з нас, хто по справжньому не розум╕╓ всього цього техн╕чного навороту. Все одно Ви можете бути гордим ╕ радим з того, що Ви так близьк╕ до Л╕накса.

Тепер, п╕сля того, як я осво╖вся з комп╕ляц╕╓ю ядра, я збираюся зробити це що-р╕чним чи п╕вр╕чним ритуалом. Вам же треба в╕дшукати прив╕д для того, щоб хоч ╕нколи перегружати систему, в╕рно? А ще кр╕м того, це чудова нагода для навчання, блискучий проект для в╕льного вечора, шанс для того, щоб випробовувати вс╕ ц╕ класн╕ можливост╕ ядра Л╕накса, ╕ що саме найраще - це справжн╓ задоволення - загружатися! (Зрозум╕ли? "...загружатися" А ладно, чого там!)

Отож, багатьох щасливих ядер для тебе - безстрашний читачу. Спробуйте, ╕ дайте нам знати як воно все пройшло. Удач╕!

нам дайте знати також!


Natalya and Dmytro Kovalev
Пиш╕ть нам за адресою: kov@tokyo.email.ne.jp
Домашня стор╕нка: http://www.asahi-net.or.jp/~as9d-kvlv
Last modified: Sat Oct 23 16:26:26 JST 1999
Counter: from Oct 23 1999