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 Non-kernel windowing system compiler shells Editors utilities
System Structure-2 VFS Vmem mmap Proc, sysfs TCP, IP, etc NFS MM IPC Sockets Process Control VFS Vmem mmap Proc, sysfs TCP, IP, etc Process memory NFS File sys MM IPC
System Structure User mode space Kernel mode space Kernel + System Call Interface Device drivers Kernel + h/w related code
Structural Problems Erroneous co-routines can block system Formal interfaces slow down system
Directory structure
/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 network-services) /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