zbigniew s. szewczak podstawy systemów operacyjnychzssz/pso2004/w12.pdf · ☛jako system plików...

120
Toruń, 2004 Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 12 Linux.

Upload: trinhtram

Post on 27-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Toruń, 2004

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Wykład 12

Linux.

Page 2: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Literatura

☛ A. Silberschatz, P.B. Gavin, Podstawy systemówoperacyjnych, wyd. III, WNT, 2000 (tł. 5th ed.)

☛ D.P. Bovet, M. Cesati, Linux Kernel, Wyd. RM,Warszawa 2001

☛ M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R.Magnus, D. Verworner, Linux Kernel. Jądrosystemu, MIKOM, Warszawa, czerwiec 1999

☛ M. K. Johnson, E. W. Troan, Oprogramowanieużytkowe w systemie Linux, WNT, 2000

☛ M. Welsh, Linux, Wyd. RM, Warszawa 2000☛

Page 3: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System Linux

☛ Historia & Podstawy projektu☛ Moduły jądra☛ Zarządzanie procesami☛ Planowanie☛ Zarządzanie pamiecią☛ Systemy plików☛ Wejście i wyjście☛ Komunikacja międzyprocesowa☛ Struktura sieci☛ Bezpieczeństwo

Page 4: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Historia

☛ Linux jest nowoczesnym, bezpłatnym systememoperacyjnym opartym o standardy uniksowe

☛ Prace nad nim rozpoczęły się w 1991, kiedy tofiński student Linus Torvalds napisał małe leczkompletne jądro dla procesora 80386☛ zgodność z systemem UNIX była głównym celem

☛ Historia Linuxa to nie mający precedensuprzykład współpracy tysięcy użytkowników zcałego świata poprzez Internet

Page 5: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Historia (c.d.)

☛ Linux został zaprojektowany do wydajnej pracyna PC ale w chwili obecnej działa na wieluplatformach sprzętowych

☛ Jądro w systemie Linux jest oprogramowaniemw całości oryginalnym, wykonanym od podstawprzez społeczność linuksową; zawiera liczneelementy z których jedne napisano od nowa adrugie zapożyczono z innych systemów

Page 6: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Jądro systemu Linux

☛ Pierwsza wersja systemu Linux-0.01 pojawiła się14 Maja 1991☛ nie potrafiła współpracować z siecią☛ działała jedynie na architekturze 80386☛ miała nader ograniczone oprogramowanie urządzeń

zewnętrznych☛ jako system plików dostarczany był jedynie Minix☛ podsystem pamięci wirtualnej był bardzo elementarny

Page 7: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Jądro systemu Linux (c.d.)

☛ Linux-1.0 pojawił się 14 Marca 1994 i zawierał:☛ obsługę standardowych uniksowych protokołów

sieciowych TCP/IP (PPP, SLIP)☛ zgodny z systemem BSD interfejs gniazd☛ IPC, pamięć dzielona, semafory, kolejki komunikatów☛ moduły sterujące do kart Ethernet☛ udoskonalony system plików☛ szereg sterowników dla kontrolerów SCSI☛ obsługa dodatkowego sprzętu: CDROM, dźwięk, myszy☛ emulacja koprocesora matematycznego 80387

☛ Linux-1.2 (Marzec 1995) ostatnie wydaniesystemu jedynie na architekturę IBM PC

Page 8: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Linux 2.0☛ Linux-2.0 (Czerwiec 1996) nowe możliwości:

☛ dostępność wielu architektur, w tym - w pełni 64-bitowegoprocesora Alpha

☛ dostępność dla architektur wieloprocesorowych☛ ulepszony kod zarządzania pamięcią - jednolita pamięć

podręczna dla systemu plików niezależna od pamięcipodręcznych urządzeń blokowych

☛ ulepszone protokoły TCP/IP☛ zorganizowanie wątków wewnątrz jądra☛ manipulowanie zależnościami między modułamiładowalnymi i ich ładowanie na żądanie

☛ standaryzowany interfejs konfiguracji☛ planowanie w czasie rzeczywistym

Page 9: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Linux 2.0 (c.d.)

☛ Pakiety dystrybucyjne systemu Linux oparte nawersji jądra 2.0 są także dostępne dlaprocesorów serii Motorola 68000 oraz systemówSun Sparc i PowerMac

☛ Jądro 2.0 zawierało protokół amatorskich sieciradiowych AX.25 oraz protokół NCP (Novell) iSMB (Microsoft)

☛ Zgodne ze standardem POSIX klasyszeregowania procesów

Page 10: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Linux 2

☛ Linux-2.2 (Styczeń 1999) - poprawianie 2.0☛ UltraSPARC;Firewall; Dyski Acorn, Apple, NT☛ NFS daemon w jądrze

☛ Linux-2.4 (Styczeń, 2001; 2.4.26 - 14.04.2004)☛ obsługa: do 64GB RAM, SMP, USB☛ sterowniki urządzeń:Aironet 802.11, IPv6,NFS v3, ATM☛ TUX WWW Serwer 2.0☛ zwiększone bezpieczeństwo

☛ Linux-2.6 (Grudzień, 2003 )☛ architektura 64-bitowa; 16 procesorów; aplikacje baz danych☛ wydajność i niezawodność

Page 11: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Linux 2.6☛ Linux-2.6 (c.d. )

☛ nowy algorytm planowania zadań ( O(1) ) dla SMP☛ wywłaszczanie procesów w trybie jądra (bez sekcji

krytycznych)☛ poprawiona implementacja wątków (sygnały POSIX)☛ poprawiona zarządzanie pamięcią wirtualną☛ nowa obsługa modułów☛ zmiany w zarządzaniu pamięcią☛ zastąpienie malloc.h przez slab.h☛ asynchroniczne we/wy☛ dodanie IPSec do jądra☛ modyfikacje w systemie plików (sysfs, ext3, NTFS, JFS,XFS)

Page 12: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System Linux

☛ W systemie Linux znajduje zastosowanie wielenarzędzi opracowanych jako część systemuoperacyjnego BSD z Berkeley, systemu XWindow z MIT oraz oprogramowanie projektuGNU kierowanego przez Free SoftwareFoundation

☛ Główne biblioteki systemu wywodzą się zprojektu GNU, jednak wspólnota linuksowawłożyła dużo pracy w ulepszenie tych bibliotekpod kątem usuwania niewydajności i błędów

Page 13: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System Linux (c.d.)☛ Narzędzia administrowania siecią wprowadzono

do systemu Linux z kodu opracowanegopierwotnie dla systemu 4.3BSD, jednakże wostatnich wersjach systemu BSD (np. FreeBSD)zapożyczono w zamian kod z systemu Linux(moduły sterujące urządzeń dzwiękowych)

☛ System Linux jako całość jest utrzymywanyprzez luźną sieć twórców współpracujących zapośrednictwem Internet, w której małe grupylub poszczególne osoby sprawują pieczę nadcałością konkretnych składowych☛ serwery ftp przechowujące kod (np. ftp.cs.helsinki.fi )

Page 14: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Dystrybucje systemu Linux

☛ Standardowy, zawczasu skompilowany zbiórpakietów zwany dystrybucjami, zawiera opróczpodstawowego systemu Linux także specjalnenarzędzia instalowania systemu i zarządzanianim, jak również uprzednio skompilowane igotowe do instalowania pakiety licznych,typowych narzędzi systemu UNIX (gry,edytory)

☛ Pierwsze dystrybucje rozpakowywały wszystkiepliki pakietów w odpowiednie miejsca

Page 15: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Dystrybucje systemu Linux(c.d.)

☛ Współczesne dystrybucje zawierają bazę danychnadzorującą pakiety

☛ Pierwsze kompletne dystrybucje to SLS iSlackware

☛ Do szczególnie popularnych zalicza siędystrybucje Red Hat i Debian inne to Caldera,Craftworks, WorkGroup Solutions, SuSE, Unifix

☛ Pakiet RPM (ang. Red Hat Package Manager)pozwala dodawanie nowych pakietów dosystemu Linux oraz ich uaktualnianie

