Fallstudier. Föreläsning 11

Relevanta dokument
Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Datorteknik ERIK LARSSON

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Design och trender. Föreläsning 12

Introduktion till hårdvara, mjukvara och operativsystem

Operativsystem Introduktion

Lösningsförslag till tentamen i IS1350 Operativsystem

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Minneshantering segmentering och virtuellminne. Föreläsning 3

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem (ID2200/06) XX XX:00-XX:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID hp, ID2200 6hp

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Filsystem användarvy och implementering. Föreläsning 4

Trådar och Multiprocessorer. Föreläsning 6

Operativsystem. Hierarkin för hårdvara läses nerifrån

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem - input/output, skydd, virtualisering

4 grundregler. Minneshantering. Problemet. Windows minkrav

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

DIG IN TO Dator och nätverksteknik

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

JobOffice SQL databas på server

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Operativsystem (IS1350) :00-12:00

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Modul 3 Föreläsningsinnehåll

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Hur hänger det ihop med användarkommandon, biblioteksfunktioner och systemanrop?

Microsoft Office historik. - making IT easier

Identity Management i ett nätverkssäkerhetsperspektiv. Martin Fredriksson

Systembeskrivning. Systemskiss. Moduler.

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

Vad händer när man kör ett program? Program och processer. Funktionsanrop. Avsluta programmet

Operativsystem ID2200/06 omtentamen :00-18:00

Systemkrav. Systemkrav för Hogia Approval Manager. Gäller från och med programversion

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Säkerhet. Vad är det vi pratar om??

Operativsystem ID1200/06 och ID2200/06 Tentamen TENA 6 hp :00-18:00

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Reservföreläsningen inställd

Operativsystem och Systemarkitektur. 7,5 högskolepoäng. IT-Tekniker och Systemarkitekt-programmet. Namn: Personnummer: (Ifylles av student)

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

PNSPO! Minneskort till CJ. 14 mars 2012 OMRON Corporation

ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Systemanropp kontrollen övergår från userspace till kernelspace ca 100 i UNIX, många fler i NT

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Din guide till. Teknisk Specifikation Säljstöd

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

LEX INSTRUKTION REPLIKERING UPPGRADERING

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

Grupp Policys. Elektronikcentrum i Svängsta Utbildning AB

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Operativsystem - Processkedulering

Operativsystem ID2200/06 omtentamen :00-18:00

Skapa ett paket av TI-Nspire programvara med Microsoft SMS 2003

Classes och Interfaces, Objects och References, Initialization

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

Programmering B med Visual C

Operativsystem - Filsystem

Installation av atmel Studio på mac / linux

Skapa din egen MediaWiki

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Arkitekturer i operativsystem

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Minnet från processorns sida Datorteknik

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

MESI i Intel Core 2 Duo

Operativsystem IS1350

DVA315 Operativsystem. Mats Björkman Mälardalens högskola

Anvia Online Backup 1(8) Installationsguide

Transkript:

Fallstudier Föreläsning 11

Fallstudier Vi synar sömmarna på några vanliga OS med våra nyvunna kunskaper? UNIX, LINUX och Microsofts Windows familj Kap: 10, 11 OS Föreläsning 11, Fallstudier 2

Fallstudier Vad ska vi titta på?

Där vi startade - Datorsystem Applikationer ex. Webb, spel, administrativa system Editorer Kommandotolk/shell Kompilatorer Operativsystem Systemanrop Säkerhet CPU/Processer Minneshantering Filsystem Kommunikation I/O User space Kernel space Maskininstruktioner Mikroarkitektur Fysiska komponenter OS Föreläsning 11, Fallstudier 4

Vad ska vi titta på? Historia ärftlig belastning Mål för vilket ändamål är OS:et designat? API systemanrop Struktur Processer Minneshantering I/O Filssystem Säkerhet OS Föreläsning 11, Fallstudier 5

Historia och mål

UNIX - föregångaren Apples OS för MAC är i grunden UNIX UNIX inspirerade till LINUX MS sålde en UNIX variant (XENIX) som inspirerat Windows OS Föreläsning 11, Fallstudier 7

LINUX historia CTSS MULTICS UNIX MINIX - LINUX CTSS forskning på time sharing MULTICS det enda, allomfattande OS:et som blev en flopp UNIX en mans idé om ett enkelt, rent timesharing system programmerarens/forskarens OS MINIX det ändå enklare OS:et för undervisning/forskning LINUX studentens vision OS Föreläsning 11, Fallstudier 8

