Linux 终端初始化 console 您所在的位置:网站首页 linux进入tty终端 Linux 终端初始化 console

Linux 终端初始化 console

2024-06-06 05:49| 来源: 网络整理| 查看: 265

先前分析了 Linux 入口地址和 Linux 系统启动流程,本文详细分析一下 Linux 启动流程中的 console_init 终端初始化函数。​

讲解终端初始化之前我们先讲解一个概念:tty

在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备。我们一般分为三类:

串口终端(/dev/ttyS*)

串口终端是使用计算机串口连接的终端设备。Linux 把每个串行端口都看作是一个字符设备。这些串行端口所对应的设备名称是 /dev/ttySAC0;/dev/ttySAC1……

控制台终端(/dev/console)

在Linux系统中,计算机的输出设备通常被称为控制台终端(Console),这里特指printk信息输出到的设备。/dev/console是一个虚拟的设备,它需要映射到真正的tty(物理终端)上,比如通过内核启动参数” console=ttySAC0”就把console映射到了串口0。

虚拟终端(/dev/tty*)

当用户登录时,使用的是虚拟终端。使用Ctcl+Alt+[F1—F6]组合键时,我们就可以切换到tty1、tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名。

console_init 分析

Linux 启动函数 start_kernel 会调用 console_init 函数。

linux4.14/kernel/printk/printk.c

Linux 终端初始化 console_init 及 tty 驱动框架_嵌入式

linux4.14/drivers/tty/n_tty.c

Linux 终端初始化 console_init 及 tty 驱动框架_串口_02

我们可以看到,console_init 主要做了两件事情:

1、n_tty_init 主要调用 tty_register_ldisc(N_TTY, &n_tty_ops) 注册 tty 线路规程。

2、

call = __con_initcall_start; while (call


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有