Ядрото на Linux е като мост, който позволява изчислителна комуникация между приложения и хардуер и управлява ресурсите на системата. Линус Торвалдс разработи ядрото на Linux със C и Assembly и по този начин той успя да създаде леко и преносимо ядро, което беше пуснато на обществеността като отворен код.

Можете да видите ядрото на Linux в много различни сектори като космос, компютри, смарт часовници, мобилни телефони, роботика и здравеопазване. Но чудили ли сте се някога как работи ядрото на Linux под капака?

Използване на хардуер на Linux

Linux ядрото, на първо място, контролира кой хардуер ще работи и по какъв начин, когато включите компютъра си. В допълнение, управлението на софтуер от висок клас е възможно благодарение на интерфейса за програмиране. За да дадем пример за тези контроли, възможно е да видите информация за хардуера, инсталиран в слотовете на вашата дънна платка, и да се възползвате от тази подробна информация.

Освен това този интерфейс за програмиране предоставя слой за абстракция. Например, ако искате да проведете видео разговор с приятелите си, ще ви трябва уеб камера. Абстракционният слой прави възможно софтуерът, който използвате, да използва тази уеб камера, независимо от нейната марка и модел. Софтуерът тук може да използва само интерфейса, който съществува за Linux. Ядрото на Linux преобразува извикванията на функцията на този интерфейс в действителни хардуерни команди, от които се нуждае уеб камерата.

instagram viewer

Използвайки /proc и /sys виртуални файлови системи, ядрото на Linux може експортиране на подробна информация за хардуера то открива. По-долу можете да видите няколко инструмента, използвани за това и кои устройства и карти експортират:

  • lspci: За PCI устройства
  • lsusb: За USB устройства
  • lspcmcia: За PCMCIA карти

Както можете да видите, дистрибуцията на Linux на екранната снимка по-горе работи на VirtualBox. Въпреки това имате възможност да видите много информация като VGA, USB контролер, мостове и SATA контролер.

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

В ядрото на Linux приложенията обикновено имат достъп до устройства чрез специални файлове, които съществуват в /dev указател. Тези специални файлове представляват дискови устройства и други физически устройства. Файлове като /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 и dev/snd/* са примери за тези специални файлове.

Управление на файловата система на Linux

Файловите системи са един от най-забележителните компоненти на ядрото на Linux. Файловата система на Linux е едно от най-големите му предимства. Всички файлове на Linux система се събират в един клон. По този начин потребителите могат да използват тази йерархия, за да достигнат до желаните от тях места.

Началната точка на тази йерархия е основната директория (/). Други поддиректории са под главната директория. Най-използваната поддиректория под / е /home указател. Тази поддиректория съдържа други поддиректории и всяка директория има файлове, които съхраняват действителните данни.

Например, можете да помислите за текстов файл на вашия работен плот. Ако създадете текстов файл, наречен helloworld.txt на вашия работен плот, можете да го наричате /home/muo/Desktop/helloworld.txt. Примерът за /muo тук разбира се ще варира. Тъй като името на тази поддиректория зависи от името на текущия ви потребител. С тази система за именуване ядрото на Linux преобразува между действително и физическо хранилище, което съществува на диска.

Освен това ядрото на Linux може да интегрира данни от няколко диска. Тук влиза в действие системата за монтаж. Той използва един от дисковете в основната система и монтира останалите към съществуващи директории в йерархията. След това други дискове се поставят под точки на монтиране. Това позволява на потребителите да съхраняват /home директория на втори твърд диск, която също съдържа други поддиректории.

Когато монтирате диск към /home директория, можете да получите достъп до тези директории от нормални местоположения. Така пътища като напр /home/muo/Desktop/helloworld.txt продължи да работи.

Можете да видите точките на монтиране между файловете на вашата система с findmnt -A команда.

С много формати на файловата система можете физически да съхранявате данни на дискове. Най-широко известните в Linux са ext2, ext3, и ext4 формати на файловата система. Има обаче много други формати на файловата система. Във всеки случай трябва да форматирате файловата система, преди да я монтирате. Можете да използвате команди като mkfs.ext3 (mkfs означава make file system и ext3 е файловата система) за това.

Тези команди приемат пътя на файла на устройството, който искате да форматирате, като параметър. Това е разрушителна операция и трябва да я използвате с повишено внимание, ако не искате да изтриете или нулирате файлова система.

Освен тези има и мрежови файлови системи като NFS които ядрото на Linux използва. NFS е мрежова файлова система, при която данните не се съхраняват на локален диск. С NFS данните преминават по мрежата към сървър, който съхранява данните. Тъй като данните ще бъдат на сървър, потребителите не трябва постоянно да се занимават с тях. Те също могат да използват традиционната йерархична файлова система на Linux, както обикновено.

Операции със споделена функция

Целият софтуер в системата Linux има общи функции. Ето защо тези функции са централни в ядрото на Linux. Например, когато отваряте файл, можете да го отворите само с името на файла, без да знаете къде физически се съхранява файлът и какви функции и операции ще използва. Всички тези функции вече присъстват в ядрото.

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

Управление на процеси в Linux

Активен екземпляр на програма, работеща с данни или информация в паметта, е известен като процес. Задачата на Linux ядрото е да генерира и следи тези региони на паметта. Ядрото разпределя паметта за работеща програма и зарежда изпълнимия код в паметта от файловата система. Веднага след това ядрото изпълнява кода.

Ядрото на Linux поддържа многозадачност. Той е в състояние да изпълнява множество процеси едновременно. Въпреки това има само една транзакция във всяка дадена времева рамка. Ядрото на Linux обаче разделя времето на малки части и в резултат на това всяка процедура се извършва последователно.

Тъй като тези малки времеви сегменти са на стъпки от милисекунди, те са активни само в определени моменти и остават неактивни през останалото време. Работата на ядрото на Linux тук е да увеличи максимално производителността чрез стартиране на множество процеси наведнъж.

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

Това обяснение не винаги е правилно. Истинското ограничение е, че може да има само един работен процес на процесорно ядро ​​в даден момент. Многопроцесорните системи позволяват няколко процеса да работят паралелно. Базовата система почти винаги има десетки работещи процеси.

Права за достъп в Linux

Както при други операционни системи, можете да създадете много потребители на Linux система. В такива случаи има система за управление на правата, която поддържа отделни потребители и групи. Това е където файлови и потребителски разрешения влизат в игра.

Ядрото на Linux управлява данните и проверява необходимите разрешения за всеки процес. Например, ако се опитате да отворите файл, ядрото трябва да провери идентификатора на процеса спрямо разрешенията за достъп. Ако ядрото провери и види, че имате разрешения, то ще отвори файла.

Ядрото на Linux контролира всичко

Както можете да видите, ядрото на Linux контролира всичко - от сигурността на вашите файлове до създаването на потребители и изтеглянето на файлове от интернет. Всичко е в определен ред. Всеки потребител има права. Ядрото на Linux управлява процеси и времеви интервали за максимална производителност.

Освен това файловата система, която е една от най-големите характеристики, които отличават ядрото на Linux от другите операционни системи, е много важна. Linux не е скрита кутия. Напротив, всички файлове и изходни кодове са достъпни. За да разберете по-добре практичната и мощна природа на ядрото на Linux, можете да разгледате йерархията на системната директория на Linux.