Linux hidaka@devdrv.com 2002/10/9 Linux Kernel Conference 2002 1
Linux 2
Linux 3
Software Hardware Device Algolith m Protocol Applicati on 4
CPU 128MB NIC ATI Radeon GeForce2 MX400 Matrox G400 DISK 5
OS 2.4 Redhat 7.1 Turbo Linux, Vine, Debian, Slackware, kernel.org 2.4.10 6
OS Shell, bash, ln, tar, gzip, patch, diff, rpm, linuxconf, ftp, X-Window vi, sh, Perl, C Makefile make gcc 7
BBS 8
http://kernel.org/ The Linux Document Project http://www.tldp.org/ Linux usb http://www.linux-usb.org/ http://examples.oreilly.com/linuxdrive2/ The Open Source Development Network http://www.osdn.com/ http://sourceforge.net/ http://freshmeat.net/ 9
Linux http://www.linux.or.jp/ OSDN Japan http://osdn.jp/ Linux at IBM http://www-6.ibm.com/jp/linux/ Change Log http://www.changelog.net/ ASCII Linux http://linux.ascii24.com/ 10
GPL Open Source FreeSoft 11
OS Unix / Linux Unix 12
Linux 13
Linux 14
15
Linux (method) open, read, write, release, ioctl, lseek, 16
read int read (struct inode *inode, struct file *file, char *buffer, int count) inode file buffer memcpy_to_fs() count buffer 17
/dev/ mknod 18
IF 19
/lib/modules/2.4.??-*/kernel/ /etc/modules.conf insmod aaa.o rmmod aaa modprobe aaa lsmod depmod -a 20
insmod init_module() register_capability() lseek() read() write().. capabilities[] printk(). rmmod cleanup_module() register_capability() 21
Linux 22
Makefile Makefile/modules linux-2.4.2-2 linux-2.4.18 linux-2.4.18ikd vmlinuz-2.4.2-2 vmlinuz-2.4.18 vmlinuz-2.4.18ikd 2.4.2-2 2.4.18 2.4.18ikd LILO linux linux-18 ikd-linux 23
/usr /src /linux-2.4.2-2 /kernel /driver /arch 2.4.2-2 /linux-2.4.18 /kernel /driver /arch 2.4.14 linux 2.4.18 24
make mrproper make *config make dep make clean make bzimage make modules make modules_install 25
make *config m make modules KERNEL MODULE gcc -D KERNEL -I/usr/src/linux-2.4.18/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DKBUILD_BASENAME=serial -DEXPORT_SYMTAB -c serial.c 26
mknod insmod rmmod lsmod depmod modprobe 27
28
Unix Socket 29
Linux 30
gdb printk() SysRq /proc kdb kdbg IKD 31
printk() float, double 32
SysRq SysRq Kernel 2.1.x Enable kdb 33
/proc /proc/ /proc/devices /proc/ioports IO /proc/interrupts IRQ 34
kdb (Built-In kernel debugger) http://oss.sgi.com/projects/kdb/ 35
kgdb (linux kernel source level debugger ) http://kgdb.sourceforge.net/ gdb 2 PC C frame pointer option Target Host 36
IKD (Integrated Kernel Debugging Facilities) http://www.kernel.org/pub/linux/kernel/people/andrea/ikd/ 2.2.12-ikd5 IKD kdb gdb Trace Memleak 37
lhcd (Linux Kernel Crash Dumps) http://lkcd.sourceforge.net/ lockmeter (Kernel spinlock metering for Linux) http://oss.sgi.com/projects/lockmeter/ KMSGDUMP (Linux Kernel Messages Dump Tool) http://www-miaif.lip6.fr/willy/pub/linux-patches/ 38
Linux 39
USB EE-260 http://e-kit.jp/ OmniVision OV511 + OmniVision OV7620 http://www.ovt.com/pdfs/ds_511p.pdf W3CAM http://mpx.freeshell.org/ 40
(1) Web cgi vidcat w3cam.cgi netscape shell 41
2002/10/9 Linux Kernel Conference 2002 42 Device Drivers (2)
2002/10/9 Linux Kernel Conference 2002 43 Device Drivers kdb