5Aug
Са више од 13 милиона линија кода, Линук кернел је један од највећих опен соурце пројеката на свету, али шта је кернел и за шта се користи?
Дакле, шта је кернел?
Кернел је најнижи ниво лако заменљивог софтвера који се повезује са хардвером на вашем рачунару.Одговоран је за повезивање свих ваших апликација које се покрећу у "корисничком режиму" до физичког хардвера и омогућавајући процесима, познатим као серверима, да добијају информације један од другог користећи интер-процесну комуникацију( ИПЦ).
Различите врсте језгара
Постоје, наравно, различити начини за изградњу кернела и архитектонских разматрања приликом изградње једног од нуле.Уопштено гледано, већина сржи спада у један од три врсте: монолитна, микро-кернел и хибридна.Линук је монолитни кернел док ОС Кс( КСНУ) и Виндовс 7 користе хибридне језгре.Хајде да направимо брзо обилазак три категорије како бисмо касније могли детаљније да прођемо.
Имаге би попцорн уптовн
Мицрокернел
Микрокернел приступа само управљању оним што има: ЦПУ, меморију и ИПЦ.Прилично све друго на рачунару може се посматрати као додатак и може се управљати у корисничком режиму.Мицрокернелс имају предност преносивости јер не морају да брину ако промените видео картицу или чак оперативни систем све док оперативни систем и даље покушава да приступи хардверу на исти начин.Микрокернели такође имају веома мали отисак, како за меморију, тако и за инсталацију простора, и имају тенденцију да буду сигурнији, јер се само специфични процеси покрећу у корисничком режиму који нема високе дозволе као надзорни мод.
Прос
- Преносивост
- Мали инсталациони отисак
- Мали меморијски отисак
- Безбедност
Свети
- Хардвер се апстрахује преко драјвера
- Хардвер може реагирати спорије јер су управљачки програми у корисничком режиму
- Процеси морају чекати у реду да би добили информације
- Процеси не могудобити приступ другим процесима без чекања
Монолитни кернел
Монолитни језгри су супротни од микрокрмела јер не обухватају само ЦПУ, меморију и ИПЦ, већ укључују и ствари као што су управљачки програми, управљање датотекама и системски позиви.Монолитни језгри имају тенденцију да буду бољи у приступу хардверу и мултитаскингу, јер ако програм треба да добије информације из меморије или неки други процес који ради, он има више директне линије за приступ и не мора да чекира у реду да би се ствари завршиле.Међутим, то може проузроковати проблеме јер више ствари које се покрећу у надзорном режиму, то ће више ствари довести до тога да се ваш систем уколико се не понаша исправно.
Прос
- Више директан приступ хардверу за програме
- Лакши за комуникације између сваког другог
- Ако је ваш уређај подржан, он треба радити без додатних инсталација
- Процеси реагују брже јер нема реда за процесорско вријеме
Цонс
- Ларгеинсталирати подножје
- Велики меморијски отисак
- Мање сигуран јер се све покреће у супервизорском режиму
Имаге виа сцхосцхие на Флицкр
Хибрид Кернел
Хибрид кернелс имају могућност да изаберу шта хоће да покрену у корисничком моду и шта они желе покренути у супервизорумод.Често се ствари попут управљачких програма уређаја и И / О датотечног система покрећу у корисничком режиму док ИПЦ и серверски позиви остају у надзорном режиму.Ово даје најбоље од оба свијета, али често ће захтијевати више рада произвођача хардвера, јер је сва одговорност за возача њихова.Такође може имати и неке проблеме са латентностима који су инхерентни микрокрмилијама.
Прос
- Развојни програмер може изабрати које се кораке у корисничком моду и шта ради у супервизорском режиму
- Мања инсталација отиска од монолитног језгра
- Флексибилнији од других модела
Цонс
- Може да пати од истог процесног заостајања као микрокернел
- Управљачима уређаја треба управљати корисник( обично)
Где су Линук кернел фајлови?
Датотека кернела у Убунту-у се чува у вашој / боот фолдер и назива се вмлинуз- верзија .Назив вмлинуз долази из уник света где су своје језгре назвали једноставно "уник" у 60-им, тако да је Линук почео да зове свој кернел "линук" када је први пут развијен 90-их.
Када је виртуелна меморија развијена за лакше мултитаскинг могућности, "вм" је постављен на предњој страни датотеке како би се показало да кернел подржава виртуелну меморију.Неко време се језгро Линука назвало вмлинук, али је кернел порастао превише да би се уклопио у расположиву боот меморију тако да је слика кернела била компримована, а крај Кс промењен у з да би се показао да је компримован злиб компресијом.Ова иста компресија се не користи увек, често се замењује са ЛЗМА или БЗИП2, а неки језгри се једноставно зову зИмаге.
Бројање верзија ће бити у формату А.Б.Ц.Д гдје ће А.Б вероватно бити 2.6, Ц ће бити ваша верзија, а Д означава ваше закрпе или исправке.
У / боот директоријуму ће се наћи и друге веома важне датотеке које се називају инитрд.имг-версион, систем.мап-версион, и цонфиг-версион.Инитрд датотека се користи као мали РАМ диск који извлачи и извршава стварну датотеку кернела.Датотека систем.мап се користи за управљање меморијом пре него што се кернел потпуно учита, а конфигурацијска датотека говори кернелу које опције и модуле се учитавају у слику кернела када се она сакупља.
Линук Кернел Арцхитецтуре
Пошто је Линук кернел монолитан, он има највећи отисак и најсложеније у односу на друге типове зрна.Ово је била дизајнерска карактеристика која је била у прилично дебатној расправи у раним данима Линука и још увек носи неке од истих недостатака дизајна у којима су монолитни језгри инхерентни.
Једна ствар коју су програмери Линук кернела урадили да би се окретали овим недостацима је био да направите моделе кернела које би се могле учитати и истоваривати у вријеме извршавања, што значи да можете додати или уклонити функције вашег кернела на љето.Ово може проћи кроз само додавање хардверске функционалности у кернел, укључивањем модула који покрећу послужитељске процесе, као што је виртуелизација на ниском нивоу, али такођер може омогућити замјену читавог језгра без потребе за поновним покретањем рачунара у неким случајевима.
Замислите да ли можете да надоградите на Виндовс сервисни пакет без икаквог поновног покретања. ..
Кернел Модули
Шта ако је Виндовс већ имао инсталиран сваки возач и једноставно сте морали да укључите драјвер који вам је потребан?То је у суштини оно што кернел модули ради за Линук.Модули језгре, познати и као модул поузданог кернела( ЛКМ), су од суштинског значаја за одржавање кернела функционисањем са свим својим хардвером без потребе за потрошњом све доступне меморије.
Модул типично додаје функционалност основном језгру за ствари као што су уређаји, датотечни системи и системски позиви.ЛКМс имају екстензију датотеке. ко и обично се чувају у директоријуму /lib/ модула.Због њихове модуларне природе лако можете прилагодити свој кернел постављањем модула за учитавање или без оптерећења током покретања помоћу менуцонфиг наредбе или уређивањем вашег /boot/ конфигурационог фајла или можете уцитавати и истовремено истоварати моделе уз помоћ модпробе наредбе.
Модули треће стране и затвореног извора су доступни у неким дистрибуцијама, као што је Убунту, и можда се не инсталирају подразумевано зато што изворни код за модуле није доступан.Програмер софтвера( тј. НВидиа, АТИ, између осталог) не пружају изворни код, већ граде своје сопствене модуле и компајлирају потребне. ко датотеке за дистрибуцију.Иако су ови модули бесплатни као у пиву, они нису слободни као у говору и на тај начин нису обухваћени неким дистрибуцијама, јер одржавачи сматрају да је "оштетио" језгро пружањем не-слободног софтвера.
Кернел није магија, али је потпуно неопходан за сваки рачунар који ради правилно.Линук кернел је различит од ОС Кс и Виндовса, јер укључује драјвере на нивоу кернела и чини многе ствари подржане "ван кутије".Надамо се да ћете знати нешто више о томе како ваш софтвер и хардвер функционишу заједно и које датотеке требате покренути на рачунару.
Кернел.орг
Слика од ингридтаилар