Skip to main content

Какво е ядрото на Linux?

???? Как собрать скомпилить ядро Linux (Април 2025)

???? Как собрать скомпилить ядро Linux (Април 2025)
Anonim

За обикновените потребители и по-малко от хардкор феновете Linux е операционна система. За пуристите обаче заглавието "Linux" е запазено за ядрото, което захранва операционната система. Ако сте любопитни за това какво е ядрото на Linux, нека да отговоря на този въпрос с едно око на новия потребител.

Режими

Преди да обясним какво е ядрото, важно е да разберете термините "потребителски режим" и "режим на ядрото". Потребителският режим е, когато изпълняващият код няма възможност за директен достъп до хардуера или паметта за справка. За да получите достъп до хардуера и паметта, кодът, който се изпълнява в потребителския режим, трябва да делегира инструкции към системните интерфейси за програмиране на приложения (APIs). Режимът на ядрото е, когато изпълняващият код има неограничен достъп до целия хардуер и е запазен за най-надеждните функции на операционната система.

Какво представлява ядрото?

Всяка операционна система има ядро. Windows, MacOS, iOS, Android, Chrome OS и Linux имат ниска система, която отговаря за взаимодействието на всички приложения с физическия хардуер на компютъра. Без ядрото нито една от вашите приложения няма да може да използва физическия компютър; приложения като Firefox, Chrome, LibreOffice, MS Office или Outlook няма да работят. Ядрото също така отговаря за това, че процесите за обмен на информация се използват чрез т.нар. IPC (Inter-Process Communication).

Съществуват (общо казано) три вида ядки:

  • Монолитни ядки: тези ядра обхваща процесора, паметта, IPC, драйверите на устройства, управлението на файловата система и системните сървъри. Също така е отговорен за предаването на безплатна системна памет на приложения. Тези типове ядра обикновено са по-добри при достъпа до хардуер и мултитаскинг.
  • Микрокърнъла: Microkernels приемат минималистичен подход и управляват само процесора, паметта и IPC.
  • Хибридни ядки: Хибридните ядра имат способността да решават какво искат да се изпълняват в режим на потребител или ядро. Въпреки че това осигурява най-доброто от двата свята, това изисква много повече от производителите на хардуер да създават драйвери, които служат за интерфейс между работещ код и хардуер.

Linux използва монолитно ядро ​​с отворен код, докато MacOS и Windows използват Hybrid Kernels. Linux ядрото е замислено през 1991 г. от Линус Торвалдс. До този момент г-н Torvalds продължава да бъде водещ разработчик на ядрото на Linux, докато разработчици от цял ​​свят допринасят за ядрото на Linux. Всъщност според изчисленията близо 10 000 фирми от повече от 1000 компании са допринесли за ядрото на Linux (тъй като проследяването е започнало през 2005 г.).

Къде е ядрото?

Ако отворите прозорец на терминал и издавате командата ls / boot, ще видите файл, наречен vmlinuz-ВЕРСИЯ (Където VERSION е името или номера на изданието). Файлът vmlinuz е истинското зареждащо се ядро ​​на Linux, а "z" означава, че ядрото е компресирано; така че вместо vmlinux имаме vmlinuz.

В рамките на това / boot директорията има и други важни файлове на ядрото, като initrd.img-VERSION, system.map-VERSION и config-VERSION (където VERSION е или име или номер на съобщение). Тези други файлове служат за следните цели:

  • initrd: използва се като малък RAM диск, който извлича и изпълнява действителния файл на ядрото.
  • system.map: използва се за управление на паметта преди зареждането на ядрото.
  • конфигурационния: инструктира ядрото на това какви опции и модули да се зареди.

модули

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

  • lsmod ще се покажат всички модули на ядрото, които са заредени в момента.
  • insmod ще зареди модул на ядрото в изпълняваното ядро.
  • rmmod ще разтовари модул от работещото ядро.

Така че виждате, с помощта на някои прости команди, Linux ядрото може да бъде доста гъвкаво.

Текущото ядро

От момента на това писане, стабилното ядро ​​на Linux е 4.18.5, но не всички Linux дистрибуции ще включват най-новото ядро. В действителност актуализираната елементарна операционна система на операционната система работи с ядрото 4.15.0-30. Какво означава този номер? В случая с най-новото ядро ​​на елементарна операционна система, това означава:

  • 4 е основната версия
  • 15 е малката версия
  • 0-30 е преразглеждането

Също така е възможно да изтеглите различни версии на ядрото на Linux от kernel.org и да го компилирате сами. Съставянето на ядрото на Linux е задача, най-добре оставена за тези, които наистина знаят какво правят. Неправилно компилираното ядро ​​може да направи системата незаредена. Така че, освен ако не сте готови да се потопите в предизвикателната задача за компилиране на код на това ниво, използвайте ядрото по подразбиране, което се изпраща и актуализира във вашата дистрибуция по избор.