Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia.

Hasonló előadás


Az előadások a következő témára: "Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia."— Előadás másolata:

1 Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia Tanszék egyetemi tanársegéd Dokumentum verzió: , DEIK_MIPPOS_2008tavasz_BN_1.odp Debrecen, április előadás – KÉK VAGY PIROS PIRULA Programozó Páternoszter DE IK mérnök informatikus szak előadás

2 Operációs rendszerek előadás Bátfai, Norbert Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék Copyright © 2008 Bátfai Norbert E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc 1.2-es, vagy bármely azt követő verziójának feltételei alapján. Nem változtatható szakaszok: A szerzőről. Címlap szövegek: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra. Hátlap szövegek: Belépés a gépek mesés birodalmába. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being: A szerzőről, with the Front- Cover Texts being: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra, and with the Back-Cover Texts being: Belépés a gépek mesés birodalmába. Felhasználási engedély A GNU Free Documentation License nem hivatalos magyar fordítása:

3 Az első előadás vázlata Bevezetés és elmélet ● Az informatikai kultúra kora ● A kurzusról ● Az előadóról ● Ars Poetica ● Az operációs rendszer (általában, vele és nélküle) ● Egy kis történelem ● A GNU és az Open Source mozgalom Példák ● GNU/Linux (Fedora-, Ubuntu-, Debian GNU/Linux) Kernelfordítás ● MINIX ● FreeBSD ● OpenSolaris (Nexenta – GNU/Solaris, BeleniX) Gyakorlat ● A gyakorlat javasolt témája

4 Wachowski Andy és Wachowski Larry. The Matrix. (1999) Lépten nyomon hivatkozunk rá, még itt, ebben az előadásban is! Arntz William és Chasse Betsy. What the #$*! Do We (K)now!? Mi a csudát tudunk a világról? (2004) Szeretném, ha ez lenne a jövő: (Ő ugyanaz a Hameroff, mint a filmben) Zemeckis Robert. Contact. (1997) Ha hallgatóként ezt tudtam volna, kereshettem volna én is Isten üzenetét... Bailey David H. The BBP Algorithm for Pi. (2006) Programozói-információs civilizáció, avagy a feltételezett és ajánlott mozik Lehet Isten üzenete a matematikában? Lehetünk többek, mint Turing gépek? Hozhat megváltást az informatika?

5 Ezt olvasta Stewart Hameroff és így született az Orch OR tudatmodell: Informatikai ismeretterjesztés Penrose, Roger: ● A császár új elméje : számítógépek, gondolkodás és a fizika törvényei ● A nagy, a kicsi és az emberi elme : [kozmológia, kvantummechanika ésa tudatosság fizikája] Mérő László: ● Észjárások : a racionális gondolkodás korlátai és a mesterséges intelligencia ● Új észjárások : a racionális gondolkodás ereje és korlátai ● Az élő pénz : [a gazdasági vállalkozások eredete és az evolúció logikája] ● Mindenki másképp egyforma : a játékelmélet és a racionalitás pszichológiája Barabási, Albert-László: ● Behálózva : a hálózatok új tudománya : hogyan kapcsolódik minden egymáshoz, és mit jelent ez a tudományban, az üzleti és a mindennapi életben A felsorolt könyvek mind megtalálhatóak a könyvtárunkban.

6 A szentek keze Bátfai Norbert, Juhász István: Javát tanítok: Bevezetés a programozásba a Turing gépektől a CORBA technológiáig. Megtalálható a könyvtárunkban. Csak elektronikusan a Kempelen Farkas Digitális Felsőoktatási Tankönyvtárban Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! : A prog- ramozás egy szellemi sport: ismerd meg te is az alaplépéseket!

7 Az előadás egy általános áttekintést ad a tárgyról, de a tárgyalást a MINIX – GNU/Linux (illetve FreeBSD, OpenSolaris) – Java tengely mentén megpróbáljuk színesíteni. Az előadás anyagát ez a vetítés foglalja össze, alapkönyve pedig a Andrew S. Tanenbaum, Albert S. Woodhull: Operációs rendszerek, PANEM mivel ebből van sok a könyvtárban, ezért minden előadásban erre vonatkozóan adjuk meg az elolvasásra ajánlott oldalszámokat. Az új kiadás: Tanenbaum, Albert S. Woodhull: Operációs rendszerek : tervezés és implementáció, PANEM Az előadás megadja a gyakorlatokon elvégzendő feladatokat is, a legtöbb ilyen feladat a Programozó Páternoszter című elektronikus jegyzetben részletesen ki van dolgozva, ennek a verziójára vonatkozóan hivatkozunk oldalszámokra. Az előadást számos hivatkozás említésével színesítjük, hogy önálló érdeklődésből is forgassátok! A kurzusról Hivatali adatok Kód: INBK211E-K4-01 Kredit: 4 OR PP 2- 7 OR