Page 16: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Licencje systemu Linux

☛ Jądro systemu Linux jest rozpowszechnianewedług praw GNU GPL (General Public Licence)określonych przez konsorcjum Free SoftwareFoundation

☛ System Linux nie jest oprogramowaniem typupublic domain (t.j. takim co do którego autorzyzrzekli się praw autorskich)

☛ System Linux jest oprogramowaniem typu freesoftware (t.j. prawa autorskie są w rękachautorów poszczególnych fragmentów kodu)

Page 17: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Licencje systemu Linux (c.d.)

☛ Oprogramowanie rozpowszechnianego nazasadach GPL nie wolno redystrybuować wformie czysto binarnej

☛ Jeśli ktoś puszcza w obieg oprogramowaniezawierające jakąkolwiek część podlegającąlicencji GPL to musi udostępnić kod źródłowy

☛ Nie ma zakazu tworzenia binarnych dystrybucjiLinux o ile są dostarczane z kodem źródłowym

Page 18: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podstawy projektu

☛ Linux jest wielodostępnym, wielozadaniowymsystemem z pełnym zestawem narzędzizgodnych z systemem UNIX

☛ System plików systemu Linux pasuje dotradycyjnej semantyki uniksowej i mazrealizowany w pełni sieciowy standard systemuUNIX

☛ Główne cele projektu: szybkość, wydajność istandardyzacja

Page 19: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podstawy projektu (c.d.)

☛ System Linux zaprojektowano tak, abypozostawał w wyraźnej zgodzie z istotnymiopisami standardu POSIX; co najmniej dwiedystrybucje mają oficjalny certyfikat komitetunormalizacyjnego POSIX

☛ Interfejs programisty w systemie Linuxodpowiada bardziej semantyce systemu SVR4UNIX niż zachowaniu systemu BSD

Page 20: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Składowe systemu Linux

☛ Podobnie jak większość implementacji systemuUNIX system Linux składa się z trzech głównychfragmentów kodu; najważniejsza linia podziałubiegnie między jądrem i całą resztą

☛ jądro jest odpowiedzialne za realizacjęwszystkich istotnych abstrakcji systemuoperacyjnego☛ kod jądra jest wykonywany w trybie jądra (ang. kernel

mode) z pełnym dostępem do wszystkich fizycznychzasobów komputera

☛ kod jądra i wszystkie struktury danych są trzymane wjednej przestrzeni adresowej

Page 21: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Składowe systemu Linux (c.d.)

☛ biblioteki systemowe (ang. systemlibraries) definiują standardowy zbiór funkcji,za pomocą których aplikacje mogą współdziałaćz jądrem i które realizują wiele właściwościsystemu operacyjnego nie wymagającychpełnych przywilejów kodu jądra

☛ pomoce systemowe (ang. system utilities)wykonują specjalizowane zadaniaadministracyjne (np. demony (ang. daemons)działają nieustannie )

Page 22: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Składowe systemu Linux

wspólne bibliotetki systemu

jądro systemu Linux

ładowalne moduły jądra systemu

kompilatory procesy użytkowe

pomocnicze programy użytkowe

programy zarządzania systemem

Page 23: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura katalogowa koduźródłowego systemu Linux

linux

modules mm net kernel init lib include ipc

fs arch driverslinuxunix inet

asm-alpha

asm-i386

asm-m68k

asm-generic

asm-mips

asm-sparc

net

char

block

scsi

sound

mips

alpha

sparc

ppc

i386

nfs

proc

minix

msdos

sysv

ext

ext2

xiafs

isofs

hpfs

umsdos kernel boot mm math-emu

Page 24: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego☛ init - kod inicjujący jądro: wersja☛ kernel - rdzeń jądra: procesy, zegary,moduły,..☛ mm - zarządzanie pamięcią: swap, vm☛ arch - kod zależny od architektury

☛ i386 - IBM PC☛ kernel - rdzeń jądra☛ mm - zarządzanie pamięcią☛ math-emu - emulator zmiennoprzecinkowy☛ lib - zależne od sprzętu funkcje pomocnicze☛ boot - ładowanie systemu

☛ compressed - obsługa skompresowanego jądra☛ tools - programy do tworzenia skompresowanego obrazu jądra

☛ alpha - architektura Compaq Alpha

Page 25: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ arch (c.d.)

☛ s390 - IBM System/390☛ sparc - Sun SPARC☛ sparc64 - Sun Ultra-SPARC☛ mips - Silicon Graphics MIPS☛ ppc - Motorola-IBM PowerPC☛ m68k - Motorola MC680x0☛ arm - Procesor ARM☛ cris - Procesor ETRAX☛ inne: ia64, parisc, ppc64, mips64, sh

Page 26: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ fs -systemy plików

☛ proc - wirtualny system plików /proc☛ devpts - wirtulany system plików /dev/pts☛ ext2, ext3 - systemy plików ext2 i ext3☛ isofs - system plików ISO9660 (CD-ROM)☛ nfs - sieciowy system plików☛ nfsd - serwer systemy plików nfs☛ fat - kod dla systemów plików FAT☛ msdos - system plików MS-DOS☛ vfat - system plików Windows☛ nls - wsparcie dla języków☛ ntfs - system plików Windows NT

Page 27: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ fs - (c.d.)

☛ smb - system plików SMB (Samba)☛ umsdos - nakładka na system plików MSDOS☛ minix - system plików MINIX☛ hpfs - system plików IBM OS/2☛ sysv - system plików SV, SCO, Xenix, Coherent, V7☛ ncpfs - system plików Netware (Novell)☛ ufs - system plików BSD, SunOS, NeXTStep☛ affs - system plików Amiga Fast File System☛ coda - sieciowy system plików Coda☛ hfs - system plików Apple Macintosh

Page 28: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ fs - (c.d.)

☛ adfs - system plików Acorn Disc Filing☛ efs - system plików SGI IRIX EFS☛ qnx4 - system plików dla QNX 4 OS☛ romfs - niewielki system plików tylko do odczytu☛ autofs - wsparcie dla automatyczcnego montowania☛ lockd - wsparcie dla zdalnego blokowania plików☛ cramfs - system plików na małe pamięci ROM☛ romfs - system plików (ro) dla RAM dysków☛ bfs - system plików SCO Unixware☛ inne: reiserfs, ffs, jfs, xfs.... -> Filesystems-HOWTO

Page 29: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ net - kod sieciowy: ax25, ipv6, sunrpc, rose,...☛ ipc - komunikacja międzyprocesowa SV☛ drivers - moduły sterujące

☛ block - urządzenia blokowe: floppy,..☛ paride - urządzenia IDE przez port równoległy

☛ scsi - urządzenia SCSI☛ char - urządzenia znakowe

☛ joystick, ftape☛ hfmodem - urządzenia radiowe ham☛ ip2 - wieloportowe karty szeregowe IntelliPort

☛ net - urządzenia sieciowe: hamradio, wireless, pcmcia...☛ sound, video

Page 30: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ drivers - (c.d.)

☛ cdrom - urządzenia CDROM (nie ATAPI i SCSI)☛ isdn, bluetooth, atm☛ ap1000 - urządzenia Fujitsu AP100☛ macintosh - urządzenia Macintosh☛ sgi - urządzenia Silicon Graphics☛ fc4 - urządzenia Fibre Channel☛ acorn - urządzenia Acorn☛ misc - różne urządzenia☛ pnp - wparcie dla Plug-and-Play☛ usb - wsparcie dla Universal Serial Bus

Page 31: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ drivers - (c.d.)

☛ pci - wsparcie dla szyny PCI☛ sbus - wsparcie dla Sun SPARC Sbus☛ nubus - wsparcie dla Apple Macintosh Nubus☛ zorro - wsparcie dla szyny Amiga Zorro☛ dio - wsparcie dla szyny Hewlett-Packard HP300 DIO☛ tc - wsparcie dla Sun TurboChannel

☛ lib - funkcje jądra ogólnego przeznaczenia

