由于现代操作系统的灵活性,使得初始化过程变得更加复杂。
首先,内核驱动既可以动态加载,也可以做为内核的一个静态组件。另外,设备既可以在内核刚启动时就存在,也可以在运行时加嵌或移除。后一种被称为热插拔设备,包括有USB、PCI、IEEE 1394(Apple)等。本章会介绍设备进行热插拔时,User-space和kernel-space都会做哪些操作。
本章将会介绍以下几点:
1、内核网络初始化代码
2、NIC(Network Inetrface cards)初始化
3、NIC如何使用中断,并且如何申请和释放IRQ handlers。以及如何共享IRQ
4、用户如何给已加载的驱动传递配置参数
5、在驱动初始化和配置过程中,user-space 和 kernel-space如何交互
本章将展示内核如何使用user-space helper去加载正确的NIC驱动以及应用用户空间的配置
特别是在热插拔过程中
6、虚拟设备和真实设备在配置上和在于内核交互上有何不同