8 A tankönyvről (1999-es kiadás) 1. DEENK NAGYK 2.em. szabadpolc T26mell 2.DEENK Matematikai és Informatikai Intézet mell.mell 3.DEENK Matematikai és Informatikai Intézet mell.mell 4.DEENK Matematikai és Informatikai Intézet mell.mell 5.DEENK Matematikai és Informatikai Intézet mell.mell 6.DEENK Társadalomtudományi Könyvtár szabadpolc T26 mell mell 7.DEENK Matematikai és Informatikai Intézet mell.mell 8.DEENK Társadalomtudományi Könyvtár szabadpolc T26 mell mell 9.DEENK Társadalomtudományi Könyvtár szabadpolc T26 mell mell 10.DEENK NAGYK RaktárA/K DEENK NAGYK 2.em. szabadpolc T26 12.DEENK Társadalomtudományi Könyvtár szabadpolc T26 13.DEENK Műszaki Kar Könyvtára CD mell. 14.DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet DEENK Társadalomtudományi Könyvtár szabadpolc T26 17.DEENK Társadalomtudományi Könyvtár szabadpolc T26 18.DEENK Műszaki Kar Könyvtára DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet DEENK Matematikai és Informatikai Intézet (2006-os kiadás) 1.DEENK NAGYK 2.em. szabadpolc T26 mell 2.DEENK NAGYK 2.em. szabadpolc T26 mell 3.DEENK NAGYK RaktárA mell.mell 4.DEENK NAGYK 2.em. szabadpolc T26 5.DEENK NAGYK RaktárA DEENK NAGYK 2.em. szabadpolc T26 7.DEENK NAGYK 2.em. szabadpolc T26 (2007) 1.DEENK NAGYK 2.em. szabadpolc T26 mell 2.DEENK NAGYK 2.em. szabadpolc T26 Andrew S Tanenbaum: A UNIX clone with source code for operating systems courses. ACM SIGOPS Operating Systems Review Volume 21, Issue (1987) Andrew S. Tanenbaum, Albert S. Woodhull: Operációs rendszerek OR OR 3

9 Programozó Páternoszter Kiegészítések és a laborok anyaga Platformok és nyelvek a jegyzetben Programozási témák a jegyzetben PP 17 Az oldalszámok a verzióra vonatkoznak.

10 Kiegészítő tankönyvek (2000) 1.DEENK NAGYK RaktárA DEENK NAGYK RaktárA/K DEENK NAGYK RaktárK DEENK Matematikai és Informatikai Intézet Ez a könyv elérhető a Kempelen Farkas Digitális Felsőoktatási tankönyvtárban is: Benyó Balázs et al.: Operációs rendszerek mérnöki megközelítésben MM

11 Miért Linux, FreeBSD, MINIX és OpenSolaris? ● Mert lelkesedésből! ● Mert ingyenesen (is) elérhetőek, letölthetőek, használhatóak! ● Mert megismerhetőek, azaz forrásaik, megoldásaik tanulmányozhatóak, sőt, sok esetben még módosíthatóak is! ● Mert számos területen (például szervernek, asztali gépnek, beágyazott rendszernek, oktatásban) nagyon jók! (Tehát akár az otthoni gépedre is felteheted, használhatod - például egy Linux akár céged webszervere is lehet - és tanulmányozhatod őket. Ez a tulajdonság a Windows operációs rendszerekre tipikusan nem igaz, mert azok kizárólag kereskedelmi forgalomban megvásárolhatóak. De személyes véleményem, hogy a Windows asztali számítógépként a legtöbbet tudja kihozni a hardverből és megvalósítja azt a vágyat, hogy bárki könnyen kezelni tudja a gépet. Viszont nekünk most egy kicsit mélyebb szemléletmódra van szükségünk.)

12 Most is éppen egy Morpheusi választás előtt álsz! Most a piros pirula választása, ha felteszel (legalább) egy GNU/Linux rendszert a saját gépedre. Hogy melyiket, abban az előadás és a labor majd ad tanácsot. Take the Red Pill Mivel a hallgatóság – a tantervi háló szerint – a legoptimálisabb esetben is csak ezzel a kurzussal párhuzamosan hallgatja a C nyelvet, ezért természetesen sem az előadáson, sem a gyakorlaton nem kell egyetlen önálló programot sem megírnod! Amit tipikusan tenned kell: az a megkapott C források bemásolása egy fájlba, a fájl lefordítása, majd futtatása (tehát nem programozás, hanem csupán egyszerű CLI használat)! Ez után a futás során szerzett tapasztalataidat, esetleg magának a kódnak a lényegi pontjait emeljük ki, beszéljük meg a gyakorlatokon. Illetve úgy találkozhatsz még C kódokkal, hogy ha az előadásban el akarunk mesélni valamit, le akarunk írni valamilyen folyamatot akkor azt C vagy egy C-szerű nyelven tesszük meg, de ez nyilván nem programozás. Tehát a labor és az előadás sikeres teljesítéséhez sem kell szükségszerűen programoznod! - Ez KÉK PIRULA. De az érdeklődőknek segítek az anyaggal, feladatokkal, hogy lelkesedésükben akár programozhassanak is! - És most ez a PIROS PIRULA! Ne ess pánikba! A szereplő C kódok olvasásáról Wachowski Andy, Wachowski Larry: The Matrix:

13 Választott mottóink mégis „Csak akkor értesz valamit, ha be tudod programozni. Te magad és nem valaki más! Ha nem tudod beprogramozni, akkor csak úgy gondolod, hogy érted.” - Gregory Chaitin: META MATH! The Quest for Omega „Nem tudok kimerítő leírást adni arról, hogy hogyan tudsz megtanulni programozni -- nagyon összetett tudásról van szó. Egyet azonban elárulhatok: a könyvek és tanfolyamok nem érnek túl sokat (sok, valószínűleg a legtöbb hacker autodidakta). Aminek van értelme: (a) kódot olvasni és (b) kódot írni.” - Eric Steven Raymond: How To Become A Hacker A magyar fordítás: „Beszélj más programozókkal, olvasd más programjait. Ez fontosabb minden könyvnél és minden tanfolyamnál.” - Peter Norvig: Teach Yourself Programming In Ten Years A magyar fordítás:

