OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 4 – Vecka 46 2010
description
Transcript of OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 4 – Vecka 46 2010
OPERATIVSYSTEM OCH PRAKTISK LINUX
Föreläsning 4 – Vecka 46 2010
INNEHÅLLFilsystemFilsystemkommandon i LinuxFilstrukturen i Linux
Filsystem
Alla operativsystem har behov av att lagra och läsa data
En del data lagras tillfälligt i RAM-minnet (t.ex. Instruktionerna för ett
program när man startat upp en process av det)
På dagens datorer finns det också behov av att lagra data permanent (dvs
datat finns kvar även vid strömavbrott, ända tills det raderas) på någon typ
av lagringsmedia, bl.a. Hårdskiva, USB-sticka, DVD
Det är operativsystemets uppgift att se till att applikationer kan komma åt
lagringsmedia
Filsystemsgränssnitt
Moderna operativsystem har ofta tre olika gränssnitt för filsystem: Den logiska filsystemstrukutren Det virtuella filsystemet Den fysiska filsystemstrukturen
Användares process
Logisk filstruktur
Operativsystem
Virtuellt filsystem
Drivrutin Drivrutin Drivrutin
Fysiskt filsystem
Maskinv. Maskinv. Maskinv.
Filsystememsgränssnitt
Den logiska filstrukturen Hur filsystemet ser ut ur användarens, programmerarens och/eller ett
enskilt programs synvinkel
Det virtuella filsystemet Det gränssnitt som operativsystemet har bestämt att alla filsystem skall
använda när operativsystemet kommunicerar med dem.
Det fysiska filsystemet Hur filerna faktiskt lagras (fysiskt) på lagringsmediet
Virtuella filsystem
Linux har ett virtuellt filsystemlagar (VFS) som gör det möjligt att helt och
hållet avskilja användarsidan från den fysiska lagringen
Den största anledningen till att man använder ett virtuellt filsystemlager
mellan användaren och hårdvaran är att själva operativsystemet,
applikationer och användare inte skall behöva bry sig om vad det är för
enhet/filsystem som filen de vill åt ligger på
Utan ett virtuellt filsystem hade själva operativsystemet och alla program
som vill använda sej av ett filsystem behövt veta hur man anropar just den
enheten
Virtuella filsystem
I stället ligger nu all filsystems- och enhetsspecifik information i egna
drivrutiner som operativsystemet och programmen kommunicerar med
Webbserver
Logisk filstruktur
Linux kärna
Virtuellt filsystem
Ext3 Vfat GmailFS
Fysiskt filsystem
Hårddisk Diskett gmail
Logisk lagringsstruktur
Användarna och programmen ser aldrig hur filer lagras utan endast det
som operativsystemet presenterar för dem
Linux använder sig av en hierarkisk filstruktur som innebär i praktiken
kataloger, underkataloger osv.
Till skillnad från många andra operativsystem ser inte Linux på filsystemet
som en samling av fysiska enheter (Som t.ex. Windows)
I stället utgår allting från / (rotkatalogen) och under den placeras alla
lagringsenheter in oberoende om all data finns på en enda hårskiva, flera
hårdskivor, på USB-sticka eller på nätverksenheter
Logisk lagringsstruktur
Användarna och programmen ser aldrig hur filer lagras utan endast det
som operativsystemet presenterar för dem
Linux använder sig av en hierarkisk filstruktur som innebär i praktiken
kataloger, underkataloger osv.
Till skillnad från många andra operativsystem ser inte Linux på filsystemet
som en samling av fysiska enheter (Som t.ex. Windows)
I stället utgår allting från / (rotkatalogen) och under den placeras alla
lagringsenheter in oberoende om all data finns på en enda hårskiva, flera
hårdskivor, på USB-sticka eller på nätverksenheter
Fysisk lagringsstruktur
Vad är egentligen en fil för någonting??
Finns egentligen inget svar på den frågan!
En fil kan lagras på massor av olika sätt på ett media
Man brukar skilja på två huvuddedlar: Det fysiska mediet - hårdiskar, DVD-skivor... Filsystem – En struktur som bestämmer hur filen lagras på det fysiska
mediet
En fil lagras inte på samma sätt på t.ex. en hårdskiva som på en DVD-skiva
Fysisk lagringsstruktur
En fil kan också lagras på olika sätt på samma hårdskiva
Orsaken till det är att olika tillämpningar ställer olika krav på filsystem
Filsystemen skiljer sig åt med hänsyn till hur filer och kataloger lagras på
det fysiska mediet för att det skall vara så effektivt som möjligt med
avseende på utrymme, hastighet, pålitlighet, säkerhet etc.
Filsystem
För att lagringmedia, t.ex. en hårdskiva, skall vara användbar måste man
hålla reda på hur data lagras i utrymmet
Det är här filsystemet kommer in i bilden
Ett filsystem består i sin enklaste form av Superblock – Innehåller info om själva filsystemet Filallokeringstabell (FAT) – talar om var filerna startar och hur många
block de upptar Dataområde – själva datat
Superblock FAT
Filsystem
Fördelen med denna typ av filsystem är: Lätt att implementera Går fort att läsa och skriva information till och från disken eftersom alla
block som hör till samma fil lagras efter varandra (är inte utspridda över hela disken)
Nackdelen är att om man tar bort en fil i mitten kan man inte spara in en ny fil på samma
ställe om den är större än den gamla, måste i stället spara i slutet av disken och då lämnar det ett ”hål” i mitten
Efter långvarig användning blir filen långsam eftersom filer är utspridda över hela disken
Kräver regelbunden ”defragmentering” av hårdskivan (sorterar om alla filer så att de igen kommer efter varandra och genast från början
Filsystem
En annan variant av filsystem är att man varje block av en fil pekar på nästa
Block (betyder att alla delar av filen behöver inte lagras i en klump efter
varandra)
Fördelen är att alla block används, blir inget slöseri av diskutrymme och
Defragmentering behövs ej
Nackdelen är att själva pekaren som behövs i varje block, upptar utrymme
på hårddisken
Superblock FAT 2 4 6 -1 8 -1
1 2 3 4 5 6 7 8 9 ...
Filsystem: I-noder
Den mest avancerade varianten av filsystem
Ligger som grund för de flesta Unix-filsystemen, inklusive Linux
Exempel på sådana filsystem är bl.a. ext2 och ext3
Iden är samma som systemet presenterat på föregående slide, men med
den stora skillnaden att man inte här använder pekare i varje block utan i
stället har varje fil en I-nod som har information om var ALLA block som
tillhör filen finns.
Filsystem: Fler förbättringar
Förutöver dessa finns ännu ytterligare förbättrade varienter såsom:
Journalförande filsystem Grundtanken är att alla ändringar (t.ex. lagring) på disken loggas
före själva filsystemet ”ändras” Gör att filsystemet inte så lätt blir korrupt vid en systemkrash Exempel på jornalförandefilsystem är: ext3, ext4 och NTFS
Loggbaserad filsystem Har konstruerats i huvudsak för att försnabba skrivningar till en disk Finns i dagens läge dock inget sådant filsystem som slagit igenom
Nätverksfilsystem
Alla filsystem är inte lokala, som de vi hittils behandlat
Nätverksfilsystem blir alltmer vanliga
Är inget annat än ett klientprogram som låtsas vara ett filsystem för att
sedan skicka alla förfrågningar vidare till ett serverprogram
Serverprogrammet utför sedan de uppgifter som den fick från
klientprogrammet som den utför på ett vanligt lokalt filsystem (på servern)
De vanligaste nätverksfilsystemen inom Linux/Unix-värdlen är: NFS (Network File System) Samba
Filsystemkommandon i Linux: fdisk
Om man t.ex. tar ibruk en ny hårddisk på en Linux-dator måste den först
partitioneras (i en eller flera delar) och så behöver ett filsystem installeras
En hårddisk kan partitioneras med fdisk-kommandot
Linux behöver minst en partition vilken används till rootfilsystemet (sjäva
installationen av Linux)
Vanligen brukar man ytterligare skapa en swap-partition (för ”reservminne”)
och ett antal filsystempartitioner som man använder för att lagra filer på.
(grundtanken är att ha själva systemet och andra filer på skilda partitioner
så att inte data går förlorat ifall man blir tvungen att installera om
operativsystemet)
Filsystemkommandon i Linux: mkfs
Med mkfs kan man skapa ett filsystem i en partition
Exempel:
mkfs –t ext3 /dev/hda2
(skapar filsystemet ext3 på den andra partitionen på hårddisken hda)
Filsystemkommandon i Linux: mount
Används för montering av filsystem
För att kunna använda ett filsystem i Linux från t.ex. en annan partition,
hårddisk eller server (än rootfilsystemet) måste filsystemet först monteras in
i filträdet
Exempel: mount –t ext3 /dev/sda1 /minAndradisk
I exemplet ovan monteras första partitionen på disken sda till filträdet i
katalogen /minAndradisk
Filsystemkommandon i Linux: df
Kommando som används för att visa monterade filsystem
Exempel: df –h
Kommandot ovan visar alla monterade filsystem i ett ”mänskligt” format,
dvs. Storleken på filsystemen visas i megabyte-format
Filsystemkommandon i Linux: umount
Kommando som används för att avmontera ett filsystem
Exempel: umount /dev/hda2
Exemplet ovan avmonterar andra partitionen på disken hda
Filsystemkommandon i Linux: /etc/fstab
Är inte ett kommando utan en fil som håller information om fördefinierade
monteringspunkter
Operativsystemet behöver denna fil bl.a. vid uppstart för att kunna känna till
de lagringsmedia som skall användas samt vilka filsystem de har samt vart
de olika filsystmen skall monteras i filstrukturen
Enhetsnamn Monteringspunkt
Filsystem Argument Dump Ordning
/dev/hda2 / ext3 Defaults 1 1
/dev/fd0 /mnt/floppy ext3 Defaults, ro 1 2
/dev/md0 /home ext3 Defaults 1 2
nfs:/software /software ext3 Defaults 1 0
Filsystemkommandon i Linux: /etc/fstab
Enhetsnamn – en enhet/partition, dessa är åtkomliga via filer som finns i
katalogen /dev
Monteringspunkt – vart i filtredet filsystemet skall monteras
Filsystem – Namnet på filsystemet som finns på enheten
Argument – Anger med vilka ”alternativ” ett filsystem skall monteras.
Defaults betyder standardinstlläningar, Defaults,ro betyder
standardinställinger men ”read only” (kan ej skriva på enheten)
Dump – används nästan aldrig, bara att sätta en 1:a hit!!!
Ordning – Anger i vilken ordning filsystemen kontrolleras vid uppstart.
Normalt skall rootfilsystemet kontrolleras först (1) och sedan kontrollleras
övriga filsystem parallellt (2). Om ett filsystem har 0 här betyder det att det
inte kontrolleras vid uppstart
Filstrukturen i Linux: Vad lagras vart?
/ Rotkatalogen Hela filsystemet i Linux utgår från denna katalog Här skall helst inte lagras några filer utan endast kataloger
/bin Här sparas de nödvändigaste exekverbara programmen för att
operera systemet (bl.a. ls, cat, pico, vi) Bör alltid ligga på sam fysiska partition som rotkatalogen
/boot Här lagras många a de filer som Linux använder vid uppstart, bl.a.
Säkerhetskopior av bootsektorn, kompilerade operativsystemkärnor Bör vara på en annan partition än rotkatalogen Vanligen endast 50-100mb stor
Filstrukturen i Linux: Vad lagras vart?
/dev Förkorting av device Här finns alla Linux:s enhetsfiler bl.a. Filer som representerar
hårddiskar, cd-spelare, möss, serie-/parallellportar osv. /etc
Filerna här är i huvudsak konfigurationsfiler för olika program/serverprocesser m.m.
De flesta filer är textfiler Finns också en del skriptfiler, bl.a. olika startskript som är placerade
i init.d- och rc.d-katalogerna under /etc /home
Som standard placeras alla användares hemkataloger här
Filstrukturen i Linux: Vad lagras vart?
/lib Här finns nästan alla programbibliotek som används av Linux De som inte är placerade här finns oftast placerade i /usr/lib Programbliotek är filer som innehåller standardfunktioner som
används av många olika applikationer Programbibliotek som används av Linuxkärnan finns under
/lib/modules /Lost+found
Om man efter en systemkrasch, eller systemavbrott kontrollerar ett filsystem med ett kontrolleringsverktyg placeras alla filfragment som inte kunde rättas till av kontrolleringsverktyget här
/mnt Som standard, monteras externa lagringsenheter, såsom cd-rom-
stationer hit (/mnt/cdrom)
Filstrukturen i Linux: Vad lagras vart?
/opt Från början var det tänkt att all tilläggsprogramvara sparas hit (t.ex.
Ordbehandlar Nuförtiden är det dock vanligast att tilläggsprogramvara lagras i
/usr/local /proc
Är egentligen inga riktiga filer utan det är information som hämtas direkt från Linuxkärnan
Kan även användas för att ändra på konfigurationer för den körande Linuxkärnan
/root Rotanvändarens hemkatalog
Filstrukturen i Linux: Vad lagras vart?
/sbin Här finns de nödvändigaste programmen som behövs för
systemadministration Vanligen har endast root rättighet att exekvera dessa program Exempel: ifconfig, reboot, mkfs
/tmp Är till för att innehålla temporära filer Alla användare har rättigheter i denna katalog Vanligtvis raderas innehållet av denna katalog automatiskt
regelbundet /usr
Tillgänglig för alla användare och administratörer Vanliga användare har dock ej skrivrättigheter Finns en mängd program och andra filer
Filstrukturen i Linux: Vad lagras vart?
/var Standardkatalog för systemets loggfiler Bl.a. epost, boot- och kernelloggar sparas här