电脑一开启,工作在实模式下的16位BIOS程序便开始工作,包括系统自检(POST)和硬件初始化工作;BIOS还提供了基本的设备驱动程序,以便进行输入输出,比如磁盘驱动、显示驱动。一些早期的基于实模式的OS还依赖BIOS提供的驱动程序,比如DOS,比如WINDOWS3.1。由于 Linux内核是工作在保护模式下的,所以内核重新实现了所有设备驱动,用以替换实模式BIOS驱动。但在内核正式接管计算机之前,引导加载程序还是利 BIOS的磁盘驱动把内核映像和其它数据从磁盘读出。
The Linux kernel directly drives the hardware and does not use the BIOS. Since the Linux kernel does not use the BIOS, most of the hardware initialization is overkill. Linux is not alone in this respect; I don't know of a modern operating system that doesn't follow this trend. Modern operating systems require only basic system initialization services. Extra device drivers and system features that firmware like EFI, Open Firmware or even a PC BIOS provide are not necessary except to help load the operating system.Since these services are not necessary, the Linux BIOS code does not provide them.
Linux 启动结束后就没有保存实模式下的中断表,呵呵,所以Linux根本就不会使用实模式下的中断功能,但自己会重新建立保护模式下的中断,两个模式下的中断有着天壤之别,功能也大大不同。 |