我们知道linux 使用程序udev来在/dev目录下建立各种设备文件。然而,系统引导时,udev并没有执行。那么,系统初始化时用到的/dev/console /dev/ram0从哪里来的呢?
见main.c init()函数中:
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
/dev/ram 来历:
[init>prepare_namespace>initrd_load]
create_dev("/dev/ram", Root_RAM0);
/dev/console来历:
[init>do_basic_setup>do_basic_setup>do_initcalls>tty_init]
register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0)
见main.c init()函数中:
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
/dev/ram 来历:
[init>prepare_namespace>initrd_load]
create_dev("/dev/ram", Root_RAM0);
/dev/console来历:
[init>do_basic_setup>do_basic_setup>do_initcalls>tty_init]
register_chrdev_region(MKDEV(TTYAUX_MAJOR, 1), 1, "/dev/console") < 0)
本文深入探讨了Linux系统启动过程中如何生成关键设备文件,如/dev/console和/dev/ram0。通过对内核源码的分析,揭示了这些设备文件的具体创建过程。
1678

被折叠的 条评论
为什么被折叠?



