一个安全的软件架构体系中,如果要保证绝对的安全,需要做到:不向下读,不向上写。也就是不允许内核态读用户态的数据,也不允许用户态向内核写入数据。
显然这种要求在实际应用场景中是做不到的,所以也不存在绝对的安全。
同样的道理,即使把驱动放到用户态,内核还是要去操纵用户态的驱动的,并非完全隔离,所以一旦某个驱动被攻陷,黑客仍然有机会渗透到内核中,安全性上并没有太大的区别。用户态驱动的好处,更多的是面向操作系统开发者的,用户态驱动里的一些小bug不至于影响整个OS的运行,大bug一样会挂。
至于渗透攻击的难度方面,我觉得没什么明显的差别。微内核的渗透是需要比宏内核多一些操作(假设漏洞在用户态驱动上),但用户态的驱动因为运行在用户态,所以保护机制(隔离效果)也更差,也更容易被黑客攻击。你看到某一部分变困难了,但要知道另外一部分也变得更简单了。
另外,题主在另外的一个回答的评论是错的,VxWorks不是微内核,微内核跟代码规模没关系。