Линук кернел: развој, опис процеса развоја, изградња, инсталација, ажурирање. Како надоградити Линук кернел?

10. 6. 2019.

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

Како се појавио Линук?

линук кернел

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

Шта се зна о њему?

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

Важно је напоменути да корисници изражавају велики интерес за функционисање Линук кернела и, у принципу, за читав оперативни систем. Тако, убрзо након појављивања Миник-а, појавила се и посебна новинска група УСЕНЕТ, намењена искључиво за дискусију о овом систему. Након неколико недеља, ова група је имала више од 40.000 претплатника, од којих је већина покушала да дода много могућности систему, покушавајући да га учини много већим и бољим. Сваког дана, стотине људи широм свијета размишљало је о томе које друге идеје и исјечке кода могу бити предложене.

Међутим, многи се питају зашто је сада толико мало литературе на Линук кернелу, али у ствари могло би бити неколико разлога.

Комерцијална вредност документације

како ажурирати Линук кернел

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

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

Потешкоће у савладавању текстова

линук кернел десцриптион

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

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

Предложен је један могући приступ Линус Торвалдс, што је био развој Линук кернела. Он је предложио потпуну јасноћу изворног кода, односно пружање изузетно јасне структуре, усер-фриендли интерфејсе, као и поштовање принципа "уради мало, али уради то квалитативно".

Ако говоримо о приступу који је предложио Андрев Мортон, овде нудимо више коментара директно у самом изворном коду, тако да читалац може да схвати коначну намеру програмера.

Које су разлике између Уник кернела и Линука?

Наравно, опис Линук кернела се значајно разликује од основног описа Уника, али многи не знају које су то разлике.

Због истог АПИ-ја, као и заједничког поријекла, модерни Уник кернели су прилично слични једни другима, а изнимке су неке монолитне статичне бинарне датотеке које постоје као велике извршне слике које се покрећу само једном и користе једну копију адресног простора. Да би се осигурао нормалан рад Уника, потребно је обезбиједити комплетан систем са контролом контролера меморије страничне меморије, са којим ће бити могуће осигурати ефикасну заштиту меморије у систему, као и омогућити сваком појединачном процесу властити виртуални адресни простор.

Линук кернел се не заснива на ниједном Уник систему и потпуно је монолит. Међутим, упркос томе, његова структура обезбеђује одређена својства микронуклеарне архитектуре.

Разлике

линук кернел инсталлатион

Постоји неколико разлика које вам омогућавају да разумете како препознати Линук кернел:

  • Прије свега, вриједи напоменути могућност подржавања динамички учитаних модула. Упркос чињеници да је језгро овог оперативног система потпуно монолитно, додатно се подржава и могућност динамичког учитавања и уклањања кода у случају такве потребе. Ова особина се првобитно појавила у верзији 0.99, а томе је придонио Петер МацДоналд.
  • Језгро је способно да подржава симетрично вишеструко процесирање. У огромној већини комерцијалних верзија Уник ОС-а, ова функција је подржана, али у традиционалним имплементацијама таква подршка је чешће одсутна.
  • Линук кернел је пре-емптиве, то јест, може потпуно истиснути извршни задатак чак и ако ради у моду датог кернела. Међу већином комерцијалних имплементација, пре-емптиве кернел Уник ОС-а има само ИРИКС, Соларис и Уник.
  • У Линуку је било уобичајено користити потпуно другачији приступ имплементацији нити, због чега се практично не разликују од стандардних процеса. Узимајући их са становишта кернела, може се рећи да су сви процеси апсолутно идентични, само неки од њих се разликују по доступности заједничких ресурса.
  • Линук кернел, опис процеса развоја који ће бити приказан касније, нема одређене Уник функције за које је утврђено да су лоше имплементиране. Ово се посебно односи на СТРЕАМС и неке друге.

Модули

како препознати Линук кернел

Упркос чињеници да је систем монолитни, може се користити за динамичко уметање или уклањање кернел кода у време рада. Објекти који се могу учитати језгром су модули Линук кернела.

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

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

Скупштина

Линук кернел је направљен помоћу специјализованог програма Маке. Након што добијете изворни кернел, потребно је да распакујете архиву линук-2.6.18.тар.бз2, што се ради уз помоћ посебног Тар услужног програма који се отвара у име суперкорисника.

Команда маке дефцонфиг ће вам омогућити да користите стандардну конфигурацију за ову архитектуру, али треба да разумете да у већини случајева то није довољно, тако да морате ручно да конфигуришете кернел. Да бисте позвали програм за конфигурацију језгра, унесите команду маке менуцонфиг. Све додатне информације о томе шта су параметри наредбе маке можете наћи у засебној РЕАДМЕ датотеци.

Да би се кернел покренуо у минималној конфигурацији, довољно је једноставно навести управљачки програм ИДЕ контролера који користите у секцији "ПЦИ ИДЕ цхипсет суппорт". Поред тога, треба обратити пажњу на одељак "Системи датотека", где би требало означити постојеће системе датотека.

Кернел буилд почиње након притиска наредбе маке. У већини случајева, користи се наредба маке -ј2, јер ће бити могуће надоградити Линук кернел много брже. У овом случају, параметар –ј2 означава да се истовремено покрећу двије нити извршења.

Опрез

линук кернел модули

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

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

Инсталирање Линук кернела траје око 20 минута, док је вредно напоменути да се кернел буилд, који је изграђен у складу са стандардном конфигурацијом, може обавити без креирања РАМ диска, јер у овом случају нема креирања важних покретачких програма.

Развој

линук кернел девелопмент

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

Системским позивима обезбеђена је гаранција стабилног и сигурног рада система. С обзиром да је језгро посредник између различитих програма и системских ресурса, они могу доносити одлуке о одобравању приступа у потпуности у складу са правима корисника, као и низ других критерија.

Развој апликативних програма врши се уз помоћ специјализованих софтверских интерфејса. У овом случају, нема потребе за корелацијом између интерфејса помоћу апликација и оних које обезбеђује сам кернел. Може постојати потпуно идентичан АПИ за неколико оперативних система, док његова имплементација може бити одлична. На пример, Линук и ФрееБСД систем који су до сада познати у потпуности су у складу са ПОСИКС стандардом, као резултат тога већина апликација написаних посебно за један оперативни систем може касније да се пренесе у други ако је потребно.

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

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

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

Важно је напоменути да у савременим системским процесима истовремено користе два виртуелна ресурса.