Writing Device Drivers Under Linux
Theodore Ts'o
tytso@mit.edu
http://web.mit.edu/tytso/www/home.html 
Who Am I?
Started working Linux Kernel since 1991
Implemented POSIX Job control in Linux
Rewrote Linux tty layer
Maintainer and Author of...
serial driver
Comtrol Rocketport driver 
What will we talk about today?
Writing device drivers for Linux!
Many different kinds of device drivers
character devices, block devices, tty devices, etc.
An introduction to Kernel programming 
Logistics
Breaks in the morning and in the afternoon
10:30am to 11:00am
3pm to 3:30pm
Lunch (provided) 12:30 to 1:30pm
Tutorial sessions end at 5pm 
Class Schedule
9:30-11:00am
Introduction, Logistics, etc.
Introduction to Linux kernel programming
11:00-11:30am  BREAK
11:30-12:30pm
Character Devices
TTY devices 
Class Schedule, II
12:30-1:30pm	Lunch!
1:30-3:00pm
Block devices
SCSI devices
3:00-3:30pm Break
3:30-5:30pm 
Network devices (skeleton.c)
Other issues/questions 
A Quick History of Linux
Summer 1991 -- Linus starts work on Linux
September '91 -- Linux 0.01 released
Source code only
November '91 -- Linux 0.10 released
i386 IDE/Floppy driver
No SCSI 
Early Linux History, cont.
January '92 -- Linux 0.12 released
When Linux first became really popular
POSIX job control, virtual memory
Febuary 1992  -- comp.os.linux created
858 YES votes, 5 NO votes
March 1992 -- 386 BSD 0.0 released 
Linux starts getting serious
March '92 -- Linux 0.95 released
Shared library support
May '92 -- X11 port to Linux released
July '92 -- TCP/IP support added 
Linux 1.0
Released March 14, 1994
First "production" kernel
Networking finally stable
Development continued on the 1.1 release branch 
Linux 1.2
Released March 8, 1995
Loadable kernel modules
ELF-format binaries 
More device drivers, incl. PCMCIA support
Ports to other platforms in progress 
Linux 2.0
Released June 9, 1996
Multi-Platform support
Performance enhancements
Appletalk and IPX support 
Linux 2.1
Current development branch
What does the future hold in store?
Better SMP support
More performance improvements
More device drivers