我的问题有一个很强的假设:没有用户可以列出驱动程序树。
我正在阅读this (organization of the different drivers in Linux/Unix。
如果创建了新的操作系统并且没有用户可以列出驱动程序树,那么是否需要这样复杂的树?
我的感觉是:不,只要内核能够非常快地找到一个驱动程序。
然后将这些结构限制为像这样的结构数组可能是相关的:
struct descript_driver {
/* the usual struct with the functions
* pointers(.open = blah, .mmap = blah and so on).
*/
struct actions act;
char * driver_name;
char * vendor_name;
int vendorid;
int class_type; // GRAPHIC, NETWORK, CAMERA (#define or enum)...
int major_id;
int minor_id;
};
/* 256 is just an example. It could be more, or less.
* There are up to 256 majors but potentially a lot of minors.
* And each one has its index.
* Addressing is O(1).
*/
struct descript_driver array_of_drivers[256];
让驱动程序/内核记住它的索引只是为了在数组中流动。
中断仍将占据主要数字。 并且由于次要编号,在O(1)中调用正确的函数仍然很容易。
我的想法有什么问题吗?这是改善我的项目的重要一点。
由于