Medan bash -skalet (och andra skal som ZSH, Fish, etc.) är avgörande komponenter i ett operativsystem och interagerar kraftigt med kärnan, är de
inte anses själva operativsystemet eftersom de saknar flera viktiga egenskaper hos ett operativsystem:
* kärninteraktion: Skal är * användarnivå * -program. De kör * på toppen * av operativsystemets kärna och förlitar sig på kärnan för grundläggande tjänster som filsystemåtkomst, processhantering, minnesallokering och enhet I/O. Kärnan är kärnan i OS; Skalet är ett program som använder kärnans tjänster.
* Resurshantering: OS -kärnan ansvarar för att hantera systemresurser som CPU -tid, minne och kringutrustning. Skalet hanterar inte direkt dessa resurser; Det begär deras användning från kärnan.
* Hårdvaruabstraktion: Kärnan tillhandahåller ett abstraktionslager mellan hårdvaran och programvaran som körs på systemet. Skalet interagerar inte direkt med hårdvaran; Den använder kärnans API:er för att göra det.
* Säkerhet: Kärnan ansvarar för att upprätthålla säkerhetspolicyer, hantera användarkonton och kontrollera åtkomst till systemresurser. Skalet kör bara kommandon baserat på de behörigheter som beviljas av kärnan.
* Processhantering (utöver enkel körning): Medan skal startar och hanterar processer till en viss grad, är kärnan ansvarig för processen för skapande, schemaläggning på låg nivå. Skal hanterar främst användarinteraktion och kommandoutförande inom den ramen.
Kort sagt:Shell är en kommandoradstolk som tillhandahåller ett användargränssnitt för att interagera med operativsystemets kärna. Det är ett kraftfullt verktyg, men det är bara ett program bland många som körs på OS. OS -kärnan är det grundläggande lagret som ansvarar för att hantera hela systemet. Förhållandet är analogt med en förare som kör en bil - föraren använder bilen (OS), men föraren är inte själva bilen.