Att starta ett Linux -system är en komplex process, men det kan delas upp i flera viktiga steg:
1. BIOS/UEFI Initialisering: Processen börjar med BIOS (Basic Input/Output System) eller UEFI (Unified Extensible Firmware Interface), som är firmware -gränssnitt som initialiserar hårdvaran. Detta inkluderar saker som att upptäcka RAM, CPU och lagringsenheter. BIOS/UEFI letar sedan efter en startlastare.
2. Boot Loader: Stövlastarens primära roll är att ladda Linux -kärnan. Vanliga startlastare inkluderar GRUB (Grand Unified Bootloader) och SystemD-Boot. Startlastaren hittar kärnbilden (vanligtvis benämnd `vmlinuz` eller liknande) och den initiala RAM -disken (initramfs, ofta` initrd.img`). Startlastarens konfigurationsfiler (t.ex. `grub.cfg`) bestämmer vilket operativsystem som ska startas och andra alternativ.
3. kärnbelastning och initialisering: Startlastaren laddar kärnan i minnet. Kärnan börjar sedan initiera systemets hårdvara. Detta innebär:
* Detektering och initialisering av hårdvara: Kärnan identifierar och konfigurerar alla anslutna hårdvaruenheter, till exempel hårddisk, nätverkskort och grafikkort. Enhetsdrivare laddas efter behov.
* montering av rotfilsystemet: Kärnan monterar rotfilsystemet (vanligtvis en Ext4, BTRFS eller annat filsystem) från hårddisken. Detta gör operativsystemets filer tillgängliga.
* Ställa in processer: Kärnan skapar olika processer som är viktiga för systemdrift.
4. initramfs (initial RAM -disk): Innan rotfilsystemet är monterat används en initramfs. Detta är ett litet, tillfälligt filsystem laddat i RAM. Den innehåller viktiga drivrutiner (till exempel för själva filsystemet) och skript som behövs för att montera rotfilsystemet. När rotfilsystemet är monterat kasseras initramfs.
5. Systeminitiering: När rotfilsystemet är monterat utför kärnan init -processen (PID 1). Historiskt sett var detta "init", en enkel process. I moderna system används nästan "systemd" (eller ett annat init -system som "runit" eller "S6"). `SystemD` är ett mer sofistikerat init -system som ansvarar för:
* Starttjänster: `SystemD` startar olika systemtjänster (daemons), såsom nätverkshanteraren, SSH -server, displayhanterare (t.ex. GDM, LightDM, SDDM) och andra bakgrundsprocesser som tillhandahåller operativsystemets funktionalitet. Dessa definieras i enhetsfiler (`. Service ').
* Hantering av beroenden: `Systemd` säkerställer att tjänster börjar i rätt ordning, hanterar beroenden mellan dem.
* Tillhandahålla andra systemfunktioner: `SystemD` hanterar också saker som loggning, journald och hantering av systemets runtime -tillstånd.
6. inloggning/grafiskt gränssnitt: Slutligen, efter att alla nödvändiga tjänster har startat, är systemet redo för en användare att logga in. Detta kan innebära en grafisk inloggningsskärm (med en displayhanterare) eller en textbaserad inloggningsprompt.
Detta är en översikt på hög nivå. De exakta detaljerna kan variera beroende på den specifika Linux -distributionen, kärnversionen och hårdvarukonfigurationen. Kärnaneserna förblir emellertid i stort sett konsekventa i olika Linux -system.