80 likes | 88 Views
Computer Science 635. Advanced Systems Programming Fall 2007 Professor Allan Cruse. Course’s theme is…. “Using the computer to study the computer”. Normal C/C++ programming. We would write most of this source-code “app.cpp”
E N D
Computer Science 635 Advanced Systems Programming Fall 2007 Professor Allan Cruse
Course’s theme is… “Using the computer to study the computer”
Normal C/C++ programming We would write most of this source-code “app.cpp” but we would call some library-functions e.g., open(), read(), write(), malloc(), … then our code would get ‘linked’ with standard runtime libraries (So this is an example of “code reuse”) application call ret standard “runtime” libraries
Normal C/C++ programming Many standard library functions perform services that require executing privileged instructions (which only the kernel can do) application call Operating System kernel ret syscall standard “runtime” libraries sysret user space kernel space
Linux Kernel Modules Linux allows us to write our own installable kernel modules and add them to a running system application module call ret call Operating System kernel ret syscall standard “runtime” libraries sysret user space kernel space
Requirements/Benefits • An LKM has to be written using “C” -- but can include “inline” assembly language • An LKM runs in kernel-space – so it can do anything that the CPU supports • So an LKM can – • directly control the peripheral devices • modify the kernel’s scheduling algorithms • examine the kernel’s hidden data-structures
Course prerequisites • Be a CS Graduate Student • Be familiar with using Linux (or UNIX) • Be able to write programs in C (or C++) • Be able to use an assembler • Be acquainted with x86 architecture • General-purpose registers (EAX, EBX, …) • Categories of instructions (MOV, ADD, …) • Ways to address memory (direct, indirect,…)
Recommended texts Corbet, Rubini, and Kroah-Hartman, Linux Device Drivers (3rd Ed), O’Reilly (2005), ISBN 0-596-00590-3 Bovet and Cesati, Understanding the Linux Kernel (3rd Ed), O’Reilly (2006), ISBN 0-598-00565-2