Cursul 1
1
Introducere
Introducere
Echipa
Where do we stand?
application programming (EGC, SPG, PP, SPRC, IOC, etc.)
system programming (PC, SO, CPL)
kernel programming (SO2)
kernel space
user space
Resurse
Comunitate / colaborativ
Notare
Obiectivele cursului
Obiectivele laboratorului/temelor
Cursuri necesare
Despre curs
Despre curs (2)
Despre laborator
Despre teme
Despre teme (2)
Bibliografie curs
Bibliografie laborator
Introducere
User vs Kernel
Kernel Space
User Space
3GB
Spațiul de adresă�(memorie virtuală)
1GB
Arhitectura unui sistem de operare
Contexte de execuţie
Monolitic vs microkernel
Memory�Server
Client�App
Network �Server
Process�Server
File�Server
Display�Server
Microkernel
Hardware
request
reply
User Mode
Kernel Mode
App
App
System services
Hardware
OS
procedures
User Mode
Kernel Mode
Monolitic vs microkernel (2)
Pot fi kernelele monolitice modulare?
Nuclee hibride?
Many operating systems and kernel experts have dismissed the label as meaningless, and just marketing: Linus Torvalds said of this issue:
"As to the whole 'hybrid kernel' thing - it's just marketing. It's 'oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has'."
Spaţiu de adresă
Multitasking/programming/processing
Kernel preemptibil
Pageable kernel memory
Stiva kernel
Portabilitate
SMP vs ASMP
Scalabilitate
Modelul de dezvoltare Linux
„Git trees”
Organizarea surselor
Arhitectura Linux
User�applications
User
applications
libc
Core kernel
Device drivers
Architecture dependent code
User
Mode
Kernel
Mode
arch
arch (2)
Device drivere
Device drivere (2)
Core kernel
Process management
Memory management
Block I/O management
VFS
Device Mapper
Generic Block Layer
Block device
driver
Block device
driver
I/O scheduler
VFS
Block I/O layer
Inode cache
Dentry cache
Page cache
file
Superblock
stat
open
read
inode
dentry
dentry
file
file
Superblock
file
Filesystem�driver
inode
Filesystem�driver
LSM
Security Enhanced Linux
Stiva de reţea
Berkeley Socket Interface
Network device drivers
Queing discipline
Data link layer
Transport layer
TCP
UDP
Network layer
IP
NetFilter
BRIDGING
ARP
ETH
Routing
Fișiere sistem de bază
Procese sistem
Kernel thread-uri
Intrebări
?