14 Ismert vicc a „Lucifer szemlét tart a pokolban”, szomorúan csattanó poénja, hogy a harmadik üstöt azért nem kell őrizni, mert abban magyarok fortyognak, s ők úgyis visszahúzzák egymást. Erre cáfoljunk rá a vizsgára készüléskor és a gyakorlati munka során: társainknak, egymásnak segítsünk! További remek lehetőség az egymásnak segítésre, ha a tapasztaltabbak segítséget nyújtanak a mindenféle (például GNU/Linux, FreeBSD, GNU/OpenSolaris) operációs rendszerek telepítésében érdeklődő csoporttársaiknak az otthoni gépükre. Iránymutatás a csoportmunkához Ha mégis megrémítenének a kódok Akkor gondolj arra, hogy ezek a programozói-információs civilizáció hieroglifái és nyugtasson meg az alábbi jel, hogy az adott fóliákat, vagy egyelőre az adott fóliákat csak illusztrációs célból villantottuk fel. i Az óra fóruma:

15 Számonkérés – előadás, vizsga A laboron két „kisbajnokságot” nyert hallgatók (nem csoportok) kérhetnek egy megajánlott ötöst az utolsó három gyakorlat valamelyikén: ez egy egyéni feladat megoldását jelenti a gyakorlaton. Maximum 2 fős csoportok a félév során kérhetnek önálló vizsgaleladatot, amit az utolsó két gyakorlat valamelyikén mutatnak be a csoport előtt: előre deklarálva, hogy hármast, négyest vagy ötöst szeretnének, a csoport, a gyakorlatvezető és az előadó opponálja őket, a DocBook*-ban (esetleg OpenOffice-ban) ledokumentált, az előadás előtt elküldött feladatmegoldásuk alapján. (Folytatás a következő fólián.) *: PIROS PIRULÁK KÉK PIRULA Aki – az alábbiak szerint – nem szerzett megajánlott jegyet, az a vizsgaidőszakban tesztet ír, a teszt (90%) és a teszt kiértékelésének esetleges közös átnézése, illetve az előadás és a laborok (10%) látogatása alakítja ki a vizsgajegyet. 50%- 2, 65%- 3, 80%- 4, 90%- 5.