Page 32: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ include - pliki nagłówkowe

☛ linux - rdzeń jądra☛ lockd - zdalne blokowanie plików☛ nfsd - sieciowy serwer nfs☛ sunrpc - Sun RPC☛ byteorder - funkcje zmiany porządku bajtów☛ modules - wsparcie dla modułów☛ raid - dyski RAID

☛ asm- generic - niezależne od architekturyniskopoziomowe pliki nagłówkowe

☛ asm-i386 - IBM PC☛ asm-alpha - Compaq Alpha☛ asm-mips - Silicon Graphics MIPS

Page 33: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ include - (c.d.)

☛ asm-m68k - Motorola MC680x0☛ asm-ppc - Motorola-IBM PowerPC☛ asm-s390 - IBM System/390☛ asm-sparc - Sun SPARC☛ asm-sparc64 - Sun Ultra-SPARC☛ asm-arm - procesor ARM☛ net - wsparcie dla sieci☛ scsi - wsaprcie dla SCSI☛ video - wsparcie dla kart video☛ config - pliki nagłówkowe zawierające makra definiujące

konfiguracje jądra

Page 34: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura kodu źródłowego (c.d)☛ scripts - zewnętrzne programy do budowania

obrazu jądra

☛ Documentation - pliki tekstowe z ogólnymiwyjaśnieniami i wskazówkami na tematskładników jądra systemu

☛ Kod źródłowy - ok. 2 mln linii (Netscape 17 mln)

Page 35: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Moduły jądra

☛ Jądro systemu Linux potrafi ładować i usuwaćdowolną część swego kodu zależnie od potrzeb

☛ Moduł jądra zwykle steruje pracą urządzenia,specyficznym systemem plików lub protokołemsieciowym

☛ Kod źródłowy systemu Linux jest w wolnymobiegu, więc każdy może skompilować izaładować do jądra moduł sterujący urządzenialub systemu plików; binarne moduły sterującemogą być dystrybuowane z pominięciem GPL

Page 36: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Moduły jądra (c.d.)

☛ Moduły jądra pozwalają na wygenerowanieminimalnego jądra systemu Linux bezwbudowywania w nie żadnych dodatkowychmodułów sterujących urządzeń

☛ Moduły w systemie Linux są wspomagane przeztrzy składowe:☛ zarządzanie modułami (ang. module management)☛ rejestracja modułów sterujących (ang. driver registration)☛ mechanizm rozwiązywania konfliktów (ang. conflict

resolution)

Page 37: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie modułami

☛ Linux pozwala na zintegrowanie modułu zkodem jądra w taki sposób jakby on byłwłączonym podczas kompilacji fragmentemkodu

☛ Ładowanie modułu przebiega w dwóch etapach:☛ program ładujący modułu (ang. module-loader) uzyskuje

od jądra ciągły obszar pamięci wirtualnej jądra w któryprzemieszczony będzie kod wynikowy modułu

☛ wywołanie systemowe przemieszcza kod wynikowy iaktualizuje tablicę symboli jądra za pomocą tablicysymboli modułu

Page 38: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie modułami (c.d.)

☛ Procedura zamawiania modułu (ang. modulerequestor ) pozwala dynamicznie ładowaćmoduły nie bedące w jądrze w sytuacjizapotrzebowania procesu na moduł sterującypliku, urządzenia lub usług sieciowych; takżeodpytuje regularnie jądro, sprawdzając, czyzaładowany moduł pozostaje w użyciu, a gdynie jest już potrzebny, powoduje jego usunięciez pamięci

Page 39: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie modułami - polecenia

☛ /lib/modules/☛ /sbin/depmod☛ /etc/modules.dep☛ modprobe☛ lsmod☛ insmod☛ rmmod☛ funkcje systemowe

☛ query_module, request_module, exec_modprobe, delete_module

Page 40: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Rejestrowanie modułu sterującego

☛ Pozwala poinformować jądro, że nowy modułsterujący został udostępniony

☛ Jądro utrzymuje dynamiczne tablice wszystkichznanych modułów sterujących i dostarczaprocedur umożliwiających dodawanie do nichlub usuwanie z nich modułów w dowolnej chwili

☛ Tablice rejestracyjne zawierają:☛ moduły sterujące urządzeń - np. karta sieeciowa☛ systemy plików - np. NFS☛ protokoły sieciowe - IPX, AX.25☛ format binarny - ELF

Page 41: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Rozwiązywanie konfliktów

☛ Linux wprowadza centralny mechanizmrozwiązywania konfliktów, pomagajacrozstrzygać o dostępie do pewnych zasobówsprzętowych

☛ Ma to zapewnić:☛ ochronę modułów przed rywalizacją o dostęp do zasobów

sprzętowych☛ zapobieganie zaburzaniu działania autosondy (ang.

autoprobes) przez istniejące moduły☛ rozwiązywanie konfliktów między modułami sterującymi

usiłującymi skorzystać z tego samego sprzętu☛ moduł plip.o i moduł lp.o

Page 42: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie procesami

☛ Podstawową zasadą zarządzania procesami wsystemie UNIX jest podział na dwie odrębneoperacje: tworzenie nowych procesów iwykonywanie nowych programów☛ funkcja systemowa fork tworzy nowy proces☛ funkcja systemowa execve wykonuje nowy proces

☛ W systemie UNIX proces obejmuje całośćinformacji, które system operacyjny musiutrzymywać, aby śledzić kontekst wykonaniaindywidualnego programu

Page 43: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie procesami (c.d.)

☛ W systemie Linux kontekst ten można podzielićna trzy grupy określające cechy procesu☛ tożsamość procesu (ang. process’s identity)☛ środowisko (ang. environment) procesu☛ kontekst (ang. context) procesu

Page 44: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Tożsamość procesu

☛ Identyfikator procesu (ang. Process ID)(PID) - każdy proces ma unikalny identyfikator;aplikacja odwołująca się do systemu w celusygnalizacji, zmiany lub zaczekania na innyproces określa procesy systemowi operacyjnemuza pomoca identyfikatorów PID

☛ Uwierzytelnienia (ang. Credentials) - każdyproces musi mieć skojarzony z nim identyfikatorużytkownika oraz jeden lub więcejidentyfikatorów grup określających prawaprocesu do sięgania po zasoby systemowe i pliki

Page 45: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Tożsamość procesu - (c.d.)

☛ Indywidualność (ang. Personality) - niewystępuje w tradycyjnych systemach UNIX, zato w systemie Linux każdy proces ma przypisanyidentyfikator indywidualności, który może niecozmieniać semantykę niektórych funkcjisystemowych; korzystają z tego biliotekiemulacji, aby powodować, że funkcjesystemowe będą zgodne z pewnymi ichszczególnymi odmianami występującymi wsystemach uniksowych

Page 46: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Środowisko procesu☛ Proces dziedziczy środowisko po procesie

macierzystym; składa się ono z dwu wektorówzakończonych znakiem pustym☛ wektor argumentów (ang. argument vector) to wykaz

argumentów wpisanych przez użytkownika w wierszuwywołania programu; na mocy konwencji zaczyna się onod nazwy samego programu

☛ wektor środowiska (ang. environment vector) jestwykazem par “NAZWA=WARTOŚĆ” , kojarzącychnazwane zmienne środowiskowe z dowolnymi wartościamitekstowymi

Page 47: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Środowisko procesu (c.d.)☛ Przekazywanie zmiennych środowiskowych z

jednego procesu do drugiego oraz ichdziedziczenie przez proces potomny dostarczaelastycznych środków przekazywania informacjido różnych składowych oprogramowaniasystemowego na poziomie użytkowym

☛ Mechanizm zmiennych środowiskowychumożliwia dostosowywanie (ang. customization)systemu operacyjnego do specjalnych potrzebprzez zestawianie go z procesów, a niekonfigurowanie jak systemu rozpatrywanegocałościowo (ulubione edytory, języki, itp.)

Page 48: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Kontekst procesu

