概述
- 不能访问c库也不能访问标准的c头文件
- 必须使用GNU C
- 内核编程时缺乏像用户空间那样的内存保护机制
- 内核编程时难以执行浮点运算
- 内核给每个进程只有一个很小的定长堆栈
- 由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发
- 要考虑可移植性的重要性
无libc库抑或无标准头文件
对内核来说,完整的c库——哪怕是它的一个子集,都太大而且太低效了。
内核源代码文件不能包含外部头文件,就像它们不能用外部库一样。
GNU C
没有内存保护机制
如果一个用户程序试图进行一次非法的程序访问,内核就会发现这个错误,发送SIGSEGV信号,并结束整个进程。
此外,内核中的内存不分页。也就是说,每用掉一个字节,物理内存就减少一个字节。