16 A két otthoni feladatot (az adott határidőig és számlimitig) beküldő hallgatók (a teszten elért, minimum kettesről) egy jeggyel feljebb tornászhatják a vizsgajegyüket. Az ilyen feladatok beküldése értelemszerűen nem lehet kötelező – mint piros pirula – csak a lelkes és szorgalmas érdeklődőknek szól. (A jegy feltornászásához összefoglaló DocBook vagy OpenOffice dolgozatot kérek.) A négy otthoni feladatot (az adott határidőig és számlimitig) beküldő hallgatók kérhetnek egy megajánlott ötöst, négyest vagy közepest (a jegy a beküldött anyag minőségétől függ, a jegy kérésekor egy összefoglaló DocBook vagy OpenOffice dolgozatot kérek, ami tartalmazza a feladatokhoz kiírt beküldendő anyagot). Az egy kiemelt otthoni feladatot (az adott határidőig és számlimitig) beküldő hallgatók kérhetnek egy megajánlott ötöst vagy négyest (a jegy a beküldött anyag minőségétől függ, DocBook vagy OpenOffice dolgozatot kérek, ami tartalmazza a feladathoz kiírt beküldendő anyagot). (A dolgozatok tartalmazzanak a témát érintő valamennyi elméletet, jópár sort, magyarázó ábrát! Részletesen, lehetőleg sok képpel mutassák be a feladat megoldását, különös tekintettel arra, hogy az adott megoldás működik is! (A tipikus dolgozat oldal.) PIROS PIRULÁK Számonkérés – labor (BN laborján) Részvétel! Három-négy fős csoportokban, az előadás alapján egy szigorlati tétel kidolgozása írásban:

17 Operációs rendszer Az operációs rendszer az egy program, ami …. Milyen például, amikor nincs? Egészen pontosan, milyen, ha még nem fut? Ilyen szituáció, amikor éppen bekepcsoltad a géped: Rendszerindítás (x86 PC) Elindul az alaplapon (ROM vagy flash) található BIOS (Basic I/O System) program, elvégez egy hardver ellenőrzést (POST: Power-On Self Test). Ha minden rendben, azt nem veszed észre, ha gond van, akkor annak jellegét sípolgatja (ki is próbálhatod, mit sípol például, ha bakapcsolás előtt kiveszed a memóriát). Tegyük fel, hogy a CMOS Setup-ban a merevlemezről bootolás van beállítva, ekkor a BIOS beolvassa a lemez első szektorát, a Master Boot Record-ot: Bootstrap loaderPartíciós tábla 0x1b e 0x1f d 4x16 bájt a 4 elsődleges partíciónak A5 512 bájt magic numbe r

18 Master Boot Record, MBR A5 Az egész merevlemez, most négy elsődleges partícióval Adato k Boot szektor Boot szektor Boot szektor Boot szektor Adato k A5 A memória 0x00007c0 0 A BIOS beolvassa, ide adja a vezérlést 1.1. Átmásolja önmagát és odaadja a vezérlést: az aktív vagy a menüből kiválasztott partíció boot szektorát bemásolja a 0000:7c00 címre (ezért kellett a futó önmagát máshova másolnia) és átadja a vezérlést, a boot szektor kódja tölti majd be a megfelelő operációs rendszer kernelét

19 # cfdisk -P r /dev/sda Disk Drive: /dev/sda Sector 0: 0x000: EB E C0 8E D8 8E D0 BC 00 7C 89 E6 BF 00 0x010: 06 B F3 A5 89 FD B1 08 F3 AB FE 45 F2 E9 0x020: 00 8A F6 46 BB D E BB 40 0x030: 8A 56 BA E8 FC BB C x040: FF FA F6 C2 80 0x050: B2 80 EA 59 7C C0 8E D8 8E D0 BC 0x060: FB A0 40 7C 3C FF C2 52 BE 7F 7D 0x070: E F6 C B4 41 BB AA 55 CD 13 5A 0x080: FB 55 AA A0 41 7C 84 C x090: 83 E B 4C 10 BE 05 7C C6 44 FF 01 0x0A0: 66 8B 1E 44 7C C C x0B0: 5C 08 C C x0C0: 0C B4 42 CD BB EB 7D B4 08 CD 13 0x0D0: 73 0A F6 C2 80 0F 84 EA 00 E9 8D 00 BE 05 7C C6 0x0E0: 44 FF C0 88 F D2 88 0x0F0: CA C1 E E8 88 F C0 88 D0 0x100: C0 E A1 44 7C D2 66 F7 34 0x110: A D2 66 F B C 0x120: 3B D 3C 8A 54 0D C0 E2 06 8A 4C 0A FE C1 0x130: 08 D1 8A 6C 0C 5A 8A 74 0B BB E C3 31 DB 0x140: B CD A 8C C3 8E C 60 1E B9 0x150: E DB 31 F6 31 FF FC F3 A5 1F 61 FF x160: 7C BE 85 7D E EB 0E BE 8A 7D E EB 0x170: 06 BE 94 7D E BE 99 7D E8 2A 00 EB FE 47 0x180: F 6D x190: B F x1A0: BB B4 0E CD 10 AC 3C F4 C x1B0: F B x1C0: FE FF FF 3F D FE 0x1D0: FF FF 81 FE FF FF 6D 74 1B 03 FE 64 9C FE 0x1E0: FF FF A5 FE FF FF 6B D9 B FE 0x1F0: FF FF 83 FE FF FF E1 EF B AA # fdisk (FreeBSD alól) The data for partition 1 is: sysid 7 (0x07),(OS/2 HPFS, NTFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size (25321 Meg), flag 0 beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 254/ sector 63 The data for partition 2 is: sysid 129 (0x81),(Minix since 1.4b, early Linux partition or Mitac disk manager) start , size (5004 Meg), flag 0 beg: cyl 1023/ head 255/ sector 63; end: cyl 1023/ head 254/ sector 63 The data for partition 3 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start , size (20002 Meg), flag 80 (active) beg: cyl 1023/ head 255/ sector 63; end: cyl 1023/ head 254/ sector 63 The data for partition 4 is: sysid 131 (0x83),(Linux native) start , size (27698 Meg), flag 0 beg: cyl 1023/ head 255/ sector 63; end: cyl 1023/ head 254/ sector 63 # cfdisk -P ts /dev/sda (Ubuntu alól) Partition Table for /dev/sda First Last # Type Sector Sector Offset Length Filesystem Type (ID) Flag Primary HPFS/NTFS (07) Boot 2 Primary Minix / old Lin (81) None 3 Primary FreeBSD (A5) None 4 Primary Linux (83) None Partition Table for /dev/sda ---Starting Ending---- Start Number of # Flags Head Sect Cyl ID Head Sect Cyl Sector Sectors x x x x x xA x x x1b e 0x1f d Partíciós tábla az MBR-ben a kurzushoz előkészített egyik gépemen

20 Rendszerindítás (Linux x86 PC) (1)BIOS POST MBR betöltése (2)MBR bootstrap loader fut keresi és betölti a boot loadert (3)A boot loader betölti a Linux (vagy más) kernelt GRUB, GRand Unified Bootloader (A betöltés GUT-ját használják például a Linux disztribúciók, a Solaris x86 disztribúciók.) A rendszerindítás (system startup) tipikus lépései: A rendszerindítás feladata a hardver inicializálása és a kernel képének betöltése a memóriába. (A folyamat a processzor valós címzési módjában assembly kóddal indul. A kövezkező fóliákon illusztrációként láthatunk majd némi AT&T, GAS (Linux, FreeBSD) szintaxisú: forrás-mit, cél-hova, $konstans, %regiszter) és Intel (MINIX, OpenSolaris) szintaxisú: cél, forrás, stb. kódot.)

21 GRUB munkában a kurzushoz előkészített két gépen Az Ubuntu feltette GRUB Az Fedora feltette GRUB Otthoni feladat: telepíts fel a gépedre (legalább) 3-féle rendszert!. „Bizonyítékul” írj néhány sort, hogy miért éppen a választottakat választottad és a fentiekhez hasonló fotót és ugyancsak az előbbiekhez hasonlóan az MBR-t küld el az címemre, az „OS-OTTHONI-TELEPÍTÉS” tárggyal. PIROS PIRULA Korábban láttuk Ubuntu és FreeBSD alól, kiegészítésképpen például: # dd if=/dev/rdsk/c1d0p0 bs=512 count=1|od -Axv -tx1 (Solaris alól) # /sbin/cfdisk -P ts /dev/sda (Fedora alól)

