它是如何制作的,例如从开机到用户界面的数字编码器、录像机、DVD 播放器图形用户界面?
我有 C/Java 知识,但我还不明白,一些硬件如何从开机阶段到用户界面显示自己的屏幕/图形(它从不显示 linux/unix 启动屏幕,也不显示 windows 启动屏幕)。
我的问题是,与 VCR/TV 数字编码器开机直至用户界面相比,它是如何制作的?我们使用常规的 Linux 内核还是有任何特殊的开源框架允许我们开发这样的内核?
谢谢
I have C/Java knowledge but i never understand yet, how some hardwares show there own screens/graphics from poweron stage to user interface (where it never shows linux/unix boot screen nor it shows windows booting screens).
My question is, Compared to VCR/TV digicoders poweron till user interfaces, how its made? Do we use regular linux kernel or is there any special open source framework which allow us to develop such?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
许多嵌入式系统使用 u-boot 作为引导加载程序。 U-boot 提供了在 Linux 内核运行时显示“启动”屏幕的功能正在启动。
Many embedded systems use u-boot as a boot loader. U-boot provides the ability to display a "splash" screen while the linux kernel is booting.
设备将在 CPU 退出复位后立即启动引导加载程序(通常最多在上电后几毫秒)。引导加载程序代码可以初始化显示屏并根据需要显示启动屏幕(就像大多数现代非嵌入式 Linux 发行版具有图形 grub 启动屏幕一样)。内核可以避免更改显示配置,并且在嵌入式设备上,内核可以快速启动到正在运行的用户空间(至少是 initramfs),它可以接管显示并显示任何动画、进度条等,直到完整的 UI 出现为止。准备好。
A device will start the bootloader right after the CPU comes out of reset (usually milliseconds after power-on at most). The bootloader code can initialize the display and show a splash screen if it wants (in the same way most modern non-embedded Linux distributions have a graphical grub splashscreen). The kernel can avoid changing the display configuration, and on an embedded device the kernel can boot pretty quickly to running userspace (at least an initramfs), which can take over the display and show whatever animation, progress bar, etc until the full UI is ready.
Windows 或 Linux 等操作系统既大型又通用。他们必须初始化自身和硬件,其中包括询问所有连接的设备以实现“即插即用”。操作系统事先并不知道连接了哪些此类设备;每次启动时它都必须“发现”硬件。自上次启动以来,连接的硬件甚至可能已发生变化。
嵌入式系统通常没有大型操作系统(或者通常根本没有操作系统),并且它们通常具有系统先验已知的非常特定的硬件,因此不需要测试和确定此类设备的正确配置。这些设备通常也更简单,并且通常是“片上”外围设备。
也就是说,您的 PC 能够立即显示用户界面(但 Windows 除外)。 BIOS 启动过程几乎立即将文本输出到显示器,BIOS 控制台是一个交互式用户界面,在启动过程中根据请求启动。上次我在现代 PC 上启动 MS-DOS 时,只花了几秒钟就启动了。
并非所有嵌入式系统都“即时启动”,我的数字电视 PVR 甚至在启动时有一个进度条,但由于特定于应用程序,它的启动速度仍然比通用计算机快得多。另一方面,我的网络附加存储 (NAS) 设备是运行 Linux 的嵌入式系统,需要相当长的时间来启动,因为它必须启动文件系统、网络、USB 接口、打印服务器、DNLA 服务器、和网络服务器。事实上,通用计算机所需的许多东西(但它没有显示器,UI是通过网络服务器呈现的)
一些具有大型操作系统和复杂硬件的嵌入式系统可以通过从未真正切换来实现“即时启动”关闭,而是进入低功耗模式,其中系统状态保留在内存中,同时关闭所有高功率设备(例如屏幕、WiFi、蓝牙等)。
An operating systems such a Windows or Linux are both large and general purpose. They have to initialise themselves and the hardware, which includes interrogating all connected devices for "plug & play". The OS does not know in advance which such devices are connected; it has to "discover" the hardware every time it starts. The connected hardware may even have changed since it last booted.
Embedded systems do not usually have large operating systems (or often do not have an operating system at all), and they usually have very specific hardware known to the system a priori, so do not need to test and determine the correct configuration for such devices. Often also these devices are far simpler, and are often 'on-chip' peripherals.
That said, your PC is capable of instantly displaying a user interface (just not Windows). The BIOS boot process outputs text to the display almost immediately, and the BIOS console is an interactive user interface that starts on request during boot. Also last time I booted MS-DOS on a modern PC, it took only a few seconds to start.
Not all embedded systems start "instant-on", my digital TV PVR even has a progress bar while booting, but being application specific, it still starts far faster than a general purpose computer. My Network Attached Storage (NAS) device which is an embedded system running Linux on the other hand, takes considerable time to boot since among other things, it has to start the file-system, network, USB interfaces, print server, DNLA server, and web-server. In fact many of the things required for a general purpose computer (but it has no display, the UI is presented via the web-server)
Some embedded systems with large operating systems and complex hardware can achieve "instant-on" by never truly switching off, but rather going into a low power mode where the system state is retained in memory while all the high powered devices such as a screen, WiFi, Bluetooth etc. are switched off.