Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Science 635 Advanced Systems Programming Fall 2007 Professor Allan Cruse.

Similar presentations


Presentation on theme: "Computer Science 635 Advanced Systems Programming Fall 2007 Professor Allan Cruse."— Presentation transcript:

1 Computer Science 635 Advanced Systems Programming Fall 2007 Professor Allan Cruse

2 Course’s theme is… “Using the computer to study the computer”

3 Normal C/C++ programming application 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”) standard “runtime” libraries call ret

4 Normal C/C++ programming application standard “runtime” libraries call ret user spacekernel space Operating System kernel syscall sysret Many standard library functions perform services that require executing privileged instructions (which only the kernel can do)

5 Linux Kernel Modules application standard “runtime” libraries call ret user spacekernel space Operating System kernel syscall sysret module Linux allows us to write our own installable kernel modules and add them to a running system call ret

6 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

7 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,…)

8 Recommended texts Corbet, Rubini, and Kroah-Hartman, Linux Device Drivers (3 rd Ed), O’Reilly (2005), ISBN 0-596-00590-3 Bovet and Cesati, Understanding the Linux Kernel (3 rd Ed), O’Reilly (2006), ISBN 0-598-00565-2


Download ppt "Computer Science 635 Advanced Systems Programming Fall 2007 Professor Allan Cruse."

Similar presentations


Ads by Google