Vježbe - Metronet

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