Computer Science 635 - PowerPoint PPT Presentation

About This Presentation
Title:

Computer Science 635

Description:

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 ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 9
Provided by: CRU7
Learn more at: https://www.cs.usfca.edu
Category:
Tags: computer | drivers | ed | science

less

Transcript and Presenter's Notes

Title: Computer Science 635


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

2
Courses theme is
  • Using the computer to study the computer

3
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
4
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
5
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
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 kernels scheduling algorithms
  • examine the kernels 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 (3rd Ed), OReilly (2005), ISBN
0-596-00590-3 Bovet and Cesati, Understanding
the Linux Kernel (3rd Ed), OReilly (2006), ISBN
0-598-00565-2
Write a Comment
User Comments (0)
About PowerShow.com