One, the Linux kernel compared to the traditional Unix kernel comparison:
(1): Linux supports dynamic kernel modules. Although the Linux kernel is also a monolithic structure, it allows dynamic removal (rmmod xxx) and loading of kernel modules (Insmod Xxx.ko) when needed.
(2): Linux supports symmetric multi-processing (SMP) mechanisms, although many variants of UNIX also support SMP, but traditional UNIX does not support this mechanism.
(3): The Linux kernel can be preempted (preemptive). Kernel preemption is not supported in Linux 2.4 and previous versions, and is supported in Linux 2.6 and beyond.
(4): The Linux kernel does not differentiate between threads and processes. For the kernel, all processes are the same, but some of the resources are shared.
Two, the difference between the single core and the micro-core
  monomer kernel: large kernel, os monomer kernel means that all operating system functions are actually included in a large chunk of code and , with a unique address space. Most unix linxu
Microkernel : Unlike a monolithic kernel, a microkernel will only OS core features in the kernel, including IPC Communication, address space allocation, and basic scheduling , these things run in the kernel state. Such as: WinCE system. Other functions, such as device drivers, file systems, storage management, and networking, are provided as a service in a user-state process, and these user-state processes can be tailored to specific application and environmental requirements. Sometimes, these processes are also called servers.
Third, the Linux kernel version
Four, the characteristics of Linux kernel development
(1): Kernel programming cannot access C library. But most of the C library functions have been implemented in the kernel.
(2): GNU C must be used for kernel programming.
(3): Kernel programming lacks a protection mechanism like using user space
(4): Floating point is difficult to use when kernel programming
(5): The kernel has only a small fixed-length stack, the kernel stack is small, fixed length, 32-bit kernel stack is 8KB, and 64 bits is 16KB.
(6): Because the kernel supports asynchronous interrupts, preemption, and SMP, you must always be aware of synchronization and concurrency
(7): Be aware of the importance of portability