Introduction
System overview and role of the kernel:
History and versioning scheme
Supported hardware architectures
Legal issues: licensing constraints, software patents
Kernel user interface
Compiling and booting:
Getting the sources
Using the patch command
Structure of source files
Kernel modules
Kernel configuration
Files used by kernel configuration tools
Compiling
Cross-compiling
The bootloader
Booting parameters
Debugging through the serial port
Creation of an initrd ramdisk
Basic driver development:
Linux device drivers
A simple module
Programming constraints
Loading, unloading modules
Module parameters
Module dependencies
Adding sources to the kernel tree
Kernel debugging
Driver development:
Memory management
I/O register and memory access
Character device drivers
Sleeping, interrupts
mmap, DMA
New device model, sysfs
Hotplug
udev dynamic devices
Advice and resources:
Using Ethernet over USB
Root filesystem on the host through NFS
Review of the various filesystem types. The MTD subsystem. Advice for making a choice
Getting help and contributions
Bug report and patch submission to Linux developers.
References
PREREQUISITES:
“Linux/Unix For Programmers” course knowledge
C programming experience
Administration, integration and deployment for various platforms and distributions. Experience with multiple Open Source projects. Consulting and training services. more >
Linux device driver and kernel development. development and integration of RT/embedded platforms. more >
Development, customization and integration of VoIP solutions. more >
Telecom solutions & Network Management systems
SNMP based Network Management applications for ATM and other networking technologies. more >
Cluster auto-scaling and monitoring. more >
Media streaming on TI’s DaVinci platform. more >
Extensions and plug-ins for Safari browser. more >
Developemnt for iOS: iPod touch, iPhone and iPad. more >
Extensions for Google Chrome browser. more >
Developemnt for Android OS. more >
© 2010 Breakthrough 1997 Ltd. all rights reserved