Varför LINUX och inte UNIX? UNIX har haft olika grenar: AT&T System V och BSD (Berkley System Distributions) Enades i POSIX delades upp igen (temporärt) i OSF AT&T 1992 släpptes 4.4BSD fritt 1993 stämde AT&T University of California på lösa grunder för intrång på copyright Alternativet som dök upp var LINUX! OS Föreläsning 11, Fallstudier 9

LINUX Open source under GNU-licens Utvecklas/des av löst sammanhållen grupp av utvecklare över hela världen Mycket utveckling sker i professionella/kommersiella sammanhang: Red Hat, Ubuntu, Google Android (C, C++, JAVA + XML), Google Chrome, Linor Implementerar POSIX Har lånat mycket från System V och BSD både implementation och systemprogramvara Inte (ANSI) standard C använder specialvarianter i gcc Flera distributioner (kommersiella och icke-kommersiella) OS Föreläsning 11, Fallstudier 10

WINDOWS historia Rötterna i CP/M och MS-DOS (och XENIX) En-användar OS för administration, texteditering etc. WINDOWS upp t.om. Win98 hade kvar en kärna av MS-DOS En användarprocess kunde skriva sönder OS:et... Att utveckla ett nytt 32-bitars OS för att möta OS/2 med MS- DOS som bas omöjligt WINDOWS 2000 (första moderna WINDOWS) har rötterna i OS/2 och NT WINDOWS 2000 är NT 5.x NT utvecklat av David Cutler mannen bakom VAX-VMS NT skulle ha bättre säkerhet Ett mål är att Microsoft skall tjäna pengar OS Föreläsning 11, Fallstudier 11

Systemanrop

API - Systemanrop LINUX ~150 systemanrop 80% POSIX, System V eller BSD Minimalt gränssnitt Dataabstraktion - filer - processer Windows2000/Vista ~15000 Win32 API funktioner Inte officiellt vad som är systemanrop eller inte! Gissningsvis 1100-1500 systemanrop (ntdll.dll) Mycket integrerat i kärnan t.om. GUI Dataabstraktion - objekt (inget arv eller polymorfism) Objekt hanteras via handles OS Föreläsning 11, Fallstudier 13

Windows 2000/Vista objekt Objekt: ett antal konsekutiva minnespositioner med en specificerad struktur (fält) Används för att hantera systemresurser och datastrukturer som processer, trådar, semaforer, minne etc. på ett konsistent sätt Alla objekt namnges och hanteras på samma sätt via handles All hantering av objekt går via object manager Alla säkerhetskontroller på en plats Enkelt att hålla koll på vilka objekt som används (gc) All delning av objekt går till på ett uniformt sätt Quotas för resursanvändning kan implementeras på ett enkelt sätt OS Föreläsning 11, Fallstudier 14

Exempel på Windows 2000/Vista objekt Objekt header Objektnamn Hemdirectory Säkerhetsinfo (access) Quota kostnader Lista över processer med handles Referensräknare Pekare till typobjekt Objekt specifik data Typnamn Accesstyper Accessrättigheter Quota charges Synkroniserbarhet Pageable Metoder för: Open Close Delete Query name Parse Security OS Föreläsning 11, Fallstudier 15

Struktur

LINUX struktur system management programs user processes user utility programs compilers system shared libraries linux kernel loadable kernel modules OS Föreläsning 11, Fallstudier 17

Windows2000/Vista struktur logon process OS/2 app. Win16 app. Win32 app. MSDOS app. POSIX app. security subsystem OS/2 subsystem Win16 VDM MSDOS VDM POSIX subsystem authentication package security account manager database Win32 subsystem System interface ntdll.dll I/O manager cache manager device drivers (file systems) executive virtual mem mgr. process mgr. system services security mgr. plug&play mgr. kernel power mgr. HAL hardware abstraction layer config mgr. LPC mgr. window mgr. graphics device driver OS Föreläsning hardware 11, Fallstudier 18

Windows struktur - forts. HAL Ger enhetligt lågnivå-interface mot hårdvaran Döljer skillnader i komponentval på liknande arkitektur (moderkort) Vid bootning laddas den HAL som passar arkitekturen Kernel Ger en högre nivås abstraktion av hårdvaran baserad på HAL Context switch, control objects, Deferred & Asynchronous PC, dispatcher objects dvs. semaforer, lås, events,timers... Executive Implementerar operativsystemsfunktioner via managers för olika områden Device drivers hot-pluggable Om en device driver bara kommunicerar med resten av maskinen OS Föreläsning 11, Fallstudier 19 via HAL blir den hyfsat portabel!

