vježbe 2007/2008 iz kolegija operacijski...
TRANSCRIPT
1
OPERACIJSKI OPERACIJSKI SUSTAVISUSTAVI
Bernard Vukelić, predavač
Vježbe 2007/2008 iz kolegija
VeleuVeleuččiliiliššte u Rijecite u Rijeci
Skripta za studente
LiteraturaLiteratura
David A. Solomon, Mark Russinovich: Inside Microsoft Windows 2000, Microsoft Press, 2000.Andrew S. Tanenbaum: Modern Operating Systems, Prentice Hall PTR, 2nd EditionSilberschnatz A.: Operating Systems Concepts, Seventh Edition, 2004.Kokoreva O.: Windows XP Registry, A-LIST Publishing, 2002.
+ sve što nađete na Internetu!!!
2
UvodUvod
“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
SOFTWARE
KORISNIK (User)
Sklopovlje raSklopovlje raččunalaunala
Korisnik 1 Korisnik 2 Korisnik 3
Aplikacijski programi
Operacijski sustav
Hardware
n Korisnik
3
Operacijski sustaviOperacijski 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čkog3) alociranje - vodi računa o pravu korištenja nad
nekim resursom- aplikacije – zahtjevi kroz API - application program interface
Sklopovlje raSklopovlje raččunalaunala
Elektroničko računalo
Pripremapodataka Ulaz Obrada Izlaz
Podatak Informacija
ProcesorRadni spremnikVanjski spremniciUlazno-izlazne naprave
Sklopovlje računala:
4
Sklopovlje raSklopovlje raččunalaunala
von Neumannova arhitektura:
računalo kao sklop sastavljen od četiri glavna dijela:
n ALU (Arithmetic and Logic Unit) - aritmetičko-logička jedinica, n kontrolna jedinica, n memorija i n I/O (Input and Output) - ulazni i izlazni sklopovi.
DanaDanaššnji model ranji model raččunalaunala
5
Paljenje i inicijalizacija raPaljenje i inicijalizacija raččunalaunala
BIOS (Basic Input Output System)
- software interrupts - interruptvector table
CMOS (Complementary Metal-Oxide Semiconductor) - 64 bytes- "CMOS Checksum Error"
Paljenje i inicijalizacija raPaljenje i inicijalizacija raččunalaunalaTipič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-a2b) 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
6
Paljenje i inicijalizacija raPaljenje i inicijalizacija raččunalaunala
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 raPaljenje i inicijalizacija raččunalaunala
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
7
BIOS i pristup BIOS i pristup hardhard diskudisku
1. BIOS Interrupt Routines2. Hard Disk Detection and Configuration – IDE/ATA3. 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
ObjaObjaššnjenje CHS vrijednostinjenje 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
8
BIOS i pristup BIOS i pristup hardhard diskudisku
PROBLEMI
BIOS i pristup BIOS i pristup hardhard diskudisku
IDE/ATA - 2^16 or 65,536 cylinders
9
BIOS i pristup BIOS i pristup hardhard diskudisku
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
34.2 Gb
3.8 Gb
10
BIOS i pristup BIOS i pristup hardhard diskudisku
CHS – no translation
•Extended CHS
•LBA
PrimjerPrimjer
Physical geometry - 2000 cylinders, 16 heads and 63 sectors = LBA = 2016000 sectorsBIOS – INT13 = 1000 cylinders, 32 heads and 63 sectors
value of NThe number of cylinders is divided by N while the number of heads is multiplied by NN = 2, 4, 8,..., a power of 2.
11
LBA LBA -- logicallogical blockblock addressingaddressing
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 (MBR (MasterMaster bootboot recordrecord))
“početna točka” – podaci o disku (particije) Lokacija – 0 cylinder, 0 head, 1 sector
12
BootBoot RecordRecord Signature Signature
16-bit hexadecimal Word, 0xAA55 (or: AA55h)
MasterMaster BootBoot CodeCode
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. U particijskoj tabeli traži aktivnu particiju2. Traži početni sektor aktivne particije3. Učitava kopiju boot sektora iz aktivne particije u memoriju4. Predaje kontrolu boot loaderu u boot sektoru aktivne particije
13
PartitionsPartitions ((ParticijeParticije))
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, proPrimarne, prošširene i logiirene i logiččke ke particijeparticije
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
14
Primarne, proPrimarne, prošširene i logiirene i logiččke ke particijeparticije
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
PartitionPartition Table Table
Partition Table (Particijska tabela) – popis primarnih particija - sadrži 4 zapisa po 16-byta (4x16=64)
U praksi 3+1!!! – zašto?
15
Unos za Unos za PrimaryPrimary PartitionPartition ((PartitionPartition Table Table EntryEntry))
Unos za Unos za PrimaryPrimary PartitionPartition ((PartitionPartition Table Table EntryEntry))
Boot indicator – 80h ili 00h – primarna bootabilna uvijek ima najveću vrijednostStarting Sector - u CHS vrijednostima (3 bytes) Partition Type Descriptor – tip datotečnog sustava - mogućih 256vrijednosti - npr. 0Bh za FAT32Ending Sector - u CHS vrijednostima (3 bytes)Starting Sector (4 bytes) - LBA (Absolute Sector) vrijednost -Logical Block AddressPartition Size – (4 bytes)
16
PRIMJER!!! (PRIMJER!!! (PartitionPartition Table Table EntryEntry))
ExtendedExtended BootBoot RecordRecord
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
17
BootBoot SectorSector
Na 1 sektoru svake particije
BootBoot sectorsector –– assemblerassembler codecode
…
18
BIOS BIOS parameterparameter blockblock (BPB)(BPB)
BPB – veličina i geometrija diska – informacija boot codu gdje se nalazi boot loader – npr. Ntldr u Windowsima
Primjer FAT 32 BPB-a
DinamiDinamiččki diskovi/ki diskovi/particijeparticije –– MS Windows 2000MS Windows 2000
Fleksibilniji: multipartition volumes –
§ Spanned volumes § Mirrored volumes § Striped volumes § RAID-5 volume
bolje performanse, podrška za veće particije, pouzdanostInformacija o konfiguraciji dynamic particije zapisana na samom diskuNedostaci: nekompatibilni sa ranijim verzijama Windowsa, onemogućen pristup preko dual-boot-aParticije nisu prikazane u MPT – soft particije – potreban Logical Disk Manager (LDM)
19
DinamiDinamiččki diskovi/ki diskovi/particijeparticije –– MS Windows 2000MS Windows 2000
LDM database
GUID GUID particijeparticije -- Guaranteed Unique Identifier Disk
Intel - Extensible Firmware Interface (EFI) - 64-bit Veličina do 18 exabytes i 128 partiticija po disku
20
PrimjerPrimjer
PartitionsPartitions
Vježba - objasnite
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/prork/prcb_dis_qxql.mspx?mfr=true
21
PartitionPartition TableTable
Vježba – Partition Table EditorDomać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
File system – struktura u kojoj su datoteke zapisane – naziv i način pristupanja. Podaci na disku smješteni su u 512-bytesektore - x86 systems Zbog performansi disk je podijeljen na veće dijelove clustere (allocation units) -addressable blocks
DatoteDatoteččni sustavini sustavi
Interrupt
Read-write
Logički i fizički blokovi
Metadata
22
NTFS – “New Technology File System” – Windows NT, Windows 2000 i Windows XPPouzdanost – konzistentnost file systema – log datotekeVeća sigurnost – EFS – Encrypting File System – enkripcija podataka i ACL - access control list“Menadžment prostora” na disku – disk kvote – disk kompresija na razini atributaPodrška za veći diskovni prostor – teoretski do 16 exabyta –manja veličina clustera – limitirano do 128 TB – 32-bitni clusteri
NTFS datoteNTFS datoteččni sustavni sustav
NTFS File System Driver NTFS File System Driver
NTFS i ostali datotečni sustavi imaju device drivere – kernel modeDatoteke – objekti – dijeljenje i zaštita – Object manager
23
NTFS strukturaNTFS struktura
Svi podaci su zapisani kao datotekemaster 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
5 – Root direktorij - \
6 – Bitmap – slobodni prostor na disku
7 – Bootstrap loader – pokazivač8 – Bad blocks9 – Security descriptor – files & directories10 – Case mapping – npr. Latin A-Z, upper and lower case11 – Extend – npr. file object IDs, quotas
88%12%
NTFS NTFS File Reference Numbers File Reference Numbers
Svaka datoteka (file) je opisana sa 64-bitnom vrijednošću - file reference – sastoji se od file number i sequence number-aFile number – pozicija datoteke u MFT-i minus 1 ako datoteka ima više od 1 recordaSequence number – za provjeru konzistentnosti kada se pozicija datoteke promijeni
24
File Records File Records
Svaka datoteka je opisana kroz atribute - zaglavlje i vrijednost - nonresident i resident
< 1KB > 1KB - runlist
FilenamesFilenames
Mogućnost upisivanja 255 znakova - Unicode i razmaciMS DOS – 8.3 sistem – dugačka imena se moraju kratiti
. " / \ [ ] : ; | = , * ? (space)
Dir /x
25
NTFS Recovery Support NTFS Recovery Support
Chkdisk alatrecoverable 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 SupportNTFS Recovery Support
NTFS koristi logging techniques (journal) – kad sistem padne gleda se zapis log datoteke – NTFS zapisuje log kad:
1. Creating a file 2. Deleting a file 3. Extending a file 4. Truncating a file 5. Setting file information6. Renaming a file 7. Changing the security applied
to a file
log file service (LFS)
26
WinFS (?!)WinFS (?!)
WinFS – novi file system – za buduće generacije Windowsa –zasniva se na relacijskoj bazi podataka – Windows Future Storage
DatoteDatoteččni sustavini 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
27
Boot proces, sastoji se od pet razina (koraka):
- preboot sequence,- boot sequence, - kernel load, - kernel initialization, - logon
MS Windows MS Windows –– bootboot processprocess
28
Datoteke koje Windowsi koriste prilikom bootanja sistema:
BootC:\Ntdetect.com
Boot (opcionalno)C:\Bootsect.dos
BootC:\Boot.ini
Preboot i bootC:\ntldr
Boot razinaLokacijaNaziv
MS Windows MS Windows –– bootboot processprocess
Kernel initialization\Windows\System32\Config
System
Kernel load\Windows\System32Hal.dll
Kernel load\Windows\System32Ntoskrnl.exe
Boot (opcionalno) za SCSI diskove
C:\Ntbootdd.sys
Boot razinaLokacijaNaziv
MS Windows MS Windows –– bootboot processprocess
29
Učitavanje i inicijalizacija “auto-start” device drivera i Win32 servisa.
Service control manager(SCM)
Startanje Service control manager-a i Local SecuritySubsistem-a (Lsass), te prikazivanje logon dijaloga.
Winlogon
Učitavanje Win32 subsistema i startanje Winlogonprocesa.
Smss
MS Windows MS Windows –– bootboot processprocess
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 bootparticija
- učitavanje i izvršavanje ntldr datoteke
MS Windows MS Windows –– bootboot processprocess
30
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 MS Windows –– bootboot processprocess
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.
MS Windows MS Windows –– bootboot processprocess
31
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" /fastdetectC:\="Microsoft Windows Millennium Edition"
MS Windows MS Windows –– bootboot processprocess
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
MS Windows MS Windows –– bootboot processprocess
32
• 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 MS Windows –– bootboot processprocess
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 startup-a
• /Sos – prikazivanje informacija o svakom driveru koji se učitava prilikom startup-a
MS Windows MS Windows –– bootboot processprocess
33
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 MS Windows –– bootboot processprocess
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
MS Windows MS Windows –– bootboot processprocess
34
Logon
- kada se završi kernel initialization faza, započinje proces logiranja
MS Windows MS Windows –– bootboot processprocess
VJEŽBE:
F8 – Safe modeRecovery ConsoleMsconfigSystem Restore
MS Windows MS Windows –– bootboot processprocess
35
KernelKernel/Jezgra/Jezgra
Jezgra operacijskog sustava - centralni dio modernog operacijskog sustavaSkup 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.
36
Tipovi jezgreTipovi 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 jezgreTipovi 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
37
Prednosti Prednosti mikrojezgremikrojezgre
Mogućnost korištenja različitih operacijskih sustava i njihovih sučelja (API-ja) istodobno u jednom računalnom sustavu, ostvarenih putem servisa kojirade u korisničkom načinu rada,Fleksibilnost i proširivost sustava zasnovanog na komponentama kojeg jemoguće prilagoditi bilo kojoj primjeni dodavanjem, izmjenom ili micanjempojedinih komponenti sustava,Svi sustavi koriste se IPC mehanizmima za komunikaciju. Čisto sučeljeolakšava modularnu organizaciju operacijskog sustava, a međuovisnostipojedinih sustava su smanjene i jasno određene,Manja jezgra je lakša za ostvarivanje i održavanje te je manja mogućnostpojave pogreške u jezgri. Smanjuje se količina koda kojem se moravjerovati 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 Windows NT kernelkernel
modificirana microkernel (Windows NT) – na razini dizajna je implementiran kao microkernel ali moduli su implementirani unutar kernela radi performansi
38
Win32 Application Programming Interface Win32 Application Programming Interface (API)(API)
Kako bi olakšao i omogućioprogramiranje za svoje operacijskesustave Microsoft je razvio Application Programming Interface(API). Za 32-bitne platforme koristi se Microsoft®Win32®API (za razliku odWIN3.11 koji su 16-bitni). API sadržiskup funkcija, poruka (messages) i struktura koje su smještene u sljedećimdll-ovima (dynamiclink libraries) tj. dinamički linkanim bibliotekama: KERNEL32.DLL, ADVAPI32.DLL, GDI32.DLL, USER32.DLL, i CRTDLL.DLL.
Win32 Application Programming Interface Win32 Application Programming Interface (API)(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 funkcije5. RemoteProcedure Calls (RPC) funkcije
39
UpravljanjeUpravljanje prozorimaprozorima (Window(Window Management)Management)
Funkcije za upravljanje prozorima namijenjene su za stvaranje i korištenje prozora za interakciju sa korisnikom u aplikaciji. Većinaaplikacija će kreirati barem jedan prozor.
SuSuččeljeelje zaza radrad sasa grafigrafiččkimkim uređajimauređajima ((GraphicsDeviceGraphicsDeviceInterfaceGDIInterfaceGDI))
Funkcije za rad sa grafičkim uređajima omogućavaju aplikacijamakreiranje grafičkog izlaza odnosno prikaza na displeju (monitor), printeru i drugim uređajima. Korištenjem GDI funkcija, mogu se crtatilinije, tekst, bitmapslike (.bmp) i sl.
40
Win32 Application Programming Interface Win32 Application Programming Interface (API)(API)
GDI (Graphics Device Interface)
SistemskiSistemski ServisiServisi
Funkcije za rad sa sistemskim servisima pružaju aplikaciji pristupresursima računala i svojstvima operacijskog sustava, kao što sumemorija, datotečni sustav (file systems) i procesi. Aplikacija koristifunkcije za rad sa sistemskim servisima za upravljanje resursimaračunala koji su potrebni aplikaciji za rad. Na primjer, funkcije zaupravljanje memorijom (memory management functions) aplikacijakoristi za alociranje i oslobađanje potrebne memorije, funkcije zaupravljanje procesima i sinhronizaciju (process management and synchronization functions) za pokretanje i koordiniranje rada višeaplikacija ili višestrukih niti (multiple threads of execution) unutar isteaplikacije.
41
Win32 Application Programming Interface Win32 Application Programming Interface (API)(API)
MultimedijaMultimedija
Multimedijske funkcije omogućavaju aplikaciji rad sa audio i videoelementima. Korištenjem ovih funkcija, aplikacija može stvaratidokumente koji uključuju u sebi muziku, zvučne efekte, video klipove....
42
RemoteProcedureRemoteProcedure CallsCalls ((PoziviPozivi uudaljenihdaljenih proceduraprocedura) ) (RPC)(RPC)
RPC se koristi kod distribuiranih aplikacija. Primjeri distribuiranihaplikacija su shared databases, udaljeni datotečni serveri (remotefile servers), udaljeni printer serveri (remote printer servers).
Microsoft Foundation ClassMicrosoft Foundation Class bibliotekebiblioteke (MFC)(MFC)
Programiranje zaWindowse se osimkorištenjem API funkcijamože vršiti i korištenjemMicrosoft Foundation Classbiblioteke (MFC). Općenito, MFC sadrži C++ klase kojeopisuju objekte kao što suprozori, dijalog prozori(dialog boxes) i sličniobjekti važni za grafičkokorisničko sučelje. MFC članske funkcije klasapozivaju API funkcije i olakšavaju znatno kreiranjeaplikacija u odnosu nadirektno pozivanje API funkcija.
43
DLL datotekeDLL datotekeDLL datoteke su jedan od temelja Windows operacijskog sustava već od njegove prve verzije. Sve funkcije Win32 API nalaze se u različitim DLL-ovima.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 , thread-ovima 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 WindowsaArhitektura 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 – useri 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.
44
Kako OS prelazi iz korisničkog moda u kernelmod ?
1. Prekidi (interrupt)2. Iznimke (exeption)3. Sistemski pozivi (system
call)
Arhitektura MS WindowsaArhitektura MS Windowsa
45
Arhitektura MS WindowsaArhitektura MS Windowsa
User-mode komponente:
- System support processes- Service processes- User applications- Environment subsystems
Arhitektura MS WindowsaArhitektura MS Windowsa
Kernel-mode komponente:
- executive- kernel- device drivers- hardware abstraction layer (HAL) - windowing and graphics system
46
Arhitektura MS WindowsaArhitektura 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 WindowsaArhitektura 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 “.
47
Arhitektura MS WindowsaArhitektura 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
48
Arhitektura MS WindowsaArhitektura MS Windowsa
- OS/2 Subsystem – ograničena upotreba – samo podrška za (do) OS/2 1.216-bit character-based ili video I/O (VIO) aplikacije.
Arhitektura MS WindowsaArhitektura 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)
49
Arhitektura MS WindowsaArhitektura MS Windowsa
Session Manager (Smss) -(\Windows\System32\Smss.exe)
Prvi user-mode proces kreiran u sistemuOdgovoran 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 WindowsaArhitektura MS Windowsa
Logon (Winlogon) - (\Windows\System32\Winlogon.exe)
Proces odgovoran za logon i logoff korisnikaPokreće se kad korisnik pritisne CTRL+ALT+DEL – otvaranje secure attention sequence (SAS) dijaloga za logiranje korisnika
50
Arhitektura MS WindowsaArhitektura MS Windowsa
Local Security Authentication Server (LSASS) -(\Windows\System32\Lsass.exe)
Provjeravanje autentičnosti korisnika – ispravan user name i password
Service Control Manager (SCM) -\Windows\System32\Services.exe
Pokretanje, zaustavljanje i interakcija sa servisnim procesima
Arhitektura MS WindowsaArhitektura MS Windowsa
51
Executive
Zapravo “upper-layer” datoteke Ntoskrnl.exeSastoji 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 devicedrivera pri izvođenju procesa
Arhitektura MS WindowsaArhitektura 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 cachememorije
- virtual memory manager-a – korištenje virtualne memorije- Windows Management Instrumentation- object manager –a- local procedure call (LPC)
Arhitektura MS WindowsaArhitektura MS Windowsa
52
Kernel
Set “low-level” funkcija koje se nalaze u datoteci Ntoskrnl.exe - raspoređivanje dretvi, proslijeđivanje interrupt signala i sinhronizacija multiprocesora…
Arhitektura MS WindowsaArhitektura 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ćavaUmjesto 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
Arhitektura MS WindowsaArhitektura MS Windowsa
53
● 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-orientedkonstrukcije) – sistem ih samo posuđuje, ali o njima ne ovisi.
Arhitektura MS WindowsaArhitektura MS Windowsa
ObjectObject managermanager
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. NtCreateFileKernel: nisu vidljivi u user-modu, omogućuju osnovne funkcije, svaki executive objekt može imati više kernel objekata
54
ExecutiveExecutive objectsobjects
U Windowsima ih ima 27 – Vježba: Winobj.exe
LocalLocal Procedure Procedure CallsCalls ((LPCsLPCs))
Interprocesna komunikacija – koristi se za “high-speed” porukeNije dio Win32API-a nego je Windows komponentaObič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
55
LocalLocal Procedure Procedure CallsCalls ((LPCsLPCs))
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 sharedsection – 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 – sinhronizacijaizmjena poruka
Windows Windows SecuritySecurity
Elementi kod Windows sigurnosti:
1. Security reference monitor (SRM) – dio kernel Executivekomponente - pristup objektima, pravima, i kreiranje audit securityporuka
2. Local security authority subsystem (Lsass) - user-mode procesodgovoran 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
56
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 logiranjapokreć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
Windows Windows SecuritySecurity
57
LogonLogon
Koraci:
1. Ctrl+Alt+Del – SAS2. Poziva se GINA (Graphical Identification and Authentication) – user
name i password3. Poziva se registered authentication packages (Kerberos (domian) ili
MSV1_0 (local)) – provjera ispravnosti4. MSV1_0 – user name i password šalje na provjeru u SAM database
– čeka povratnu informaciju5. Lsass pretražuje Local security policy bazu za logiranog korisnika –
prava6. Kreira se access token7. Zapisuje se audit message (ako je potrbna) od logiranja
Kontrola logiranja – Logiranje na 2 načina:
- Welcome screen- Classic logon – Windowsi NT i 2000
- SAS – Ctrl+Alt+Del
LogonLogon
58
KorisniKorisniččki raki raččunun
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.
Postoje i tri privilegije pristupa resursima kod korisničkih računa:
- Computer administrator, - Limited,- Guest.
KorisniKorisniččki raki raččunun
59
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-skekomponente.
KorisniKorisniččki raki raččunun
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 documentfolder-u.
Guest – član guest grupe (gost); ima slične privilegije kao članovi Limited grupe. Korisnik logiran kao Guest, ne može kreirati accountpassword.
KorisniKorisniččki raki raččunun
60
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
KorisniKorisniččki profilki profil
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)
KorisniKorisniččki raki raččunun
61
KorisniKorisniččki raki raččuni i grupeuni i grupe
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-FolderOptions treba isključiti opciju zaštite sistemskih datoteka
SecuritySecurity IDID
62
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)
TokenToken
2 vrste pristupnih privilegija:- prava (rights)- dozvole (permissions)
Prava (rights) – mogućnost izvođenja neke sistemske radnje (npr. Logiranje ili namještanje sata)
Prava i dozvolePrava i dozvole
63
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
DozvoleDozvole
64
Događaj (Event) – u Windowsima - svaka aktivnost vrijedna bilježenja – korisnicima, OS-u i aplikacijamaSvaki 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 - EventViewer) koristi se za pregled tih datoteka.
AuditAudit
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.
AuditAudit
65
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
AuditingAuditing SecuritySecurity
User log on ili log off sa mreže (mrežnog pristupa)
Audit logon events
Kada se pristupa Active Directory objektuAudit directoryservice access
Kada se napravi, izbriše ili izmjeni korisnik, grupa, password...
Audit accountmanagement
Kada se korisnik logira (log on) na računalo ili odlogira (log off) sa računala
Audit account logonevents
OpisAudit Policy
66
Npr. kada korisnik resetira ili ugasi računalo
Audit system events
Npr. pokretanje ili izlaz iz programaAudit process
tracking
Kada korisnik iskoristi neku privilegiju
Audit privilege use
Kada korisnik promijeni bilo koju policy
Audit policy change
Kada korisnik pristupi mapi, datoteci, printeru koji su podešeni za auditing
Audit object access
Primjer (vježba):
- Uspjelo (Succes) i neuspjelo (Failure) logiranjekorisnika
AuditAudit securitysecurity
67
● 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 MS Windows XP –– registryregistry
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
MS Windows XP MS Windows XP –– registryregistry
68
● Da bi vidjeli strukturu registry-a koristimo se tzv. RegistryEditor-om – Run – Regedit
● Struktura registry-a slično je organizirana kao i struktura podataka na disku.
MS Windows XP MS Windows XP –– registryregistry
MS Windows XP MS Windows XP –– registryregistry
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
Keys
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
Subtree
OpisKomponenta
69
MS Windows XP MS Windows XP –– registryregistry
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
Data types
Ključ sa podključevima i vrijednostima – u registry-u i .log datotekama (zabilježavanjepromjena \Windows\system32\config)
Hive
Ključevi sadržavaju jedan ili više entries-a –tri dijela: naziv (name), tip podataka (datatype), i vrijednost (value)
Entries
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
MS Windows XP MS Windows XP –– registryregistry
70
MS Windows XP MS Windows XP –– registryregistry
Trenutna hardwareska konfiguracija -HKEY LOCALMACHINE\Config\current configuration).Prilikom boot-a učitavaju se podaci o hardware-u
HKEY CURRENT CONFIG
Ako postoji više korisnika, informacije o njima.HKEY USERS
Informacije o hardware-uHKEY LOCAL MACHINE
Informacije za trenutne korisnike. Programi spremaju svoje postavke ovdje.HKEY CURRENT USER
Explorer koristi ove informacije da izabere ikone, prikaže menije i sl. HKEY CLASSES ROOT
OpisIme ključa
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
MS Windows XP MS Windows XP –– registryregistry
71
HKEY_CURRENT_USER
- AppEvents – spaja zvukove sa događajima- Console – podaci o konzoli i command promptu- Control Panel - accessibility, regional, and desktopappearance 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 MS Windows XP –– registryregistry
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
MS Windows XP MS Windows XP –– registryregistry
72
HKEY_CLASSES_ROOT
- dva tipa postavki:1. file associations – da programi mogu otvorti, printati i editiratidatoteke2. 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 MS Windows XP –– registryregistry
HKEY_CURRENT_CONFIG
- informacije o “current hardware profile-u”
MS Windows XP MS Windows XP –– registryregistry
73
Procesi i dretveProcesi i dretve
OoOEPreemptive multitasking vs. Cooperative multitasking
Procesi Procesi –– u Windowsimau 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)
74
Win32 Win32 CreateProcessCreateProcess funfunkcijakcija
Kreiranje procesa Kreiranje procesa -- koracikoraci
Otvaranje image file (.exe) – izvršavanje unutar procesaKreiranje Windows 2000 executive process object-aKreiranje inicijalne dretveObavijest Win32 subsystem-u o kreiranju novog procesaPokretanje inicijalne dretveDovršavanje inicijalizacije adresnog prostora i pokretanje programa
75
VjeVježžbaba
TasklistWindows Task ManagerPerformance monitorPviewer
Operacijski sustavi
Dio 2. – GNU/Linux
Vježbe 2007/2008 iz kolegija
VeleuVeleuččiliiliššte u Rijecite u Rijeci
76
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
77
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.
78
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.
79
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
80
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
81
Vježba: instalacijaInstalaciju 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, i6. instalacija boot loadera.
Linux - boot• Proces pokretanja Linux OS-a
BIOS FAZA1. 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 loaderna particiji
3. sekundarni boot loader traži i pokreće jezgruKERNEL FAZA4. jezgra OS-a sadrži mali nekompresirani program koji
dekompresira dio jezgre. Jezgra zatim prikuplja informacije o sistemu.
82
Linux - boot
INIT FAZA
5. Pokreće se Init proces - /sbin/init6. Init proces pokreće tzv. getty programe7. 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)
83
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
84
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 rootdatoteč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
85
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)
86
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 shellprogram.
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
87
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…
88
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
89
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 userID i usporediti ga sa imenom korisničkog računa. Takav način usporedbe štedi vrijeme.
2) HOME - određuje matični direktorij3) 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, kakvedodatne parametre (opcije) ima dotična naredba i sl.
Primjer: man lsman mount
90
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”
91
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 idirektorijuma,
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 sustavNaredba logout – odjava
• Informacije o korisnikuNaredba finger - finger <korisničko ime>Naredba who am i
92
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, ISO-
9660 (cdrom)
Datotečni sustavi
93
• 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)
Datotečni sustavi
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 datablokova, gdje su inodeovi i fileovi fizički zapisani.
94
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(/)
95
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 rootdirektorij (oznaka /). Stoga kad smo na nekoj poziciji unutar stabla direktorija možemo promatrati svoju poziciju s obzirom na direktorij u kojem jesmo (relative
96
Direktorij /bin• U direktoriju /bin se nalaze svi programi koji su potrebni
za pokretanje sustava kao i većina naredbi koje Linuxkoristi. 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.).
97
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.
98
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. CDROM-a) 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
99
Direktorij /sys• Direktorij /sys koristi jezgra (kernel) kao virtualni
datotečni sustav tj. kao sučelje prema informacijama iz jezgre sustava.
• Direktorij /tmp služi za privremenu pohranu podataka.
Direktorij /tmp
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.
100
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.
101
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).
102
• Kopiranje datoteka Naredba cp* - Naredbom touch stvorit ćemo datoteku vjezba.txtcp vjezba.txt vjezba.copyls –l vjezba.txt vjezba.copy
• Želimo li kopirati direktorij sa svim njegovim sadržajem u novi direktorij, naredbi cp dodajemo parametar -r.
• Premještanje datotekaNaredba mv (engl. move)
• Brisanje datotekeNaredba rm (engl. remove) – parametar –i
• Brisanje direktorija – rmdir – mora biti prazan
• Naredba fileDatoteke 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 catNaredba cat (concatenate-spojiti) kao ulaz uzima popis datoteka ili jednu datoteku i ispisuje sadržaj.
103
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 podpoljaznače da datoteka ima dozvole čitanja, pisanja i izvršavanja samo za vlasnika. Sljedeće podpoljepokazuje 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
104
• 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 vlasnikaPromjenu vlasnika nad nekom datotekom radimo naredbom chown: chown <korisnik> <ime_datoteke>
• Promjena grupenaredbom chgrp: chgrp <grupa> <ime_datoteke>
105
• Postoje tri vrste procesa: interaktivni procesi, batchprocesi i daemon procesi.
• Shell upravlja tim procesima i svakome dodijeljujejedinstveni ID (PID)
PROCESI
• 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
106
Rad s procesima• Ispis procesa na sustavu
Naredba ps
Značenje statusa procesa
107
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ćiparametar –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đajeputem 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.
108
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.
109
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.
www.gnu.orgwww.kernel.orgwww.x.orgwww.bsd.orgwww.linuxdoc.orgwww.linux.hr
Linux OS
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.