Overview of Linux Kernel Development
Unix-Linux System Architecture :
Linux v/s UnixLinux kernel is monolithic.Linux supports the dynamic loading of kernel modules.Linux has symmetrical multiprocessor (SMP) support. Traditional Unix did not.The Linux kernel is preemptive. Traditional Unix are not.Linux ignores some common Unix features that are thought to be poorly designed, such as STREAMS, or standards that are brain dead.
Linux Kernel VersionsLinux Kernel Naming ConventionWhere to find ?http://www.kernel.org
Installing Kernel Source code :How : $ tar xvjf linux-x.y.z.tar.bz2// $ tar xvzflinux-x.y.z.tar.gzWhere : /usr/src/linuxPatches : $ patch -p1 < ../patch-x.y.z
Kernel Directory Hierarchy :
Building a Kernel :Configuring :Configuring options – prefixed by CONFIG_featureBoolean or Tristate : 	yes, no, or module$ make configOr $ make menuconfigOr $ make xconfigOr $ make gconfig
Installing Kernel :architecture and boot loader dependent.Eg., on an x86 using grub	 copy arch/i386/boot/bzImage to /boot,	 edit /boot/grub/grub.confInstalling Modules :% make modules_installIn /lib
A Beast of a Different NatureThe kernel does not have access to the C library. The kernel is coded in GNU C. The kernel lacks memory protection like user-space. The kernel cannot easily use floating point. The kernel has a small fixed-size stack.
Process ManagementKernel ThreadsProcess SchedulingSystem Calls The relationship between applications, the C library, and the kernel with a call to printf().
Interrupts and Interrupt HandlersInterrupts, IRQ,ISR, entry point
Memory ManagementMemory allocationPages :Smallest – word	MMU manages the system's page tables with page-sized granularityVirtual Filesystem (VFS)
Bugs in the Kernelas varied as in user-space applicationsINCORRECT CODE, SYNCRONISATIONDebugging:Seem difficult but quite easy.Unlike large software, have typical issuesTime constraints, race conditions
Thank You 

Overview of linux kernel development

  • 1.
    Overview of LinuxKernel Development
  • 2.
  • 3.
    Linux v/s UnixLinuxkernel is monolithic.Linux supports the dynamic loading of kernel modules.Linux has symmetrical multiprocessor (SMP) support. Traditional Unix did not.The Linux kernel is preemptive. Traditional Unix are not.Linux ignores some common Unix features that are thought to be poorly designed, such as STREAMS, or standards that are brain dead.
  • 4.
    Linux Kernel VersionsLinuxKernel Naming ConventionWhere to find ?http://www.kernel.org
  • 5.
    Installing Kernel Sourcecode :How : $ tar xvjf linux-x.y.z.tar.bz2// $ tar xvzflinux-x.y.z.tar.gzWhere : /usr/src/linuxPatches : $ patch -p1 < ../patch-x.y.z
  • 6.
  • 7.
    Building a Kernel:Configuring :Configuring options – prefixed by CONFIG_featureBoolean or Tristate : yes, no, or module$ make configOr $ make menuconfigOr $ make xconfigOr $ make gconfig
  • 8.
    Installing Kernel :architectureand boot loader dependent.Eg., on an x86 using grub copy arch/i386/boot/bzImage to /boot, edit /boot/grub/grub.confInstalling Modules :% make modules_installIn /lib
  • 9.
    A Beast ofa Different NatureThe kernel does not have access to the C library. The kernel is coded in GNU C. The kernel lacks memory protection like user-space. The kernel cannot easily use floating point. The kernel has a small fixed-size stack.
  • 10.
    Process ManagementKernel ThreadsProcessSchedulingSystem Calls The relationship between applications, the C library, and the kernel with a call to printf().
  • 11.
    Interrupts and InterruptHandlersInterrupts, IRQ,ISR, entry point
  • 12.
    Memory ManagementMemory allocationPages:Smallest – word MMU manages the system's page tables with page-sized granularityVirtual Filesystem (VFS)
  • 13.
    Bugs in theKernelas varied as in user-space applicationsINCORRECT CODE, SYNCRONISATIONDebugging:Seem difficult but quite easy.Unlike large software, have typical issuesTime constraints, race conditions
  • 14.