3. Linux v/s Unix Linux 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.
4. Linux Kernel Versions Linux Kernel Naming Convention Where to find ? http://www.kernel.org
5. Installing Kernel Source code : How : $ tar xvjf linux-x.y.z.tar.bz2// $ tar xvzflinux-x.y.z.tar.gz Where : /usr/src/linux Patches : $ patch -p1 < ../patch-x.y.z
7. Building a Kernel : Configuring : Configuring options – prefixed by CONFIG_feature Boolean or Tristate : yes, no, or module $ make config Or $ make menuconfig Or $ make xconfig Or $ make gconfig
8. Installing Kernel : architecture and boot loader dependent. Eg., on an x86 using grub copy arch/i386/boot/bzImage to /boot, edit /boot/grub/grub.conf Installing Modules : % make modules_install In /lib
9. A Beast of a Different Nature The 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 Management Kernel Threads Process Scheduling System Calls The relationship between applications, the C library, and the kernel with a call to printf().
12. Memory Management Memory allocation Pages : Smallest – word MMU manages the system's page tables with page-sized granularity Virtual Filesystem (VFS)
13. Bugs in the Kernel as varied as in user-space applications INCORRECT CODE, SYNCRONISATION Debugging: Seem difficult but quite easy. Unlike large software, have typical issues Time constraints, race conditions