540 likes | 685 Views
IT Arkitektur og Sikkerhed. Grundlæggende – Computere. Sidste uge. Sidste uge gennemgik vi Introduktion til grundlæggende netværk Netværk OSI TCP/IP Routing. Dagsorden. I denne uge gennemgår vi OS Filsystemer RAID SAN NAS. Næste uge. I næste uge gennemgår vi IT Arkitektur
E N D
IT Arkitektur og Sikkerhed Grundlæggende – Computere
Sidste uge • Sidste uge gennemgik vi • Introduktion til grundlæggende netværk • Netværk • OSI • TCP/IP • Routing
Dagsorden • I denne uge gennemgår vi • OS • Filsystemer • RAID • SAN • NAS
Næste uge • I næste uge gennemgår vi • IT Arkitektur • Single/Multi-tier Computing • Server-based Computing • Client/Server Computing • Mainframes • Citrix • Enterprise netværksdesign
Ændring til Lektionerne • Lektion 6 bliver ændret. Det betyder at prøveeksamen bliver lagt efter Lektion 5 og Kryptering og Enterprise sikkerhedsmodeller bliver gennem i Lektion 7 sammen med øvrigt materiale i Lektion 7. • Torsdag den 15. marts 2007 er der mulighed for at deltage i et spændende heldags arrangement sammen med kursister fra University of Virginia i U.s.a. Arrangementet er gratis! • I forvejen får I udleveret en case om et amerikansk og et skandinavisk firma der skal fusionere, og herunder vælge et fælles ERP-system. I bliver sat sammen i grupper på ca. 3 personer. Hver gruppe repræsenterer et skandinavisk firmas IT-ledelse. Amerikanerne bliver delt i tilsvarende grupper. Hver gruppe skal nu sammen med den skandinaviske gruppe danne et team. De skal diskutere problemer og behov, og foreslå en plan for hvordan man vælger et fælles system og får det i luften. Der er en del konfliktstof i casen fordi behovene og kulturerne er forskellige.9:00-10:20 Foredrag om Global Sourcing ved to af deres medarbejdere, Ryan Nelson og Mike Morris10:30-12:00 Foredrag om Global Sourcing hos Mærsk ved Michael Laursen12:00-13:00 Frokost hvor hvert team spiser sammen.13:00-17:00 Gruppearbejde og plenumdiskussioner i to runder, hvor man også får lejlighed til at sammenligne sin egen plan med hvad der skete i den virkelige case.17:00-18:00 Drinks18:00-20:00 Middag
Hvad er et Operativ System (OS)? • Et program der bliver startet af BOOT processen. • Et program der tilgås via. • Et applikationsprogram interface (API) • En brugergrænseflade (GUI) • Styrer brugen af CPU’en, herunder multi-tasking af applikationer • Styrer brugen af den interne hukommelse i systemet • Styrer input til og output fra tilknyttet hardware; såsom diske, printere, m.m. • Sender beskeder til applikationer og brugere om status på operationer der udføres, og eventuelle fejl der sker.
Hvor bliver OS brugt? • Flere og flere steder… • På desktop og servere • MAC OSX Server • Windows NT, 2000, XP, 2003 og VISTA • BSD • Linux varianter; Kommercielle såvel som Open Source • Novell/SuSE (OpenSuSE) • RedHat (Fedora) • Debian • Ubuntu • Gentoo • Kommercielle UNIX varianter: Solaris (BSD), AIX (AT&T), HPUX (AT&T) • Andre; OpenVMS, OS/400, m.fl. • På netværksudstyr • Routere
Hvor bliver OS brugt? • PDA’er • PalmOS • Windows Mobile • Embedded Linux • Mobiltelefoner • Symbian OS • Windows Mobile • Spillekonsoller • Xbox, Xbox360 • PSP, PS2, PS3 • Andet • Biler • Lyd & Billede
UNIX • Ken Thompson starter med at arbejde på UNIX i 1969 • Bill Joy starter med at arbejde på BSD i 1976 • Avie Tevanian starter med at arbejde på MACH i 1985 • Steve Jobs starter med at arbejde på NextStep i 1985 • Richard Stallman starter med at arbejde på GNU i 1984 • Linus Thorvaldsen starter med at arbejde på Linux i 1991
BOOT processen • Eksempel, PC • Når maskinen startes, initieres basic input-ouput system (BIOS) der er gemt på systemets read-only memory (ROM). • BIOS udfører først en POST check for at sikre at systemets komponenter er tilstede og virker. • BIOS er konfigureret til at vide hvor den skal finde OS. Normalt kigger den på disk, og herefter på CD-ROM. Rækkefølgen kan ændres. • Når BIOS har bestemt hvor OS er, indlæser den første sektor (512-byte) på disken med Master Boot Record (MBR) • MBR starter OS setup, og henter kærnen af OS ind i systemets hukommelse.
Kærnen • Kærnen ”kernel” er den inderste og grundlæggende del af OS, som bliver startet af BOOT processen og lagt ind i hoved hukommelsen. • Kærnen er ALTID i hoved hukommelsen. • Det varierer fra OS til OS hvad kærnen indeholder.
Kærnen (”XNU”) • I vores MAC OSX eksempel er kærnen opbygget af BSD og MACH. • Mach sørger for • Multitasking • Håndtering af hukommelse • Håndtering af interrupts • Real-time support • Kernel debugging • I/O kit (oo) • BSD sørger for • Proces kontrol • Basal sikkerhed (brugeradgang) • POSIX API • TCP/IP, BSD sockets, Firewall • VFS filsystem • Kryptering
Øvrig OS • Darwin (Open Source) består af • XNU • System Utilities • Øvrig OS • C compiler • Application Libraris • Graphical Libraries (Carbon, Quicktime, Quartz, m.m.) • Java Runtime • Java Virtual Machine • GUI
Typer af kærner • Monolitiske kærner • Hele kærnen kører i hukommelsen og udstiller alle systemkald til services såsom netværk, process styring, hukommelsesstyring m.m. • Det betyder i teorien at alt funktionalitet i kærnen bliver initieret ved systemstart. Moderne monolitiske kærner understøtter dog loadablemodules dynamisk kan hentes ind i kærnen. • Eksempler: DOS, Linux, BSD, Solaris m.fl.
Typer af kærner • Mikrokærner • En minimal kærne kører i hukommelsen og udstiller kun de mest basale systemkald til services såsom process styring, hukommelsesstyring m.m. • Andre services der ellers ville være forventet i kærnen leveres af programmer uden for kærnen kaldt servers. • Mikrokærner er blevet interessante i de senere år pg.a. sikkerhed. • Eksempler: AmigaOS, SymbianOS m.fl.
Typer af kærner • Hybride kærner • Kombinerer elementer fra monolitiske- og mikrokærner. Ideen er at have en kærne lig en mikrokærne, men implementeret som en monolitisk kærne. Alle servers kører i kærnen. • Eksempler: MAC OSX, Windows NT, 2000, 2003, XP & VISTA
OS bloat • Der har gennem tiden været en tendens, startende fra BSD med at inkludere flere og flere services til OS.. OS Bloats. • Der kører heftige debatter om hvilke kærne typer der er bedst. Den voldsomeste og længstlevende debat er mellem Andrew S. Tanenbaum og Linus TorvaldsGoogle: The Tanenbaum-Torvalds Debate
Modes og Processer • Modes • For at udføre specielle funktioner vil programmer i user mode lave system kald til kærnen i kernel/supervisor mode hvor trusted code udfører funktionerne. • Processer • En proces er en instans af et kørende program. • En proces består af fem dele • En kopi af koden i programmet • Hukommelse (real memory eller virtual memory) der indeholder koden, og proces specifik data • OS ressourcer (descriptors) der er allokeret til processen • Sikkerheds attributter, såsom proces ejer og proces rettigheder • Processens kontekst
Multitasking • For at flere processer kan køre samtidigt og deles om de samme ressourcer, såsom CPU, er der behov at multitaske. • CPU’en kan kun give opmærksomhed til én proces ad gangen, d.v.s. at CPU’en aktivt udfører instruktioner for denne proces. • Med multitasking skemalægges hvilken proces der får opmærksomhed hvornår, og hvornår den næste proces for opmærksomhed • Det kaldes context switch når CPU’en skifter opmærksomhed fra en proces til en anden. • Hvis context switching sker hurtigt nok, virker det som om processerne kører i parallel • Selv med computere med flere CPU’er (multiprocessor maskiner) hjælper multi-tasking med at køre flere processer end der er CPU’er
Multithreading • Multitasking lader programmørerne udvikle programmer der kører i flere samtidige processer (eksempelvis en til at samle data, en til at behandle data, en til at skrive resultatet til disk). Det kræver at flere programinstanser kan tilgå en process samtidigt. • En Thread er en mappe for information som er tilknyttet én programinstans i en process, d.v.s. at der kan findes flere threads under en process, dette kaldes Multithreading
Hukommelsesstyring • Når flere programmer kører på engang, så risikerer man at et dårligt skrevet (eller bevidst ødelæggende) kørende program overskriver et andet kørende programs hukommelsesallokering. • OS sørger derfor at allokere hukommelse til et kørende program, og sikre at programmet ikke får lov til at tilgå hukommelse udenfor allokeringen. • En måde for et OS at øge den tilgængelige memory er ved at benytte en swap fil eller swap partition (virtual memory).
Filsystemer • Den sidste store ting, et OS hjælper med, er et filsystem. • Filsystemer • Hierarkisk • WIN: FAT, FAT32, NTFS • MAC: HFS, HFS+, NTFS (ro), FAT32 (ro), ZFS (10.5) • Linux/Unix: ext2, ext3, ReiserFS, Reiser4, UDF, UFS, UFS2, XFS, ZFS, FAT32, NTFS (ro) • Distribueret • AFS • NFS • SMB • Distribueret (fault-tolerant – delt over flere noder) • CODA • DFS • Record-orienteret • Mainframe: VSAM, ISAM m.fl. (en samling records)
Logiske volumer • Logisk lag over fysiske diske • Fordele • Sammensæt flere fysiske diske til logiske diske • Ændre på størrelse af logiske diske ”On the fly”
Hvilket OS skal jeg vælge? • Afhænger af opgave og kompetence • Hvert OS har forskellige interfaces • Programmer skrives specifikt til OS • En applikation til et OS kører ikke på et andet • Trends • Cross-over som f.eks WINE, VMWare, Parallels, CodeWeavers
De forskellige OS og kendetegn • Mainframe OS • Mission kritisk • High-Volume • interfaces: • batch, transaction processing, time-sharing. • Java support • UNIX og Linus API • Simpel GUI • SNA, TCP/IP • Eksempler: z/OS, z/VM
De forskellige OS og kendetegn • Server OS • Kører på en server. Hvad er en server? • Fokuserer på deling af hardware- og softwareressourcer • Services kan f.eks. være: fil, print eller webservices • Eksempler: Linux, MAC OS X Server, Windows 2000/2003, OpenVMS
De forskellige OS og kendetegn • Klient OS • God GUI • Ressource management og OS beskyttelse er mange gange lavere i og med single-user • Eksempler: MAC OS X, Linux, Windows XP, Windows VISTA
De forskellige OS og kendetegn • Embedded OS’er • Bruges typisk på devices som mobiltelefoner etc. • Brugeren har typisk ikke adgang til operativsystemet • TV, mikrobølgeovne, mobiltelefoner, PDA’er, • Har typisk mindre memory, CPU, skærm osv. • Eksempler: PalmOS, Mobile Windows.
Hardware CPU Memory Video Controller Keyboard Controller Floppy disk Controller Hard Disk controller
Hardware komponenter • Processors • Memory • I/O Devices • Buses
Processor (CPU) • Er computerens hjerne • Får instruktioner fra hukommelsen og eksekverer dem • Hver instruktion skal igennem Fetch, Decode, Execute, og Write Back • Fetch henter instruktioner fra hukommelsen bestemt af en program tæller • Decode splitter instruktionen for brug i andre dele af processoren • Under Execute bliver de dele af processoren aktiveret og udfører deres del af instruktioner • Under Write Back skrives resultaterne fra ekskveringen tilbage til hukommelsen • Hver type CPU har et specifikt instruktionssæt. Således har Intel Core 2 Duo og SPARC for eksempel hver sit. Konsekvens: Program skrevet til Intel Core 2 Duo kan ikke køre på SPARC • En CPU indeholder også registrere, som er en speciel type hukommelse til at holde midlertidige resultater
Processor (CPU) • De fleste CPU kan køre i to forskellige modes: • User mode • Kernel mode • (minder det om noget ) • I kernel mode kan CPU afvikle alle instruktioner i et instruktionssæt. Og har adgang til den faktiske hardware • I user mode er der kun adgang til et subset af instruktionerne og mindre hardware
Hukommelse (Memory) • Hukommelsen bruges til at gemme instruktioner og data, mens et program eksekverer. • Man designer typisk hukommelse ud fra tre kriterier: • Hastighed • Pris • Kapacitet • Intet hukommelse er optimalt på alle områder. Man taler derfor om et hukommelse hierarki inde i en computer
I/O enheder • Som nævnt tidligere styrer OS også I/O enheder • VIGTIGT et typisk brugerprogram kan IKKE tilgå I/O enheder direkte • En I/O enhed består typisk af to dele: • En device controller som er en chip (eller flere). Typisk en lille microcontroller der er uafhængig af CPU’en og som kun er programmeret til at styre enheden. • Enheden selv • Eksempler: • Et grafikkort eller en monitor • En harddisk controller og selve harddisken • En printer controller med tilhørende printer • ….. • En device controller kaldes ofte også for et kort eller en adapter (SCSI)
I/O enheder • OS tager fat i device controlleren. Device controlleren tager derefter direkte fat i hardwaren. • Den del af OS der taler med device controlleren hedder en device driver. • En device controller vil typisk have forskellige device drivers for hvert operativsystem: Linux OS Enhed Manufacturer A controller Linux driver Win XP OS Windows XP driver Manufacturer B controller Solaris OS Solaris driver Manufacturer C controller …… ……………… Hardware Software
I/O enheder og drivere • En device driver arbejder tæt sammen med kernefunktioner i operativsystemet og skal derfor typisk køre i kernel mode. • Der er typisk tre måder at loade en driver i et operativsystem: • Relink OS kærnen med driveren og reboote systemet • De fleste Unix typer virker sådan. • Ved at lave et entry i konfigurationsfilen for operativsystemet og fortælle den at den skal loade driveren ved boot. • Typisk for Windows • Load og accepter driveren mens operativsystemet kører. Giver mulighed for hot-plugging (Plug and Pray?). Kaldes for ”dynamic loading”. Man behøver ikke her at reboote. De fleste OS’er arbejder i den retning. • USB behøver typisk dynamic loading.
Buses • Al trafik mellem CPU, memory, I/O devices kører over en delt bus • Til at starte med havde man en bus. • De fleste computere i dag består af mange busser. • For eksempel: En PC kan have op til 8 busser: • Lokal bus • Cache bus • Memory bus • PCI bus • SCSI • USB • IDE • ISA bus
Virtuelle maskine • En virtuel maskine OS kerne tilbyder virtuelle maskiner til laget ovenover • En virtuel maskine er • En kopi af hardware • Inkluderer kernel og user mode hardware emulering • Har I/O, Interrupts og alt hvad en rigtig maskine har • Typisk kan en virtuel maskine køre ethvert OS oven på sig.
Data beskyttelse - RAID • RAID søger at beskytte mod datatab pga. diskfejl • Afhængigt af RAID level vil RAID kunne recover data fra en fejlet disk • Nogle gange indeholder RAID hotswap andre gange er det software baseret
Storage Area Network (SAN) Hvad er en SAN løsning? • Typisk et high speed network, med LAN óg Bus karakteristika, som etablerer en forbindelse mellem filsystemer (servere) og storage elementer • Tænk på det som en kæmpe bus, som er sat sammen af tilsvarende teknologier, som man bruger på LAN og WAN, altså: repeaters, hubs, bridges, switches, converters og extenders • SAN interfaces er typisk Fibre Channel… og ikke Ethernet eller ATM.
Hvorfor SAN • Reduktion af TCO • Bedre styring af ressourcer • Skalerbar storage • Nemt at bruge, ligner bare endnu en fysisk disk • Kan både bruges over fiber channel og IP