新聞中心
linux 終端控制是一種強(qiáng)大的技術(shù),它可以讓我們更深入地控制終端以及與終端相關(guān)的所有東西,例如登錄用戶,vim編輯器等。本文將著重介紹TTYS層次的奧秘,深入了解TTY的主要組件以及它們是如何起作用的。

成都創(chuàng)新互聯(lián)公司從2013年開(kāi)始,先為康樂(lè)等服務(wù)建站,康樂(lè)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為康樂(lè)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
首先,我們來(lái)看看 TTY 的層次結(jié)構(gòu)。圖 1提供了一個(gè)簡(jiǎn)圖,展示了TTY抽象層次結(jié)構(gòu):

圖 1:TTY抽象層次結(jié)構(gòu)
從上面我們可以看出,TTY 基本上可以分為三個(gè)部分:
– TTY 設(shè)備驅(qū)動(dòng)程序:這是低層次的硬件驅(qū)動(dòng)程序,可以處理串口和終端等設(shè)備的輸入輸出,包括獲取輸入數(shù)據(jù),控制發(fā)送數(shù)據(jù)以及更新設(shè)備的狀態(tài)等。
– TTY 內(nèi)核部分:包括管理 TTY 的和控制 TTY 之間的交互等使用的行為,以及實(shí)現(xiàn) TTY 的特定的功能和選項(xiàng)等。
– 用戶空間:它提供了 TTY 和用戶對(duì)話的接口,它能夠控制 TTY 的輸入和輸出,并實(shí)現(xiàn)了終端和終端控制程序之間的交互,所以可以在 Linux 命令行窗口中使用 TTY。
既然我們已經(jīng)來(lái)了解 TTY 的層次結(jié)構(gòu),那么下面我們來(lái)看看如何使用代碼來(lái)控制 TTY。 TTY設(shè)備驅(qū)動(dòng)程序提供了一些內(nèi)核級(jí)的接口,下面是有關(guān) TTY 控制的代碼,其中, tty_ioctl() 是用于 TTY 控制的內(nèi)核函數(shù):
“`c
int tty_ioctl (struct tty_struct * tty,
unsigned int cmd,
unsigned long arg)
{
switch (cmd) {
// 打開(kāi)TTY
case TIOCSCTTY:
if (tty_paranoia_check(tty, current->tty, “tty_ioctl”))
return -EACCES;
if (current->signal->tty != tty &&
tty->session == NULL) {
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
}
current->signal->tty = tty;
tty->session = current->signal;
tty->pgrp = process_group(current);
return 0;
// 關(guān)閉TTY
case TIOCCLOSE:
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
tty_kref_put(tty);
return 0;
}
return -ENOIOCTLCMD;
}
這段代碼實(shí)現(xiàn)了一個(gè)控制 TTY 的函數(shù),既可以打開(kāi) TTY,也可以關(guān)閉 TTY,這在控制 TTY 時(shí)非常有用。
通過(guò)上述的內(nèi)容,我們可以看出,TTY 層次的結(jié)構(gòu)其實(shí)就是一種抽象的技術(shù),可以把設(shè)備的輸入輸出抽象成一種更抽象的概念,并且通過(guò)編寫(xiě)相關(guān)的控制代碼,更加輕松地控制 TTY 以及它有關(guān)的東西。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
文章名稱:Linux終端控制:探索TTYS層次的奧秘(linuxttys)
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/dhdjoch.html


咨詢
建站咨詢
