Почетна » како да » Шта је Линук кернел и шта ради?

    Шта је Линук кернел и шта ради?


    Са преко 13 милиона линија кода, Линук кернел је један од највећих опен соурце пројеката на свету, али шта је кернел и за шта се користи?

    Дакле, шта је кернел?

    Језгро је најнижи ниво лако заменљивог софтвера који се повезује са хардвером на рачунару. Он је одговоран за повезивање свих ваших апликација које се изводе у "корисничком режиму" до физичког хардвера, и дозвољава процесима, познатим као сервери, да добијају информације једни од других користећи интер-процесну комуникацију (ИПЦ).

    Различите врсте језгара

    Постоје, наравно, различити начини за изградњу кернела и архитектонских разматрања приликом изградње једног од нуле. Уопштено, већина зрна спада у један од три типа: монолитни, микрокернел и хибрид. Линук је монолитни кернел, док ОС Кс (КСНУ) и Виндовс 7 користе хибридне језгре. Хајде да направимо кратак обилазак три категорије како бисмо касније могли да се позабавимо детаљима.


    Имаге би уптовн попцорн

    Мицрокернел
    Микрокернел има приступ само управљању својим: ЦПУ-ом, меморијом и ИПЦ-ом. Готово све остало у компјутеру може се сматрати додатком и може се руковати у корисничком режиму. Микрокернели имају предност преносивости јер не морају да брину ако промените видео картицу или чак оперативни систем све док оперативни систем и даље покушава да приступи хардверу на исти начин. Микрокернели такође имају веома мали простор, и за меморију и за инсталацију, а имају тенденцију да буду сигурнији јер се само специфични процеси покрећу у корисничком режиму који нема високе дозволе као режим надзора..

    Прос

    • Преносивост
    • Мали инсталациони отисак
    • Мали меморијски отисак
    • Безбедност

    Цонс

    • Хардвер је више апстрахован кроз управљачке програме
    • Хардвер може реаговати спорије јер су возачи у корисничком режиму
    • Процеси морају чекати у реду да би добили информације
    • Процеси не могу добити приступ другим процесима без чекања

    Монолитхиц Кернел
    Монолитни кернели су супротни од микрокернела јер обухватају не само ЦПУ, меморију и ИПЦ, већ укључују и ствари као што су управљачки програми, управљање системом датотека и позиви системског сервера. Монолитни кернели имају тенденцију да буду бољи у приступу хардверу и мултитаскингу, јер ако програм треба да добије информације из меморије или другог процеса који се покреће има више директне линије за приступ и не мора да чека у реду да би се ствари обавиле. Ово, међутим, може проузроковати проблеме јер што више ствари ради у режиму супервизора, више ствари може да сруши ваш систем ако се не понашате како треба.

    Прос

    • Директнији приступ хардверу за програме
    • Лакше је комуницирати између процеса
    • Ако је ваш уређај подржан, требало би да ради без додатних инсталација
    • Процеси брже реагују јер не постоји ред за процесорско време

    Цонс

    • Велики инсталациони отисак
    • Велики меморијски отисак
    • Мање је сигурно јер све ради у супервизорском моду


    Слика преко сцхосцхие на Флицкр

    Хибрид Кернел
    Хибридна језгра имају могућност да изаберу и изаберу шта желе да раде у корисничком режиму и шта желе да раде у режиму супервизора. Често се ствари као што су управљачки програми уређаја и И / О датотечног система изводе у корисничком режиму док ће се позиви ИПЦ-а и сервера чувати у режиму надзора. Ово даје најбоље од оба свијета, али често ће захтијевати више рада произвођача хардвера јер је сва одговорност возача на њима. Такође може имати неке од проблема са кашњењем који су својствени микрокернелима.

    Прос

    • Програмер може да изабере оно што се покреће у корисничком режиму и шта ради у режиму супервизора
    • Мањи инсталациони отисак него монолитни кернел
    • Флексибилнији од других модела

    Цонс

    • Може патити од истог процеса кашњења као микрокернел
    • Управљачима уређаја мора управљати корисник (обично)

    Где су Линук кернел фајлови?

    Фајл кернела у Убунту-у се чува у вашој / боот фасцикли и зове се вмлинуз-версион. Име вмлинуз долази из уник света где су се језгра звали једноставно "уник" још 60-их година па је Линук почео да зове кернел "линук" када је први пут развијен 90-их.

    Када је виртуелна меморија развијена за лакше мултитаскинг способности, “вм” је стављен на предњу страну датотеке да покаже да кернел подржава виртуелну меморију. Једно време се Линук кернел звао вмлинук, али је кернел постао превелик да би се уклопио у расположиву боот меморију тако да је слика језгра компресована и крај к је промењен у з да би се приказао да је компримован са злиб компресијом. Ова иста компресија се не користи увек, често замењена са ЛЗМА или БЗИП2, а неки кернели се једноставно називају зИмаге.

    Нумерисање верзије ће бити у формату А.Б.Ц.Д где ће А.Б вероватно бити 2.6, Ц ће бити ваша верзија, а Д означава ваше закрпе или исправке.

    У фасцикли / боот постоје и друге веома важне датотеке под називом инитрд.имг-версион, систем.мап-версион и цонфиг-версион. Инитрд датотека се користи као мали РАМ диск који издваја и извршава стварну датотеку кернела. Датотека систем.мап се користи за управљање меморијом пре него што се кернел у потпуности учита, а конфигурациони фајл кернелу каже које опције и модули се учитавају у слику језгра када се компајлира.

    Архитектура језгра Линука

    Будући да је Линук кернел монолитни, он има највећи отисак и најсложенији од осталих типова кернела. Ово је била карактеристика дизајна која је била под доста дебата у раним данима Линука и још увијек носи неке од истих мана дизајна које су монолитни кернели својствени да имају.

    Једна ствар коју су програмери Линук кернела урадили да би заобишли ове недостатке је да направе кернел модуле који се могу учитати и искрцати током извођења, што значи да можете додати или уклонити функције кернела у ходу. Ово може ићи даље од додавања хардверске функционалности кернелу, укључујући модуле који покрећу серверске процесе, као што је виртуелизација ниског нивоа, али такође може дозволити да се цео кернел замени без потребе за поновним покретањем рачунара у неким случајевима.

    Замислите да можете надоградити на Виндовс сервисни пакет без потребе за поновним покретањем ...

    Кернел Модулес

    Шта ако Виндовс има већ инсталиран сваки управљачки програм, а ви само морате да укључите потребне управљачке програме? То је у суштини оно што кернел модули раде за Линук. Модули језгра, познати и као кернел који се може учитати (ЛКМ), су неопходни за одржавање кернела са свим вашим хардвером без конзумирања све расположиве меморије.

    Модул обично додаје функционалност основном кернелу за ствари као што су уређаји, системи датотека и системски позиви. ЛКМ-ови имају датотечни наставак .ко и обично се чувају у директорију / либ / модули. Због своје модуларне природе лако можете прилагодити свој кернел постављањем модула за учитавање, или не учитавање, током покретања с командом менуцонфиг или уређивањем / боот / цонфиг датотеке, или можете учитати и истоварити модуле у покрету помоћу модпробе команду.

    Модули треће стране и затвореног извора доступни су у неким дистрибуцијама, као што је Убунту, и можда неће бити инсталирани по дефаулту јер изворни код за модуле није доступан. Програмер софтвера (тј. НВидиа, АТИ, између осталог) не обезбеђује изворни код, већ граде сопствене модуле и компилирају потребне .ко датотеке за дистрибуцију. Иако су ови модули бесплатни као у пиву, они нису слободни као у говору и стога нису укључени у неке дистрибуције зато што одржавачи сматрају да „квари“ кернел тако што обезбеђује неслободан софтвер.

    Кернел није магија, али је потпуно неопходан за било који рачунар који исправно ради. Линук кернел се разликује од ОС Кс-а и Виндовс-а јер укључује управљачке програме на нивоу кернела и чини многе ствари подржаним „ван оквира“. Надамо се да ћете знати нешто више о томе како ваш софтвер и хардвер раде заједно и које датотеке требате да покренете рачунар.

    Кернел.орг
    Имаге би ингридтаилар