Windows systemdatabas - registry En databas byggd kring en directorystruktur med info om: Hur maskinen är konfigurerad Användare Säkerhet Mjukvaruinstallationer Hur man bootar systemet Prestanda Hur filextensions skall tolkas Nuvarande tillstånd... OS Föreläsning 11, Fallstudier 20

Processer Processer & trådar IPC Schemaläggning Realtidsstöd

Att skapa processer i LINUX Vanliga UNIX exec() och fork() Trådar i användarbibliotek och i kärnan Trådar i kärnan har lånat idéer från det som aldrig han implementeras i BSD Tillåter att man skapar processer-trådar med ett systemanrop clone() Tillåter processer/trådar att dela/inte dela environment variabler, signalmasker, filtabeller, pid pid = clone(function, stackptr, sharingflags, arg) OS Föreläsning 11, Fallstudier 22

Processer i Windows Job en uppsättning processer som hanteras som en enhet med gemensam gräns för resursutnjyttjande Process kontainer som har resurser knutna till sig (t.ex minne) och en eller flera trådar Tråd enhet för CPU-schemaläggning Fiber lättviktsprocess implementerad i user-space Processer/trådar hanteras via object handles Inte strikt processhirearki som i UNIX OS Föreläsning 11, Fallstudier 23

Att skapa processer i Windows Görs med CreateProcess() i Win32 API Parametrar: 1. Pekare till namnet på den exekverbara filen som ska köras i processen 2. Kommandoraden 3. Pekare till säkerhetsdeskriptor för processen 4. Pekare till säkerhetsdeskriptor för den initiala tråden 5. Flagga som talar om om processen skall ärva skaparens handles 6. Diverse flaggor för felhantering, prioritet, debuggning... 7. Pekare till environmentvariabler 8. Pekare till namnet på den nya processens working directory 9. Pekare till struktur som beskriver processens initiala fönster på skärmen 10. Pekare till struktur som används för att returnera 18 olika fält till den som anropade funktionen Skapar en process med en tråd OS Föreläsning 11, Fallstudier 24

IPC i UNIX & LINUX Det gamla vanliga Pipes Shared memory Sockets Filer RPC Synkronisering: Semaforer, lås, signaler OS Föreläsning 11, Fallstudier 25

IPC i Windows Det gamla vanliga i lite olika tappning: Pipes Sockets RPC Delade filer Mailslots Ung: envägs pipe som kan nå många mottagare över ett nätverk Synkronisering via: semaforer, lås, kritiska sektioner och events OS Föreläsning 11, Fallstudier 26

Schemaläggning i UNIX -ursprungsidéerna Två nivåer Lågnivå: välj nästa process som skall exekvera av de som finns i minnet Högnivå: flytta processer till/från minne (swapning) Lågnivå schemaläggning Prioriteter: -20 20 Processer i user mode har positiva prioriteter En kö för varje prioritet, round-robin inom varje prioritet En process får köra sitt tidskvanta (~100ms) eller till dess den blockerar En gång per sekund beräknas alla processers prioriteter om enligt: prioritet = CPU_användning + nice + basprioritet Optimerat för interaktiva processer, dvs processer med mycket I/O. OS Föreläsning 11, Fallstudier 27

Schemaläggning i LINUX Schemalägger trådar Tre klasser Real-time FIFO Real-time round robin (kan pre-emptas av klockan) Timesharing Grundprioriteter + nice: 0 40 Individuellt tidskvanta (quantum) för varje process Schemaläggningen baseras på goodness som beräknas för varje process vid varje schemaläggningstillfälle if(class == real_time) goodness = 1000 + prioritet; else if(quantum > 0) goodness = quantum + prioritet; else goodness = 0; OS Föreläsning 11, Fallstudier 28

Schemaläggning i LINUX - forts. Schemaläggningsalgoritm CPUn tas från en tråd då: Den förbrukat sitt quantum (dvs quantum = 0) Den blockeras av I/O, synkronisering etc. En tråd med högre goodness blir körklar När det inte längre finns några körbara processer kvar, dvs. alla är blockerade eller har quantum = 0, beräknas quantum om enligt: quantum = (quantum/2) + priority Ger: Företräde åt I/O bundna processer CPU-bundna processer får CPU-tid i förhållande till sina prioriteter OS Föreläsning 11, Fallstudier 29

