![]() |
1
3
年。 如果您有一些简单的LED显示屏,或者一些能够以类似VGA的方式操作的芯片,那么您可能只需要很少的控制寄存器设置,将设备视频内存映射到CPU内存地址空间,然后将位/ASCII写入映射内存。 x86 BIOS是旧PC XT/AT图形卡的传统,当时几乎没有CGA之类的标准;EGA->VGA和制造商在使用通用驱动程序时相当合理地遵守了这些标准。自windows时代以来,制造商更容易提供自己的封闭源代码驱动程序,并以他们希望的任何方式创建自己的硬件(但出于遗留/启动原因,保持类似VGA的基本功能可用=今天晶体管的价格如何并不成大问题,因此添加数千个晶体管来模拟VGA是可能的)。
同样,您需要编写第一个USB驱动程序,它将处理ARM设备侧的USB总线,然后特定的USB设备需要它自己的驱动程序,像键盘这样的常见设备系列是通用的,单个驱动程序可以处理所有这些设备。 还有一些读卡器,你需要读卡器的文档,看看如何操作它,它很可能会有一些块设备,比如API来访问卡,从那里它应该合理地类似于任何其他块设备操作(如果你熟悉我所说的“块设备”,数据块,比如扇区)。
"Hurd" 已经在这项工作中只有27年了,而且进展很好。。。 说真的,正如一个人展示的那样,你可以创建一个“玩具操作系统”(除非你想在你的项目上花费几十年)。如果你只是想学习一些关于操作系统架构和计算机的新知识,在我看来,你正在学习linux的源代码,并且很少阅读关于这个主题的书籍,可能会在更短的时间内给你带来更多。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 3 月前 |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 4 月前 |
![]() |
Marco · PyCharm Linux系统文件上os.stat异常 5 月前 |