Јадро: Разлика помеѓу преработките

Од Сподели wiki
Прејди на прегледникот Прејди на пребарувањето
Нема опис на уредувањето
 
Нема опис на уредувањето
Ред 1: Ред 1:
Во информатичката технологија термин кој најдобро ќе го опише кернелот е кернел. Тој е сржта на оперативниот систем кој се грижи за справување со ресурсите на системот и за комуникацијата помеѓу хардверските и софтверските компоненти. Како основа на сите оперативни системи кернелто обезбедува операции од ниските нивоа на слојот за апстракција за ресурси (особено меморија, процесори и влезно/излезни уреди) кои апликациите треба да ги контролираат за да ја обавуваат својата функција. кернелто ги олеснува овие потреби за процесите на апликациите преку механизми за комуникација меѓу внатрешните процеси и системските повици.
Во информатичката технологија термин кој најдобро ќе ја опише сржта на системот е јадро. Тој се грижи за справување со ресурсите на системот и за комуникацијата помеѓу хардверските и софтверските компоненти. Како основа на сите оперативни системи јадрото обезбедува операции од ниските нивоа на слојот за апстракција за ресурси (особено меморија, процесори и влезно/излезни уреди) кои апликациите треба да ги контролираат за да ја обавуваат својата функција. јадрото ги олеснува овие потреби за процесите на апликациите преку механизми за комуникација меѓу внатрешните процеси и системските повици.


Овие задачи се применети на различен начин за секој тип на кернел, во зависност од имплементацијата на нивниот дизајн. Додека монолитичките јадра се трудат да ги обезбедат овие потреби преку извршување на целиот код во еден мемориски простор/локација за зголемување на перформансите на системот, микро-јадрата ги обавуваат овие задачи во корисничкиот мемориски простор, трудејќи се да ја зголемат прилагодливоста и модуларноста на системот. Помеѓу овие две можности постои цел опсег од можности.
Овие задачи се применети на различен начин за секој тип на јадро, во зависност од имплементацијата на нивниот дизајн. Додека монолитичките јадра се трудат да ги обезбедат овие потреби преку извршување на целиот код во еден мемориски простор/локација за зголемување на перформансите на системот, микро-јадрата ги обавуваат овие задачи во корисничкиот мемориски простор, трудејќи се да ја зголемат прилагодливоста и модуларноста на системот. Помеѓу овие две можности постои цел опсег од можности.


Повеќето оперативни систем се потпираат на јадрениот концепт за системи. Постоењето на кернел произлегува од дизајнирањето на систем како серија од апстракциони слоеви, при што секој од нив се потпира на функциите на слојот едно ниво пониско. кернелто од оваа гледна точка едноставно името кое е дадено на најниското ниво на апстракција кое е применето за даден софтвер. Со цел избегнување на кернел, потребно е да се дизајнира целиот софтвер на оперативниот систем да не пристапува до апстракциони слоеви. На тој начин ќе се зголеми сложеноста на дизајнот до толкава мерка што само наједноставните системи би можеле да се имплементираат.  
Повеќето оперативни систем се потпираат на јадрениот концепт за системи. Постоењето на јадро произлегува од дизајнирањето на систем како серија од апстракциони слоеви, при што секој од нив се потпира на функциите на слојот едно ниво пониско. јадрото од оваа гледна точка едноставно името кое е дадено на најниското ниво на апстракција кое е применето за даден софтвер. Со цел избегнување на јадро, потребно е да се дизајнира целиот софтвер на оперативниот систем да не пристапува до апстракциони слоеви. На тој начин ќе се зголеми сложеноста на дизајнот до толкава мерка што само наједноставните системи би можеле да се имплементираат.  


= Linux јадро =
= Linux јадро =


[[Mandriva]], [[Redhat]], [[Debian]], [[Slackware]] не се [[кернел|Linux]]. Тоа се дистрибуции кои се базирани на Linux кернелто. Едноставно кажано тоа е комплексен програм кој во основа е земен како главен носач на даемоните, сервисите и сите други работи што работат под еден оперативен систем.
[[Mandriva]], [[Redhat]], [[Debian]], [[Slackware]] не се [[јадро|Linux]]. Тоа се дистрибуции кои се базирани на Linux јадрото. Едноставно кажано тоа е комплексен програм кој во основа е земен како главен носач на даемоните, сервисите и сите други работи што работат под еден оперативен систем.


