Les 1: Inleiding "Adding manpower to a late software project makes it later.” Brooks' law – Fred Brooks – The Mythical Man-Month best1-1 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-2 Wat is een besturingssysteem? Toepassingen/systeemprogramma’s Interface naar toepassingen Besturingssysteem Interface naar de hardware Hardware Bemiddelaar tussen toepassing en hardware best1-3 Besturingssysteemdiensten • • • • • • • • • User interface: GUI – CLI – Batch Uitvoering van programma’s Input-output Bestandsmanipulatie Communicatie Foutdetectie Systeemmiddelenbeheer Boekhouding Protectie en beveiliging best1-4 Wat is een besturingssysteem? minimalistische visie Enkel de software die in geprivilegieerde mode uitgevoerd wordt – de kern toepassingen Kern HW best1-5 Wat is een besturingssysteem? maximalistische visie Alles wat je meekrijgt als je een besturingssysteem koopt Windows Mediaplayer? Internet explorer? Spelletjes? best1-6 Gebruikersprogramma’s vs. Systeemprogramma’s • Gebruikersprogramma’s – – – – Tekstverwerker Databank Mail-programma … • Systeemprogramma’s – – – – – Configuratiebeheer Backup/restore Virusscanner Commandoshell … Onderscheid niet steeds duidelijk of relevant best1-7 Ontwerpsdoelstellingen BS ontwerper BS gebruiker best1-8 Systeemgeneratie (SYSGEN) OS-CD best1-9 Protectiedomeinen applicatieprogramma Gewone instructies Gewone instructies gebruikersmode kernmode Gewone instructies + gepriviligieerde instructies [kernmode <> root/administrator mode] best1-10 write(“hello”); write: mov eax,10 mov ebx,arg int 128 (syscall) ret Systeemoproep switch (eax) { case 10: …doe I/O iret } user mode kernmode best1-11 Soorten systeemoproepen • • • • • Procesbeheer Bestandsbeheer Apparaatbeheer Informatiebeheer Communicatiebeheer best1-12 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-13 Korte geschiedenis • Eerste generatie 1945 - 1955 vacuümbuizen, prikborden paar computers ter wereld • Tweede generatie 1955 - 1965 transistors, batchsystemen, mainframes één computer per bedrijf • Derde generatie 1965 – 1980 IC’s en multiprogrammering, minicomputers één computer per afdeling • Vierde generatie 1980 – 1995 microprocessors, PC’s, één computer per persoon • Vijfde generatie 1995 – heden ingebedde systemen, PDA’s, GSM’s verschillende computers per persoon best1-14 Eerste generatie 1945-1955 Data Programma Compiler • Geen besturingssysteem • Programmeren door bedrading via prikborden (plugboards) • Later ponskaarten I/O-bibliotheek tbest1-15 Tweede generatie 1955-1965 • Opkomst van de mainframes • Off-line verwerking met tapes Nadeel: doorvoertijd wordt groter best1-16 Tweede generatie 1955-1965 Compiler I/O-bibliotheek Vb.: FMS: Fortran Monitor System: residente monitor best1-17 Derde generatie 1965–1980 • Opkomst van de computerarchitectuur (IBM 360, 370, 4300, 3080, 3090) • Opkomst van de minicomputers (PDP1, 1961) • Eerste echte BS: OS/360: verschrikkelijk complex, talloze bugs… • Introductie van multiprogrammering • Introductie van spooling • Introductie van time sharing best1-18 Multiprogrammering Niet belangrijk voor wetenschappelijk rekenen (2e generatie) [fortran] Zeer belangrijk voor commerciële toepassingen (3e generatie) [cobol] Hardwareprotectie vereist voor het geheugen, voor de randapparaten en voor de CVE BS 2e gen Wachten op IO 3e gen best1-19 Spooling Simultaneous Peripheral Operation On-Line – disk i.p.v. tape – niet langer sequentieel – minder wachttijden (terugspoelen, nieuwe tapes opleggen,…) best1-20 Time sharing • CTSS: Compatible Time Sharing System, MIT 1962, eerste interactieve vorm van multiprogrammering • Opvolger MULTICS: MULTiplexed Information and Computing Server (MIT, Bell Labs, General Electric), later gecommercialiseerd door Honeywell • Ken Thompson (Bell Labs) porteerde Multics voor de PDP-7, hetgeen later resulteerde in Unix en zijn varianten best1-21 Vierde generatie 1980–1995 • Microcomputers of PC’s • Gary Kildall, Digital Research: 1974 CP/M (Control Program for Microcomputers) • IBM PC (1980): MS-DOS, Xenix • Apple (1983): introductie van de GUI • Vanaf 1995: Windows NT, 2000, XP, Vista, 7, 8; convergentie met Windows 95, 98, Me • Daarnaast ook Unix/Linux • Tegenwoordig allemaal netwerkbesturingssystemen best1-22 Vijfde generatie: 1995–heden • Ingebedde processors en besturingssystemen in GSM’s, PDA’s, GPS’en, MP3-spelers, enz. • Communicatie en verwerking van media belangrijk, quality of service (QoS), beveiliging, … • Windows Mobile, Symbian, Android, Palm OS, iOS, … best1-23 Migratie van functionaliteit best1-24 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-25 Soorten besturingssystemen • • • • • • • • Mainframes Desktopsystemen Multiprocessorsystemen Gedistribueerde systemen Geclusterde systemen Ware-tijdsystemen Zaksystemen Chipkaartsystemen/Sensor netwerken best1-26 Mainframes • Sterk in IO (TB opslagcapaciteit) • Gemultiprogrammeerd • Toepassingen – Batch – Transacties (databanken) • Vb. OS/390, BS/2000, z/OS • z/Architecture is nog steeds compatibel met IBM 360 best1-27 Desktopsystemen • Personal computer – in de regel slechts 1 gebruiker • Talrijke randapparaten • Gebruiksgemak en snelheid primeren • Neemt gaandeweg meer eigenschappen van grotere systemen over • Niet gebonden aan 1 besturingssysteem (Windows *, MacOS, UNIX, Linux) best1-28 Multiprocessorsystemen • Systemen met meer dan 1 microprocessor, maar met gemeenschappelijk geheugen • Voordelen van een multiprocessor: – Hogere doorvoer, meer rekenkracht – Efficiënter hardwaregebruik – Grotere betrouwbaarheid • graceful degradation • fail-soft systems • Vaak gebruikt als server: file server, mail server, web server • Unix/Linux, Windows * server best1-29 Multiprocessorarchitecturen • Asymmetrische multiprocessing • Symmetrische multiprocessing (SMP) best1-30 Gedistribueerde systemen best1-31 Client-server vs. peer-to-peer C CS C C CS CS S CS C C CS CS C Client-server CS Peer-to-peer best1-32 Geclusterde Systemen • Bij clustering delen de verschillende computersystemen schijfruimte • Goed voor hoge beschikbaarheid best1-33 De Cloud • Serverinfrastructuur die tegen betaling beschikbaar is. Drie varianten: – Software as a service (SaaS) – Platform as a service (PaaS) – Infrastructure as a service (IaaS) best1-34 Ware-tijdsbesturingssystemen • • • • Ware tijd ≠ snel ! Ware tijd = op tijd. Interactie met de omgeving Harde ware tijd Zachte ware tijd best1-35 Zaksystemen • Digitale agenda’s (PDA), Zaktelefoons,... • Problemen: – Beperkt geheugen – Beperkte rekenkracht – Klein scherm • Voorbeelden: PalmOS, Windows Phone, Symbian, Android, iOS, Tizen, … best1-36 Chipkaart/sensor netwerken besturingssystemen • Extreme randvoorwaarden qua verbruik, snelheid, enz. • Minimale kern • Soms een Java Virtuele Machine • TinyOS best1-37 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-38 Architectuur van besturingssystemen • • • • • Monolitisch Gelaagd Kernmodules Microkern Virtuele machines best1-39 Monolithisch Toepassingen Interface naar toepassingen Interface naar de hardware Hardware best1-40 Gelaagd Toepassingen Interface naar toepassingen Interface naar de hardware Hardware Vb Unix, OS/2, VMS best1-41 Kernmodules Toepassingen Interface naar toepassingen Interface naar de hardware Hardware [Modules kunnen soms dynamisch ingeladen worden] best1-42 Microkern Toepassingen Interface naar toepassingen Gebruikersmode microkern Kernmode Interface naar de hardware Hardware Alle communicatie tussen clients gaat via de microkern Vb. Mach, eerste versies van Windows NT, Minix, Singularity best1-43 Windows NT Client-Server Structure best1-44 Virtuele hardware best1-45 Systeem Virtuele Machine VMWare Xen Microsoft (Hyper-V) Toepassing Interface Windows/Linux Interface Toepassingen SystemVM Interface naar toepassingen Windows/Linux Interface naar de hardware Hardware best1-46 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-47 Bestaande besturingssystemen • • • • • • • • Unix en zijn varianten MS-DOS/MS-Windows Windows 95/98/NT/2000/ME/XP/Vista/7/8 OS/2 Mach Mac OS VMS GSM-OS best1-48 Unix • 1972 • Bell Telephone (Dennis Ritchie & Ken Thompson) • Via universiteiten: BSD (Berkeley Software Distribution) • AT&T: System V • Solaris, HPUx, Irix, AIX, Sinix, Linux • Standaard: POSIX best1-49 Ms-DOS • 1981 Microsoft • Sindsdien 6 versies • Nauwelijks besturingssysteem te noemen • Beperking 640 kiB • Grafische omgeving Windows 3.x best1-50 Windows 95/98/NT/2000/ME/XP/Vista/7/8/10 • NT: 1993 • Eerste echte OS van Microsoft • Via HAL (Hardware Abstraction Layer) aanpasbaar aan andere platformen – binnenkort ook ARM. • 23 miljoen lijnen code (Windows 2000) en 63000 fouten bij de introductie • Client versie + Server versie best1-51 OS/2 • 1987 • Antwoord van IBM op MS-DOS/Windows • 32-bit OS best1-52 Mach • • • • ‘80 Carnegie-Mellon Gebaseerd op microkern Emuleert Unix Geëvolueerd in OSF/1 (Open Software Foundation) • Oorsprong van heel wat moderne concepten best1-53 Mac OS • Open source kernel gebaseerd op FreeBSD and Mach 3.0 • POSIX-compatibel • Enkel voor Macintosh • Sterke grafische mogelijkheden • Nu Mac OS X best1-54 VMS • OS voor de VAX (Digital, later Compaq, nu HP) • Zeer invloedrijk in de ‘80 • Zeer veel nieuwe ideeën: interactief werken, bestanden met versies, netwerk (DECNET) • Makers van VMS hebben eerste versie van Windows NT ontwikkeld best1-55 GSM-OS’en • Besturingsystemen voor zaktelefoons/pda’s – voor een ARM processor – Windows Phone = mini-Windowsversie – Android = Linux + Java door Google – iOS: voor de iPhone en iPad – Symbian – gepromoot door Nokia – Palm OS – Tizen best1-56 Overzicht • • • • • • Wat is een besturingssysteem Een korte geschiedenis Soorten besturingssystemen Architectuur van besturingssystemen Bestaande besturingssystemen Concepten in besturingssystemen best1-57 Concepten in besturingssystemen • Abstrahering • Virtualisering • Onderscheid tussen Mechanisme & Beleid • Onderscheid tussen Interface en Implementatie best1-58 Abstrahering • Hardware-elementen worden geabstraheerd door software-elementen: – Sectoren op schijf worden bestanden – Input/output apparaat wordt software device (met bestandsinterface) – Systeemparameters worden bestanden (/proc bestandensysteem) best1-59 Virtualisering • Het geheugen wordt opgedeeld in verschillende gescheiden (virtuele) adresruimten, gebruikt door processen • De rekentijd wordt verdeeld tussen de verschillende draden die kunnen beschouwd worden als virtuele cpu’s • Randapparaten worden gevirtualiseerd (o.a. door spooling) best1-60 Mechanisme & Beleid • Mechanisme definieert de manier waarop iets gebeurt • Het beleid bepaalt hoe er gebruik gemaakt wordt van het mechanisme • Bv. Protectiemechanisme en het gebruik ervan, planningsmechanisme en de parameters om het af te stellen • Mechanisme is vast, beleid kan aangepast worden best1-61 Interface en Implementatie • Bestandsinterface gekoppeld aan diverse onderliggende bestandensystemen • Win32 interface, bovenop diverse implementaties ervan best1-62 best1-63