22 include/asm-i386/boot.h #ifndef _ASM_BOOT_H #define _ASM_BOOT_H /* Don't touch these, unless you really know what you're doing. */ #define DEF_INITSEG0x9000 #define DEF_SYSSEG0x1000 #define DEF_SETUPSEG0x9020 #define DEF_SYSSIZE0x7F00... arch/i386/boot/header.S /* *header.S * *Copyright (C) 1991, 1992 Linus Torvalds * *Based on bootsect.S and setup.S *modified by more people than can be counted * *Rewritten as a common file by H. Peter Anvin (Apr 2007) * * BIG FAT NOTE: We're in real mode using 64k segments. Therefore segment * addresses must be multiplied by 16 to obtain their respective linear * addresses. To avoid confusion, linear addresses are written using leading * hex while segment addresses are written as segment:offset. * */ #include #include "boot.h" SETUPSECTS= 4/* default nr of setup- sectors */ BOOTSEG= 0x07C0/* original address of boot- sector */ SYSSEG= DEF_SYSSEG/* system loaded at 0x10000 (65536) */ SYSSIZE= DEF_SYSSIZE/* system size: # of 16-byte clicks */.../* to be loaded */....code16.section ".bstext", "ax".global bootsect_start bootsect_start: # Normalize the start address ljmp$BOOTSEG, $start2 start2: movw%cs, %ax movw%ax, %ds movw%ax, %es movw%ax, %ss xorw%sp, %sp sti cld movw$bugger_off_msg, %si... Linux Az operációs rendszer nélkül - illusztráció x86 setup code rewrite in C – revised i

23 src/sys/boot/i386/boot0/boot0.S /* * Copyright (c) 2002 Bruce M. Simpson * Copyright (c) 1998 Robert Nordier * All rights reserved. * * Redistribution and use in source and binary forms are freely * permitted provided that the above copyright notice and this * paragraph and the following disclaimer are duplicated in all * such forms. * * This software is provided "AS IS" and without any express or * implied warranties, including, without limitation, the implied * warranties of merchantability and fitness for a particular * purpose. * * $FreeBSD: src/sys/boot/i386/boot0/boot0.S,v /03/26 21:56:13 thomas Exp $ */ /* A 512-byte boot manager. */ #ifdef SIO /*... using a serial console on COM1. */ #endif.set NHRDRV,0x475 # Number of hard drives.set ORIGIN,0x600 # Execution address.set FAKE,0x800 # Partition entry.set LOAD,0x7c00 # Load address.set PRT_OFF,0x1be # Partition table.set TBL0SZ,0x3 # Table 0 size.set TBL1SZ,0xa # Table 1 size.set MAGIC,0xaa55 # Magic: bootable... src/sys/boot/i386/boot0/boot0.S.globl start # Entry point.code16 # This runs in real mode /* * Initialise segments and registers to known values. * segments start at 0. * The stack is immediately below the address we were loaded to. */ start: cld # String ops inc xorw %ax,%ax # Zero movw %ax,%es # Address movw %ax,%ds # data movw %ax,%ss # Set up movw $LOAD,%sp # stack /* * Copy this code to the address it was linked for */ movw %sp,%si # Source movw $start,%di # Destination movw $0x100,%cx # Word count rep # Relocate movsw # code... FreeBSD Az operációs rendszer nélkül - illusztráció i

24 /usr/src/boot/masterboot.s !masterboot Master boot block codeAuthor: Kees J. Bot ! ! This code may be placed in the first sector (the boot sector) of a floppy, ! hard disk or hard disk primary partition. There it will perform the ! following actions at boot time: LOADOFF =0x7C00! 0x0000:LOADOFF is where this code is loaded BUFFER =0x0600! First free memory....text ! Find active (sub)partition, load its first sector, run it. master: xorax, ax movds, ax moves, ax cli movss, ax! ds = es = ss = Vector segment movsp, #LOADOFF sti ! Copy this code to safety, then jump to it. movsi, sp! si = start of this code pushsi ! Also where we'll return to eventually movdi, #BUFFER! Buffer area movcx, #512/2! One sector cld repmovs jmpfBUFFER+migrate, 0! To safety migrate:... MINIX Az operációs rendszer nélkül - illusztráció i

25 Az operációs rendszerrel A programozó általánosításai: „Javában minden objektum, UNIX-ban minden fájl,...” Az operációs rendszer - mint Mátrix - megteremti azt az álomvilágot, melyben vannak fájljaink, programjaink. Nélküle a „The desert of the real.” – a valóság sivatagában találjuk magunkat – ahogy Morpheus mondaná. Felhasználó i mód Kerne l mód Hardve r Rendszerhíváso k Sche d Arch MM IPC FS D Ne t CP U RAM IO Felhasználói programok CLI Processzuso k webböngész ő mp3 lejátszó parancsértelmez ő

26 Ha maradnál mégis a valóság sivatagában arch/i386/boot/header.S-ból: (ez volt valóban, a idején, amikor készítettem az előadást, de alig két hét múlva a ben már az arch/x86/boot/header.S).code16.global bootsect_start bootsect_start: # Normalize the start address ljmp $0x07c0, $start2 start2: movw %cs, %ax... jmp msg_loop bs_die: # Allow the user to press a key, then reboot xorw %ax, %ax int $0x16 int $0x19 # int 0x19 should never return. In case it does anyway, # invoke the BIOS reset code... ljmp $0xf000,$0xfff0.section ".bsdata", "a" bugger_off_msg:.ascii "Ezt a kodot az arch/i386/header.S-bol masoltuk es\r\n".ascii "beleirtuk ezt a ket sort leiro sort :)\r\n".ascii "Direct booting from floppy is no longer supported.\r\n".ascii "Please use a boot loader program instead.\r\n".ascii "\n".ascii "Remove disk and press any key to reboot...\r\n".byte 0 Hardver Gépi nyelv OS Rendszerprogramozás Felhasználói programok Számítógépes rendszer $ as bootsect.S -o bootsect.o $ ld bootsect.o -Ttext 0x0 --oformat binary -o bootsect ld: warning: cannot find entry symbol _start; defaulting to $ dd if=bootsect of=/dev/fd0 0+1 records in 0+1 records out 280 bytes (280 B) copied, 0, seconds, 2,9 kB/s i

