作为用户程序的设备驱动程序是如何被其它用户程序调用的?

刚写了个82573的驱动,QNX给了一个函数提升自己线程的IO权限。
同上,Startup算操作系统的话,BIOS也算上吧。
上周还写了一个QNX x86下通过串口下载ifs文件并引导的IPL,呵呵,已经成功引导了QNX 6.4.0。只要在我的代码里加几句,经过我的IPL引导的QNX的GDT表就完全暴露在应用程序眼前。

这不是QNX的缺点,因为所有内核不自己启动保护模式的操作系统都会面临IPL程序的安全漏洞带来的整个系统的安全机制都不再起作用的问题。

我的意思是不要把操作系统神圣化。
操作系统只是工具,没有操作系统的痛苦只有当你为QNX写个IPL时才会感觉到。
上周写IPL时,没有系统,printf都不能用,只好用BIOS中断打印调试信息。
心形符号表示数字3,要看懂调试信息还得准备ASCII表翻译。

只有当真正QNX起来后才觉得多幸福啊,printf终于可以用了。

没有写过IPL的人,不会懂得真正去尊重QNX。

QNX的优点在于系统调用时间短,很多线程同步操作不像其它操作系统需要进入
内核态。这是我现在意识到的QNX比其他操作系统的优点。
另一个,就是QNX对POSIX标准的很好支持,对工程化很有意义。

至于驱动以及安全保护,真没觉得QNX跟linux有什么太大不同。