Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Overview of linux kernel development

2,878 views

Published on

Customization of Linux Kernels and Modules

Published in: Education
  • Be the first to comment

Overview of linux kernel development

  1. 1. Overview of Linux Kernel Development<br />
  2. 2. Unix-Linux System Architecture :<br />
  3. 3. Linux v/s Unix<br />Linux kernel is monolithic.<br />Linux supports the dynamic loading of kernel modules.<br />Linux has symmetrical multiprocessor (SMP) support. Traditional Unix did not.<br />The Linux kernel is preemptive. Traditional Unix are not.<br />Linux ignores some common Unix features that are thought to be poorly designed, such as STREAMS, or standards that are brain dead.<br />
  4. 4. Linux Kernel Versions<br />Linux Kernel Naming Convention<br />Where to find ?<br />http://www.kernel.org<br />
  5. 5. Installing Kernel Source code :<br />How : $ tar xvjf linux-x.y.z.tar.bz2// $ tar xvzflinux-x.y.z.tar.gz<br />Where : /usr/src/linux<br />Patches : $ patch -p1 < ../patch-x.y.z<br />
  6. 6. Kernel Directory Hierarchy :<br />
  7. 7. Building a Kernel :<br />Configuring :<br />Configuring options – prefixed by CONFIG_feature<br />Boolean or Tristate : <br /> yes, no, or module<br />$ make config<br />Or $ make menuconfig<br />Or $ make xconfig<br />Or $ make gconfig<br />
  8. 8. Installing Kernel :<br />architecture and boot loader dependent.<br />Eg., on an x86 using grub<br /> copy arch/i386/boot/bzImage to /boot,<br /> edit /boot/grub/grub.conf<br />Installing Modules :<br />% make modules_install<br />In /lib<br />
  9. 9. A Beast of a Different Nature<br />The kernel does not have access to the C library.<br /> The kernel is coded in GNU C.<br /> The kernel lacks memory protection like user-space.<br /> The kernel cannot easily use floating point.<br /> The kernel has a small fixed-size stack.<br />
  10. 10. Process Management<br />Kernel Threads<br />Process Scheduling<br />System Calls<br /> <br />The relationship between applications, the C library, and the kernel with a call to printf().<br />
  11. 11. Interrupts and Interrupt Handlers<br />Interrupts, IRQ,ISR, entry point<br />
  12. 12. Memory Management<br />Memory allocation<br />Pages :<br />Smallest – word <br />MMU manages the system's page tables with page-sized granularity<br />Virtual Filesystem (VFS)<br />
  13. 13. Bugs in the Kernel<br />as varied as in user-space applications<br />INCORRECT CODE, SYNCRONISATION<br />Debugging:<br />Seem difficult but quite easy.<br />Unlike large software, have typical issues<br />Time constraints, race conditions<br />
  14. 14. Thank You <br />

×