27 A mi kurzusunk pozicionálása Hardver Gépi nyelv OS Rendszerprogramozás Felhasználói programok Számítógépes rendszer OS Rendszerhívás interfész Felhasználói programok Felhasználói mód Kernel mód Otthoni feladat: az előző példa mintájára készíts egy olyan „bootolható” floppyt, ami róla bebootolva kiír valamit a képernyőre. „Bizonyítékul” a programod és a folyamat néhány pillanatképét (fotó vagy virtuális gép screen-shot) küld el az címemre, az „OS-OTTHONI-BOOTFLOPPY” tárggyal. (És-vagy hozd el a lemezed a laborra.) PIROS PIRULA

28 A parancssori interfész (CLI) Nem szerencsés a sajnos szokásos kifogás, hogy „én Windows-t használok”, mert a különbség itt például ; és : illetve % és $ és máshogy dőlnek a perjelek.

29 1964, M.I.T, Bell Labs, GE: MULTICS (Ken Thompson-1969 B nyelv, Dennis Ritchie) 1971, UNIX (és C nyelv-Dennis Ritchie) az AT&T forrásban (C források) is adja oktatási célokra a UNIX-ot 1974, Berkeley Egyetem: Berkeley UNIX (1977, Bill Joy, Berkeley Software Distribution, BSD) 1983, GNU (Richard Stallman) 1984, UNIX System V 1986, POSIX (Portable OS-IX) 1987, MINIX (Andrew S. Tanenbaum) 1991, Linux (Linus Torvalds hallgatóként) Történeti háttér Unix Timeline: Tökéletes poszterek a szobádba!http://www.levenez.com/unix/ Computer Languages Timeline: D. Ritchie, K. Thompson: The UNIX Time-Sharing System (1974) MM 374 MM 384

30 GNU: Gnu's Not Unix (gə'nu:) A GNU-kiáltvány magyar fordítása: „Ha a GNU elkészül, mindenki úgy kaphat majd jó rendszerszoftvert, mint levegőt.” (Richard Stallman) 3. változat (GNU GPL v3), június 29.: magyar fordítása: „The GNU General Public Licence is the most popular and most widely used Free Software licence. The special thing about this licence is that it's a copyleft licence, that is to say: all versions of the program must carry the same licence. So the freedoms that the GNU GPL gives to the users must reach all the users of the program. And that's the purpose for which I wrote it.”... Richard Stallman interjú (film) a Java nyitásáról: Néhány példa Linux kernel release 2.6.xx: (GNU GPL v2)http://kernel.org GNOME, The Free Software Desktop Project: magyar nyelvű lap: GCC, the GNU Compiler Collection: OpenJDK, Open-Source JDK Community: jdk7: Java SE 7: https://jdk7.dev.java.net/https://jdk7.dev.java.net/ OpenOffice.org: (ez az előadás is ezzel készült)http://www.openoffice.hu/ GIMP - The GNU Image Manipulation Program: (az előadás képei)http://www.gimp.org/ magyar nyelvű lap:

31 Linux (kernel) A Linus-Tanenbaum vita: LINUX is obsolete: (The Tanenbaum Torvalds Debate, Open Sources: Voices from the Open Source Revolution) „I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)” Linus Torvalds, a Helsinki Egyetem 22 éves hallgatója 1991-ben az iskolában (Helsinki Egyetem) az Opreációs rendszerekből tanult MINIX-el való "elégedetlenségében" kezdett a Linux fejlesztésébe. The Linux Kernel Archives: (tipikusan az utolsó stabilt az „F” betű alól. Kb. 40 megás fájlt, de kitömörítve mega, lefordítva pedig a gigát is meghaladhatja!)http://www.kernel.org/ Letöltés e Otthoni feladat: fordítsunk kernelt az otthoni Linuxunkon! „Bizonyítékul” a folyamat néhány pillanatképét (és a következő adatokat: processzorod típusa, memória mennyisége, a kernel fordítási – make utáni – ideje) küld el az címemre, az „OS-OTTHONI-KERNELFORDITAS” tárggyal. A Programozó Páternoszter 173. oldalán találsz segítséget, illetve a Linux Kernel in a Nutshell című könyvet ajánlhatjuk: PP 173 PIROS PIRULA

32 Linux kernel „Linux is a clone of the operating system Unix, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX and Single UNIX Specification compliance. It has all the features you would expect in a modern fully-fledged Unix, including true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and multistack networking including IPv4 and IPv6. It is distributed under the GNU General Public License” … Linux kernel release 2.6.xx /* * linux/kernel/printk.c * * Copyright (C) 1991, 1992 Linus Torvalds * * Modified to make sys_syslog() more flexible: added commands to * return the last 4k of kernel messages, regardless of whether * they've been read or not. Added option to suppress kernel printk's * to the console. Added hook for sending the console messages * elsewhere, in preparation for a serial line console (someday). * Ted Ts'o, 2/11/93. * Modified for sysctl support, 1/8/97, Chris Horn. * Fixed SMP synchronization, 08/08/99, Manfred Spraul * * Rewrote bits to get rid of console_lock *01Mar01 Andrew Morton */ #include... Pillantsunk bele! „...Linux powers everything from supercomputers to mobile phones around the world, and Torvalds has achieved fame as the godfather of the open-source movement,...” Linus Torvalds a TIME Forradalmárok és Vezetők ketegóriájának hőse.