☛ Kontekst procesu, jako stan wykonywanegoprocesu rozpatrywany w danej chwili, zmieniasię nieustannie ( przeciwnie niż tożsamość iśrodowisko procesu)

☛ kontekst planowania (ang. schedulingcontext) - najważniejsza część kontekstuprocesu; są to informacje potrzebne planiście dozawieszania i wznawiania procesu

☛ rozliczanie (ang. accounting) - informacje ozasobach zużywanych na bieżąco przez każdy zprocesów, jak również o ich łącznej ilości zużytejod momentu startu procesu

Page 49: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Kontekst procesu (c.d.)

☛ tablica plików (ang. file table) zawierawskaźniki do jądrowych struktur plików;wykonując systemowe operacje we/wy, procesyodwołują się do plików za pomocą indeksów dotej tablicy

☛ kontekst systemu plików (ang. file-systemcontext) odnosi się do zamówień na otwarcienowych plików; przechowuje się w tym celuinformacje o bieżącym katalogu głównym oraz okatalogach używanych zastępczo doposzukiwania nowych plików

Page 50: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Kontekst procesu (c.d.)

☛ tablica obsługi sygnałów (ang. signal-handler table) określa procedurę wprzestrzeni adresowej procesu, która ma byćwywołana po nadejściu konkretnego sygnału

☛ kontekst pamięci wirtualnej (ang. virtual-memory context) opisuje całą zawartośćprywatnej przestrzeni adresowej procesu

Page 51: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Procesy i wątki

☛ Linux stosuje dokładnie tą samą wewnętrznąreprezentację dla procesów i wątków; wątekjest po prostu nowym procesem, któremuprzychodzi dzielić ze swoim rodzicem tą samąprzestrzeń adresową

☛ Rozróżnienia między procesem i wątkiemdokonuje się tylko podczas tworzenia nowegowątku za pomocą funkcji systemowej clone☛ fork tworzy nowy proces z własnym, całkowicie nowym

kontekstem☛ clone tworzy odrębny proces z odrębną tożsamością,

któremu pozwala się dzielić struktury danych rodzica

Page 52: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Procesy i wątki (c.d.)

☛ Linux przechowuje konteksty w oddzielnychstrukturach danych w postaci podkontekstów anie w głównej strukturze danych procesu;struktura danych procesu zawiera jedyniewskaźniki do tamtych struktur

☛ Funkcja systemowa clone tworząc nowy proces,przyjmuje argument określający, którepodkonteksty należy skopiować, a które mająbyć wspólne☛ fork jest specjalnym przypadkiem clone, w którym

kopiowane są wszystkie podkonteksty

Page 53: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Procesy i wątki (c.d.)

☛ Proces reprezentuje struktura task_struct☛ Linux stosuje kopiowanie przy zapisie☛ Stany wykonania procesu

☛ aktywny (ang. running) - proces wykonywany albo gotowy☛ interruptable - proces zablokowany, czekający na zasób lub

zdarzenie☛ uninterruptable - proces zablokowany, czekający na zdarzenie

sprzętowe☛ stopped - proces może być wznowiony jedynie przy pomocy

innego procesu (np. debugging)☛ zombie - proces zakończył, lecz dalej jest w strukturach tablic

procesów

Page 54: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Unikanie impasu

☛ Impas stanowi problem przy wzroście liczbysemaforów

☛ Linux omija ten problem przez ograniczenieliczby semaforów oraz żądanie semaforów wkolejnościi rosnącej

Page 55: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Planowanie

☛ Przez planowanie rozumie się przydzielanieczasu jednostki centralnej różnym zadaniomsystemu operacyjnego

☛ W systemie Linux planowanie jako ciąg działań iprzerwań procesów obejmuje takżewykonywanie różnych zadań jądra (ang. kerneltasks)

☛ Wykonywanie zadań jądra obejmuje zarównozadania zlecane przez działający proces, jak izadania działające wewnętrznie na zamówieniemodułu sterującego jakiegoś urządzenia

Page 56: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Synchronizacja jądra

☛ Zamówienie na działanie w trybie jądra możnawykonać na dwa sposoby:☛ Wykonywany program może zamówić usługę systemu

operacyjnego jawnie - za pomocą wywołania systemowego- lub niejawnie, na przykład wskutek braku strony

☛ Może też wystąpić przerwanie pochodzące od modułusterującego urządzenia, które spowoduje, że jednostkacentralna zacznie wykonywać kod zdefiniowanej w jądrzeprocedury obsługi przerwania

☛ Synchronizacja jądra - regulacje pozwalające nawykonywanie sekcji krytycznych jądra bezprzerwań od pochodzacych innych sekcji jądra

Page 57: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Synchronizacja jądra (c.d.)

☛ techniki do ochronych sekcji krytycznych:1. Zwykły kod jądra jest niewywłaszczalny

– gdy przerwanie zegarowe wystąpi w czasie gdy proces wykonuje jądrową procedurę obsługi, znacznik need_resched jest ustawiany aby poinformować jądro o zapotrzebowaniu na planistę po zakończeniu tej procedury i przed wejściem w tryb użytkownika

2. Druga technika dotyczy tych sekcji krytycznych, które występująw procedurach obsługi przerwań– przez wprowadzenie zakazu przerwań w trakciewykonywania sekcji krytycznej jądro gwarantuje, że jejwykonanie przebiegnie bez ryzyka dla współbieżnego dostępu dodzielonych (krytycznych) struktur danych

Page 58: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Synchronizacja jądra (c.d.)

☛ Aby uniknąć pogorszenia wydajności (rozkazywłączania i wyłączania przerwań są kosztowne),w jądrze systemu Linux zastosowanoarchitekturę synchronizacji umożliwiającąwykonywanie długich sekcji krytycznych bezwyłączania przerwań na czas trwania całej sekcji

☛ Procedury obsługi przerwań są podzielona nagórną i dolną połowę (ang. top & bottom half)☛ górna połowa jest zwykłą procedurą przerwania; jej

wykonanie ma wyłączone rekurencyjne przerwania

Page 59: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Synchronizacja jądra (c.d.)

☛ dolna połowa przebiega z włączonymi wszystkimiprzerwaniami i jest nadzorowana przez miniaturowegoplanistę, który zapewnia, że dolne połowy nigdy nieprzerywają się wzajemnie

☛ architektura ta jest uzupełniana przez mechanizmwyłączania wybranych dolnych połów podczaswykonywania zwykłego, pierwszoplanowego kodu jądra

☛ sekcje krytyczne procedur obsługi przerwań sązaprogramowane jako dolne połowy i gdy jądro działającpierwszoplanowo, zechce wejść do sekcji krytycznej,wówczas może zabronić działania dowolnych z dolnychpołów w celu obronienia się przed przerwaniem zniepożądanej sekcji krytycznej

Page 60: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Poziomy ochrony przedprzerwaniami

górne połowy procedur obsługi przerwań

dolne połowy procedur obsługi przerwań

systemowe procedury jądrowe (niewywłaszczalne)

programy trybu użytkownika (wywłaszczalne) zwię

ksze

nie

prio

ryte

tu

Page 61: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Poziomy ochrony przedprzerwaniami (c.d.)

☛ Każdy poziom może być przerwany przez kodwykonywany na wyższym poziomie, ale nigdynie będzie przerwany przez kod wykonywany natym samym lub niższym poziomie

☛ Kody w trybie użytkownika mogą być zawszewywłaszczane przez inne procesy w chwilachokreślonych przerwaniami zegarowymisłużącymi podziałowi czasu

Page 62: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Planowanie procesów

☛ Linux ma dwa oddzielne algorytmy planowaniaprocesów:☛ algorytm z podziałem czasu do sprawiedliwego

planowania z wywłaszczeniami działania wielu procesów☛ algorytm planowania czasu rzeczywistego, w którym

priorytety bezwzględne są ważniejsze niż sprawiedliwość

☛ W skład tożsamości procesu wchodzi klasadefiniująca, który z algorytmów ma byćzastosowany do procesu

Page 63: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Planowanie procesów (c.d.)☛ Dla procesów z podziałem czasu system Linux