Поради отворената природата на кернелто, тоа ни овозможува него да го конфигурираме (менуваме) со цел да го подобриме и прилагодиме неговото работење. Откако Linux-от ќе стане вашиот „примарен“ оперативен систем, ке забележите дека прекомпајлирањето на кернелот е многу честа работа.  
Поради отворената природата на јадрото, тоа ни овозможува него да го конфигурираме (менуваме) со цел да го подобриме и прилагодиме неговото работење. Откако Linux-от ќе стане вашиот „примарен“ оперативен систем, ке забележите дека прекомпајлирањето на јадрото е многу честа работа.  
Можеби сега ќе се прашате "А зашто треба да го прекомпајлирам мојот кернел, кога и вака
Можеби сега ќе се прашате "А зашто треба да го прекомпајлирам мојот јадро, кога и вака
работи во ред?". Има три причини зашто треба да го прекомпајлирате вашиот кернел. Прво, можеби имате некој нов хардвер додаден на вашиот компјутер чии модули неможете да ги најдете ни на cd то од дистрибуцијата. Второ, можеби вашиот кернел има некоја грешка (bug), која подоцна е поправена и вие треба да ја имплементирате поправката (bugfix) во вашиот кернел. И последната причина се појавува тогаш кога ке снимите некој нов софтвер кој бара понова верзија на вашиот кернел.
работи во ред?". Има три причини зашто треба да го прекомпајлирате вашиот јадро. Прво, можеби имате некој нов хардвер додаден на вашиот компјутер чии модули неможете да ги најдете ни на cd то од дистрибуцијата. Второ, можеби вашиот јадро има некоја грешка (bug), која подоцна е поправена и вие треба да ја имплементирате поправката (bugfix) во вашиот јадро. И последната причина се појавува тогаш кога ке снимите некој нов софтвер кој бара понова верзија на вашиот јадро.


== Ресурси ==
== Ресурси ==


