GUI如何在操作系統內部構建。讓我們使用兩個例子,比如Ubuntu中的GTK +和Java JFrame。我認爲使用某種圖形用戶界面的操作系統必須提供一些系統調用才能顯示窗口。例如,如果我在一臺機器上安裝了一個Ubuntu版本,並且無需下載任何軟件,我應該可以進行系統調用以顯示一個窗口。看起來事實並非如此。我必須安裝並下載GTK + SDK,它允許我使用按鈕創建窗口等等。那麼我的問題是使用Java,那麼Java如何構建它的JFrame?我知道有一個Java虛擬機在Linux系統上運行,但Java虛擬機如何調用實際顯示窗口?與GUI一起發生用戶與它們交互的事件。在Java級別,JVM處理所有較低級別的調用,並且獲得OnClick()事件等等.JVM如何實際調用並使用這些調用?與GDK +一樣?我明白這是一個廣泛的問題,有許多不同的答案,但任何幫助將不勝感激。操作系統內部的GUI
0
A
回答
2
讓我們以Linux爲例。有幾層:
- 內核(Linux)和操作系統(GNU) - 瞭解如何工作硬件,包括圖形。
- 窗口系統(X) - 使用圖形函數繪製窗口。
- 桌面(例如Gnome) - 應用全局樣式,如窗口邊框。
- (通常)GTK等工具包 - 瞭解小部件,如何繪製它們以及如何設計它們。
- 您的應用程序。
在Windows上,內核,操作系統,窗口系統,桌面和小部件都捆綁在一起。在這種情況下,工具包可能不會繪製自己的小部件,而是直接從Windows使用它們。
在任何情況下,工具包都會將應用程序與特定於平臺的詳細信息隔離開來,並自動執行正確的操作。
相關問題
- 1. Java - 具有Java GUI和Linux內核的移動操作系統
- 2. 操作系統
- 3. 對操作系統的內存保護
- 4. FASM操作系統
- 5. Linux操作系統
- 6. 操作系統中
- 7. 操作系統 - TLB
- 8. Linux內核操作系統寄存器
- 9. 操作系統內存分配
- 10. 內存管理由操作系統
- 11. 內存泄漏和操作系統
- 12. 使用主機操作系統風格的跨平臺GUI庫
- 13. 使用curses庫爲不同的操作系統創建GUI
- 14. 使用Java獲取Windows操作系統的GUI樹
- 15. 如何R內部檢查操作系統
- 16. Ubuntu Linux操作系統命令提取子內部
- 17. Android操作系統更新系統
- 18. 預定義爲iPhone操作系統和Mac操作系統
- 19. jQuery - 檢測操作系統和操作系統版本
- 20. 3.0 Android操作系統2.2 Android操作系統問題
- 21. 開放源代碼雲操作系統/操作系統架構
- 22. 操作系統的語言?
- 23. 在自制操作系統中開發GUI環境
- 24. 操作系統信號量
- 25. C#for 64bit操作系統?
- 26. Blackberry操作系統版本
- 27. 操作系統/尋呼
- 28. Python CPU和操作系統
- 29. 沙盒操作系統
- 30. 雙操作系統安裝
呃..你對此的理解似乎有點偏斜。首先,圖形用戶界面與內核(除了KMS之外)有關,它們存在於用戶空間中,GT與之通信的X也是如此。請記住,JVM也只是一個用戶空間程序,我假設它的GUI堆棧中有X11綁定。 – Ancurio