需要自选操作系统的工程师,首先得对各种不同操作系统的内核调度策略有所了解,看看是否适合自己的项目应用。若这方面的知识不够,建议精读一两本关于操作系统的经典教材,以加深对操作系统原理的理解。对于准备使用Linux类型的、有复杂文件系统的、需要MMU硬件支持的非RTOS,建议首先认真读懂Andrew S. Tanenbaum所著的《操作系统设计与实现》一书。该书自1987年问世以来,至今已出到第3版,讲的是一个专门用于教学的、由Unix简化而来的Minix范例操作系统。正是这本书触发了LinusB. Torvalds的灵感,写成了Linux内核,从而被称作Linux之父。故该教材被公认为Linux原理的权威教材,非常值得细读。顺便提一句,Linux是当前最好的非实时开源操作系统,似乎没有之一。非要把它改成实时的所谓RT-Linux,我不认为是一个好的做法,不如直接选用那些本来就是为实时系统设计的RTOS。
对于拟选用嵌入式RTOS的工程师,有必要精读一本Jean J. Labrosse 所著的《嵌入式实时操作系统 μC/OS-II》或《嵌入式实时操作系统 μC/OS-III》,这两个操作系统都可以直接拿来使用。对于ARM Cortex-M单片机,如果使用Cortex-M3及以上,应使用μC/OS-III,而对于精简掉CLZ指令的Cortex-M0/M1/M0+等,则仍建议使用μC/OS-II。Cortex-M单片机中的CLZ指令就是专门为优先级算法提供的硬件指令,所用单片机是否带有专门为操作系统设计的硬件指令,也是选择操作系统时要考虑的。读书的同时,特别要注意阅读并欣赏一下书中所附源代码,至少是代码的核心部分。上述推荐读物中的源码写作风格经典规范,注释清晰易懂,非常漂亮,值得学习。操作系统要选好,更要用好。