używa algorytmu priorytetowego, opartego nakredytowaniu

☛ Kiedy należy wybrać nowy proces wybiera sięproces z największym kredytem, jeśli każdyproces wyczerpał kredyt udziela się go☛ wzór na kredytowanie:

nowy_kredyt = 0.5*kredyt + priorytetuzględnia dwa czynniki historię procesu i jego priorytet

☛ Ten system kredytowania automatycznie preferujeprocesy interakcyjne, ograniczone przez we/wy, dlaktórych istotny jest czas odpowiedzi

Page 64: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Planowanie procesów (c.d.)☛ Linux realizuje dwie klasy planowania w czasie

rzeczywistym: FCFS i RR; w obu przypadkachoprócz klasy planowania każdy proces marównież priorytet☛ planista wykonuje proces o największym priorytecie;

spośród procesów o jednakowym priorytecie planistawybiera proces najdłużej oczekujący

☛ procesy FCFS działają do końca lub do zablokowania☛ proces rotacyjny zostanie po chwili wywłaszczony i

przesunięty na koniec kolejki planowania, tak więcprocesy rotowane o równych priorytetach będąautomatycznie dzieliły czas między siebie

☛ planowanie w systemie Linux: łagodne a nie rygorystyczne

Page 65: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wywołania systemowe -planowanie procesów

☛ nice () - zmienia priorytet zwykłego procesu☛ getpriority () - pobiera maxymalny priorytet grupy zwykłych

procesów☛ setpriority () - ustawia priorytet grupy zwykłych procesów☛ sched_getscheduler () - pobiera strategię planowania procesu☛ sched_setscheduler () - ustawia strategię planowania procesu☛ sched_getparam () - pobiera priorytet planowania procesów☛ sched_setparam () - ustawia priorytet procesu☛ sched_yield () - dobrowolnie oddaje sterownie bez blokownia☛ sched_get_priority_max () - pobiera maxymalny priorytet☛ sched_get_priority_min () - pobiera minimalny priorytet☛ sched rr get interval () - pobiera kwant czasu

Page 66: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wieloprzetwarzanie symetryczne

☛ Linux-2.0 był pierwszym stabilnym jądremsystemu wspierającym symetryczny sprzętwieloprocesorowy (ang. Symmetricmultiprocessor - SMP); poszczególne procesy iwątki mogą być wykonywane na oddzielnychprocesorach

☛ W celu spełnienia niewywłaszczeniowychwymagań synchronizacji jądra implementacjaSMP w tym jądrze narzuca ograniczenie, że wdanej chwili tylko jeden procesor możewykonywać kod w trybie jądra

Page 67: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamiecią

☛ Dwie skłądowe:☛ system zarządzania pamiecią fizyczną (ang.

physical memory-management system), któryzajmuje się przydzielaniem i zwalnianiem stron,ich grup i małych bloków pamięci

☛ mechanizmy do obsługi pamięci wirtualnej,będącej odwzorowaniem pamięci operacyjnej naprzestrzenie adresowe wykonywanych procesów

Page 68: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną☛ Dyspozytor stron (ang. page allocator) w jądrze

odpowiada za przydział i zwalnianie wszystkichfizycznych stron i jest w stanie przydzielać nazamówienie partie stron fizycznie ze sobąsąsiadujących

☛ Dyspozytor stosuje algorytm sąsiednich stert(buddy-heap) w celu rejestrowania dostępychramek☛ wszystkie bloki są zgrupowane w 13 listach: po 32, 64,

128, 256, 512,...., 131072 bajtów☛ każdy obszar zdatnej do przydziału pamięci ma

przyległego partnera, czyli sąsiada ( stąd nazwa)

Page 69: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną(c.d.)

☛ Dyspozytor stron (c.d.)

☛ Ilekroć dwa sąsiadujace obszary są zwalniane, łaczy się je wwiększy obszar

☛ Z drugiej strony, gdy małe zamówienie na pamięć nie możebyć zrealizowane przez przydział istniejącego, małegowolnego obszaru, wówczas w celu zrealizowaniazamówienia większy wolny obszar zostanie podzielony nadwa sąsiednie

Page 70: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podział pamięci w algorytmiesąsiednich stert

16 kB

8 kB

8 kB

8 kB

4 kB

4 kB

Page 71: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną(c.d.)

☛ Udoskonalenie: alokator płytowy (Solaris 2.4)☛ Obszar pamięci głównej, zawierający pamięci

podręczne, jest podzielony na płyty (ang. slabs);każda płyta zawiera bloki zaalokowane i wolne

☛ Alokator płytowy grupuje obiekty w pamięcipodręcznej☛ np. przy otwieraniu pliku obszar pamięci potrzebny do

przechowania obiektu “otwartego pliku” jest pobierany zpamięci podręcznej alokatora płytowego filp (ang. File pointer)

☛ W celu uniknięcia reinicjowania obiektu, alokatorpłytowy pozostawia go w pamięci

☛ Płyty są alokowane za pomocą algorytmu stert

Page 72: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną(c.d.)

☛ slabinfo - version: 1.0kmem_cache 28 42pio_request 0 0tcp_tw_bucket 0 0tcp_bind_bucket 11 127tcp_open_request 0 0skbuff_head_cache 0 25sock 37 40filp 278 294signal_queue 0 29buffer_head 593 630mm_struct 32 62vm_area_struct 1292 1323dentry_cache 2007 2015files_cache 31 36uid_cache 4 127

size-131072 0 0size-65536 0 0size-32768 0 0size-16384 0 0size-8192 0 0size-4096 8 8size-2048 40 44size-1024 12 16size-512 18 24size-256 27 28size-128 428 450size-64 108 126size-32 384 441slab_cache 20 63

Page 73: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną(c.d.)

☛ Przydziały pamięci w jądrze systemu Linux sąalbo zarezerwowane statycznie przez modułysterujące w postaci ciągłych obszarów pamięci,przydzielanych w czasie rozruchu (ang. boottime) albo dynamicznie za pomocą dyspozytorastron

☛ Funkcje jądra nie muszą używać dyspozytorastron

Page 74: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zarządzanie pamięcią fizyczną(c.d.)☛ Specjalizowane podsystemy zarządzania w

Linuxie (korzystają z usług dyspozytora stron)☛ Podsystem pamięci wirtualnej (omawiany dalej)☛ Dyspozytor obszarów zmiennej długości

☛ funkcja kmalloc przydziela na żądanie całe strony a potemdzieli je na mniejsze kawałki

☛ Dwie trwałe pamięci podręczne☛ podręczna pamięć buforów w kontakcie z urządzeniami

blokowymi (dyski) stanowi podstawę operacji we/wy☛ podręczna pamięć stron do przechowywania całych

zawartości plików (NFS, dyskowe systemy plików)

Page 75: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna

☛ System pamięci wirtualnej systemu Linuxodpowiada za opiekę nad przestrzenią adresowąwidoczną dla każdego z procesów. Tworzy onstrony pamięci wirtualnej na żądanie i zarządzasprowadzaniem ich z dysku lub ich wynoszniemz powrotem na dysk w razie potrzeby

Page 76: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)

☛ W systemie Linux zarządca pamięci wirtualnejutrzymuje dwa osobne obrazy przestrzeniadresowej procesu:☛ obraz logiczny odzwierciedlający rozkazy, za pomocą

których system pamięci wirtualnej ukształtował wyglądprzestrzeni adresowej; na tym obrazie przestrzeń adresowaskłada się ze zbioru nie zachodzących na siebie obszarówreprezentujących ciągłe podzbiory przyległych stronprzestrzeni adresowej

☛ obszar pamięci jest opisany przez strukturę vm_area_struct

☛ obraz fizyczny każdej przestrzeni adresowej pamiętany wsprzętowej tablicy stron procesu

Page 77: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtulana (c.d.)☛ Obszary pamięci wirtualnej są określone przez:

☛ zaplecze obszaru (ang. backing store), określająca skądpochodzą strony; większość obszarów ma jako swojezaplecze pliki lub nie ma żadnego obszaru ( obszar ozerowych wymaganiach (ang. demand-zero) )

