Låt oss undersöka funktionerna för tre avgörande systemkomponenter i Linux -operativsystemet:
1. kärna: Kärnan är hjärtat i Linux -operativsystemet. Det är kärnprogramvaran som hanterar systemets hårdvaru- och mjukvaruresurser. Dess funktioner inkluderar:
* Hårdvaruabstraktion: Kärnan tillhandahåller ett abstraktionslager som döljer komplexiteten hos olika hårdvaruanordningar från användarutrymme. Detta gör att applikationer kan köras oavsett den specifika hårdvaran de är på. Drivrutiner, som är kärnmoduler, gränssnitt direkt med specifika hårdvarukomponenter.
* Processhantering: Kärnan skapar, scheman och hanterar processer (körprogram). Det fördelar CPU -tid, minne och andra resurser till processer, vilket säkerställer rättvist och effektivt resursanvändning. Detta inkluderar kontextbyte (snabbt växla mellan processer).
* Minneshantering: Kärnan hanterar minnesallokering och återförsäljning och förhindrar att processer stör varandras minnesutrymme. Den använder tekniker som virtuellt minne för att ge varje process med sitt eget till synes dedikerade minne, även om den fysiska RAM är begränsad. Det hanterar också byte på disken.
* Filsystemhantering: Kärnan interagerar med lagringsenheter (hårddiskar, SSD:er, etc.) och hanterar filsystemet. Detta inkluderar att skapa, läsa, skriva och ta bort filer samt hantera kataloger och filbehörigheter.
* Enhetshantering: Som nämnts tidigare hanterar kärnan alla hårdvaruenheter som är anslutna till systemet och ger ett konsekvent gränssnitt för applikationer för att interagera med dem.
* Nätverkshantering: Kärnan hanterar nätverkskommunikation, hantering av nätverksgränssnitt, routingpaket och implementering av nätverksprotokoll.
2. skal: Skalet är en kommandoradstolk. Det är ett program som gör det möjligt för användare att interagera med kärnan indirekt genom att skriva kommandon. Dess nyckelfunktioner inkluderar:
* Kommandotolkning: Skalet tar kommandon som skrivs av användaren (eller läser från ett skript) och tolkar dem. Den översätter sedan dessa kommandon till systemsamtal, som är förfrågningar till kärnan för att utföra specifika uppgifter.
* Kommandoutförande: Efter att ha tolkat ett kommando kör skalet det, antingen direkt (för inbyggda kommandon) eller genom att åberopa andra program.
* filmanipulation: Skal ger kommandon för att hantera filer och kataloger (skapa, ta bort, kopiera, flytta etc.).
* Processkontroll: Skal tillåter användare att hantera processer, starta, stoppa och övervaka deras exekvering. Detta inkluderar bakgrundsprocesser och jobbkontroll.
* rörledning och omdirigering: Skal gör det möjligt för användare att kedja kommandon tillsammans (rörledningar) och omdirigera ingången och utgången från kommandon till filer eller andra kommandon. Detta gör det möjligt att utföra komplexa operationer effektivt.
* Skript: Skal stöder skript, vilket gör att användare kan automatisera komplexa uppgifter genom att skriva sekvenser av kommandon i ett skalskript.
3. Systembibliotek (t.ex. Glibc): Systembibliotek är samlingar av förkompilerade funktioner och rutiner som tillhandahåller gemensamma tjänster till applikationer. De fungerar som ett mellanliggande lager mellan applikationer och kärnan. Nyckelfunktioner inkluderar:
* Standardingång/utgång: Tillhandahålla funktioner för att läsa från och skriva till konsolen, filerna och nätverksanslutningarna (t.ex. `printf`,` scanf`, `fopen`,` fread`).
* strängmanipulation: Erbjuder funktioner för att arbeta med strängar (t.ex. `strcpy`,` strlen`, `strcat`).
* matematiska funktioner: Ger tillgång till matematiska operationer (t.ex. `sin`,` cos`, `sqrt`).
* Minneshantering: Tillhandahålla funktioner för att tilldela och handla minne (t.ex. `malloc`,` fritt ').
* Nätverksprogrammering: Erbjuder funktioner för nätverkskommunikation (t.ex. uttag).
* Filsystemåtkomst: Tillhandahåller ett gränssnitt på högre nivå till kärnans filsystemfunktioner.
* Inter-Process Communication (IPC): Underlätta kommunikation mellan olika processer (t.ex. med hjälp av delade minne eller meddelanden).
Dessa tre komponenter - kärn-, skal- och systembiblioteken - arbetar sömlöst tillsammans för att tillhandahålla funktionaliteten i ett Linux -operativsystem. Många andra komponenter är också kritiska, men dessa tre representerar en kärnuppsättning av väsentliga byggstenar.