33 Hol használják például? Motorola A780, E680 mobiltelefonok kernel/pkgs: https://opensource.motorola.com/sf/frs/do/viewSummary/projects.a780e680/frs Download E680 / E680i / A780 Kernel sources: opensource.motorola.com: https://opensource.motorola.comhttps://opensource.motorola.com Linuxok a Google keresés mögött álló szerverei. Google Android - An Open Handset Alliance Project: maemo.org: Maemo is the application development platform for Internet Tablets: Pl.: Nokia N810: /* * linux/kernel/printk.c * * Copyright (C) 1991, 1992 Linus Torvalds * 2004 Motorola * * Modified to make sys_syslog() more flexible: added commands to * return the last 4k of kernel messages, regardless of whether * they've been read or not. Added option to suppress kernel printk's * to the console. Added hook for sending the console messages * elsewhere, in preparation for a serial line console (someday). * Ted Ts'o, 2/11/93. * Modified for sysctl support, 1/8/97, Chris Horn. * Fixed SMP synchronization, 08/08/99, Manfred Spraul * * Rewrote bits to get rid of console_lock *01Mar01 Andrew Morton * * 2004-Aug-4 - (Motorola) Added changes to enable phone logging */ #include...

34 Linux kernel verziók The Linux Kernel Archives: (a stabil most éppen a ) rc rc rc rc rc rc rc? most most, január 14. Javítások Fejleszté s Major.Minor.Revision.Patchleve l

35 Kernelfordítá s PP 173 ● 1.) A kernel forrásainak letöltése: The Linux Kernel Archives: (tipikusan az utolsó stabilt az „F” betű alól, ez kb. 40 megás fájl, de kitömörítve mega, lefordítva pedig a gigát is meghaladhatja!) A ~/Kernelek/2.6/ = /home/norbi/Kernelek/2.6/ könyvtáramba mentem a linux tar.bz2 fájlt.http://www.kernel.org/ ● 2.) A források kicsomagolása: $ cd Kernelek/2.6 $ bzip2 -cd linux tar.bz2 | tar xvf - ● 3.) Belépek a kicsomagoltba (és takarítok): $ cd linux $ make mrproper ● 4.) Kiindulásnak szerzünk egy.config fájlt, a rendszerbelit bemásoljuk az akt. könyvtárba: $ cp /usr/src/kernels/valamilyen verzió számozás/.config. ● 5.) A kernel bekonfigurálása: $ make gconfig ● 6.) A kernel lefordítása: $ make … dolgozik a C fordító (ezt az időt mérd le a feladathoz) ● 7.) A többit majd rendszergazdaként: $ su Password: # make modules_install install ● 8.) Kész, jöhet az újraindítás Részletesebb infók: /home/norbi/Kernelek/2.6/linux /README

