亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法

文檔序號(hào):6419842閱讀:318來源:國(guó)知局
專利名稱:Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種顯示模式切換方法,特別是涉及一種Linux下Xwindows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法。
背景技術(shù)
Linux操作系統(tǒng)的發(fā)展可謂飛速,在短短的幾年中,不僅奠定了堅(jiān)實(shí)的網(wǎng)絡(luò)基礎(chǔ),成為眾多服務(wù)器(Server)的強(qiáng)力支持,更發(fā)展到了桌面領(lǐng)域。圖形化桌面的意義就在于能夠利用豐富多彩的窗口,帶給用戶親近的感覺,讓人們不再感到陌生。Xwindows就是Linux中開放的窗口,這個(gè)“窗口”接口給人帶來不少實(shí)用、易用的效果。Linux操作系統(tǒng)的控制臺(tái)(Console)顯示模式是Linux所提供的面向用戶的基本顯示模式,而Xwindows系統(tǒng)是一套基于Client-Server體系結(jié)構(gòu)的窗口系統(tǒng),是現(xiàn)代Unix系統(tǒng)(包括Linux、FreeBSD等等)所必備的圖形接口。就一般Linux應(yīng)用程序而言,無非僅僅運(yùn)行于控制臺(tái)或Xwindows上。而對(duì)于某些具有特殊需求的程序而言,則存在跨顯示模式的運(yùn)行需求。例如Linux操作系統(tǒng)下對(duì)顯示卡的測(cè)試,涉及到Linux下的圖形圖像顯示編程技術(shù),一般是利用Qt(一個(gè)多平臺(tái)的C++圖形用戶接口應(yīng)用程序框架)編寫運(yùn)行在Xwindows上的測(cè)試程序。但是這種基于Qt的應(yīng)用程序,由于Qt圖形庫所提供的功能所限,無法對(duì)顯示內(nèi)存及顯示卡所支持的顯示模式進(jìn)行有效測(cè)試。因此我們通過采用VESA方式編寫程序?qū)︼@示內(nèi)存及顯示卡所支持的顯示模式進(jìn)行測(cè)試,與此同時(shí)就產(chǎn)生了一個(gè)難題利用VESA方式編寫的程序需要在控制臺(tái)下運(yùn)行,而主控程序則需要運(yùn)行于Xwindows。為了做到與主控程序的協(xié)同使用,因而需要一種首先從Xwindows切換至所需控制臺(tái),然后再由所在控制臺(tái)切換回Xwindows的方法。對(duì)于這種需求而言,已知技術(shù)的應(yīng)對(duì)方法就是在程序中通過System函數(shù)調(diào)用系統(tǒng)命令chvt N(N為目的控制臺(tái))實(shí)現(xiàn)程序中的自動(dòng)切換。但這樣做會(huì)帶來以下兩個(gè)問題第一,當(dāng)應(yīng)用程序所運(yùn)行的Linux系統(tǒng)不提供chvtN命令或?qū)崿F(xiàn)相同功能的函數(shù)更名,則無法保證該需求功能的實(shí)現(xiàn);第二,利用System函數(shù)調(diào)用系統(tǒng)命令chvt N,在運(yùn)行當(dāng)前處理過程(Process)的基礎(chǔ)上,又新創(chuàng)建運(yùn)行了另一個(gè)處理過程,這樣會(huì)過多的占用系統(tǒng)資源。
因此如何在減少占用系統(tǒng)資源的情況下,解決Linux下應(yīng)用程序的跨顯示模式運(yùn)行的難題,實(shí)現(xiàn)Linux下控制臺(tái)顯示模式與Xwindows顯示模式之間的自動(dòng)切換,是目前急需解決的問題。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明為解決上述問題而提出一種Xwindows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法,主要目的在于在不占用系統(tǒng)資源的情況下,實(shí)現(xiàn)Linux下控制臺(tái)顯示模式與Xwindows顯示模式的自動(dòng)切換,從而做到主控程序的協(xié)同使用。
所以為達(dá)到上述目的,本發(fā)明所提供的Xwindows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法,首先獲取核心中所有虛擬終端的狀態(tài),然后獲取并保存當(dāng)前的虛擬終端編號(hào),獲取并保存可調(diào)用的顯示模式,切換到目標(biāo)顯示模式,最后等待目標(biāo)顯示模式啟動(dòng)。
根據(jù)本發(fā)明所提供的windows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法,具有如下優(yōu)點(diǎn)1.通過程序?qū)崿F(xiàn)Linux下控制臺(tái)顯示模式與Xwindows顯示模式的自動(dòng)切換,解決了Linux下應(yīng)用程序的跨顯示模式運(yùn)行的難題,同時(shí)避免了以往方法過多占用系統(tǒng)資源的問題,使得以往無法解決的技術(shù)難點(diǎn)迎刃而解;2.就本發(fā)明而言,基于降低使用本發(fā)明的復(fù)雜性的考慮,對(duì)于實(shí)現(xiàn)控制臺(tái)顯示模式與Xwindows顯示模式彼此間的切換,提供了只要掌握一種切換方法,僅做簡(jiǎn)單修改就可實(shí)現(xiàn)相反切換功能的方案,降低了使用本發(fā)明的復(fù)雜性。
有關(guān)本發(fā)明的詳細(xì)內(nèi)容及技術(shù),現(xiàn)結(jié)合附圖作說明如下


