Linux Architecture
Overview
Initialization
Uboot hardware init, loads kernel Kernel remaining initialization, calls init Init 1st process, executes startup script
/etc/init.d/rcS
Run_flphone.sh startup script Nano-X the X-Windows server Nanowm sets bg image
System Structure
MicroKernel minimal functionality
Interprocess communication (IPC) Memory management
Autonomous processes & co-routines
VFS Network stack Process manager Device drivers windowing system compiler shells Editors utilities
3
Non-kernel
System Structure
User mode space
Kernel mode space
System Call Interface
Device drivers
Kernel + h/w related code
4
System Structure-2
System Calls get us to these functionalities
Sockets Process Control
Process memory
VFS
Vmem
Proc, sysfs
TCP, IP, etc
NFS
File syss
mmap IPC
MM
cache Device Module Net Mgmt Char devs Block Devices Scheduler
Bus drivers Bus controller
Net drivers Net adapter
Char Drivers Monitor, keybd
Block Drivers Disk controller
swap
Memory access MMU, RAM
Interrupts CPU circuits
5
Structural Problems
Erroneous co-routines can block system Formal interfaces slow down system
Directory structure
/ home user bin usr sbin etc lib bin sbin
System directories
/bin Essential user command binaries that need to be available also in single user mode. /sbin Essential system binaries (e.g. init, insmod, ifup) /lib Libraries for the binaries in /bin and /sbin /usr/bin Non-essential user command binaries that are not needed in single user mode /usr/sbin Non-essential system binaries (e.g. daemons for networkservices) /usr/lib Libraries for the binaries in /usr/bin and /usr/sbin /etc Host-specific system-wide configuration files /dev Device files /home User home directories (optional) /proc Virtual file system documenting kernel and process status as text files
8
Basic Transitions
New
Interrupt/Signal
# ready queues may be >1
Ready
Dispatched by system
Waiting
Running
Blocking I/O or Wait requested
Exit request
Terminated
2004, D. J. Foreman
New
Linux Process/Thread States
Running
H/W
Ready
Terminated
Any signal or event
Uninterruptible Interruptible
waiting
Signal
Stopped*
* Requires action from another process
2004, D. J. Foreman
10
Windows Thread States Runnable
New CPU scheduled
Ready
preempted
Running
Block released
Block requested
Page/stack wait
Waiting
Terminated
Not runnable
2004, D. J. Foreman 11