36 GNU/Linux (gə'nu: 'linəks) UBUNTU: Ubuntu 7.10 (Gutsy Gibbon, Merész Gibbon), telepítő dvd: (Debian alapú) FEDORA: (Fedora a magyar Wikin: Telepítő dvd: Disztribúciók Régen azt tanácsoltuk, olyan Linuxot válassz, amit a környezetedben is használnak. Ma ez inkább már csupán közösségépítő, mint praktikus tanácsunk. De számos magyar nyelvű Linuxos könyvet találsz a könyvtárban is! Néhány közösség: Debian GNU/Linux felhasználók, -rajongók és -fejlesztők levelezőlistája: https://www.linux.hu/wws/info/debian https://www.linux.hu/wws/info/debian Hungarian UNIX Portal Néhány dokumentáció: Debian GNU/Linux Telepítési Útmutató: (magyarul is)http://d-i.alioth.debian.org/manual Linux rendszeradminisztrátorok kézikönyve: hu/index.html (magyar fordítás)http://tldp.fsf.hu/HOWTO/sag- hu/index.html GNU/Linux Command-Line Tools Summary: Tools-Summary/http://www.tldp.org/LDP/GNU-Linux- Tools-Summary/

37 Ubuntu GNU/Linux Az alapértelmezett GNOME felülettel Ubuntu GNU/Linux: Ubuntu 7.10 (2007. október, Gutsy Gibbon, Merész Gibbon), telepítő dvd: (Debian alapú)

38 Fedora GNU/Linux Az alapértelmezettGNOME felülettel Fedora GNU/Linux: (Fedora a magyar Wikin: Telepítő dvd: (Red-Hat alapú)

39 Debian GNU/Linux Debian GNU/Linux: (A Debian beszerzése: magyar nyelvű lap.http://www.debian.org/distrib/ Most éppen a lapról ahttp://cdimage.debian.org/debian-cd/current/ debian-...-kde-...-.iso Debian GNU/Linux 4.0r2 (etch) KDE-s verziót próbáltuk ki. )

40 MINIX A UNIX 7. verziójától (1979) a forráskód már nem volt elérhető az egyetemek számára. Ezért, tehát oktatási célból írta Andrew Tanenbaum a MINIX operációs rendszert. The MINIX 3 Operating System: Live CD-ként töltsd le: majd kitömörítés után (Windows alatt) például a InfraRecorder programmal tudod felírni: Actions/Burn Image... aztán csak be kell bootolnod a CD- ről és máris vár a MINIX 3 rendszer!http://www.minix3.org/download/http://infrarecorder.sourceforge.net/ Készíts egy MINIX Live CD-t magadnak és hozd el a laborra! Letöltés e PIROS PIRULA s

41 FreeBSD A FreeBSD Projekt: Letöltés e FreeBSD 7.0-RC1 és GNOME 2.20 A 4.4BSD-re épül, csomagok a GNU projekből is. (A BSD projekten belül született például a vi editor, a TCP/IP protokollok, a socket programozói interfész.) FreeBSD Handbook: Magyarra fordított cikkek:

42 OpenSolaris Power of OpenSolaris with usability of Linux! ● OpenSolaris (kernel, Dtrace, ZFS) ● Debian/GNU Linux (APT) ● Ubuntu Linux Download Nexenta: Letöltés e Home at OpenSolaris.org: Nexenta – OpenSolaris alapú disztribúció BeleniX – OpenSolaris alapú disztribúció BeliniX: (Live CD a telepítő.)

43 Open Source FSF által elismert licencek GPL komapibilisek... nem GPL komapibilisek … Mozilla Public License... Common Development and Distribution License , Eric S. Raymond OSI által elismert licencek Például: … Apache License, 2.0 … Common Development and Distribution License... New BSD license... GNU General Public License (GPL) GNU General Public License version 3.0 (GPLv3) … Qt Public License (QPL)...

44 Otthoni feladat: telepíts fel a gépedre (legalább) 5 GNU GPL-es (pl. GNOME, Gimp, Gnuplot, GCC, OpenOffice, Webalizer, VirtualBox OSE stb.) szoftvert!. „Bizonyítékul” írj néhány sort, hogy miért éppen a választottakat választottad és néhány képet küldj el az címemre, az „OS-OTTHONI-GNUSOFT” tárggyal. További feladatok Otthoni feladat: telepíts fel a gépedre (Windows és Linux alá is) A Gimp, OpenOffice és a Webalizer szoftvert! „Bizonyítékul” írj néhány sort a szoftverekről és mellékelj néhány képet a használatukról az címemre, az „OS-OTTHONI-GNUSOFT2” tárggyal. (Windows alatt a webalizerhez használhatos pl. a Linuxodon futó Apache access.log-ját.) Otthoni feladat: telepíts fel gépedre a LAMP-ot (Linux, Apache, MySQL, PHP) „Bizonyítékul” írj néhány sort a LAMP-ról és néhány képet küldj el az címemre, az „OS-OTTHONI-LAMP” tárggyal. E két OS-OTTHONI-GNUSOFT-os feladat kizárja egymást. /

45 Tippek a gyakorlatra Bootoljunk be egy GNU/Linux rendszert és ismerkedjünk meg Vele! Használjunk karakteres konzolt, hogy fel sem merülhessen más, mint a parancssor használata! Beszéljünk a shellekről, a bash shellről, a környezeti véltozókról! Állítsuk be a nekünk tetsző PS1 változót! Beszéljük meg néhány alapvető parancs és a manuál használatát! Esetleg az előadás példájának mintájára a Linux kernel kódból „vágjunk ki”, és a programot binárisban írjuk hajlékonylemezre és bootoljunk be róla! Esetleg házi feladatnak (a „házi feladat” nem az „otthoni feladat”, csak annyiban, hogy ezt sem kötelező elkészíteni) adjuk fel a következő kódok „feltörését” (pontosabban a rendszergazda ellenőrzi, hogy a felhasználók megfelelően bonyolult jelszavakat használnak-e) a John the Ripper programmal, $1$jmJCcLQX$hzvMzl3tzV0Kj4RIn7c6m0 $1$wZ3bMDHK$Xogj2CHjy4.o3MEB2nhp00 $1$X0FFXuk6$ikD/PljzJMBzQ05o2slyT. (miután esetleg a laboron is letöltöttük, futtatuk... ) Esetleg bootoljunk be a MINIX Live CD lemezünkről és ismerkedjünk meg Vele! Nézzük meg, hol vannak a parancsok, a források, tanulmányozzuk a licencet stb. Milyen parancsok vannak, amik már ismerősek az iménti GNU/Linux túrából? PP PP 23 ~]$ echo $PS1 \W]\$ ~]$ export \W _\t_ ]\$" ~ _11:24:50_ ]$

46 Útravaló Ha az előadás elérte a célját, akkor telepítesz a gépedre néhány operációs rendszert. Valószínűleg most van egy hatalmas lemezed, amin teljes egészében egy Windows van. Ezért a Gnome Partition Editor LiveCD- jét (http://gparted-livecd.tuxfamily.org) javaslom kiírni (Windows alatt például a InfraRecorder programmal tudod ezt megtenni, az Actions/Burn Image... menü választásával) Ezzel tudod zsugorítani a Windowst, majd új partíciókat létrehozni stb. Sőt, ha menet közben úgy alakul – Hoppá – hogy már nem tudod bebootolni a fentlévő oprendszereket, abban is segít. Ami fontos, addig, amíg nincs mentésed, bele se kezd semmibe, mert megvan a jó esély, hogy mindent elvesztesz a lemezedről!

47 Köszönöm a figyelmet Az előadás elérte célját, ha úgy érzed, kipróbálsz néhány operációs rendszert a gyakor- latban a saját gépeden! Az előadások és a gyakorlatok kölcsönösen, oda-vissza építenek egymásra. Skype: batfai.norbert MSN: Az óra fóruma:


Letölteni ppt "Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia."

Hasonló előadás


Google Hirdetések