Linux块驱动加载与内存管理技术解析
1. Linux块驱动加载相关要点
在Linux系统的发展历程中,不同版本在块驱动加载方面存在一些差异。例如,Linux 2.0没有max_readahead数组,而是有max_segments数组,不过设备驱动通常不需要设置它。直到Linux 2.4才出现register_disk函数,在之前有一个名为resetup_one_dev的函数执行类似功能:
resetup_one_dev(struct gendisk *gd, int drive);在sysdep.h中通过以下代码模拟register_disk:
static inline void register_disk(struct gendisk *gdev, kdev_t dev, unsigned minors, struct file_operations *ops, long size) { if (! gdev) return; resetup_one_dev(gdev, MINOR(dev) >> gdev->minor_shift); }Linux 2.0不支持细粒度的SM