成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

操作系統(tǒng)是怎樣一步步接收鍵盤按鍵的?

系統(tǒng) 其他OS
在類Unix系統(tǒng)中,驅(qū)動(dòng)程序會(huì)把字母a寫到device file中,也就是設(shè)備文件,你可以像訪問(wèn)普通文件那樣直接訪問(wèn)設(shè)備文件,但它并不是真正的文件。

大家好,我是島主小風(fēng)哥,你有沒(méi)有想過(guò),按下鍵盤按鍵后,相應(yīng)的字符是怎么一步步顯示在屏幕上的?

首先來(lái)看硬件部分,你至少應(yīng)該能想到必須得有鍵盤和CPU:

圖片圖片

之后呢,cpu是怎么知道有鍵盤按下呢?

為了讓鍵盤按下按鍵后能通知到CPU,需要借助鍵盤控制器,keyboard controller,這當(dāng)然也是硬件:

圖片圖片

當(dāng)按下按鍵時(shí),鍵盤控制器能檢測(cè)到鍵盤按鍵:

圖片圖片

接著鍵盤控制器向CPU發(fā)出中斷:

圖片圖片

當(dāng)CPU接收到中斷信號(hào)后暫停當(dāng)然正在執(zhí)行的代碼,在此之前也許CPU正在執(zhí)行應(yīng)用程序的代碼,表現(xiàn)出來(lái)的就是你的程序就在運(yùn)行:

圖片圖片

當(dāng)然也有可能CPU正在執(zhí)行操作系統(tǒng)代碼,但不管怎樣,CPU接收到中斷信號(hào)后將暫停執(zhí)行當(dāng)前的指令然后跳轉(zhuǎn)到一個(gè)提前配置好的地址,這個(gè)地址指向的就是內(nèi)核中的處理函數(shù),假設(shè)這個(gè)函數(shù)叫做do_irq()。

圖片圖片

中斷處理函數(shù)do_irq發(fā)現(xiàn)中斷來(lái)自鍵盤,因此開(kāi)始調(diào)用能處理鍵盤按鍵的內(nèi)核代碼,這段內(nèi)核代碼就是所謂的驅(qū)動(dòng),driver。

圖片圖片

驅(qū)動(dòng)程序處理鍵盤按鍵后發(fā)現(xiàn)按下的是字母a,然后呢?

在類Unix系統(tǒng)中,驅(qū)動(dòng)程序會(huì)把字母a寫到device file中,也就是設(shè)備文件,你可以像訪問(wèn)普通文件那樣直接訪問(wèn)設(shè)備文件,但它并不是真正的文件。

圖片圖片

現(xiàn)在,鍵盤按鍵已經(jīng)從硬件世界來(lái)到的了軟件世界,也就是內(nèi)核中。

還是以Unix系統(tǒng)為例,在Unix中負(fù)責(zé)窗體管理的叫做X Window System,該系統(tǒng)由X server以及X client組成,圖形應(yīng)用程序就是x client,接收來(lái)自x server的鍵盤消息,那么x server又是從哪里知道鍵盤消息呢?答案就是剛才提到的設(shè)備文件:

圖片圖片

接下來(lái)X server會(huì)把鍵盤按鍵消息發(fā)送給正在獲取焦點(diǎn)的窗體,怎么發(fā)送呢?利用的就是進(jìn)程間通信技術(shù),IPC:

圖片圖片

這樣,我們的程序就可以獲得鍵盤按鍵了。

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)的荒島求生
相關(guān)推薦

2025-04-03 01:45:00

2025-03-28 09:39:15

CPU指令信號(hào)

2024-09-30 09:56:59

2024-09-12 10:04:06

內(nèi)存程序系統(tǒng)

2025-04-30 04:20:00

操作系統(tǒng)虛擬內(nèi)存

2024-06-27 08:30:36

內(nèi)存擴(kuò)容堆區(qū)

2024-08-30 08:30:29

CPU操作系統(tǒng)寄存器

2017-01-19 21:08:33

iOS路由構(gòu)建

2018-07-13 15:36:52

2024-08-06 09:29:54

程序機(jī)器指令字符串

2019-03-05 14:09:27

Docker存儲(chǔ)容器

2019-07-09 15:23:22

Docker存儲(chǔ)驅(qū)動(dòng)

2018-12-24 10:04:06

Docker存儲(chǔ)驅(qū)動(dòng)

2021-03-15 09:20:15

微軟IBM研究院

2010-03-04 16:28:17

Android核心代碼

2025-04-09 08:45:00

操作系統(tǒng)進(jìn)程線程

2016-11-02 18:54:01

javascript

2017-12-25 11:50:57

LinuxArch Linux

2011-05-10 10:28:55

2018-04-23 14:23:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人欧美一区二区三区黑人孕妇 | 久久久青草婷婷精品综合日韩 | 色综合久 | 在线成人一区 | 国产99久久久国产精品 | 干干干操操操 | 青青草社区 | 色婷婷综合久久久中文字幕 | 国产jizz女人多喷水99 | 一区二区三区视频在线免费观看 | 亚洲狠狠丁香婷婷综合久久久 | 国产精品视频二区三区 | 国产黄色免费网站 | 亚洲美乳中文字幕 | 国产精品一区二区三区四区 | 99精品99 | 国产成人aⅴ | 国产精品毛片 | 国产成人啪免费观看软件 | 最近中文字幕免费 | 日韩在线小视频 | 久久不卡| 亚洲精品欧美一区二区三区 | 色综合99| 国产精品久久久久久久久久久久午夜片 | 久久久久久久久精 | 国产激情在线 | 久久综合久久综合久久 | 国产色爽 | 亚洲免费网 | 91视频亚洲 | 国产不卡视频 | 亚洲精品91 | www.婷婷| 神马久久香蕉 | 日韩精品在线观看网站 | 欧美乱大交xxxxx另类电影 | 精品中文字幕在线 | 黄色片免费在线观看 | 亚洲视频免费 | 精品久久久久久亚洲精品 |