ЗНАЙ ИНТУИТ, Лекция, Етапи на зареждане на системата
Натоварване на системата
Започвайки с init, стартира самото зареждане на системата. В ранните дни на Linux и по-рано през това не са наблюдавани клопки. Ако ядрото съдържа рутинни процедури за работа с от всички необходимите устройства (наречени "драйвери"), той ще се зареди и стартира init. Ако в ядрото липсват някои важни драйвери (например поддръжка на дисковия масив, от който е стартирано), то няма да се стартира или стартира. Решението беше просто: те се опитаха да включат колкото се може повече драйвери в ядрото. Това ядро се наричаше родово ядро и имаше доста впечатляващи размери. След зареждане на система с основно ядро администраторът обикновено възстановен it: изхвърли от специален файл на профила драйверите на всички устройства, които не бяха в системата, може би добави нови (тези, които не са необходими за зареждане, но са необходими за работа, например звук) и компилира нов, профилно ядро от източниците .
Стартиране на виртуални модули на виртуален диск и ядро
Възстановяването на ядрото е много рядко в наши дни. Първо, Linux поддържа безброй броят на различните външни устройства, чиито драйвери (особено подобни, но различни) могат да си попречат да работят взаимно, ако се използват едновременно. Ще трябва да събирате много различни ядра, без да можете да указвате потребител, кой е подходящ за неговия компютър. На второ място, сега специални програми са ангажирани да разберат кой драйвер е необходим за намереното устройство, което има на разположение цели бази данни - за ядрото е неудобно да извършва такава работа и няма нужда от него. Това прави процедурата за възстановяване на ядрото почти задължителна (докато не се зареди основното ядро, не е ясно кои драйвери да се добавят към профилния). И трето, възстановяването на ядрото изисква много висока квалификация. Този процес не може да бъде нито автоматизиран, нито опростен. Помощната програма linuxconf, подредена точно за това на базата на прозорци и менюта, дава работещо ядро в изхода в три случая: (1) в ръцете на професионалист, (2) при стриктно спазване завършен инструкции и (3) случайно 5 Няма нужда да възстановявате ръчно ядрото, дори ако урокът за Linux препоръчва да го направите! .
Дойдоха много различни времена, когато те изобретиха и активно внедриха в Linux за изтегляне модули на ядрото. Модулът на ядрото е част от ядрото на Linux, която може да се добавя и премахва, докато системата работи. Модулът на ядрото не е процес, той работи в режим на надзор и не е регистриран в таблицата на процесите: това е набор от подпрограми за работа с конкретно устройство, което добавен към възможностите на ядрото 6 По този начин тя по-скоро прилича на динамична библиотека. ... Когато се зареди в паметта, модулът е свързан с ядрото, образувайки едно цяло с него. Можете да видите списъка с заредени модули с командата lsmod и да заредите модула в паметта, като го добавите към ядрото, и да го премахнете оттам съответно с командите insmod и rmmod.
Базовото ядро също се е променило: сега то включва само устройства, необходимо за зареждане на системата: главно дискове и графична конзола. Останалите устройства ще се определят от самата система - тогава ще бъде възможно да разпознаете екзотично оборудване и да заредите модула за него. Пълното преобразуване на драйверите на всички външни устройства в модули обаче е затруднено от следното съображение: ами ако системата се зареди точно от устройството, чийто модул е неподвижен не заредени в ядрото, например от дисков масив (RAID)? Вторичният буутлоудър и ядрото могат да бъдат поставени приятелю носител (например на лазерен диск) или получен от дисков масив с помощта на BIOS (картите за разположение ви позволяват да игнорирате логическата структура на RAID). Но как да стигнем модул работа с RAID, този, който разпознава тази логическа структура?