O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Overview of linux kernel development

3.411 visualizações

Publicada em

Customization of Linux Kernels and Modules

Publicada em: Educação
  • Entre para ver os comentários

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 />