圖1為本發(fā)明Xwindows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法的運(yùn)作流程圖;
圖2為本發(fā)明實(shí)施例的Xwindows顯示模式自動(dòng)切換到控制臺(tái)顯示模式的方法運(yùn)作流程圖;及圖3為本發(fā)明實(shí)施例的控制臺(tái)顯示模式自動(dòng)切換到Xwindows顯示模式的方法運(yùn)作流程圖。
具體實(shí)施例方式
本發(fā)明提供一種Xwindows顯示模式與控制臺(tái)顯示模式的自動(dòng)切換方法,首先由圖1中說明本發(fā)明的方法,該圖為本發(fā)明的運(yùn)作流程圖,首先獲取核心中所有虛擬終端的狀態(tài)(步驟110),獲取并保存當(dāng)前的虛擬終端編號(hào)(步驟120),然后獲取并保存可調(diào)用的顯示模式(步驟130),切換到目標(biāo)顯示模式(步驟140),最后等待目標(biāo)顯示模式啟動(dòng)(步驟150)。
在上述獲取核心中所有虛擬終端的狀態(tài)的過程中,首先獲得當(dāng)前虛擬終端(Virtual Terminal)的文件描述符(File Description),然后系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_GETSTATE,&vs)獲取核心(Kernel)中虛擬終端的狀態(tài)。
首先以Xwindows顯示模式自動(dòng)切換到控制臺(tái)顯示模式為例,對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
通常情況下,Linux安裝后都含有多個(gè)控制臺(tái),通常我們?cè)贚inux下看到的控制臺(tái)是由幾個(gè)設(shè)備構(gòu)成的,分別是/dev/ttyN(其中tty0就是/dev/console,tty1、tty2就是不同的虛擬控制臺(tái)(virtual console))。通常使用熱鍵Alt+Fn來在這些虛擬控制臺(tái)之間進(jìn)行切換。
如圖2所示,該圖為本發(fā)明實(shí)施例的Xwindows顯示模式自動(dòng)切換到控制臺(tái)顯示模式的方法運(yùn)作流程圖,首先確定當(dāng)前的顯示模式是否為Xwindows(步驟210),以保證切換的合理性,若當(dāng)前的控制臺(tái)為Xwindows,則獲得當(dāng)前虛擬終端的文件描述符(步驟220),獲取當(dāng)前虛擬終端的文件描述符就是獲得當(dāng)前顯示設(shè)備的文件描述符,以滿足系統(tǒng)調(diào)用ioctl函數(shù)的需求;然后通過系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_GETSTATE,&vs),獲取核心中虛擬終端的狀態(tài)(步驟230),定義結(jié)構(gòu)體struct vt_stat vs,并通過ioctl函數(shù)調(diào)用可以獲得當(dāng)前虛擬終端號(hào)(VT number)等的信息,這樣做的目的是保存虛擬終端號(hào),并可以獲知存在于當(dāng)前核心中所有虛擬終端VT的數(shù)量,進(jìn)而由用戶選擇判斷所需要切換至的控制臺(tái)。
ioctl()具有設(shè)備特殊性,不同于read(),,write(),在于它允許應(yīng)用程序訪問、配置設(shè)備,并進(jìn)入可能的操作模式。通常的read()、write()不能使用這些控制操作,ioctl()可以控制I/O通道。設(shè)備驅(qū)動(dòng)的一個(gè)特點(diǎn)是要與其它設(shè)備硬件交換讀/寫的數(shù)據(jù)并需要同步控制。獲得并保存當(dāng)前的虛擬終端號(hào)(步驟240),獲取并保存可調(diào)用的控制臺(tái)號(hào)(步驟250),切換到目標(biāo)控制臺(tái)(步驟260),通過系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_ACTIVATE,num)切換到目標(biāo)控制臺(tái),其中fd即為當(dāng)前虛擬終端的文件描述符,num為用戶所要期待切換至的控制臺(tái)號(hào),然后等待目標(biāo)控制臺(tái)啟動(dòng)(步驟270)。通過系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_WAITACTIVE,num)等待切換動(dòng)作,等待將所期待切換至的控制臺(tái)啟動(dòng)。
在各種環(huán)境中,Xwindows深受用戶們的歡迎。它的客戶/服務(wù)器模型使得用戶能夠靈活、強(qiáng)有力的和計(jì)算機(jī)之間進(jìn)行交互。Xwindows使用了一個(gè)底層叫做X協(xié)議的協(xié)議。這個(gè)協(xié)議既能夠用在單個(gè)的計(jì)算機(jī)上,又能夠用在計(jì)算機(jī)網(wǎng)絡(luò)上。它沒有與操作系統(tǒng)捆綁,因此能夠用在多個(gè)平臺(tái)上。Xwindows利用網(wǎng)絡(luò)通信的客戶/服務(wù)器模式,這個(gè)模式能夠使用戶在一個(gè)地方運(yùn)行程序,而又在其它地方控制這個(gè)程序。與平常的客戶/服務(wù)器模式相反,用戶實(shí)際上直接在Xserver上工作,Xserver提供屏幕、鍵盤以及鼠標(biāo)。之所以叫做Server是因?yàn)樗鼮榭蛻舳水a(chǎn)生輸入,并管理向客戶端輸出。
接下來以控制臺(tái)顯示模式自動(dòng)切換到Xwindows顯示模式為例,來進(jìn)一步說明本發(fā)明。
如圖3所示,該圖為本發(fā)明實(shí)施例的控制臺(tái)顯示模式自動(dòng)切換到Xwindows顯示模式的方法運(yùn)作流程圖。首先確定當(dāng)前的顯示模式是否為控制臺(tái)模式(步驟310),以保證切換的合理性和正確性。然后獲得當(dāng)前虛擬終端的文件描述符(步驟320),獲取當(dāng)前虛擬終端的文件描述符就是獲得當(dāng)前顯示設(shè)備的文件描述符,以滿足系統(tǒng)調(diào)用ioctl函數(shù)的需求。系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_GETSTATE,&vs)獲取核心中虛擬終端的狀態(tài)(步驟330),定義結(jié)構(gòu)體struct vt_stat vs,并通過ioctl函數(shù)調(diào)用可以獲得當(dāng)前虛擬終端號(hào)等的信息,這樣做的目的是保存虛擬終端號(hào),并可以獲知存在于當(dāng)前核心中所有虛擬終端VT的數(shù)量,進(jìn)而由用戶選擇判斷所需要切換至的控制臺(tái),然后獲得并保存當(dāng)前的虛擬終端號(hào)(步驟340),獲取并保存可調(diào)用的Xwindows號(hào)(步驟350),切換到目標(biāo)Xwindows(步驟360),通過系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_ACTIVATE,num)切換到目標(biāo)Xwindows,其中fd即為當(dāng)前虛擬終端的文件描述符,num為用戶所要期待切換至的Xwindows號(hào),最后等待目標(biāo)Xwindows啟動(dòng)(步驟370),通過系統(tǒng)調(diào)用ioctl函數(shù)(fd,VT_WAITACTIVE,num)等待切換動(dòng)作。
雖然本發(fā)明以前述的較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉該項(xiàng)技術(shù)的本領(lǐng)域普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),所作的些許更動(dòng)與潤(rùn)飾,均包含在本發(fā)明權(quán)利要求書所要求保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,應(yīng)用于Linux操作系統(tǒng)下,其特征在于,包括如下步驟獲取核心中所有虛擬終端的狀態(tài);獲取并保存當(dāng)前的虛擬終端編號(hào);獲取并保存可調(diào)用的顯示模式;切換到目標(biāo)顯示模式;及等待目標(biāo)顯示模式啟動(dòng)。
2.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,還包括確定當(dāng)前顯示模式的步驟。
3.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,所述獲取核心中所有虛擬終端的狀態(tài)的步驟還包括獲得當(dāng)前虛擬終端的文件描述符;及系統(tǒng)調(diào)用ioctl獲取核心中虛擬終端的狀態(tài)。
4.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,所述目標(biāo)顯示模式為控制臺(tái)。
5.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,所述目標(biāo)顯示模式為Xwindows。
6.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,所述切換動(dòng)作是通過系統(tǒng)調(diào)用ioctl函數(shù)完成的。
7.如權(quán)利要求1所述的Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,其特征在于,所述等待啟動(dòng)目標(biāo)顯示模式動(dòng)作是通過系統(tǒng)調(diào)用ioctl函數(shù)完成的。
全文摘要
一種Xwindows顯示模式與控制臺(tái)顯示模式間的自動(dòng)切換方法,應(yīng)用于Linux下,其步驟為首先獲取核心中所有虛擬終端的狀態(tài),然后獲取并保存當(dāng)前的虛擬終端編號(hào),獲取并保存可調(diào)用的顯示模式,切換到目標(biāo)顯示模式,最后等待目標(biāo)顯示模式啟動(dòng)。通過本發(fā)明的自動(dòng)切換方法,在不占用系統(tǒng)資源的情況下,實(shí)現(xiàn)了Linux下控制臺(tái)顯示模式與Xwindows顯示模式的自動(dòng)切換。
文檔編號(hào)G06F9/46GK1607506SQ20031010068
公開日2005年4月20日 申請(qǐng)日期2003年10月13日 優(yōu)先權(quán)日2003年10月13日
發(fā)明者劉文涵, 宋建福, 王鵬 申請(qǐng)人:英業(yè)達(dá)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1