Friday, May 18, 2007

Monolithic kernel and Interfaces - The Linux Networking Architecture

Since Version 2.0, Linux has made a step towards microkernel architectures. More specifically, the possibility was created of moving certain functionalities into modules, which are loaded into the kernel at runtime, from which they can be removed again. This removed an important drawback of monolithic kernels and opened the way to loading drivers or other functionalities at runtime. In addition, modularization offers another benefit: Uniform interfaces are defined.

Table 2-1. Interfaces in the Linux kernel to embed new functionalities.

Functionality

Functions for Dynamic Registration

Character devices

(un)register_chrdev( )

Block devices

(un)register_blkdev( )

Binary formats

(un)register_binfmt( )

File systems

(un)register_filesystem( )

Serial interfaces

(un)register_serial( )

Network adapters

(un)register_netdev( )

Layer-3 protocols

dev_add_pack( ), dev_remove_pack( )

Layer-4 protocols (TCP/IP)

inet_add_protocol( ), inet_del_protocol( )

Console drivers

tty_(un)register_driver( )

Symbol tables

(un)register_symtab( )

Modules

init_module( ), cleanup_module( )


Despite its modularization, Linux has preserved a major benefit of monolithic kernels: All functions implemented in modules run in protected kernel mode, which means that they do not require any context change when called from within the kernel. This can be seen as a clever combination of the benefits from both main operating-system architectures.


Linux 2.4

No comments:

如何发掘出更多退休的钱?

如何发掘出更多退休的钱? http://bbs.wenxuecity.com/bbs/tzlc/1328415.html 按照常规的说法,退休的收入必须得有退休前的80%,或者是4% withdrawal rule,而且每年还得要加2-3%对付通胀,这是一个很大...