Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Компилиране на ядро
  1. Компилиране на ядро
Magenta
     
Автор  Magenta (15.01.2006 20:06)  съобщение до автора
Погледнат  5036 пъти  добави към любими
Оценка  добави коментар
Гласове  --  изпрати на приятел
Коментари  (1)  абонирай се за Unix
    Страница 1 / 1

 



Компилиране на ядро


Линукс-ядрото е особено комплексен и важен компонент за всяка линукс-система. Това означава, че ядрото изисква особени грижи и внимание при инсталиране на софтуер и поддръжка. Независимо от факта, че можем да инсталираме некомпилирано ядро като всеки друг некомпилиран пакет, компилиране на ядрото има редица предимства.
Самото компилиране не е нещо сложно, но има някои особености, които трябва да се вземат под внимание.

 Защо трябва да компилираме ядрото.
След като инсталираме даден линукс и всичко функционира добре, тоест линукса тръгва, означава нищо друго, а факта, че ядрото от дадената дистрибуция функционира правилно. Тогава ще си зададен въпроса, защо е нужно изобщо да качваме ново ядро. Едно ново ядро ни дава редица предимства, а те са:
 
   Оптимизация на архитектурата - Ядрото съдържа оптимизации за всеки процесор- било то 386,486 и други. Масовите дистрибуции съдържат оптимизации за 386,486 архитектури. Едно компилиране на ядро ще ни помогне да си оптимизираме процесора, за да изкараме от системата повече бързина. 
   Премахване на излишните драйвери, съответно добавяне на нови - Стандартните ядра съдържат драйвери за редица компоненти. Някои от тях се съдържат в отделни файлове, които не се зареждат, преди да са необходими, но други са компилирани директно в ядрото. Тези изискват допълнителна памет и намаляват ефективността на системата. Така че един ново компилиране ще ни помогне да се освободим от излишните компоненти. Обратното е за новите драйвери. Но при тях се изискват пачове за ядрото, ако ги няма в официалните версии.

Естествено всяко компилиране има и недостатъци. Може да се окаже например, че след нова компилация, ядрото не функционира. Това ще наложи да се бутва старото ядро, което изисква време, да не говорим за нова инсталация.

Преди да компилирате ще се наложи да си свалите нова версия на ядрото. То може да е в различни форми- rpm, tarball, debian-package и други. За предпочитене са tarball-овете, защото
например rpm може да е модифициран по различен начин. Можете да си набавите ядро от   www.kernel.org.
Ако сваляте debian-packages или rpm ще се наложи вероятно да свалите два файла:ядро-хедър и ядро-сорс. Tarballs съдържат всичко в едно. След като свалите дадено ядро, можете да го разархивирате в /usr/src. Ако /usr/src съдържа поддиректория linux, трябва да я преименувате, иначе новите и старите файлове ще се смесят!
Tarball ядрото се разархивира като всеки друг пакет:
 
 

    CODE
1
tar ~/linux-2.......tar.gz
или
 

    CODE
1
tar xvjf ~/linux.....tar.bz2
След като го разархивирате успешно, започва конфигурирането:
 

    CODE
1
make config


    CODE
1
make menuconfig


    CODE
1
make xconfig

След като конфигурирате успешно следва компилирането :
 

    CODE
1
make dep


    CODE
1
make bzImage


    CODE
1
make modules

С първия ред правите зависимостите - dependencies, което помага на компилатора в зависмост от зависимостите да компилира компонентите. Втората команда компилира ядрото. Това ще резултира  файл, който е запазен в /usr/src/linux/arch/ix86/boot. При Intel поддиректорията /ix86 има друго име.

След тези стъпки можете да започнете инсталацията на ядрото и модулите. За можете да бутнете новото ядро трябва да сте запазили
файла bzImage на правилното му място естествено. Повечето системи използват LILO за да бутват ядрото.Обикновено ядрото се съдържа в директорията /boot. За да го копирате там можете да използвате следната команда:
 

    CODE
1
cp /usr/src/linux/arch/ix86/boot/bzImage /boot/bzImage-....
За да инсталирате модулите, трябва да използвате командата :
 

    CODE
1
make modules-install
С тази команда копирате всички модули в поддиректорията /lib/modules с името на съответна версия на ядрото. След като сте копирали ядрото и модулите в съответните директории, трябва да информирате системата, че новото ядро трябва да се бутва. За целта използваме конфигурационния файл на LILO, /etc/lilo.conf, който трябва да променим. Този файл трябва да съдържа обикновено следната информация:

    CODE
1
2
3
4
5
image=/boot/vmlinuz-....
         
label=linux
          initrd
=/boot/initrd-........
         
read-only
          root
=/dev/hda1

С тази информация се идентифицира ядрото и опциите.Следва да се променят параметрите, за да съответстват на новото ядро. Трябва да
се проми редът image, който да сочи към компилираното ядро в boot. Редът label трябва да се промени с новата информация за ядрото, например label=linux-2.6..... Редът initrd  трябва да се премахне или, ако сте направили нов, трябва да посочите новия.
След като сте променили информацията, се извиква lilo, за да се запази новата конфигурация. Lilo трябва да показва редове, започващи с Added, които да информират за настъпилите промени, съответно за дабавените нови label-и.
Сега вече можем да тестваме системата. След ребутване посочвате в лилото новия лейбъл, който сме задали в конфигурацията. Или ако са посочени различните ядра, избираме новото ядро, което да зареди системата.
Това е за ядрото, надявам се да съм бил полезен.
 



   




Още уроци от тази рубрика


 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

можете да използвате опцията -j5 при създаването на ядрото. значително ускорява работата.

  mr.XFLY на 16.02.2006 14:37

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008