Ett Linux filsystem är en strukturerad samling filer på en hårddisk eller en partition. En partition är ett segment av minnet och innehåller vissa specifika data. I vår maskin kan det finnas olika partitioner i minnet. I allmänhet innehåller varje partition ett filsystem.
Det allmänna datorsystemet behöver lagra data systematiskt så att vi lätt kan komma åt filerna på kortare tid. Det lagrar data på hårddiskar (HDD) eller någon motsvarande lagringstyp. Det kan finnas nedanstående skäl för att upprätthålla filsystemet:
- Primärt sparar datorn data i RAM-lagret; den kan förlora data om den stängs av. Det finns dock icke-flyktiga RAM-minnen (Flash RAM och SSD) som är tillgängliga för att behålla data efter strömavbrott.
- Datalagring föredras på hårddiskar jämfört med standard RAM eftersom RAM kostar mer än diskutrymme. Kostnaderna för hårddiskar sjunker gradvis i jämförelse med RAM.
Linux filsystem innehåller följande delar:
- Rotkatalogen (/)
- Ett visst format för datalagring (EXT3, EXT4, BTRFS, XFS och så vidare)
- En partition eller en logisk volym som har ett visst filsystem.
Vad är Linux filsystem?
Linux filsystem är i allmänhet ett inbyggt lager i ett Linux-operativsystem som används för att hantera datahanteringen av lagringsutrymmet. Det hjälper till att ordna filen på disklagret. Det hanterar filnamn, filstorlek, skapelsedatum och mycket mer information om en fil.
Om vi har ett filformat som inte stöds i vårt filsystem kan vi ladda ner programvara för att hantera det.
Linux filsystems struktur
Linux filsystem har en hierarkisk filstruktur eftersom det innehåller en rotkatalog och dess underkataloger. Alla andra kataloger kan nås från rotkatalogen. En partition har vanligtvis bara ett filsystem, men den kan ha mer än ett filsystem.
Ett filsystem är utformat på ett sådant sätt att det kan hantera och tillhandahålla utrymme för icke-flyktiga lagringsdata. Alla filsystem krävde ett namnområde som är en namn- och organisationsmetodik. Namnsutrymmet definierar namngivningsprocessen, filnamnets längd eller en delmängd tecken som kan användas för filnamnet. Det definierar också den logiska strukturen för filer på ett minnessegment, t.ex. användningen av kataloger för att organisera de specifika filerna. När ett namnområde har beskrivits måste en metadatabeskrivning definieras för den specifika filen.
Datastrukturen måste stödja en hierarkisk katalogstruktur; denna struktur används för att beskriva det tillgängliga och använda diskutrymmet för ett visst block. Den har också andra detaljer om filerna som filstorlek, datum & tid för skapande, uppdatering och senast modifierad.
Den lagrar också avancerad information om diskavsnittet, t.ex. partitioner och volymer.
Den avancerade datan och de strukturer som den representerar innehåller information om filsystemet som är lagrat på enheten; den är distinkt och oberoende av filsystemets metadata.
Linux filsystem innehåller en tvådelad arkitektur för implementering av filsystemets mjukvara. Tänk på nedanstående bild:
Filsystemet kräver ett API (Application programming interface) för att få tillgång till funktionsanrop för att interagera med filsystemkomponenter som filer och kataloger. API underlättar uppgifter som att skapa, ta bort och kopiera filer. Det underlättar en algoritm som definierar hur filerna ordnas i ett filsystem.
De två första delarna av det givna filsystemet kallas tillsammans för ett virtuellt Linux-filsystem. Det tillhandahåller en enda uppsättning kommandon för kärnan och utvecklare för att få tillgång till filsystemet. Detta virtuella filsystem kräver den specifika systemdrivrutinen för att ge ett gränssnitt till filsystemet.
Linux filsystemfunktioner
I Linux skapar filsystemet en trädstruktur. Alla filer är ordnade som ett träd och dess grenar. Den översta katalogen kallas rotkatalogen (/). Alla andra kataloger i Linux kan nås från rotkatalogen.
Några viktiga funktioner i Linux filsystem är följande:
- Specificering av sökvägar: Linux använder inte backslash (\) för att separera komponenterna, utan använder forward slash (/) som ett alternativ. I Windows kan data till exempel lagras i C:\ Mina dokument\ Work, medan de i Linux lagras i /home/ My Document/ Work.
- Partitioner, kataloger och enheter: Linux använder inte enhetsbokstäver för att organisera enheten som Windows gör. I Linux kan vi inte avgöra om vi vänder oss till en partition, en nätverksenhet eller en ”vanlig” katalog och en Drive.
- Storleksavvikelse: Linux filsystem är skiftlägeskänsligt. Det skiljer mellan filnamn med små bokstäver och stora bokstäver. Det är till exempel skillnad mellan test.txt och Test.txt i Linux. Denna regel tillämpas även för kataloger och Linuxkommandon.
- Filtillägg: I Linux kan en fil ha tillägget ”.txt”, men det är inte nödvändigt att en fil har ett filtillägg. När man arbetar med Shell skapar det vissa problem för nybörjare att skilja mellan filer och kataloger. Om vi använder den grafiska filhanteraren symboliserar den filer och mappar.
- Dolda filer: Linux skiljer mellan standardfiler och dolda filer, oftast är konfigurationsfilerna dolda i Linux operativsystem. Vanligtvis behöver vi inte komma åt eller läsa de dolda filerna. De dolda filerna i Linux representeras av en punkt (.) före filnamnet (t.ex. .ignore). För att komma åt filerna måste vi ändra vyn i filhanteraren eller använda ett specifikt kommando i skalet.
Typer av Linux filsystem
När vi installerar Linux operativsystem erbjuder Linux många filsystem som Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs och swap.
Låt oss förstå vart och ett av dessa filsystem i detalj:
Filsystem Ext, Ext2, Ext3 och Ext4
Filsystemet Ext står för Extended File System. Det utvecklades i första hand för MINIX OS. Ext-filsystemet är en äldre version och används inte längre på grund av vissa begränsningar.
Ext2 är det första Linux-filsystemet som gör det möjligt att hantera två terabyte data. Ext3 utvecklas genom Ext2; det är en uppgraderad version av Ext2 och innehåller bakåtkompatibilitet. Den största nackdelen med Ext3 är att det inte stöder servrar eftersom detta filsystem inte stöder filåterställning och disk snapshot.
Ext4-filsystemet är det snabbare filsystemet bland alla Ext-filsystem. Det är ett mycket kompatibelt alternativ för SSD-diskar (Solid State Drive) och det är standardfilsystemet i Linuxdistributionen.
JFS-filsystem
JFS står för Journaled File System och är utvecklat av IBM för AIX Unix. Det är ett alternativ till filsystemet Ext. Det kan också användas i stället för Ext4, när stabilitet behövs med få resurser. Det är ett praktiskt filsystem när processorkraften är begränsad.
ReiserFS File System
ReiserFS är ett alternativ till Ext3-filsystemet. Det har förbättrad prestanda och avancerade funktioner. Tidigare användes ReiserFS som standardfilsystem i SUSE Linux, men senare har det ändrat vissa riktlinjer, så SUSE återgick till Ext3. Detta filsystem har dynamiskt stöd för filtillägg, men det har vissa nackdelar när det gäller prestanda.
XFS File System
XFS filsystem betraktades som höghastighets-JFS, som är utvecklat för parallell I/O-bearbetning. NASA använder fortfarande detta filsystem med sin server med hög lagringskapacitet (300+ terabyte-server).
Btrfs File System
Btrfs står för B-trädets filsystem. Det används för feltolerans, reparationssystem, rolig administration, omfattande lagringskonfiguration med mera. Det passar inte bra för produktionssystemet.
Swap File System
Swap File System används för minnespaging i Linux-operativsystemet under systemets viloläge. Ett system som aldrig går i viloläge måste ha ett swap-utrymme som är lika stort som dess RAM-storlek.