Местото каде што можете да најдете најмногу работи за Linux кернелот е [ftp://ftp.kernel.org ftp.kernel.org]. Ако сакате да ја пробате најновиот кернел, пронајдете ја последната верзија и симнете ја во /usr/src. Потоа во тој директориум отпакувајте го истиот со tar zxf параметрите. Ако немате потреба од најновата верзија, тогаш истите стапки може да ги повторите, само што кернелот ќе го преснимите од соодветното CD.
Местото каде што можете да најдете најмногу работи за [[Linux]] јадрото е [ftp://ftp.kernel.org ftp.kernel.org]. Ако сакате да ја пробате најновиот јадро, пронајдете ја последната верзија и симнете ја во /usr/src. Потоа во тој директориум отпакувајте го истиот со [[tar]] zxf параметрите. Ако немате потреба од најновата верзија, тогаш истите стапки може да ги повторите, само што јадрото ќе го преснимите од соодветното CD.


== Конфигурирање и Компајлирање ==
== Конфигурирање и Компајлирање ==


Влезете во директориумот на отпакуваниот кернел:  
Влезете во директориумот на отпакуваниот јадро:  
   # cd /usr/src/linux
   # cd /usr/src/linux
и извршете ја командата:
и извршете ја командата:
Ред 27: Ред 27:


Оваа наредба ќе „изгради“ (компилира) некои кориснички менија и програми, со цел да
Оваа наредба ќе „изгради“ (компилира) некои кориснички менија и програми, со цел да
се овозможи полесно (user friendly) конфигурирање. Тоа што ќе го видите на екранот по
се овозможи полесно конфигурирање. Тоа што ќе го видите на екранот по
завршување со работата на оваа наредба, е прозорецот преку кој вие ќе треба да
завршување со работата на оваа наредба, е прозорецот преку кој вие ќе треба да
изберете како ќе го конфигурирате (како ќе изгледа) вашиот нов кернел.
изберете како ќе го конфигурирате (како ќе изгледа) вашиот нов јадро.
По завршување на потребните измени, снимете ја тековната конфигурација и напишете ги
По завршување на потребните измени, снимете ја тековната конфигурација и напишете ги
следниве наредби:
следниве наредби:
Ред 37: Ред 37:


Првата наредба проверува дали сите елементи - ресурси кои се потребни за изградба на
Првата наредба проверува дали сите елементи - ресурси кои се потребни за изградба на
новиот кернел, се на правото место. Make clean наредбата ги "чисти" несаканите датотеки останати од стариот кернел (ако правите мали измени на претходно компилиран кернел, не ја извршувајте оваа команда за да го забрзате процесот).  
новиот јадро, се на правото место. Make clean наредбата ги "чисти" несаканите датотеки останати од стариот јадро (ако правите мали измени на претходно компилиран јадро, не ја извршувајте оваа команда за да го забрзате процесот).  
Кога целата оваа процедура ке заврши без да се појави никаков проблем или грешка,
Кога целата оваа процедура ке заврши без да се појави никаков проблем или грешка,
тогаш сте спремни да го компајлирате вашиот нов кернел и да го пуштите во употреба.
тогаш сте спремни да го компајлирате вашиот нов јадро и да го пуштите во употреба.
За да почнете со компалирање напишете:
За да почнете со компалирање напишете:


Ред 51: Ред 51:
== Инсталација ==
== Инсталација ==


Инсталацијата е последниот чекор од процесот на компајлирање на вашиот нов кернел. На
Инсталацијата е последниот чекор од процесот на компајлирање на вашиот нов јадро. На
Intel-базираните системи кернелот се инсталира во /boot директориумот со следнава
Intel-базираните системи јадрото се инсталира во /boot директориумот со следнава
наредба:
наредба:


Ред 68: Ред 68:
* '''label = new'''
* '''label = new'''


На следното бутирање на компјутерот изберете го новиот кернел, во случајов new, и ќе ви
На следното бутирање на компјутерот изберете го новиот јадро, во случајов new, и ќе ви
се пушти новиот кернел. Ако работи добро новокомпајлираниот кернел тогаш поместете ја
се пушти новиот јадро. Ако работи добро новокомпајлираниот јадро тогаш поместете ја
линијата image = /boot/newkernel на првата позиција од lilo.conf или grub.conf датотеката.
линијата image = /boot/newkernel на првата позиција од lilo.conf или grub.conf датотеката.
Земајќи предвид дека содржината на овој текст е робустна (не е детално објаснет
Земајќи предвид дека содржината на овој текст е робустна (не е детално објаснет
Ред 80: Ред 80:
[http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO.html Kernel Howto]
[http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO.html Kernel Howto]


[http://en.wikipedia.org/wiki/Kernel_(computer_science) кернел]  
[http://en.wikipedia.org/wiki/Kernel_(computer_science) јадро]  


[http://en.wikipedia.org/wiki/Microkernel Микро-јадра]
[http://en.wikipedia.org/wiki/Microkernel Микро-јадра]

Преработка од 20:17, 21 март 2007

Во информатичката технологија термин кој најдобро ќе ја опише сржта на системот е јадро. Тој се грижи за справување со ресурсите на системот и за комуникацијата помеѓу хардверските и софтверските компоненти. Како основа на сите оперативни системи јадрото обезбедува операции од ниските нивоа на слојот за апстракција за ресурси (особено меморија, процесори и влезно/излезни уреди) кои апликациите треба да ги контролираат за да ја обавуваат својата функција. јадрото ги олеснува овие потреби за процесите на апликациите преку механизми за комуникација меѓу внатрешните процеси и системските повици.

Овие задачи се применети на различен начин за секој тип на јадро, во зависност од имплементацијата на нивниот дизајн. Додека монолитичките јадра се трудат да ги обезбедат овие потреби преку извршување на целиот код во еден мемориски простор/локација за зголемување на перформансите на системот, микро-јадрата ги обавуваат овие задачи во корисничкиот мемориски простор, трудејќи се да ја зголемат прилагодливоста и модуларноста на системот. Помеѓу овие две можности постои цел опсег од можности.

Повеќето оперативни систем се потпираат на јадрениот концепт за системи. Постоењето на јадро произлегува од дизајнирањето на систем како серија од апстракциони слоеви, при што секој од нив се потпира на функциите на слојот едно ниво пониско. јадрото од оваа гледна точка едноставно името кое е дадено на најниското ниво на апстракција кое е применето за даден софтвер. Со цел избегнување на јадро, потребно е да се дизајнира целиот софтвер на оперативниот систем да не пристапува до апстракциони слоеви. На тој начин ќе се зголеми сложеноста на дизајнот до толкава мерка што само наједноставните системи би можеле да се имплементираат.

Linux јадро

Mandriva, Redhat, Debian, Slackware не се Linux. Тоа се дистрибуции кои се базирани на Linux јадрото. Едноставно кажано тоа е комплексен програм кој во основа е земен како главен носач на даемоните, сервисите и сите други работи што работат под еден оперативен систем.

Поради отворената природата на јадрото, тоа ни овозможува него да го конфигурираме (менуваме) со цел да го подобриме и прилагодиме неговото работење. Откако Linux-от ќе стане вашиот „примарен“ оперативен систем, ке забележите дека прекомпајлирањето на јадрото е многу честа работа. Можеби сега ќе се прашате "А зашто треба да го прекомпајлирам мојот јадро, кога и вака работи во ред?". Има три причини зашто треба да го прекомпајлирате вашиот јадро. Прво, можеби имате некој нов хардвер додаден на вашиот компјутер чии модули неможете да ги најдете ни на cd то од дистрибуцијата. Второ, можеби вашиот јадро има некоја грешка (bug), која подоцна е поправена и вие треба да ја имплементирате поправката (bugfix) во вашиот јадро. И последната причина се појавува тогаш кога ке снимите некој нов софтвер кој бара понова верзија на вашиот јадро.

Ресурси

Местото каде што можете да најдете најмногу работи за Linux јадрото е ftp.kernel.org. Ако сакате да ја пробате најновиот јадро, пронајдете ја последната верзија и симнете ја во /usr/src. Потоа во тој директориум отпакувајте го истиот со tar zxf параметрите. Ако немате потреба од најновата верзија, тогаш истите стапки може да ги повторите, само што јадрото ќе го преснимите од соодветното CD.

Конфигурирање и Компајлирање

Влезете во директориумот на отпакуваниот јадро:

 # cd /usr/src/linux

и извршете ја командата:

 # make xconfig

или за понапредни корисници,

 # make menuconfig

Оваа наредба ќе „изгради“ (компилира) некои кориснички менија и програми, со цел да се овозможи полесно конфигурирање. Тоа што ќе го видите на екранот по завршување со работата на оваа наредба, е прозорецот преку кој вие ќе треба да изберете како ќе го конфигурирате (како ќе изгледа) вашиот нов јадро. По завршување на потребните измени, снимете ја тековната конфигурација и напишете ги следниве наредби:

  • make dep
  • make clean

Првата наредба проверува дали сите елементи - ресурси кои се потребни за изградба на новиот јадро, се на правото место. Make clean наредбата ги "чисти" несаканите датотеки останати од стариот јадро (ако правите мали измени на претходно компилиран јадро, не ја извршувајте оваа команда за да го забрзате процесот). Кога целата оваа процедура ке заврши без да се појави никаков проблем или грешка, тогаш сте спремни да го компајлирате вашиот нов јадро и да го пуштите во употреба. За да почнете со компалирање напишете:

  • make bzImage

Оваа наредба може малку повеќе време да ви одземе, поготово ако имате постар компјутер. Ако и оваа наредба заврши успешно како и претходните две тогаш напишете:

  • make modules.

Инсталација

Инсталацијата е последниот чекор од процесот на компајлирање на вашиот нов јадро. На Intel-базираните системи јадрото се инсталира во /boot директориумот со следнава наредба:

  • cp /usr/src/linux/arch/i386/boot/bzImage /boot/newkernel

Потоа напишете:

  • make modules_install

Ова ќе ги инсталира соодветните модули во /lib/modules. И последно што треба да направите е да го измените /etc/lilo.conf или /etc/grub.conf, во зависност од пуштачот на системот што го користите. Во lilo.conf или grub.conf датотеките додадете ги следниве две линии (man grub, man lilo):

  • image = /boot/newkernel
  • label = new

На следното бутирање на компјутерот изберете го новиот јадро, во случајов new, и ќе ви се пушти новиот јадро. Ако работи добро новокомпајлираниот јадро тогаш поместете ја линијата image = /boot/newkernel на првата позиција од lilo.conf или grub.conf датотеката. Земајќи предвид дека содржината на овој текст е робустна (не е детално објаснет процесот на компајлирање), предлагам за оние кои што сакаат подетално да ја разгледаат оваа процедура, да ги погледнат Kernel HOWTO или документите на ftp://ftp.kernel.org.

Врски

Kernel Howto

јадро

Микро-јадра

Монолитички јадра