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. 对操作系统的内存保护
- 5. 可在所有操作系统上工作的全屏GUI
- 6. 在MSWin32操作系统上的条款:: ReadKey :: GetTermialSize操作系统
- 7. 在Windows操作系统中的pathos软件包操作系统
- 8. 操作系统 - TLB
- 9. 操作系统中
- 10. Linux操作系统
- 11. FASM操作系统
- 12. 内存泄漏和操作系统
- 13. Linux内核操作系统寄存器
- 14. 内存管理由操作系统
- 15. 操作系统内存分配地址
- 16. 操作系统内存分配
- 17. Firefox操作系统:进程,内存
- 18. 64位操作系统内存分配
- 19. 操作系统主内存碎片
- 20. 使用主机操作系统风格的跨平台GUI库
- 21. 使用curses库为不同的操作系统创建GUI
- 22. 使用Java获取Windows操作系统的GUI树
- 23. 如何R内部检查操作系统
- 24. Ubuntu Linux操作系统命令提取子内部
- 25. Android操作系统更新系统
- 26. jQuery - 检测操作系统和操作系统版本
- 27. 预定义为iPhone操作系统和Mac操作系统
- 28. 开放源代码云操作系统/操作系统架构
- 29. 操作系统和操作系统如何更新自己?
- 30. 3.0 Android操作系统2.2 Android操作系统问题
呃..你对此的理解似乎有点偏斜。首先,图形用户界面与内核(除了KMS之外)有关,它们存在于用户空间中,GT与之通信的X也是如此。请记住,JVM也只是一个用户空间程序,我假设它的GUI堆栈中有X11绑定。 – Ancurio