Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Overview of linux kernel development

3.414 Aufrufe

Veröffentlicht am

Customization of Linux Kernels and Modules

Veröffentlicht in: Bildung
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

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