Course Introduction: Syllabus and Calendar General description of projects Kernel Programming Why Linux? NetBSD and W2K Linux has worked out ok in the past Isoptera (is not useful for kernel modules) Role of the OS kernel: Kernel control and protected mode Storage (filesystems) - Multiple of these - FAT still common, but many have advantages Memory (virtual memory) - Protection of video memory, etc I/O and device drivers - Hardware independent programming - Lots of hardware is really the same Processes and scheduling - Multithreading - Time sharing and responsiveness Disk Operating System (was it?) - Protection of resources - Termination of stuck process Networking - OS Manages network access Security Loaders Security Userspace: We won't spend a lot of time on userspace (that's cs253) It'll come up though UI, etc. /proc "filesystem" /dev /sys System calls What's it written in? Kernel C Example: read Example of function pointer struct: file_operations How do we do homework 1? I'll find some examples So we have to learn kernel C! It will be fun. It's fun because you can use memory in C Video Games and OHSA (Occupational Health and Safety Administration) C memory management... Project 1: Might be gcc specific The Linux kernel is Feel free to start anytime References: http://en.wikipedia.org/wiki/Operating_system http://en.wikipedia.org/wiki/Kernel_(computing)