☛ sposób jego reagowania na pisanie (wspólne (ang. pagesharing) lub prywatne(ang. copy-on-write) )

☛ Jądro tworzy nową wirtualną przestrzeńadresową w dokładnie dwu sytuacjach:1. Gdy proces rozpoczyna wykonanie nowego programu za

pomocą funkcji systemowej exec2. Przy tworzeniu nowego procesu za pomocą funkcji

systemowej fork

Page 78: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)

☛ Kiedy następuje wykonanie nowego procesu(exec), wtedy proces otrzymuje nową,całkowicie pustą przestrzeń wirtualną;zapełnianie tej przestrzeni adresowej obszaramipamięci wirtualnej należy do procedurładujących program

☛ Tworzenie procesu za pomocą funkcji forkobejmuje utworzenie pełnej kopii wirtualnejprzestrzeni adresowej istniejącego programu

Page 79: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)

☛ (c.d.)☛ jądro kopiuje deskryptory vm_area_struct procesu

macierzystego, a następnie tworzy nowy zbiór tablic strondla procesu macierzystego

☛ tablice stron procesu macierzystego są kopiowane wprostdo tablic procesu potomnego ze zwiększeniem licznikaodwołań każdej strony

☛ po operacji fork procesy macierzysty i potomny dzielą wswoich przestrzeniach adresowych te same fizyczne stronypamięci

Page 80: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)☛ Linux nie implementuje wymiany całego procesu☛ System stronicowania pamięci wirtualnej zajmuje się

przemieszczaniem stron pamięci z pamięci operacyjnejna dysk, kiedy występuje zapotrzebowanie na pamięćoperacyjną

☛ System stronicowania można podzielić na dwie części:☛ algorytm postępowania (ang. pageout-policy) decydujący o tym,

które strony zapisywać na dysku i kiedy; zmodyfikowana wersjaalgorytmu drugiej szansy z postarzaniem stron (LFU)

☛ mechanizm stronicowania (ang. paging mechanism), któryrealizuje przesłania i który sprowadza strony danych z powrotemdo pamięci fizycznej, kiedy staną się potrzebne; algorytm next-fit

Page 81: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)

☛ Jądro systemu Linux rezerwuje stały, zależny odarchitektury obszar wirtualnej przestrzeni adresowejkażdego procesu do swego wewnętrznego użytku

☛ Strefa wirtualnej pamięci jądra zawiera dwa obszary:☛ obszar statyczny zawierający odwołania tablicy stron do każdej

dostępnej, fizycznej strony pamięci w systemie☛ upraszczenie tłumaczenia adresów fizycznych na wirtualne w czasie

wykonywania kodu jądra

☛ reszta zarezerwowanego obszaru nie jest zarezerwowana wżadnym konkretnym celu

☛ wpisy tablicy stron odnoszące się do tego przedziału adresówmogą być zmieniane przez jądro, aby stosownie do potrzebwskazywać dowolne inne fragmenty pamięci

Page 82: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Pamięć wirtualna (c.d.)☛ Funkcja vmalloc przydziela dowolną liczbę stron

pamięci i odwzorowuje je w jeden obszarwirtualnej pamięci jądra, pozwalając naprzydział wielkich, ciągłych porcji pamięci nawetwtedy, kiedy do zrealizowania zamówienia niema wystarczającej liczby przylegających dosiebie stron fizycznych

☛ Funkcja vremap odwzorowuje ciąg adresówwirtualnych w celu wskazania obszaru pamięciużywanego przez moduły sterujące doodwzorowywania plików pamięci

Page 83: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wykonywanie i ładowanieprogramów użytkownika

☛ Wykonanie programów użytkownika w systemieLinux następuje przez wywołanie funkcji exec

☛ Linux operuje tablicą możliwych funkcjiładujących dając każdej z nich szansęspróbowania umieszczenia w pamięci danegopliku podczas wykonywania funkcji systemowejexec

☛ Zezwalając na zarejestrowanie wielu procedurładujących Linux może łatwo dostarczać wramach jednego systemu zarówno format ELFjak i a.out (popularny w starszych Unixach)

Page 84: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wykonywanie i ładowanieprogramów użytkownika (c.d.)

☛ Linux nie używa programu ładującego (loader)☛ Odwzorowanie stron pliku binarnego w obszary

pamięci wirtualnej☛ Obowiązkiem procedur ładujących jądra jest

ustalenie początkowego odwzorowania pamięci☛ w tym określenie licznika rozkazów

☛ Załadowanie strony do pamięci fizycznej jestpowodowane dopiero po nieudanej próbieodwołania do niej przez program

Page 85: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wykonywanie i ładowanieprogramów użytkownika (c.d.)

☛ Plik binarny formatu ELF składa się z nagłówka,oraz z sekcji kończących się i rozpoczynających sięna granicach stron

☛ Program ładujący formatu ELF czyta nagłówek iodwzorowywuje sekcje pliku na osobne obszarypamięci wirtualnej☛ stos zawiera kopie argumentów i zmienne środowiskowe☛ kod binarny jest odwzorowany jako obszar do czytania☛ dane są odwzorowane jako obszar do zapisu☛ obszar o zmiennej długości, którego granicę określa wskaźnik

brk

Page 86: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wygląd pamięci w formacie ELF

dane tworzone podczas wykonywania programu

pamięć wirtualna jądra

stos

obszar odwzorowywany w pamięci

obszar odwzorowywany w pamięci

obszar odwzorowywany w pamięci

dane bez wartości początkowych

dane z wartościami początkowymi

tekst programu

obszar zakazany

wskaźnik brk

pamięć niewidoczna dla kodu z poziomu użytkownika

Page 87: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Łączenie statyczne i dynamiczne

☛ Program, którego niezbędne funkcje z biblioteksystemowych zostały osadzone wprost wwykonywalnym pliku binarnym jest statycznie(ang. statically) połączony z bibliotekami

☛ Podstawową wadą łączenia statycznego jest to,że każdy wygenerowany program musi zawieraćkopie dokładnie tych samych, popularnychsystemowych funkcji bibiliotecznych

Page 88: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Łączenie statyczne idynamiczne (c.d.)☛ Łączenie dynamiczne (ang. dynamic) jest

bardziej wydajne pod względem wykorzystaniazarówno pamięci operacyjnej jak i dyskowejponieważ ładuje biblioteki systemowe dopamięci tylko raz

☛ Każdy program łączony dynamicznie zawieramałą, statycznie dołączaną funkcję, któraodwzorowuje bibliotekę łączenia modułówprogramu w pamięci i wykonuje jej kod

☛ Biblioteki są kompilowane w kodzie niezależnymod położenia (ang. position-independent codePIC) - można wykonywać pod każdym adresem

Page 89: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Systemy plików

☛ Dla użytkownika system plików systemu Linuxwygląda jak hierarchiczne drzewo katalogów osemantyce uniksowej

☛ Wewnątrz systemu Linux zastosowano warstwęabstrakcji, zwaną wirtualnym systemem plików(ang. virtual file system (VFS)), pozwalającą nazarządzanie różnymi systemami plików

Page 90: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Systemy plików (c.d.)

☛ VFS systemu Linux został zaprojektowany nazasadach obiektowych i ma dwie składowe:☛ zbiór definicji, jak powinien wyglądać obiekt o nazwie

plik; w VFS zdefiniowano trzy podstawowe typy obiektów☛ struktury obiektu i-węzła (ang. inode-object) i obiektu pliku

(ang. file-object) reprezentujące poszczególne pliki☛ obiekt systemu plików (ang. file system object)

reprezentujący cały system plików

☛ warstwa oprogramowania do działań na takich obiektach

☛ obowiązkiem VFS jest udostępnianie i-węzłów☛ identyfikacja i-węzeła: (system plików, numer_i-węzła)☛ VFS definiuje operacje katalogowe w obiekcie i-węzła a

nie na obiekcie pliku

Page 91: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System plików Linux Ext2fs (1)

