Veleuč Veleučiliš ilište u Rijeci Vježbe 2007/2008 iz kolegija OPERACIJSKI SUSTAVI Skripta za studente Bernard Vukelić, predavač Literatura David A. Solomon, Mark Russinovich: Inside Microsoft Windows 2000, Microsoft Press, 2000. Andrew S. Tanenbaum: Modern Operating Systems, Prentice Hall PTR, 2nd Edition Silberschnatz A.: Operating Systems Concepts, Seventh Edition, 2004. Kokoreva O.: Windows XP Registry, A-LIST Publishing, 2002. + sve što nađete na Internetu!!! 1 Uvod “Operacijski sustav je specijalan program ili skupina programa koji upravlja računalom u smislu sklopovlja (engl. hardware) i programske podrške (engl. software).” “…upravljanje procesima, upravljanje memorijom, upravljanje datotečnim sustavima, mrežna podrška, upravljanje sigurnošću, grafičko ili tekstualno sučelje, upravljački programi za specifično sklopovlje i sl….” HARDWARE KORISNIK (User) SOFTWARE Sklopovlje rač računala Korisnik 1 Korisnik 2 Korisnik 3 n Korisnik Aplikacijski programi Operacijski sustav Hardware 2 Operacijski sustavi Korisnik – terminal, user-friendly sučelje Računalo – upravitelj resursima: 1) transformacija - kreira novi resurs (logički) iz postojećeg (fizičkog) 2) multipleksiranje – kreira iluziju o postojanju više logičkih resursa iz jednog postojećeg fizičkog 3) alociranje - vodi računa o pravu korištenja nad nekim resursom - aplikacije – zahtjevi kroz API - application program interface Sklopovlje rač računala Elektroničko računalo Priprema podataka Ulaz Obrada Izlaz Sklopovlje računala: Procesor Radni spremnik Vanjski spremnici Ulazno-izlazne naprave Podatak Informacija 3 Sklopovlje rač računala von Neumannova arhitektura: računalo kao sklop sastavljen od četiri glavna dijela: n n n n ALU (Arithmetic and Logic Unit) - aritmetičko-logička jedinica, kontrolna jedinica, memorija i I/O (Input and Output) - ulazni i izlazni sklopovi. Današ Današnji model rač računala 4 Paljenje i inicijalizacija rač računala BIOS (Basic Input Output System) - software interrupts - interrupt vector table CMOS (Complementary MetalOxide Semiconductor) - 64 bytes - "CMOS Checksum Error" Paljenje i inicijalizacija rač računala Tipično podizanje sustava (System Boot Sequence) sastoji se od sljedećih koraka : 1. Uključenja napajanja, chipset generira reset signal za procesor - dok matična ploča ne dobije signal da je napajanje zadovoljavajuće (Power Good signal) 2. Procesor počinje izvođenje instrukcija sa određene lokacije u ROM memoriji BIOS-a - FFF0h - skok na stvarni početak BIOS-ovog programa za podizanje sustava – na kraju sistemske memorije. 2a) Provjera CMOS-a 2b) skok na stvarni startup program 3. BIOS izvodi POST (Power-on self test) – sve u redu – INT19 – dalje na uređaje koji su priključeni na matičnu ploču – nije sve u redu – boot proces STOP 5 Paljenje i inicijalizacija rač računala 4. BIOS traži grafičku karticu 5. Nakon toga BIOS pretražuje druge kartice i ako u njihovim ROM-ovima pronađe BIOS, pokreće ga. 6. BIOS ispisuje “startup” ekran 7. Izvode se razni testovi uključujući i prebrojavanje memorije koje se prikazuje na ekranu. 8. BIOS pregledava koji hardware je priključen na računalo. 9. Konfiguracija P’n’P (Plug & Play) uređaja. 10. Ispisati će se tablica sa popisom hardware-skih komponenata. Paljenje i inicijalizacija rač računala 11. BIOS traži pogon (floppy/disk) sa kojega će podignuti operacijski sustav. 12. BIOS traži informacije o podizanju operacijskog sustava. Na tvrdom disku pretražuje MBR (Master boot record) 13. BIOS kreće sa podizanjem operacijskog sustava. 14. Ako ne uspije pronaći informacije koje traži, BIOS ispisuje poruku i zaustavlja se – INT18. "cold boot" "warm boot" – CTRL+ALT+DEL – od koraka 8 6 BIOS i pristup hard disku 1. BIOS Interrupt Routines 2. Hard Disk Detection and Configuration – IDE/ATA 3. Hard Disk Interface Mode Support – chipset, matična ploča, I/O sabirnica... Int13h sučelje – DOS - reading, writing, formatting - Geometrija diska - 1,024 cylinders, 256 heads, 63 sectors ~ 8 GB > Int13h extensions U BIOS-u za zapis diska - 10 bits for the cylinder number - 8 bits for the head number - 6 bits for the sector number Objaš Objašnjenje CHS vrijednosti Stari način – diskovi do 8Gb – 1998. -1999. – npr. CHS (723, 254, 63) – ali obično se zapisuje Head, Sector and Cylinder – cilindar treba više od 8 bitova za zapis -8 bitova (1111 1110) Head - FE in hexadecimal (ili 254 u decimalnom sustavu) - 6 bitova – Sector – 11 1111 = 3Fh = 63 - Cylinder - 10 bitova – 2 mora prebacit - 10 1101 0011= 2D3h = 723 7 BIOS i pristup hard disku PROBLEMI BIOS i pristup hard disku IDE/ATA - 2^16 or 65,536 cylinders 8 BIOS i pristup hard disku logical geometry - physical geometry Hard Disk BIOS Translation Modes: - Normal / Standard CHS Mode – diskovi ispod 528 MB Extended CHS (ECHS) / Large Mode LBA - logical block addressing 3.8 Gb 34.2 Gb 9 BIOS i pristup hard disku CHS – no translation Extended CHS · LBA · Primjer Physical geometry - 2000 cylinders, 16 heads and 63 sectors = LBA = 2016000 sectors BIOS – INT13 = 1000 cylinders, 32 heads and 63 sectors value of N The number of cylinders is divided by N while the number of heads is multiplied by N N = 2, 4, 8,..., a power of 2. 10 LBA - logical block addressing Svaki sektor je označen “unique” brojem – npr. Floppy 0-2879=2880 blokova LBA = (Sector - 1) + (Head * Total Sectors) + (Cylinder * (Total Heads + 1) * Total Sectors) LBA = ( (cylinder * heads_per_cylinder + heads )* sectors_per_track ) + sector - 1 MBR (Master (Master boot record) record) “početna točka” – podaci o disku (particije) Lokacija – 0 cylinder, 0 head, 1 sector 11 Boot Record Signature 16-bit hexadecimal Word, 0xAA55 (or: AA55h) Master Boot Code Master Boot Code (Code Area) – mala količina koda koji služi za pokretanje operacijskog sustava (real mode machine language instructions) – BIOS – OS Master Boot Code - Master Partition Table – aktivnosti: 1. 2. 3. 4. U particijskoj tabeli traži aktivnu particiju Traži početni sektor aktivne particije Učitava kopiju boot sektora iz aktivne particije u memoriju Predaje kontrolu boot loaderu u boot sektoru aktivne particije 12 Partitions (Particije) Particije) Particije su logičke strukture odnosno cjeline (dijelovi) tvrdog diska, koje operacijski sustav prikazuje kao zasebne prostore na disku Zašto se tvrdi disk mora particionirati? 1. U prijašnje vrijeme: zbog datotečnog sustava (File system) – podrška do određene veličine particije 2. Danas: više OS na disku – dual boot Primarne, proš proširene i logič logičke particije Particije mogu biti primarne (primary) i proširene (extended) – proširene particije sadržavaju logičke (logical) particije Primarne particije - na kojima se nalazi operacijski sustav i sa kojih se podiže sistem (bootabilne) Sastoje od četiri dijela:* * Primjer FAT datotečnog sustava 13 Primarne, proš proširene i logič logičke particije Proširene particije najčešće služe za pohranu podataka koji nisu važni za podizanje sustava - ne mogu biti bootabilne – sadrže logičke particije – max. 24, odnosno 23 ako koristimo primarnu particiju na disku Partition Table Partition Table (Particijska tabela) – popis primarnih particija - sadrži 4 zapisa po 16-byta (4x16=64) U praksi 3+1!!! – zašto? 14 Unos za Primary Partition (Partition Table Entry) Entry) Unos za Primary Partition (Partition Table Entry) Entry) Boot indicator – 80h ili 00h – primarna bootabilna uvijek ima najveću vrijednost Starting Sector - u CHS vrijednostima (3 bytes) Partition Type Descriptor – tip datotečnog sustava - mogućih 256 vrijednosti - npr. 0Bh za FAT32 Ending Sector - u CHS vrijednostima (3 bytes) Starting Sector (4 bytes) - LBA (Absolute Sector) vrijednost Logical Block Address Partition Size – (4 bytes) 15 PRIMJER!!! (Partition (Partition Table Entry) Entry) Extended Boot Record Ako na hard disku postoji Proširena particija (Extended) može postojati i Extended Boot Record – jer neki OS-i vide unutar particijske tabele proširenu particiju, ali ne i logičke 16 Boot Sector Na 1 sektoru svake particije Boot sector – assembler code … 17 BIOS parameter block (BPB) BPB – veličina i geometrija diska – informacija boot codu gdje se nalazi boot loader – npr. Ntldr u Windowsima Primjer FAT 32 BPB-a Dinamič Dinamički diskovi/particije diskovi/particije – MS Windows 2000 Fleksibilniji: multipartition volumes – § § § § Spanned volumes Mirrored volumes Striped volumes RAID-5 volume bolje performanse, podrška za veće particije, pouzdanost Informacija o konfiguraciji dynamic particije zapisana na samom disku Nedostaci: nekompatibilni sa ranijim verzijama Windowsa, onemogućen pristup preko dual-boot-a Particije nisu prikazane u MPT – soft particije – potreban Logical Disk Manager (LDM) 18 Dinamič Dinamički diskovi/particije diskovi/particije – MS Windows 2000 LDM database GUID particije - Guaranteed Unique Identifier Disk Intel - Extensible Firmware Interface (EFI) - 64-bit Veličina do 18 exabytes i 128 partiticija po disku 19 Primjer Partitions Vježba - objasnite http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/prcb_dis_qxql.mspx?mfr=true 20 Partition Table Vježba – Partition Table Editor Domaća zadaća: proučiti na webu: hard disk IDE/ATA, PIO, DMA, RAID, spanned i striped Volumes...www.pcguide.com; www.acnc.com/raid.htm Datoteč Datotečni sustavi File system – struktura u kojoj su datoteke zapisane – naziv i način pristupanja. Podaci na disku smješteni su u 512-byte sektore - x86 systems Zbog performansi disk je podijeljen na veće dijelove clustere (allocation units) addressable blocks Metadata Logički i fizički blokovi Read-write Interrupt 21 NTFS datoteč datotečni sustav NTFS – “New Technology File System” – Windows NT, Windows 2000 i Windows XP Pouzdanost – konzistentnost file systema – log datoteke Veća sigurnost – EFS – Encrypting File System – enkripcija podataka i ACL - access control list “Menadžment prostora” na disku – disk kvote – disk kompresija na razini atributa Podrška za veći diskovni prostor – teoretski do 16 exabyta – manja veličina clustera – limitirano do 128 TB – 32-bitni clusteri NTFS File System Driver NTFS i ostali datotečni sustavi imaju device drivere – kernel mode Datoteke – objekti – dijeljenje i zaštita – Object manager 22 NTFS struktura Svi podaci su zapisani kao datoteke master file table (MFT) – osnova NTFS Volume strukture – file record 1KB – 1 record za 1 file + metadata files – započinju sa znakom $ - $Mft - maximum size of 248 records 1 – kopija MFT 2 -log file – npr. dodavanje novog ili micanje direktorija 3 – Volume – informacije o veličini, nazivu 4 – Definiranje atributa 12% 5 – Root direktorij - \ 88% 6 – Bitmap – slobodni prostor na disku 7 – Bootstrap loader – pokazivač 8 – Bad blocks 9 – Security descriptor – files & directories 10 – Case mapping – npr. Latin A-Z, upper and lower case 11 – Extend – npr. file object IDs, quotas NTFS File Reference Numbers Svaka datoteka (file) je opisana sa 64-bitnom vrijednošću - file reference – sastoji se od file number i sequence number-a File number – pozicija datoteke u MFT-i minus 1 ako datoteka ima više od 1 recorda Sequence number – za provjeru konzistentnosti kada se pozicija datoteke promijeni 23 File Records Svaka datoteka je opisana kroz atribute - zaglavlje i vrijednost - nonresident i resident < 1KB > 1KB - runlist Filenames . " / \ [ ] : ; | = , * ? (space) Mogućnost upisivanja 255 znakova - Unicode i razmaci MS DOS – 8.3 sistem – dugačka imena se moraju kratiti Dir /x 24 NTFS Recovery Support Chkdisk alat recoverable file system – u prošlosti su se koristile dvije tehnike: - careful write – prije zapisivanja podataka FS napravi serijske podoperacije – nakon reseta file system je konzistentan - lazy write - write-back caching strategy kao pozadinski proces zapisuje se volume's state NTFS Recovery Support NTFS koristi logging techniques (journal) – kad sistem padne gleda se zapis log datoteke – NTFS zapisuje log kad: 1. 2. 3. 4. 5. 6. 7. Creating a file Deleting a file Extending a file Truncating a file Setting file information Renaming a file Changing the security applied to a file log file service (LFS) 25 WinFS (?!) WinFS – novi file system – za buduće generacije Windowsa – zasniva se na relacijskoj bazi podataka – Windows Future Storage Datoteč Datotečni sustavi Vježba – ispis MFT-a - Nfi utility Domaća zadaća: CDFS, UDF, FAT (12,16,32); NTFS kompresija i enkripcija – www.ntfs.com 26 MS Windows – boot process Boot proces, sastoji se od pet razina (koraka): - preboot sequence, - boot sequence, - kernel load, - kernel initialization, - logon 27 MS Windows – boot process Datoteke koje Windowsi koriste prilikom bootanja sistema: Naziv Lokacija Boot razina ntldr C:\ Preboot i boot Boot.ini C:\ Boot Bootsect.dos C:\ Boot (opcionalno) Ntdetect.com C:\ Boot MS Windows – boot process Naziv Lokacija Boot razina Ntbootdd.sys C:\ Boot (opcionalno) za SCSI diskove Ntoskrnl.exe \Windows\System32 Kernel load Hal.dll \Windows\System32 Kernel load System \Windows\System32\ Config Kernel initialization 28 MS Windows – boot process Smss Učitavanje Win32 subsistema i startanje Winlogon procesa. Winlogon Startanje Service control manager-a i Local Security Subsistem-a (Lsass), te prikazivanje logon dijaloga. Service control manager (SCM) Učitavanje i inicijalizacija “auto-start” device drivera i Win32 servisa. MS Windows – boot process Preboot Sequence – koraci: - računalo pokreće tzv POST (power-on self test)+BIOS+testiranje memorije - BIOS traži MBR (Master boot record) na hard disku računala - učitavaju se podaci iz master boot sektora – da se vidi boot particija - učitavanje i izvršavanje ntldr datoteke 29 MS Windows – boot process Boot Sequence: - učitavaju se informacije o hardware-u i pripadajućim driverima - 4 faze: inicijalizacija boot loadera (ntldr), odabir operacijskog sustava (boot.ini), detekcija hardware-a (Ntdetect.com i Ntoskrnl.exe) i detekcija postavki (lista hardware-skih profila) MS Windows – boot process Ntldr počinje rad u tzv. real mode-u – nema “virtual-to-physical” pretvaranja memorijskih adresa – koristi se samo fizički dio memorijskih adresa i to samo 1 MB. Dalje Ntldr prebacuje sistem u tzv. protected mode – pristup cijeloj fizičkoj memoriji i omogućavanje “paging-a” Na kraju Ntldr učitava informacije iz boot.ini datoteke i ako je samo jedan boot izbornik automatski se prikazuje Startup screen sa progress bar-om. 30 MS Windows – boot process Boot.ini datoteka Control Panel – System – Advanced – Startup and Recovery + Edit Tipični izgled boot.ini datoteke [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2) \WINDOWS="Microsoft Windows XP Professional" /fastdetect C:\="Microsoft Windows Millennium Edition" MS Windows – boot process ELEMENTI BOOT.INI DATOTEKE - Kriptirane linije koje određuju putanju (path) boot particije multi(0)disk(0)rdisk(0)partition(2)\WINDOWS • prvi parametar označava disk kontroler – u multi() formi je uvijek 0 • disk parametar nije upotrebljen u multi() formi te je i on postavljen na vrijednost 0 31 MS Windows – boot process • rdisk parametar označava redni broj disk kontrolera koji sadržava OS – npr. prvi disk je 0 (master), drugi 1 (slave) itd. • partition parametar označava boot particiju i uvijek započinje sa brojem 1 • \WINDOWS označava putanju mape u kojoj je instaliran OS. MS Windows – boot process Najčešći switch-evi koji se koriste • /Fastdetect – isključuje traženje mouse-a na serijskom portu • /Noguiboot - isključivanje Windows “splash” screen tijekom startupa • /Sos – prikazivanje informacija o svakom driveru koji se učitava prilikom startup-a 32 MS Windows – boot process Kernel load – učitavanje hardware drivera (Ntdetect.com) i servisa – podaci iz BIOS-a: informacija o vremenu (time & date); tipovi sabirnice, veličinu i tip diskova; mouse device; broj i tip paralelnih portova na računalu. MS Windows – boot process Kernel initialization - na ekranu se pokaže statusna traka sa učitavanjem - ntldr prepušta kontrolu kernelu – učitavanje Ntoskrnl.exe i Hal.dll – ako nema jedne od tih dviju datoteka na ekranu se pojavi poruka “Windows could not start because the following file was missing or corrupt” - učitavanje ali ne i izvršavanje boot drivera i servisa - priprema procesora (CPU) za izvršavanje datoteke Ntoskrnl.exe 33 MS Windows – boot process Logon - kada se završi kernel initialization faza, započinje proces logiranja MS Windows – boot process VJEŽBE: F8 – Safe mode Recovery Console Msconfig System Restore 34 Kernel/Jezgra Kernel/Jezgra Jezgra operacijskog sustava - centralni dio modernog operacijskog sustava Skup funkcija - upravlja računalnim resursima i predstavlja sloj između samih korisničkih programa odnosno korisničke okoline i fizičkog računalnog sklopovlja x86 procesori iz PC računala imaju četiri načina rada koji se zovu prstenovi (engl. ring). Jezgra (odnosno aplikacije sa jezgrinim ovlastima) se tipično izvršava u ring0, dok se korisničke aplikacije izvršavaju u ring3. 35 Tipovi jezgre Postoji nekoliko tipova – najčešći i najinteresantniji – monolitna (monolithic kernel) i mikro (microkernel) Monolitna struktura (Unix) – glavne OS funkcije implementirane su unutar kernela Tipovi jezgre Mikrojezgra (Mach) - glavne OS funkcije implementirane su izvan kernela - minimalističkog dizajna: aplikacijama se pružaju tek najosnovnije nužne usluge (sistemski pozivi) - sve ostale dodatne usluge poput grafičkih sučelja, mrežnog stoga i sl. su implementirane u korisničkom prostoru u vidu posebnih servisa Mikrojezgre – prve i druge generacije 36 Prednosti mikrojezgre Mogućnost korištenja različitih operacijskih sustava i njihovih sučelja (APIja) istodobno u jednom računalnom sustavu, ostvarenih putem servisa koji rade u korisničkom načinu rada, Fleksibilnost i proširivost sustava zasnovanog na komponentama kojeg je moguće prilagoditi bilo kojoj primjeni dodavanjem, izmjenom ili micanjem pojedinih komponenti sustava, Svi sustavi koriste se IPC mehanizmima za komunikaciju. Čisto sučelje olakšava modularnu organizaciju operacijskog sustava, a međuovisnosti pojedinih sustava su smanjene i jasno određene, Manja jezgra je lakša za ostvarivanje i održavanje te je manja mogućnost pojave pogreške u jezgri. Smanjuje se količina koda kojem se mora vjerovati za siguran rad sustava (TCB – Trusted Computing Base), Pogreške u pojedinim servisima ne utječu na ostatak sustava. Ovo vrijedi čak i za upravljačke programe sklopovlja. Windows NT kernel modificirana microkernel (Windows NT) – na razini dizajna je implementiran kao microkernel ali moduli su implementirani unutar kernela radi performansi 37 Win32 Application Programming Interface (API) Kako bi olakšao i omogućio programiranje za svoje operacijske sustave Microsoft je razvio Application Programming Interface(API). Za 32bitne platforme koristi se Microsoft®Win32®API (za razliku od WIN3.11 koji su 16-bitni). API sadrži skup funkcija, poruka (messages) i struktura koje su smještene u sljedećim dll-ovima (dynamiclink libraries) tj. dinamički linkanim bibliotekama: KERNEL32.DLL, ADVAPI32.DLL, GDI32.DLL, USER32.DLL, i CRTDLL.DLL. Win32 Application Programming Interface (API) API Funkcije 1. Funkcije za upravljanje prozorima (Windows Management) 2. Funkcije za rad sa grafičkim uređajima (GraphicsDeviceInterface– GDI) 3. Funkcije za sistemske servise (SystemServices) 4. Multimedija funkcije 5. RemoteProcedure Calls (RPC) funkcije 38 Upravljanje prozorima (Window Management) Funkcije za upravljanje prozorima namijenjene su za stvaranje i korištenje prozora za interakciju sa korisnikom u aplikaciji. Većina aplikacija će kreirati barem jedan prozor. Suč Sučelje za rad sa grafič grafičkim uređajima (GraphicsDevice InterfaceGDI) InterfaceGDI) Funkcije za rad sa grafičkim uređajima omogućavaju aplikacijama kreiranje grafičkog izlaza odnosno prikaza na displeju (monitor), printeru i drugim uređajima. Korištenjem GDI funkcija, mogu se crtati linije, tekst, bitmapslike (.bmp) i sl. 39 Win32 Application Programming Interface (API) GDI (Graphics Device Interface) Sistemski Servisi Funkcije za rad sa sistemskim servisima pružaju aplikaciji pristup resursima računala i svojstvima operacijskog sustava, kao što su memorija, datotečni sustav (file systems) i procesi. Aplikacija koristi funkcije za rad sa sistemskim servisima za upravljanje resursima računala koji su potrebni aplikaciji za rad. Na primjer, funkcije za upravljanje memorijom (memory management functions) aplikacija koristi za alociranje i oslobađanje potrebne memorije, funkcije za upravljanje procesima i sinhronizaciju (process management and synchronization functions) za pokretanje i koordiniranje rada više aplikacija ili višestrukih niti (multiple threads of execution) unutar iste aplikacije. 40 Win32 Application Programming Interface (API) Multimedija Multimedijske funkcije omogućavaju aplikaciji rad sa audio i video elementima. Korištenjem ovih funkcija, aplikacija može stvarati dokumente koji uključuju u sebi muziku, zvučne efekte, video klipove.... 41 RemoteProcedure Calls (Pozivi udaljenih procedura) procedura) (RPC) RPC se koristi kod distribuiranih aplikacija. Primjeri distribuiranih aplikacija su shared databases, udaljeni datotečni serveri (remote file servers), udaljeni printer serveri (remote printer servers). Microsoft Foundation Class biblioteke (MFC) Programiranje za Windowse se osim korištenjem API funkcija može vršiti i korištenjem Microsoft Foundation Class biblioteke (MFC). Općenito, MFC sadrži C++ klase koje opisuju objekte kao što su prozori, dijalog prozori (dialog boxes) i slični objekti važni za grafičko korisničko sučelje. MFC članske funkcije klasa pozivaju API funkcije i olakšavaju znatno kreiranje aplikacija u odnosu na direktno pozivanje API funkcija. 42 DLL datoteke DLL datoteke su jedan od temelja Windows operacijskog sustava već od njegove prve verzije. Sve funkcije Win32 API nalaze se u različitim DLLovima. DLL se obično sastoji od skupa funkcija koje bilo koja aplikacija (ili neki drugi DLL) može koristiti. Tri glavna sistemska DLL-s su (Windowsi): 1. KERNEL32.DLL – sadrži funkcije za rad s memorijom, procesima , threadovima i sl. 2. USER32.DLL – sadrži funkcije koje obavljaju zadaće specifične za korisničko sučelje, na primjer : stvaranje prozora, slanje poruka i sl. 3. GDI32.DLL – sadrži funkcije za crtanje grafičkih slika, prikazivanje teksta i sl. Da bi neka aplikacija mogla pozvati funkcije unutar DLL-a, DLL “file image” mora biti mapiran u adresni prostor procesa. Kad se jednom DLL mapira u adresni prostor procesa, funkcije DLL-a su dostupne svim thread-ovima unutar procesa. Arhitektura MS Windowsa Kernel mode i User mode Da bi se zaštitilo mijenjanje i pristupanje kritičnim sistemskim podacima Windowsi koriste dva tzv. processor access modes – user i kernel. - Kernel (supervisor) mod - potpuna kontrola nad svim resursima (može adresirati fizičke adrese uređaja) - User (korisnički) mod - ograničen pristup resursima, mod u kojem se izvršavaju aplikacije Npr. Korisnički programi mogu koristiti samo user mod, a svi ostali povezani dijelovi (npr. driveri), koriste kernel mod odnosno mogu pristupati svim mjestima u memoriji i svim procesorskim instrukcijama direktno. 43 Arhitektura MS Windowsa Kako OS prelazi iz korisničkog moda u kernel mod ? 1. Prekidi (interrupt) 2. Iznimke (exeption) 3. Sistemski pozivi (system call) 44 Arhitektura MS Windowsa User-mode komponente: - System support processes - Service processes - User applications - Environment subsystems Arhitektura MS Windowsa Kernel-mode komponente: - executive - kernel - device drivers - hardware abstraction layer (HAL) - windowing and graphics system 45 Arhitektura MS Windowsa Ključne sistemske datoteke: - Ntoskrnl.exe - Executive i kernel - Ntkrnlpa.exe - Executive i kernel – podrška do 64 GB fizičke memorije - Hal.dll - Hardware abstraction layer - Win32k.sys - Kernel-mode komponenta - Ntdll.dll-Interne funkcije i sistemski servisi - Kernel32.dll, Advapi32.dll, User32.dll, Gdi32.dll - ključne DLL datoteke Arhitektura MS Windowsa Environment Subsystems – pozivanje sistemskih servisa - *.exe tri Environment Subsystem-a: OS/2, POSIX i Win32 - Win32 subsystem (tipkovnica, mouse, display) je neophodan (Windowsi ne mogu raditi bez njega), dok su OS/2 i POSIX subsystem-i tzv. “start on demand “. 46 Arhitektura MS Windowsa - POSIX Subsystem - "a portable operating system interface based on UNIX“ - standardi za kompatibilnost sa UNIX-style sučeljem – da bi programeri mogli lakše prebacivati aplikacije iz jednog sistema u drugi 47 Arhitektura MS Windowsa - OS/2 Subsystem – ograničena upotreba – samo podrška za (do) OS/2 1.2 16-bit character-based ili video I/O (VIO) aplikacije. Arhitektura MS Windowsa System Processes - Idle process – sadrži dretvu za računanje vremena neaktivnosti CPU-a - System process – većina kernel-mode dretvi - Session manager (Smss.exe) - Win32 subsystem (Csrss.exe) - Logon process (Winlogon.exe) - Service control manager (Services.exe) - Local security authentication server (Lsass.exe) 48 Arhitektura MS Windowsa Session Manager (Smss) -(\Windows\System32\Smss.exe) Prvi user-mode proces kreiran u sistemu Odgovoran za puno važnih koraka u startanju Windowsa-kreiranje system environment varijabli Pokreće Win32 subsistem (Csrss.exe ) i Winlogon .exe – i ako dođe do neočekivanog prekida njihovog rada Smss ruši sistem Arhitektura MS Windowsa Logon (Winlogon) - (\Windows\System32\Winlogon.exe) Proces odgovoran za logon i logoff korisnika Pokreće se kad korisnik pritisne CTRL+ALT+DEL – otvaranje secure attention sequence (SAS) dijaloga za logiranje korisnika 49 Arhitektura MS Windowsa Local Security Authentication Server (LSASS) (\Windows\System32\Lsass.exe) Provjeravanje autentičnosti korisnika – ispravan user name i password Arhitektura MS Windowsa Service Control Manager (SCM) \Windows\System32\Services.exe Pokretanje, zaustavljanje i interakcija sa servisnim procesima 50 Arhitektura MS Windowsa Executive Zapravo “upper-layer” datoteke Ntoskrnl.exe Sastoji se od: - configuration manager –a – implementacija i podešavanje registry-a - process and thread manager –a – kreiranje i zautavljanje procesa i dretvi - security reference monitor – kreiranje i provođenje sigurnosnih politika (security policies) - I/O manager – dodijeljivanje prikladnih device drivera pri izvođenju procesa Arhitektura MS Windowsa - Plug and Play (PnP) manager–a – utvrđivanje koji driver je potreban za podršku pojedinom uređaju i učitavanje tog drivera power manager-a – koordinacija “strujnog menedžmenta” kod I/O uređaja ili procesora cache manager-a – poboljšavanje performansi korištenjem cache memorije virtual memory manager-a – korištenje virtualne memorije Windows Management Instrumentation object manager –a local procedure call (LPC) 51 Arhitektura MS Windowsa Kernel Set “low-level” funkcija koje se nalaze u datoteci Ntoskrnl.exe raspoređivanje dretvi, proslijeđivanje interrupt signala i sinhronizacija multiprocesora… Arhitektura MS Windowsa Hardware Abstraction Layer (HAL) Jedan od ključnih dizajnerskih ciljeva Windowsa XP (2000, NT) je rad na različitim platformama i arhitekturama – HAL – ključna komponenta koja to omogućava Umjesto da Windowsi direktno pristupaju hardwareu, oni to čine pomoću HAL rutina. Iako postoji nekoliko datoteka sa HAL-om samo jedna se kopira na disk prilikom instalacije Windowsa – Hal.dll 52 Arhitektura MS Windowsa ● Komponente kernel-moda također koriste osnovne “object-oriented” principe za dijeljenje resursa i podataka između procesa, iako Windowsi XP (2000) nisu object-oriented sistem – većina koda napisana je u C-u (koji direktno ne podržava neke object-oriented konstrukcije) – sistem ih samo posuđuje, ali o njima ne ovisi. Object manager creating, deleting, protecting, and tracking objects Windowsi razlikuju 2 tipa objekata: executive objects i kernel objects Executive: implementirani kroz process manager, memory manager, I/O...npr. NtCreateFile Kernel: nisu vidljivi u user-modu, omogućuju osnovne funkcije, svaki executive objekt može imati više kernel objekata 53 Executive objects U Windowsima ih ima 27 – Vježba: Winobj.exe Local Procedure Calls (LPCs) LPCs) Interprocesna komunikacija – koristi se za “high-speed” poruke Nije dio Win32API-a nego je Windows komponenta Obično se LPC koristi kod komunikacije između serverskih procesa i jednog ili više klijentskih procesa LPC konekcija može biti uspostavljena između dva user-mode procesa ili između user-mode procesa i kernel-mode procesa 54 Local Procedure Calls (LPCs) LPCs) 3 metode izmjena poruka: - poruke koje su manje od 256 byta koriste LPC – poruka je kopirana iz adresnog prostora procesa pošiljatelja u sistemski adresni prostor, i dalje u adresni prostor procesa primatelja - poruke koje sadržavaju više od 256 byta – može se koristiti shared section – pošiljatelj pusti poruku u shared sekciji – šalje se poruka i pokazivač primatelju o lokaciji poruke u shared sekciji - za čitanje/pisanje poruka sa većom količinom podataka – podaci se mogu direktno pročitati/zapisati u adresni prostor – sinhronizacija izmjena poruka Windows Security Elementi kod Windows sigurnosti: 1. Security reference monitor (SRM) – dio kernel Executive komponente - pristup objektima, pravima, i kreiranje audit security poruka 2. Local security authority subsystem (Lsass) - user-mode proces odgovoran za sigurnosnu politiku (npr. Useri i grupe, logiranje) \System32\Lsass.exe 3. Lsass policy database – baza koja sadržava postavke sigurnosne politike (local system security policy) 4. Security Accounts Manager (SAM) service - \System32\Samsrv.dll – pokreće se unutar Lsass procesa – management usera i grupa 55 Windows Security 5. SAM database – definirani useri (korisnici), grupe (groups) i passwords (lozinke) 6. Authentication packages – pokreće se unutar Lsass procesa – odgovoran za provjeravanje ispravne lozinke i korisničkog imena 7. Logon process (Winlogon) - user-mode process \System32\Winlogon.exe – interakcija logiranja – nakon logiranja pokreće user-interface proces 8. Graphical Identification and Authentication (GINA) \System32\Msgina.dll – unutar Winlogon procesa – upis user-a i password-a 9. Net Logon service (Netlogon) - \System32\Netlogon.dll – unutar Lsass procesa – network logiranje 56 Logon Koraci: 1. Ctrl+Alt+Del – SAS 2. Poziva se GINA (Graphical Identification and Authentication) – user name i password 3. Poziva se registered authentication packages (Kerberos (domian) ili MSV1_0 (local)) – provjera ispravnosti 4. MSV1_0 – user name i password šalje na provjeru u SAM database – čeka povratnu informaciju 5. Lsass pretražuje Local security policy bazu za logiranog korisnika – prava 6. Kreira se access token 7. Zapisuje se audit message (ako je potrbna) od logiranja Logon Kontrola logiranja – Logiranje na 2 načina: - Welcome screen - Classic logon – Windowsi NT i 2000 - SAS – Ctrl+Alt+Del 57 Korisnič Korisnički rač račun Korisnički račun (user account) sastoji se od: - korisničkog imena (user name), - lozinke (password) – opcijonalno Postoje i tri vrste računa (account type) - Local User Accounts, - Domain User Accounts, - Built-in User Accounts. Korisnič Korisnički rač račun Postoje i tri privilegije pristupa resursima kod korisničkih računa: - Computer administrator, - Limited, - Guest. 58 Korisnič Korisnički rač račun Computer administrator – najveća kontrola; članovi Administrator grupe mogu: - kreirati, mijenjati ili brisati sve korisničke račune ili grupe, - instalirati programe, - dodjeljivati dozvole i prava drugim korisnicima i sebi, - imati pristup svim podacima, - postavljati vlasništvo nad mapama i datotekama, - instalirati ili deinstalirati drivere za hardware-ske komponente. Korisnič Korisnički rač račun Limited – članovi ove grupe imaju neka ograničenja; oni mogu: - mijenjati sliku ili password svog korisničkog računa, - upotrebljavati programe koji su instalirani na računalu, - kreirati, mijenjati ili brisati datoteke u njihovom vlasništvu, - upotrebljavati datoteke u Shared document folder-u. Guest – član guest grupe (gost); ima slične privilegije kao članovi Limited grupe. Korisnik logiran kao Guest, ne može kreirati account password. 59 Korisnič Korisnički profil Korisnički profili (User profiles)- Windowsi automatski sa korisničkim računom kreiraju i korisnički profil;ograničavaju pristup podacima putem korisničkih profila. Korisnički profil čine: desktop postavke (background, ikone...), cookies, favorites i history u web browseru, dokumenti u mapi MyDocuments... c:\Documents and Settings Korisnič Korisnički rač račun Built-in User Account - Windowsi kreiraju po defaultu slijedeće grupe: - Backup operators – mogućnost backupa i restore-a - HelpServicesGroup – grupa kreirana od strane Microsofta – mogućnost spajanja njihovih tehničara (uz dozvolu) na računalo tzv. Remote Assistance - Network Configuration Operators – podešavanje mrežnih komponenti - Power Users – većina (ali ne sve) Administratorskih ovlasti - Remote Desktop Users – članovi ove grupe mogu pristupiti računalu pomoću opcije Remote Desktop (ukoliko je uključena) 60 Korisnič Korisnički rač računi i grupe Security ID Kontrola pristupa u Windowsima uvjetovana je vlasništvom – svaki objekt ima vlasnika Da Windowsi utvrde koji korisnik “ima pravo” vlasništva koriste se SID-om (security ID) kojeg dodijeljuju svakom korisniku i koji je zapravo neki jedinstven i veliki broj (promjenjive veličine). Primjer SID-a: C:\Recycler * S-1-5-21-1960408961-764733703-854245398-1003 * Mapa je sakrivena (hidden) i da bi se je vidjelo u Tools-Folder Options treba isključiti opciju zaštite sistemskih datoteka 61 Token Kod login-a Windowsi traže user name i password, slijedi provjera, te se iz unesenih podataka napravi security access token - služi za zaštitu dretvi i procesa. Svaki program kojeg korisnik pokreće dobije kopiju security access token-a. Da bi Windowsi utvrdili kojim datotekama korisniku mogu dati pristup, a kojima ne, koriste se “popisom security access token-a” odnosno tzv. ACL-om (access control list) Prava i dozvole 2 vrste pristupnih privilegija: - prava (rights) - dozvole (permissions) Prava (rights) – mogućnost izvođenja neke sistemske radnje (npr. Logiranje ili namještanje sata) 62 Dozvole Dozvole (permissions) – mogućnost pristupa određenom subjektu po određenim pravilima. Dozvole se mijenjaju putem properties-a (Security) subjekta (npr. datoteke ili printera.), a prava putem Control Panel - Administratorski alati – Local Security Settings – User Rights Assignment 63 Audit Događaj (Event) – u Windowsima - svaka aktivnost vrijedna bilježenja – korisnicima, OS-u i aplikacijama Svaki event bilježi se pomoću tzv. Event Log Service-a i bilješke (log) se čuvaju u tri datoteke: /\System32\Config/ - Security (Secevent.evt), - Application (Appevent.evt), - System (Sysevent.evt). Alat Event Viewer (Control Panel – Administrative tools - Event Viewer) koristi se za pregled tih datoteka. Audit Nadgledanje takvih eventa naziva se monitoring ili auditing. Sistemski i Aplikacijski auditing prepoznaju tri vrste događaja: - Greške (Errors) – gubitak podataka ili funkcionalnosti - Upozorenja (Warnings) – npr. full disk - Informacije (Information) – npr. o logiranju na Internet i sl. 64 Auditing Security Auditing Security – nadgledanje pristupa računalu i podacima Također se bilježe logovi, ali oni koji se odnose na pristupanje sistemskim resursima (security) – od logiranja user accounta do upotrebe printera. Po defaultu, niti jedan sigurnosni događaj se ne bilježi dok ne uključimo bilježenje – Control Panel – Administrative tools – Local Security Policy Audit Policy Opis Kada se korisnik logira (log on) na računalo ili odlogira (log off) sa računala Audit account logon events Kada se napravi, izbriše ili izmjeni korisnik, grupa, password... Audit account management Audit directory service access Kada se pristupa Active Directory objektu User log on ili log off sa mreže (mrežnog pristupa) Audit logon events 65 Kada korisnik pristupi mapi, datoteci, printeru koji su podešeni za auditing Audit object access Kada korisnik promijeni bilo koju policy Audit policy change Kada korisnik iskoristi neku privilegiju Audit privilege use Npr. pokretanje ili izlaz iz programa Audit process tracking Npr. kada korisnik resetira ili ugasi računalo Audit system events Audit security Primjer (vježba): - Uspjelo (Succes) i neuspjelo (Failure) logiranje korisnika 66 MS Windows XP – registry ● Windowsi “sadrže” informacije o sistemu (hardware i software) u hijerarhijskoj bazi koja se naziva još i registry ● Registry je zamjena za konfiguracijske datoteke (.ini, .sys i sl.) iz ranijih verzija Windowsa ● Registry kontrolira Windowse na način da daje ispravnu informaciju o pokretanju aplikacija ili drivera. MS Windows XP – registry Windows komponente koje upotrebljavaju registry: - Windows NT kernel – prilikom boot-a (ntoskrnl.exe) - Driveri – čitaju/spremaju podatke o hardware-u - Korisnici – user profile informacija spremljena je u registry-u - Instalacija programa/hardwarea – setup.exe - Hardware-ski profili - Ntdetect.com – prilikom boot-a 67 MS Windows XP – registry ● Da bi vidjeli strukturu registry-a koristimo se tzv. Registry Editor-om – Run – Regedit ● Struktura registry-a slično je organizirana kao i struktura podataka na disku. MS Windows XP – registry Komponenta Opis Subtree Kao root mapa na disku. Registry ima dva subtree: HKEY_LOCAL_MACHINE i HKEY_USERS, ali radi lakše preglednosti u regeditoru postoji pet subtree-a: HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_USER HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG Keys Analogno mapama i podmapama na disku. U registry-u: software i hardware objekti ili grupe objekata. Subkeys su ključevi unutar “high-level” ključeva 68 MS Windows XP – registry Entries Ključevi sadržavaju jedan ili više entries-a – tri dijela: naziv (name), tip podataka (data type), i vrijednost (value) Hive Ključ sa podključevima i vrijednostima – u registry-u i .log datotekama (zabilježavanje promjena \Windows\system32\config) Data types Svaka vrijednost izražena je ovim tipovima podataka: REG_DWORD ,REG_SZ, REG_EXPAND_SZ,REG_BINARY REG_MULTI_SZ,REG_FULL_RESOURCE _DESCRIPTOR, REG_LINK, REG_NONE MS Windows XP – registry Kod editiranja i mijenjanja registry-a nema “undo” naredbe – promjene su trenutačne, te iz tog razloga, bilo bi dobro napraviti “osiguranje”: - naredba Export u Regeditu – ne može se exportirati cijeli registry, nego samo pojedini dijelovi – save as – najbolje je izabrati hive. - System restore - Backup – saving system state - Last Known Good configuration 69 MS Windows XP – registry Ime ključa Opis HKEY CLASSES ROOT Explorer koristi ove informacije da izabere ikone, prikaže menije i sl. HKEY CURRENT USER Informacije za trenutne korisnike. Programi spremaju svoje postavke ovdje. HKEY LOCAL MACHINE Informacije o hardware-u HKEY USERS Ako postoji više korisnika, informacije o njima. HKEY CURRENT CONFIG Trenutna hardwareska konfiguracija -HKEY LOCALMACHINE\Config\curr ent configuration). Prilikom boot-a učitavaju se podaci o hardware-u MS Windows XP – registry HKEY_USERS – sadrži tri podključa (subkeys) -.DEFAULT – postavke koje Windowsi koriste kod prikazivanja desktopa prije logiranja - SID - SID_Classes – “class registrations” i “file associations” korisnika 70 MS Windows XP – registry HKEY_CURRENT_USER - AppEvents – spaja zvukove sa događajima - Console – podaci o konzoli i command promptu - Control Panel - accessibility, regional, and desktop appearance settings - Environment - environment variables - Identities – identifikacija korisnika u Microsoft Outlook Express-u - Keyboard Layout – tipkovnica - Network - Printers - Software –Program i Version - Volatile Environment - environment variable kod logiranja MS Windows XP – registry HKEY_LOCAL_MACHINE - HARDWARE – opis komponenti - SAM - Security Accounts Manager – informacije o userima i grupama + ACL - SECURITY – ostale security opcije - SOFTWARE – podaci o aplikacijma – Vendor, Name i Version - SYSTEM – control sets – da se Windowsi ispravno učitaju 71 MS Windows XP – registry HKEY_CLASSES_ROOT - dva tipa postavki: 1. file associations – da programi mogu otvorti, printati i editirati datoteke 2. class registrations za Component Object Model (COM) objekte - HKEY_CLASSES_ROOT ključ je zanimljiv jer je u njemu zapisana većina “ponašanja” Windowsa MS Windows XP – registry HKEY_CURRENT_CONFIG - informacije o “current hardware profile-u” 72 Procesi i dretve OoOE Preemptive multitasking vs. Cooperative multitasking Procesi – u Windowsima -Job – kolekcija jednog ili više procesa – ograničenja – kvote – npr. Maksimalan broj procesa, korištenje CPU-a, korištenje memorije -Process - program u izvođenju -Thread (dretva) - Fiber (Nit) 73 Win32 CreateProcess funkcija funkcija Kreiranje procesa - koraci Otvaranje image file (.exe) – izvršavanje unutar procesa Kreiranje Windows 2000 executive process object-a Kreiranje inicijalne dretve Obavijest Win32 subsystem-u o kreiranju novog procesa Pokretanje inicijalne dretve Dovršavanje inicijalizacije adresnog prostora i pokretanje programa 74 Vjež Vježba Tasklist Windows Task Manager Performance monitor Pviewer Veleuč Veleučiliš ilište u Rijeci Vježbe 2007/2008 iz kolegija Operacijski sustavi Dio 2. – GNU/Linux 75 Općenito o Linuxu • “slobodni software” - (free software) • Richard Stallman 1983. osnovao je GNU Projekt – MIT • GNU, kao rekurzivno za "GNU Nije Unix" (GNU's Not Unix) • Linus Torvalds – Linux - GNU/Linux - nastao 1991. "kombinacija GNU sustava sa Linux kernelom" • Minix - Andrew Tannebaum Free software • smisao GNU pokreta je ideja o slobodi • "slobodan“, a ne "besplatan“ • slobodan softver je onaj koji korisnici imaju pravo pokretati, kopirati, distribuirati, proučavati, mijenjati i poboljšavati 76 4 vrste slobode • Slobodu da za bilo koju svrhu pokreću program (sloboda 0). • Slobodu da prouče kako program radi i prilagode ga za svoje potrebe (sloboda 1). • Slobodu da dalje distribuiraju kopiju programa kako bi pomogli susjedu (sloboda 2). • Slobodu da poboljšavaju program i objave svoja poboljšanja javno kako bi cijela zajednica imala koristi od toga (sloboda 3). Uvjet za to je da im je dostupan source kod programa. Free software • Slobodan softver ne znači ne-komercijalan softver • "open source" više-manje znači isto što i slobodan softver • Public domain softver je softver za kojeg ne postoje vlasnička prava • Copylefted softver je slobodan softver čiji uvjeti distribucije ne dozvoljavaju distributeru dodavanje nikakvih novih, dodatnih ograničenja prilikom distribucije ili modifikacije softvera. To znači da svaka kopija tog softvera, makar i modificirana, mora biti slobodna. 77 Free software • Non-copylefted free software dolazi sa dozvolom da se dalje distribuira i modificira ali se također mogu dodavati i nove restrikcije. Softver koji dolazi na takav način može imati verzije koje uopće nisu slobodne. • GPL-covered software je softver koji je pokriven sa "GNU General Public License". • Semi free softver je softver koji nije slobodan ali dolazi sa dozvolom pojedincima da koriste,kopiraju, distribuiraju i mijenjaju program za neprofitne svrhe. Free software • Vlasnički softver - Njegovo korištenje, redistribuiranje ili modifikacija su zabranjeni ili zahtijevaju posebnu dozvolu. • "freeware" softver koji dozvoljava redistribuciju ali ne dozvoljava mijenjanje i izvorni kod mu nije dostupan. • Shareware je softver koji dolazi sa dozvolom da ga se redistribuira ali svatko tko ga nastavi koristiti mora platiti licencnu naknadu. • Privatni ili "prilagođeni" softver je softver razvijen za jednog korisnika (tipično organizacija ili kompanija). • Komercijalni softver je softver razvijen sa ciljem da se na njemu zaradi novac. 78 Vrste GNU licenci • GNU General Public Licence (GNU GPL) • GNU Lesser General Public License (GNU LGPL) • GNU Free Documentation Licence (GNU FDL) Distribucije Linuxa • Distribucije - “paketi” - određeni skup programa i koncepata koji čine operativni sustav. • Najpoznatije su Red Hat, Debian, Slackware, SuSE i Mandrake…Knoppix, LindowsOS, Gentoo… • U Hrvatskoj – HULK – www.linux.hr • HRID je prva hrvatska distribucija - bazirana na Mandrake-u 79 Linux • višekorisnički (multiuser) operacijski sustav • višezadaćni (multitasking) operacijski sustav • U širem smislu – operacijski sustav koji se sastoji od različitih programskih cjelina kao što su npr. editori, programski prevodioci, različiti namjenski programi Linux distribucije. • U užem smislu - jezgra operativnog sistema koji upravlja resursima računala Struktura Linuxa 80 Vježba: instalacija Instalaciju Linuxa možemo podijeliti u slijedeće korake: 1. pokretanje instalacijske procedure, 2. prepoznavanje i konfiguracija sklopovlja, 3. particioniranje tvrdog diska, 4. odabir programa koji će se instalirati zajedno sa operacijskim sustavom, 5. konfiguracija operacijskog sustava, i 6. instalacija boot loadera. Linux - boot • Proces pokretanja Linux OS-a BIOS FAZA 1. POST, MBR – boot loader – u Linuxu: GRUB ili LILO… OS-a BOOT LOADER FAZA 2. boot loader čita partition table i traži sekundarni boot loader na particiji 3. sekundarni boot loader traži i pokreće jezgru KERNEL FAZA 4. jezgra OS-a sadrži mali nekompresirani program koji dekompresira dio jezgre. Jezgra zatim prikuplja informacije o sistemu. 81 Linux - boot INIT FAZA 5. Pokreće se Init proces - /sbin/init 6. Init proces pokreće tzv. getty programe 7. Login Linux - boot • LILO (Linux Loader) je jedan od najčešće korištenih Linux boot loadera. Ne ovisi o točno određenom datotečnom sustavu (enf. filesystem), može pokretati slike jezgre (eng. kernel image) sa diskete, tvrdog diska i može služiti čak i kao boot loader drugim operacijskim sustavima (PC/MS-DOS, DR DOS, OS/2,Windows 95, Windows NT, 386BSD, SCO UNIX, Unixware) 82 Linux - boot - dva načina: LILO je kopiran u MBR ili se nalazi na prvom sektoru Linux boot particije – u tom slučaju je sekundrani boot loader - ako je LILO u MBR-u – ograničen je na 446 bajta – 64 bajta zauzima partition table – zbog toga je podijeljen na 2 faze – prva u MBR-u traži drugu u datoteci /boot/boot.b - konfiguracija u /etc/lilo.conf datoteci Primjer lilo.conf lilo –v – naredba s kojom zapisujemo promjene - MBR 83 Proces pokretanja pomoću LILO-a • učitava se LILO boot sektor i izvršava ga. • LILO zatim učitava map datoteku koristeći BIOS pozive, pronalazi lokaciju boot poruke koja se ispisuje u konzoli. Nakon toga slijedi odabir jezgre koja će se učitati (ako postoji više njih). • LILO dalje učitava jezgru koristeći BIOS. Zadnji korak je pokretanje jezgre, indicirajući gdje senalazi root datotečni sustav i inicijalni RAM disk. Linux – boot • GRUB (Grand Unified Bootloader) – novije generacije – glavna prednost ovog loadera u odnosu na LILO je veća fleksibilnost, - jednostavnstavniji za korisnike – promjene preko komandne linije - mogućnost pristupa podacima o bilo kojem uređaju prepoznatom od strane BIOS-a - /etc/fstab - konfiguracija preko grub.conf datoteke 84 Primjer /etc/grub.conf getty • ima funkciju osiguravanja portova odnosno komunikacijskih kanala prema korisniku.Ti kanali se u linux-u označavaju kao «tty» s rednim brojem iza toga • Getty prima niz znakova s tipkovnice i prosljeđuje ga programu login,koji na osnovu tog niza znakova za koji pretpostavlja da je korisničko ime (username) korisniku dodjeljuje njegova korisnička prava i dozvole (permissions), a zatim se zahtjeva od korisnika unos lozinke (password) 85 Login • Ako password ne odgovara postojećem korisniku,onda login ponovo vraća kontrolu programu getty,a ako je identifikacija uspješna program login starta shell program. Rad s Linuxom • Kada korisnik koristi Linux koristi se korisničkim sučeljem i to na dva načina: - preko shell-a – tekstualni mod - preko GUI-a – grafički mod 86 Kako se pokreće shell? • Shell (ljuska) se pokreće nakon uključivanja računala kao zadnji korak boot procesa Shell (ljuska) • • • • • • • • • sučelje između korisnika i kernela Shell je dio korisničkog programa, a ne dio kernela prevoditelj naredbi (command line interpreter(CLI)) Ljuska ima osnovne tri upotrebe: interaktivno korištenje, podešavanje okoline i programiranje. /.../sh - Bourne shell /.../csh - C shell /.../tcsh - TC shell /.../ksh - Korn shell /.../bash - Bourne Again SHell… 87 Shell (ljuska) • Dva su osnovna načina korištenja ljuske: interaktivni rad korištenjem preusmjeravanja i ulančavanja pojedinih naredaba skupna (eng. batch) obrada u kojoj se naredbe čitaju iz datoteke (eng. Shell script). • U komandnu liniju, čiji defaultni prompt može izgledati: $ ili # (kod Bourne shell-a) ili % (kod C shell-a), upisuju se naredbe. Shell (ljuska) - terminal • echo $SHELL - Identifikacija ljuske – ili grep <username> /etc/passwd • Promjena ljuske, naredba chsh – ako je dozvoljeno - cat /etc/shells – popis svih dostupnih ljuski 88 Varijable okoline • Ljuska sadrži dva skupa varijabli, lokalne varijable, i varijable okoline (engl. Environment variables). • naredba printenv - dobije se lista varijabli okoline definiraju većinu stvari koja je potrebna sustavu za korištenje: 1) USER - programi mogu brzo pogledati korisnikov user ID i usporediti ga sa imenom korisničkog računa. Takav način usporedbe štedi vrijeme. 2) HOME - određuje matični direktorij 3) PATH - govori u kojem direktoriju da traži, i kojim redoslijedom. Korištenje sustava pomoći • Naredba man Man (skraćenica od eng. manual) je program koji daje korisniku informacije iz dostupnog priručnika. Njime dobivamo detaljnije informacije o tome kako se zadaje pojedina naredba, što ona radi, kakve dodatne parametre (opcije) ima dotična naredba i sl. Primjer: man ls man mount 89 Naredbe • $ naredba argumenti - sintaksa • Linux je CASE SENSITIVE Naredbe - alias • Naredba alias • Naredbom alias stvaramo pseudonim, labelu za neku drugu često korištenu naredbu. Tako skraćujemo pisanje neke duge naredbe, ili želimo da se neka naredbe pokreće sa drugačijim parametrima. • Struktura naredbe: alias [ime [naredba]] • Ako utipkamo samo naredbu alias, izlistat će se svi trenutno definirani pseudonimi. $ alias lll=”ls -al” 90 Naredbe • Sve se naredbe, prema svojim funkcijama, mogu svrstati u neku od sljedećih klasa: obrada teksta -tekst editori (ed, ex, vi), spell checker, tekst formateri i slično, upravljanje podacima -kreiranje, organizacija i brisanje fajlova i direktorijuma, elektronske komunikacije -više programa (write, mail) koji omogućavaju razmjenu poruka među korisnicima, programska okolina -mogućnost definiranja komforne programske okoline korištenjem različitih uslužnih programa, razvojno okruženje -kompajleri i interpreteri raznih programskih jezika, linkeri, debageri,... ostali uslužni programi -grafička podrška, X Windows. Vježbe • Prijava i odjava sa sustava Naredba login – prijava na sustav Naredba logout – odjava • Informacije o korisniku Naredba finger - finger <korisničko ime> Naredba who am i 91 Datotečni sustavi o Jedna od jačih strana Linuxa kao OS-a je podrška za raznovrsne file system-e. Osim vlastitog podržava i niz drugih file system-a koje koriste drugi operativni sustavi – Unix, Windows, MacOs i dr. o Dvije vrste file systema: tradicionalni i dnevnički Datotečni sustavi • Tradicionalni file system - izvedeni iz tehnologija file systema iz 1970-ih. - podaci se zapisuju na disk u dijelovima – problem nastaje kada se dogode situacije poput nestanka struje ili blokiranja računala – da se ispravi nekonzistentnost podataka, Linux mora napraviti dugačku provjeru diska – opasnost od gubitka podataka - Primjeri file systema: MINIX, Ext, Ext2, XIA, ISO9660 (cdrom) 92 Datotečni sustavi • Dnevnički file system - da bi se izbjegao problem provjeravanja konzistentnosti diska – implementacija dnevnika (journal) – bilježenje nedovršenih promjena na disku Primjeri: Ext3/Ext3fs, Reiser(FS), XFS, JFS (IBM) Struktura datotečnog sustava • sastoji se od 4 glavna dijela: Boot blok sadrži osnovni program odnosno pokazivač na njega koji pokreće podizanje operativnog sustava. Super blok nosi informacije o file sistemu, njegovu veličinu, listu slobodnih inodeova, odnosno listu slobodnih data blokova (zapravo broj slobodnih blokova i pokazivač na slijedeći slobodni blok) te flag za označavanje modifikacije super bloka. Tu je još i polje inodeova i data blokova, gdje su inodeovi i fileovi fizički zapisani. 93 Inode • Sadržava sve relevantne informacije o nekom file-u. Zapravo bi ga mogli shvatiti kao posrednika između operativnog sustava i fizičkih podataka. Rad s datotekama i direktorijima • Datoteke su hijerarhijski grupirane u direktorije • Direktorij je posebna datoteka koja sadrži druge datoteke i direktorije • Ime datoteke sastoji se od jednostavnog niza slova, brojeva i interpunkcijskih oznaka – do 256 znakova • Direktorij koji sadrži sve ostale direktorije u Linuxu je direktorij root koji se označava kosom crtom(/) 94 Struktura datotečnog sustava (Filesystem Hierarchy Standard - FHS, 1994) Struktura datotečnog sustava • Klasičan sastav direktorija u operativnom sustavu Linux sastoji se od direktorija: /bin, /dev,/etc, /lib, /mnt, /sys, /tmp, /usr. • Napisani direktoriji nalaze se u root(/) direktoriju i oni su neophodni za rad operacijskog sustava Linux. Naravno da to nisu svi direktoriji na operativnom sustavu Linux, oni ovise o broju i vrsti paketa koji su instalirani na sustav. • Bitno je naglasiti da je ishodište svih direktorija root direktorij (oznaka /). Stoga kad smo na nekoj poziciji unutar stabla direktorija možemo promatrati svoju poziciju s obzirom na direktorij u kojem jesmo (relative 95 Direktorij /bin • U direktoriju /bin se nalaze svi programi koji su potrebni za pokretanje sustava kao i većina naredbi koje Linux koristi. Pod pojmom naredbe misli se na binarne datoteke u ovom direktoriju koje su u stvari izvršne datoteke. Tako se, izvođenjem naredbe ls u direktoriju /bin, između ostalih izlistaju i sljedeće naredbe: cat, gunzip, ping, cp, mv itd. Radi se o izvedbenim naredbama, koje se nalaze i u sljedećim direktorijima: /usr/ucb, te /usr/bin. Direktorij /dev • U kazalu /dev nalaze se specijalne datoteke koje mogu, ali i ne moraju odgovarati nekom upravljačkom programu u jezgri sustava. Kako se u Linuxu sve temelji na datotekama, svaka jedinica (disketna jedinica, tvrdi disk, USB (serijiski US random pristup) , COM portovi itd.) priključena na računalo, određena je specijalnim datotekama koje se nalaze u ovom direktoriju. Glavna podjela između jedinica je na takozvane “blokovne uređaje” i “znakovne uređaje”. Generalno “blokovni uređaji” predstavljaju jedinice koje pohranjuju ili čuvaju podatke (npr. tvrdi disk, disketna jedinica itd.) dok se “znakovni uređaji” mogu shvatiti kao jedinice koje prenose podatke (npr. Serijski port, paralelni port, miš itd.). 96 Direktorij /etc • U direktoriju /etc i u njegovim poddirektorijima nalaze se sve konfiguracijske datoteke. • Konfiguracijska datoteka definira se kao datoteka s kojom se kontrolira rad određenog programa. • Neke osnovne konfiguracijske datoteke su: /etc/passwd, /etc/group, /etc/networks, /etc/lilo.conf,/etc/modules,/etc/profile… Direktorij /lib • U direktoriju /lib nalaze se sve dijeljene (shared) i statičke (static) biblioteke koje programi koriste. • Biblioteke su u stvari datoteke te ih se može promatrati kao nekakve potprograme koje određeni program poziva kad mu zatrebaju, npr. potprograme za programski jezik C i druge programske jezike. • Neke od njih se pozivaju kad ih određeni program treba dok su neke konstantno aktivne jer ih sustav konstantno koristi. Nastavak imena datoteka koje predstavljaju biblioteke na operativnom sustavu Linux je *.so što je ekvivalent *.dll na Windows operativnom sustavu. 97 Direktorij /mnt • Direktorij /mnt se najčešće koristi za montiranje lokalnih ili udaljenih datotečnih sustava. Naime prije korištenja određenog datotečnog sustava na Linuxu (npr. CDROMa) datotečni sustav treba biti prethodno montiran (mount) Direktorij /var • Direktorij /var sadrži datoteke bitne za rad sustava, dijela sustava ili nekog programa. • Uglavnom se podacima iz ovog direktorija pristupa automatski, tokom rada samih programa. Npr. /var/spool/mail – e-mail-ovi korisnika 98 Direktorij /sys • Direktorij /sys koristi jezgra (kernel) kao virtualni datotečni sustav tj. kao sučelje prema informacijama iz jezgre sustava. Direktorij /tmp • Direktorij /tmp služi za privremenu pohranu podataka. Direktorij /usr • Direktorij /usr obično sadrži najviše podataka na sustavu. Ono u stvari predstavlja novi virtualni sustav na postojećem sustavu. Tu se smješteni razni korisnički programi (telnet, ftp..) , igre, dokumenti, programi za administriranje sustava, uključujuće datoteke koje su potrebne pri stvaranju izvršnih (binarnih) datoteka itd. 99 Vježbe • Nadgledanje zauzeća diskovnog prostora Naredbe koje omogućuju pregled slobodnog i iskorištenog diskovnog prostora su: du, df, quota • Naredba du ispisuje veličinu u KB(kilobyte) i imena svih direktorija u trenutnom direktoriju te koliko diskovnog prostora zauzima pojedini direktorij. • Naredba df govori koliko ima ukupno diskovnog prostora na računalu i koliko je od tog iskorišteno, a koliko neiskorišteno te daje podatak o iskorištenosti brojčano i u postotcima. • Naredba quota ispisuje zauzeće diska i veličinu diskovnog prostora predviđenog za određenog korisnika ili grupu. Sintaksa naredbe je: quota [-g group] [-u username] Datoteke • Datoteke se u Linuxu dijele na četiri tipa: - obične datoteke, - datoteke-kazala, - veze, - posebne datoteke. • Obične datoteke mogu sadržavati dokumente, osnovni kod u C jeziku, binarne izvršne datoteke, razne skripte itd. Veze u pravom smislu riječi nisu datoteke već elementi u kazalu koji su usmjereni na datoteke. 100 Prikaz sadržaja direktorija • Naredba ls Vježbe • Naredba pwd – trenutni direktorij • Kreiranje novog direktorija Naredba mkdir (engl. make directory) • Promjena direktorija Naredba cd (engl. change directory) • cd bez parametara pozicionira nas u početni direktorij (engl. Home, koji je određen varijablom okoline HOME), ,a cd / nas pozicionira u izvorni sustavni direktorij ili korijen (engl. root). 101 • Kopiranje datoteka Naredba cp * - Naredbom touch stvorit ćemo datoteku vjezba.txt cp vjezba.txt vjezba.copy ls –l vjezba.txt vjezba.copy • Želimo li kopirati direktorij sa svim njegovim sadržajem u novi direktorij, naredbi cp dodajemo parametar -r. • Premještanje datoteka Naredba mv (engl. move) • Brisanje datoteke Naredba rm (engl. remove) – parametar –i • Brisanje direktorija – rmdir – mora biti prazan • Naredba file Datoteke u Linuxu za razliku od datoteka u DOS-u ne koriste ekstenziju iz kojeg se može pročitati o kojem tipu datoteke se radi – ponekad je neprecizna • Naredba cat Naredba cat (concatenate-spojiti) kao ulaz uzima popis datoteka ili jednu datoteku i ispisuje sadržaj. 102 Vlasništvo i dozvole • Linux je višekorisnički sustav – vlasništvo • ls –l – ispis sadržaja direktorija • Polje dozvola (prvi stupac) je podijeljeno u četiri podpolja: npr. - rwx rwx rwx • Prvo podpolje (veličine samo jednog znaka) prikazuje tip datoteke: – je obična datoteka • Sljedeća tri podpolja pokazuju dozvole za čitanje, pisanje i izvršavanje datoteke. Slova rwx u prvom od tih podpolja znače da datoteka ima dozvole čitanja, pisanja i izvršavanja samo za vlasnika. Sljedeće podpolje pokazuje iste informacije za grupu u kojoj se nalazi vlasnik datoteke. Posljednje podpolje pokazuje dozvole za sve ostale korisnike sustava. Promjena dozvola • Mijenjanje dozvola izvodi vlasnik datoteke naredbom chmod i to na dva načina: “oktalno” i “simbolički”. a) oktalno - Kod ovog načina, prava pristupa se prikazuju s tri oktalne znamenke (brojevi od 0-7). Prva oktalna znamenka se odnosi na vlasnika, druga znamenka se odnosi na grupu kojoj datoteka pripada, a treća na sve ostale korisnike računala. Npr. Želimo datoteci unix.txt promijeniti dozvole tako da vlasnik ima sva prava, grupa pravo čitanja i pisanja, a ostali korisnici samo pravo čitanja. $ chmod 764 unix.txt 103 • b) simbolički: Mora se definirati: kome dajete dozvolu, koje operacije (dodavanje, oduzimanje ili postavljane) i koje dozvole. Primjer: Želimo datoteci unix.txt promijeniti dozvole tako da vlasniku oduzmemo pravo pisanja, a grupi oduzmemo pravo čitanja. $ chmod u-w,g-r unix.txt • Promjena vlasnika Promjenu vlasnika nad nekom datotekom radimo naredbom chown: chown <korisnik> <ime_datoteke> • Promjena grupe naredbom chgrp: chgrp <grupa> <ime_datoteke> 104 PROCESI • Postoje tri vrste procesa: interaktivni procesi, batch procesi i daemon procesi. • Shell upravlja tim procesima i svakome dodijeljuje jedinstveni ID (PID) • Interaktivni procesi – pokreću ih korisnici putem terminala – npr. čitanje e-maila – proces je u “prvom planu” dok se ostali procesi stavljaju u “pozadinu”, odnosno postaju pozadinski procesi. • Batch procesi – pokretanje instrukcija u nizu (nema interakcije sa terminalom). Za pokretanje batch procesa koriste se batch i at naredbe. • Daemon procesi – Rade stalno u pozadini dok usluga koju predstavlja ne bude pozvana – npr. korištenje web servera 105 Rad s procesima • Ispis procesa na sustavu Naredba ps Značenje statusa procesa 106 Prekidanje procesa • Naredba kill • Signali su razne poruke koje se šalju procesu da bi ga obavijestili o raznim 'važnim' događajima. Kada se signal pošalje procesu, on se prekida u onome što trenutno obavlja te se zahtijeva obrada signala. Svaki signal ima cijeli broj koji ga predstavlja (1, 2, itd.). Postoji mnogo signala koje kill naredba može poslati procesu. Dodavajući parametar –l naredbi kill možete vidjeti koji su vam sve procesi dostupni. Grafičko sučelje X • Grafičko sučelje X je grafički sustav temeljen na klijent/poslužitelj paradigmi • Svaki X sustav dijeli se na dva temeljna dijela – X poslužitelj i X klijent. Poslužitelj i klijent komuniciraju putem mreže upotrebom X protokola. • Poslužitelj direktno kontrolira ulazne i izlazne uređaje, poput grafičkog zaslona, tipkovnice ili miša. Klijenti, s druge strane, koriste ulazno/izlazne uređaje putem poslužitelja. Klijenti su aplikacije koje koriste X11 poslužitelj kako bi otvorili jedan ili više prozora te da bi prihvatili ulaz s tipkovnice ili miša. 107 Xfree86 • Xfree86 je organizacija koja razvija i besplatno distribuira open-source implementacije X Window System-a pod nazivom XFree86®. Desktop grafička rješenja • KDE - K Desktop Environment - KDE je zbirka programa, tehnologija i dokumentacije. Filozofija KDE-a je besplatan software kako bi se razvilo kvalitetno okružje koje pruža korisniku kontrolu računalnih resursa. KDE je jedan veliki projekt koji se neprestano poboljšava i raste. 108 Desktop grafička rješenja • GNOME je grafičko okruženje za Linux i Unix operativne sustave koje korisnicima omogućava jednostavnu primjenu i konfiguraciju računala. Izgledom i načinom korištenja vrlo je slično grafičkom okruženju iz MS Windows operativnog sustava. S grafičkim okruženjem dolaze i alati za konfiguraciju samog grafičkog sučelja, alati za konfiguraciju računala i paket aplikacija koje se nalaze u rasponu od malih korisničkih programa pa sve do moćnih uredskih aplikacija. Zajedničke značajke tih aplikacija su besplatnost, jednostavnost korištenja, brzi razvoj i dostupnost su preko Interneta. Linux OS www.gnu.org www.kernel.org www.x.org www.bsd.org www.linuxdoc.org www.linux.hr 1) S. Figgins, E. Siever, A. Webber: Linux in a Nutshell, 4th Edition, O'Reilly, 2003. 2) D. Taylor, J. C. Armstrong: Teach Yourself UNIX in 24 Hours, Sams Publishing, Indianapolis, 1997. 3) J. Tacket, S. Burnet: Using Linux, Que Corporation, Indianapolis, 1998. 4) M. Žagar: UNIX i kako ga koristiti, “Antonić”, Zagreb, 1995. 109
© Copyright 2024 Paperzz