上一节我们分析了bootoader中传过来的cmdline中的命令是如何解析并执行的。
同时也是对bootloader中传过来的console进行了记录。
console也就是我们所说的控制台,可以是任何常见的输出设备,比如serial,比如framebuffer,比如网口。
本节主要以最常见的串口为例说明。
如果有搜索过内核代码,可以看到绝大多数的console都是串口设备。
所以内核对用作串口程序进行了进一步的封装,抽象出的serial_core.c文件中,对console的注册留有了接口。
console的注册函数是register_console,这个函数我们后面说。
void register_console(struct console *newcon)
这里我们先简单看一下串口驱动。
这里以三星的为例,这里不会详细分析代码,只会说一下串口驱动的架构。
串口驱动主要由下面这个来表示
struct uart_driver {
struct module *owner;
const char *driver_name;
const char *dev_name;
int major;
in