通常MMU-less系统也没有MPU(内存保护单元),用户和用户之间也没有区别。内核模式。在这种情况下,假设我们有一个MMU-less系统,其中一些硬件映射到CPU地址空间,如果可以从用户空间访问所有硬件资源,那么在内核中安装设备驱动程序是否真的有意义? ?
内核代码是否可以更好地控制内存,然后是用户代码?
答案 0 :(得分:3)
是的,在没有托管ucLinux的MMU的平台上,做所有事情都是有意义的,就好像你有一个普通的嵌入式Linux环境一样。使用户应用程序和服务通过其常规接口(系统调用等)并让操作系统将这些内核请求路由到设备驱动程序,文件系统,网络堆栈等,这是一种更简洁的设计。
虽然在这些情况下内核对硬件没有更多控制权,但实际硬件只能由内核中运行的系统软件触及。不限制对硬件的访问会使调试系统重置和内存损坏几乎不可能。这种做法也使您的设计更加便携。
例外情况可能是用户模式调试二进制文件,它仅用于内部平台启动和诊断。