Linux stöd för: Symmetric Multi Processor Möjlighet att ange vilka processorer/processorkärnor en process får exekvera på Möjlighet att ange vilka processorer/kärnor som ska hantera avbrott Många (500+) Big Kernel Locks även om man försökt göra uppdelning av kärnan så att delar kan låsas Varje processor kör LINUX normala schemaläggare (finns flera) Varje 200 ms sker lastbalansering mellan kärnorna OS Föreläsning 11, Fallstudier 30

Schemaläggning i Windows Schemalägger trådar, bryr sig inte alls om processer! Högt numeriskt värde på prioriteten = hög prioritet 7 grundklasser för trådar (grundprioriteter) + 6 nivåer inom varje klass => basprioritet 1 42 Schemaläggningskoden körs: Av en tråd om: Tråden blockeras för I/O, synkronisering Tråden signalerar till ett objekt (t.ex. upp på semafor) Trådens tidskvanta tar slut Av andra delar om: En I/O operation blir klar En tidbegränsad wait blir klar OS Föreläsning 11, Fallstudier 31

Schemaläggning i Windows - forts. Tråd att schemaläggas baseras på current - prioritet current -prioritet kan vara högre än basprioriteten, upp till 15 (normal basprioritet ~8) Prioriteten kan höjas under en period, till dess tidskvantat tar slut, vid följande tillfällen: I/O klar: disk +1, serieport +2, tangentbord + 6, ljudkort + 8 När event kommer (väntan på semafor, lås etc.): förgrundsprocess +2, annan process +1 OS Föreläsning 11, Fallstudier 32

Schemaläggning i Windows - forts. Schemaläggningen verkar självjusterande men administratören kan finjustera många parametrar Optimerat för Interaktivitet i Professional versionen Throughput i serverversionerna - Mycket heuristik, komplicerat, skör kod OS Föreläsning 11, Fallstudier 33

Schemalägggning på multiprocessor Vista/Windows - Kör om möjligt tråden på samma processorkärna som den senast körde på för att återanvända cacheinnehåll mm. OS Föreläsning 11, Fallstudier 34

Minneshantering

Adressrymd i Windows 2000 32-bitars Windows Processens adressrymd 4 GB Av dessa mappas OS:et in på drygt 2 GB Gör det snabbare att gå från user-mode till kernel-mode 2GB är ofta för lite Server varianten av W2K tillåter 3GB per process Bank switching = address windowing extensions OS Föreläsning 11, Fallstudier 36

Adressrymd i Windows 2000 - forts. 4GB unused Nonpaged pool Paged pool Processens sidtabeller Stack, data etc. 2GB HAL + OS System data Processens privata kod & data 0 OS Föreläsning unused 11, Fallstudier 37

Virtuellminneshantering i Windows Sidindelat virtuellminne (normalt sett 4KB stora sidor) Ren demand paging (ingen pre-paging) En sida kan vara i tre tillstånd Free: används ännu inte (alla sidor är free från början) Committed: sidan är mappad att innehålla data eller kod Reserved: sidan är reserverad och får inte användas om inte reservationen hävs. (kan användas för att t.ex reservera utryme för stacken för en ny tråd) Virtuellminnet kan delas in i icke-konsekutiva regioner (icke utnyttjade sidor -> free ) OS Föreläsning 11, Fallstudier 38

Delat minne i Windows Processer kan mappa filer/minnesareror så att de kan delas Vid skrivning till en minnesmappad fil/delad minnesarea Om alla processer som delar arean tillåter skrivning sker skrivningen till den delade arean Om någon process bara tillåter läsning skapas en kopia då skrivningen sker (copy-on-write) OS Föreläsning 11, Fallstudier 39

Sidfelsalgoritm i Windows Vid sidfel finns 5 fall 1. Sidan är inte committed -> fatalt fel 2. protection violation -> fatalt fel 3. En delad sida skrivs, kan resultera i copy-onwrite 4. Stacken behöver utökas, en ny nollställd ram allokeras 5. En committed ram behöver mappas in (~ vanligt sidfel ) OS Föreläsning 11, Fallstudier 40

Sidutbytesalgoritm i Windows I huvudsak lokal sidutbytesalgoritm baserad på working-set Per process: min ramar 20-50, max ramar 45-345 Min och max kan temporärt under/överskridas Minst 512 lediga ramar skall finnas för nya processer Global algoritm: En kärntråd, balance set manager, kontrollerar om det finns tillräckligt många lediga ramar globalt sett om inte startas working set manager Working set manager tar, baserat på heuristik och (komplicerade) algoritmer ramar från icke-aktiva processer, stora processer, processer med fler ramar än min, förgrundsprocesser i nämnd ordning Kan justera antalet ramar till under min för processen OS Föreläsning 11, Fallstudier 41

