我决定弄清楚 Linux 如何与操作系统本身交互,而不是计算系统调用。在我看来,我们有 ttys,它连接了伪终端,其驱动程序实现了 GUI 或终端仿真器,但我不明白为什么 bash 是一个单独的程序,没有命令解释器这一切都没有意义。嗯,是的,我们可以发送一些东西,比方说,通过终端模拟器,它会将它传输到 tty,但 tty 将无法用它做任何事情,因为与内核的交互是使用系统调用构建的。或者我什么都不懂,但是没有命令解释器(bash 或非 bash)我无法启动另一个 tty
我决定弄清楚 Linux 如何与操作系统本身交互,而不是计算系统调用。在我看来,我们有 ttys,它连接了伪终端,其驱动程序实现了 GUI 或终端仿真器,但我不明白为什么 bash 是一个单独的程序,没有命令解释器这一切都没有意义。嗯,是的,我们可以发送一些东西,比方说,通过终端模拟器,它会将它传输到 tty,但 tty 将无法用它做任何事情,因为与内核的交互是使用系统调用构建的。或者我什么都不懂,但是没有命令解释器(bash 或非 bash)我无法启动另一个 tty
TTY 不是一种与操作系统交互的方式,它是一种与进程交互的方式。内核启动的第一个进程
/sbin/init启动一个程序,该程序getty读取配置文件/etc/init/console.conf,/etc/init/ttyX.conf随后将欢迎文件的内容显示到控制台/etc/issue并运行login。稍后,GUI 或配置中指定的内容已经启动。而这里的 TTY 充当了一个接口,它知道输入将写入哪个文件描述符,而一些 Bash 通过 TTY 结构将了解从哪里读取这个输入以及从哪里写入输出(或者在图形用户界面)。