☛ Ext2fs (ang. second extended file system)wykorzystuje mechanizm podobny dostosowanego w szybkim systemie plików BSD(ang. Fast File System - (ffs)) mechanizmuodnajdowywania bloków danych należących dokonkretnego pliku, który przechowuje wskaźnikido bloków danych w blokach pośrednich,spiętrzanych w całym systemie aż do trzeciegopoziomu

Page 92: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System plików Linux Ext2fs (2)

☛ Główna różnica międy ext2fs i ffs dotyczysposobu przydziału dysku☛ w systemie ffs dysk jest przydzielany plikom blokami

wielkści 8KB, z dzieleniem bloków na porcje 1 KB w celupamiętania małych plików lub niepełnych bloków nakońcach plików

☛ ext2fs nie używa w ogóle bloków cząstkowych, natomiastdokonuje wszystkich przydziałów za pomocą mniejszychjednostek. Domyślny rozmiar bloku w ext2fs wynosi 1KB, choć stosuje się bloki długości 2KB i 4KB

Page 93: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System plików Linux Ext2fs (3)

☛ (c.d.)☛ ext2fs stosuje politykę przydziału zmierzającą do

umieszczania logicznie sąsiadujących bloków pliku wfizycznie przylegajacych blokach dyskowych, dziękiczemu może on w jednej operacji przedkładać zamówieniawe/wy dla kilku bloków

☛ ext2fs można podzielić na dwie części☛ przydział grupy bloków☛ przydział (w miarę możliwości) ciągły wewnątrz grupy

bloków na podstawie mapy bitowej wszystkich wolnychbloków w grupie

☛ najpierw szuka się całego wolnego bajtu w mapie bitowej☛ jeśli nie ma wolnego bajtu szuka się wolnego bitu

Page 94: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Zasady przydziału bloków -ext2fs

blok zajęty

blok wolny

granica bitu

granica bajtu

blok wybrany przez procedurę przydziału

kierunek przeszukiwania mapy bitów

przydzielenie przyleglych wolnych bloków

przydzielenie rozrzuconych wolnych bloków

Page 95: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System plików Linux Proc

☛ Procesowy system plików (ang. proc filesystem) jest systemem plików, którego dane niesą nigdzie pamiętane, natomiast oblicza się jena żądanie, stosownie do wydawanych przezużytkownika zamówień we/wy☛ oprócz systemu Linux stosowany w SVR4 UNIX

☛ proc musi realizować strukturę katalogów orazdocieranie do zawartości pliku; musi definiowaćniepowtarzalny i trwały numer i-węzła dlakażdego katalogu i skojarzonych z nim plików

Page 96: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

System plików Linux Proc (c.d.)

☛ (c.d.)☛ korzysta z numerów i-węzła w celu rozpoznania operacji

potrzebnej wówczas, gdy użytkownik próbuje czytać dane zjakiegoś i-węzła lub odnaleźć coś w i-węźle katalogu

☛ podczas czytania danych z któregoś z tych plików, systemplików proc będzie gromadził odpowiednie informacjenadając im formę tekstową i będzie umieszczał w buforzezamawiającego je procesu

☛ cat /proc/meminfo☛ /proc/sys jest osiągane za pomocą wywołania systemowego

sysctl

Page 97: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wejście/wyjście

☛ Systemy plików systemu Linux udostępniająpamięć dyskową poprzez dwie pamięcipodręczne:☛ pamięć podręczną stron, jednolitą z systemem pamięci

wirtualnej☛ pamięć podręczną buforów indeksowaną fizycznymi

blokami dyskowymi

Page 98: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Wejście/wyjście (c.d.)

☛ Linux dzieli wszystkie urządzenia na trzy klasy:☛ urządzenia blokowe (ang. block devices) pozwalające na

dostęp swobodny do całkowicie niezależnych, o stałymrozmiarze bloków danych (dysk, CD-ROM)

☛ urządzenia znakowe (ang. character devices) obejmująwiele innych urządzeń i nie muszą mieć wszystkichwłasności regularnych plików

☛ urządzenia sieciowe(ang. network devices) komunikacja zużytkownikiem za pomocą podsystemu sieciowego jądra

Page 99: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura blokowa modułówsterujących urządzeń

system plików

moduł sterującyprotokołu

moduł sterujący urządzenia SCSI

zarządca SCSI

zarządca zamówień

bufor pamięci podręcznej

plik urządzenia blokowego

plik urządzenia znakowego

moduł sterujący urządzenia znakowego

moduł sterujący TTY

warunki pracy linii

gniazdo sieciowe

moduł sterującyurządzenia blokowego

moduł sterujący urządzenia sieciowego

aplikacja użytkownika

Page 100: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Urządzenia blokowe☛ Dostarczają podstawowego interfejsu do

wszystkich dysków w systemie☛ Podręczna pamięć buforów (ang. block buffer)

służy dwu głównym celom:☛ działa jako pula buforów dla operacji we/wy będących w

toku☛ działa jako pamięć podręczna zakończonych operacji

we/wy

☛ Zarządca zamówień (ang. request manager)administruje czytaniem buforów z modułuobsługi urządzenia blokowego i zapisywaniemich zawartości w tym module ( ll_rw_block )

Page 101: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Urządzenia znakowe

☛ Modułem sterującym urządzenia znakowegomoże być moduł obsługi niemal dowolnegourządzenia, które nie oferuje swobodnegodostępu do bloków o stałej długości

☛ Moduły sterujące urządzeń znakowychzarejestrowane w jądrze systemu Linux musząteż rejestrować zbiór funkcji realizującychróżnorodne plikowe działania we/wy, które danymoduł potrafi wykonywać

Page 102: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Urządzenia znakowe (c.d.)☛ Jądro prawie wcale nie przetwarza wstępnie

zamówienia na czytanie lub pisanie na urządzeniuznakowym i przekazuje po prostu zamówienie dowytypowanego urządzenia, pozostawiając muobsługę zamówienia

☛ Głównym wyjątkiem od tej reguły jest specjalnypodzbiór modułów sterujących urządzeńznakowych, oprogramowujących terminale;standartdowy interfejs z terminalami jądroobsługuje za pomocą struktur tty_struct

☛ Ogranizacja linii (ang. line discipline) to sposobyinterpretacji danych z terminali (np. tty, PPP)

Page 103: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Komunikacja międzyprocesowa☛ Podobnie jak UNIX, Linux powiadamia procesy o

wystąpieniu zdarzenia przesyłając sygnał☛ Liczba dostępnych sygnałów jest skończona i nie

mogą przenosić one informacji: proces stajewyłącznie wobec faktu, że sygnał wystąpił

☛ Jądro systemu Linux nie korzysta wewnętrznie zsygnałów w celu komunikowania się z procesamiwykonywanymi w trybie jądra; zamiast tegokomunikacja w jądrze związana z pojawiającymisię asynchronicznie zdarzeniami będzie sięodbywać za pomocą planowania stanów istruktur wait_queue

Page 104: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Przekazywanie danych międzyprocesami☛ Uniksowy mechanizm potoku (ang. pipe)

umożliwia procesowi potomnemu (ang. child)dziedziczenie kanału komunikacyjnego doswojego przodka (ang. parent), dane zapisanena jednym końcu potoku mogą być czytane nadrugim

☛ Potoki wyglądają jak pewien typ z VFS i-węzła imają dwie kolejki wait_queue do synchronizacjipisania i czytania

☛ Pamięć dzielona (ang. shared memory) jestnajszybszym środkiem przekazywania wielkichlub małych ilości danych

Page 105: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Przekazywanie danych międzyprocesami (c.d.)

☛ Wszelkie dane zapisane przez proces w obszarzepamięci dzielonej mogą być czytane natychmiastprzez inny proces, który ma ten obszarodwzorowany w swojej pamięci adresowej

☛ Główna wada pamięci dzielonej to braksynchronizacji i dlatego nabiera szczególnejużyteczności w połączeniu z innymmechanizmem komunikacji międzyprocesowej,który taką synchronizację zapewni