Sidutbytesalgoritm - forts. Windows har 5 listor med lediga ramar! Soft (minor) page fault Exekverande processers working-sets Ramar med Modifierade sidor Ramar med Rena sidor Ramar med Fria sidor Ramar som är Noll-ställda Dåliga ramar Process termineras OS Föreläsning 11, Fallstudier 42

I/O

I/O i Windows Win32 API har mer än 100 kategorier av I/O enheter... Managers för olika delar av I/O systemet som måste samarbeta I/O manager Plug-and-play manager för devices Power manager Stöd för dynamiska diskar som kan bestå av flera fysiska diskar! OS Föreläsning 11, Fallstudier 44

Device drivers i Windows Device drivers skall uppfylla Windows Driver Model Hantera alla inkommande I/O begäran på formatet I/O Request Packet Vara objektliknande som resten av Windows 2000 Tillåta att hot plug-and-play på device Om möjligt tillåta power management Vara konfigurerabara vad avser resursutnyttjande Vara reentrant på multiprocessorer Vara portabla mellan Windows 98 och Windows 2000 OS Föreläsning 11, Fallstudier 45

Device drivers i Windows 2000 - forts. Device drivers implementerar b.la. Filsystem Device drivers kan vara stackade Användarprog. Win32 system services filter funktion funktion monolit buss buss HAL controller controller controller OS Föreläsning 11, Fallstudier 46

Filsystem

Windows 2000 (NT) filsystem Helt ny design relativt MS-DOS och FAT-16, 32 mfl. I varje volym finns en fil någonstans som beskriver filsystemet, Master File Table Administrativ info som lediga block etc. Säkerhets info Info om varje fil/directory etc. Tillåter mjuka/hårda länkar och montering Dock måste normalt sett device namn anges i absolut sökväg Filer lagras i runs av konsekutiva diskblock Diskblock 512-64KB, normalt 4KB OS Föreläsning 11, Fallstudier 48

Filer i Windows 2000 En fil består av flera attribut implementerade som strömmar av bytes Ex: namn, 64-bitars id, dataström 1, dataström 2 Användbart om man t.ex editerar en fil och har en sparad kopia i en ström och en ström av ändringar Filer kan automatiskt komprimeras/ dekomprimeras då de skrivs till/från disk Komprimering sker på 16 blocks enheter Filer kan automatiskt krypteras på disk Drivrutin som kallas Encrypting File System OS Föreläsning 11, Fallstudier 49

Kryptering av filer i Windows 2000 Kryptering sker med en slumpmässig 128-bitars nyckel för varje fil Filkryptering sker med symmetrisk metod, i dagsläget DES (Data Encryption Standard) 128-bitars nyckeln lagras på disk krypterad med en publik nyckel i ett public key system <public key, private key> paret skapas vid första krypteringen av filen Den privata nyckeln lagras krypterad på disk med en symmetrisk algoritm där nyckeln genereras från användarens lösenord eller ett smart card OBS! Vid backup av krypterade filer måste man få med nycklarna också vilket inte alltid är så enkelt... OS Föreläsning 11, Fallstudier 50

Säkerhet

Säkerhet i Windows 2000 NT var designat att uppfylla Orange book C2 kraven Windows har (råkat) ärva dessa delar Säker login med anti-spoofing åtgärder Användarstyrd accesskontroll Möjlighet för priviligierade användare att överskrida användarstyrd accesskontroll Skydd av adressrymd per process Nya sidor som mappas in skall vara nollställda (stacken) Loggning av säkerhetshändelser OS Föreläsning 11, Fallstudier 52

Lite mer om Windows MS utvecklingsmodell

Microsofts utvecklingsmodell Av ny kod som komittas byggs nya kärnor varje natt som skall fungera! För utvecklare av t.ex device drivers eller applikationer finns checked kernels med C- assertions att tillgå MS vill att man skall kunna upptäcka om felet beror på deras kod eller tredjepartsleverantörens kod! OS Föreläsning 11, Fallstudier 54

Sammanfattning

Att designa nya OS Varje OS har: Sina förtjänster och brister Oftast utvecklat för något ändamål De flesta nya OS instabila OS är komplexa Stora kodmängder och många utvecklare Redundans i koden Svårt att hålla kontroll över utvecklingen Trender: Lean&mean: UNIX/LINUX Funktionalitet: Windows OS Föreläsning 11, Fallstudier 56