Page 106: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Obiekt pamięci dzielonej

☛ Obszar pamięci dzielonej w systemie Linux jestobiektem trwałym, który może być tworzony iusuwany przez procesy

☛ Obiekt taki jest traktowany tak, jakby to byłamała, niezależna przestrzeń adresowa

☛ Obiekt pamięci dzielonej zachowuje się jakpamięć pomocnicza dla obszarów pamięcidzielonej, na podobieństwo pliku pełniącegofunkcje pamięci pomocniczej dla obszarówpamięci odwzorowywanych w pamięcioperacyjnej

Page 107: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Obiekt pamięci dzielonej (c.d.)

☛ Gdy następuje odwzorowanie pliku w obszarzewirtualnej przestrzeni adresowej, wówczaswszelkie pojawiające się braki stron powodująodwzorowanie w pamięci wirtualnejodpowiednich stron pliku

☛ Podobnie, braki bezpośrednich odwzorowaństron pamięci dzielonej powodują odwzorowaniestron z trwałego obiektu pamięci dzielonej

☛ Obiekty pamięci dzielonej utrzymują swojązawartość nawet wtedy, gdy aktualnie żadenproces nie odwzorowuje ich pamięci wirtualnej

Page 108: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura sieci

☛ Działania sieciowe są kluczowym obszaremfunkcjonalności systemu Linux☛ Linux dostarcza standardowych protokołów

internetowych, stosowanych w większości usługkomunikacyjnych między systemami uniksowymi

☛ Linux realizuje pewną liczbę protokołów właściwych dlainnych nieuniksowych systemów operacyjnych (Appletalk,IPX, AX25)

Page 109: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura sieci (c.d.)☛ Praca w sieci jest wewnętrznie w jądrze systemu

Linux implementowana za pomocą trzechwarstw oprogramowania:☛ interfejsu gniazd (ang. socket interface)

☛ aplikacje użytkownika dokonują wszelkich zamówień nausługi sieciowe za pomocą interfejsu gniazd BSD (funkcjasystemowa socket)

☛ sieciowa część interfejsu gniazd: struktura INET

☛ modułów obsługi protokołów (ang. protocol drivers)☛ łączność między warstwami za pomocą struktur skbuff

(/usr/include/linux/skbuff.h)☛ fragmentacja i defragmentacja pakietów

☛ modułów sterujących urządzeń sieciowych (ang. networkdevice drivers)

Page 110: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura sieci (c.d.)

☛ Najważniejszym zbiorem protokołów w systemiesieciowym systemu Linux jest kompletprotokołów internetowych (IP)☛ protokół wyznaczania tras (ang. routing protocol)

dokonuje wyboru tras między różnymi komputeramimacierzystymi położonymi w dowolnym miejscu sieci

☛ na szczycie protokołu wyznaczania tras są zbudowaneprotokoły UDP, TCP

Page 111: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Struktura sk_buffsk

stampdev

hnh

macdstcblen

csumprotocoltruesize

headdatatailend

destructor

Pointer to owning socketArrival timePointer to receiving/transmiting devicePointer to transport layer headerPointer to network layer headerPointer to link layer headerPointer to dst_entryTCP per-packet control informationActual data lengthChecksumPacket network protocolBuffer sizePointer to head of bufferPointer to data headPointer to tailPointer to endPointer to destruct function

Page 112: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Linux - struktura sieci

aplikacja sieciowa

gniazda BSD

gniazda INET

TCP UDP

IP

PPP SLIP Ethernet

ARP

jądro

użytkownik

Page 113: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Bezpieczeństwo

☛ Uwierzytelnianie (ang. authentication) -zapewnienie, że nikomu nie uda się uzyskaćdostępu do systemu bez wykazania, że ma dotego prawo

☛ Kontrola dostępu (ang. access control) -mechanizmy sprawdzania czy użytkownik maprawo dostępu do danego obiektu

Page 114: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Bezpieczeństwo (c.d.)

☛ System dołączalnych modułów uwierzytelniania(ang. pluggable authentication modules (PAM))jest dostępny w systemie Linux

☛ PAM korzysta ze wspólnej biblioteki, którą możesię posłużyć dowolna składowa systemupotrzebująca uwierzytelniać (ang. authenticate)użytkowników

☛ Kontrolowanie dostępu (ang. access control) wsystemach uniksowych, włączając w to systemLinux, odbywa się za pomocą niepowtarzalnychidentyfikatorów numerycznych

Page 115: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Bezpieczeństwo (c.d.)☛ Identyfikator użytkownika (ang. user identifier -

uid ) określa jednego użytkownika lub jedenzbiór praw dostępu; identyfikator grupy (ang.group identifier - gid) można stosować dowielu użytkowników

☛ System Linux nadzoruje dostępy przezprzypisywanie obiektom masek ochronnych(ang. protections mask), określających, któretryby dostępu: pisanie, czytanie lubwykonywanie są udzielane procesom zdostępem właściciela, grupy lub świata (ang.world access)

Page 116: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Bezpieczeństwo (c.d.)

☛ W systemie Linux zrealizowano standardowy,uniksowy mechanizm setuid (zwiększenierzeczywistych przywilejów procesu przez skutecznyidentyfikator pliku) rozszerzony na dwa sposoby:☛ zaimplementowano określony w normie POSIX mechanizm

chronionego identyfikatora użytkownika (ang. saved user-id),który pozwala procesowi raz po razie pozbywać się i ponownienabywać swój identyfikator skuteczny (ang. effective uid)

☛ zaimplementowano dodawanie charakterystyki procesu, copowoduje udzielanie jedynie podzbioru praw skutecznegoidentyfikatora użytkownika (cechy procesu fsuid, fsgid mogąbyć określane niezależnie od identyfikatorów skutecznych coumożliwia dostęp do plików w imieniu innego użytkownika)

Page 117: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Bezpieczeństwo (c.d.)

☛ Linux ma jeszcze jeden mechanizm, któryspopularyzował się w nowoczesnych systemachuniksowych jako środek elastycznegoprzekazywania praw od jednego programu dodrugiego; po utworzeniu między dowolnymiprocesami w systemie lokalnego gniazdasieciowego każdy z procesów może wysyłaćdrugiemu deskryptor jednego ze swoichotwartych plików; umożliwia to klientowiwybiórcze przekazanie praw dostępu do plikówjakiemuś procesowi serwera, bez dawania mujakichkolwiek innych przywilejów

Page 118: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podsumowanie (1)

☛ Linux to nowoczesny, darmowy, systemoperacyjny, którego podstawą są standardysystemu Unix☛ działa na wielu architekturach☛ interfejs programowy i użytkowy są zgodne ze

standardowymi systemami uniksowymi

☛ Jądro systemu operacyjnego Linux wykonane wtradycyjnej monolitycznej postaci jestoryginalne i umożliwia wykonywanie sporej ilościoprogramowania uniksowego

Page 119: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podsumowanie (2)

☛ Linux jest systemem wielodostępnym zpodziałem czasu☛ nowe procesy mogą dzielić wybrane części swegośrodowiska co umożliwia wielowątkowość

☛ komunikację międzyprocesową zapewniają mechanizmysystemu V (semafory, kolejki, pamięć dzielona) jak iinterfejs gniazd BSD

☛ Systemy plików urządzeń kontaktują się zpamięcią dyskową za pomocą dwóch pamięcipodręcznych: stron i buforów

Page 120: Zbigniew S. Szewczak Podstawy Systemów Operacyjnychzssz/PSO2004/W12.pdf · ☛jako system plików dostarczany był jedynie Minix ... sieciowy system plików ☛nfsd - serwer systemy

Podsumowanie (3)

☛ System zarządzania pamięcią posługuje siędzieleniem stron i techniką kopiowania przyzapisie

☛ Strony są ładowane na żądanie z chwiląpierwszego do nich odwołania, a w przypadkukonieczności odzyskania pamięci operacyjnejpowrotne kopiowanie stron do pamięcipomocniczej odbywa się według algorytmu LFU