在lwn.net网站看到“2.6内核系列API的变化”一文,其中开始有一段中申明,内核开发者永不确保内部API是稳定的,即使在稳定版中。的确,这辛苦了内核开发者与驱动程序开发者。似乎,这与我们的常理相悖。通常,我们更愿意看到事物稳定不变,好不容易学到的一招一式,希望它尽可能地发挥其作用。
但是,当我从“2.6内核系列API的变化“一文中找到这样一段文字:
The ftrace code(2.6.29) has seen a lot of internal changes. The function tracing feature has seen a number of improvements, and the developers have added mechanisms to profile the behavior. of if statements, provide function call graphs, obtain user-space stack traces, and follow CPU power-state transitions.
欣喜!
一直希望能追踪内核的动态执行过程以及函数的调用关系,从而探究内核的执行机制,因为,我认为操作系统之根本是执行机制,一是用户程序的执行,另一是内核代码的执行,由此而引发的各种管理机制是为执行服务的。
Linux内核有两种:稳定的和处于开发中的。稳定的内核具有工业级的强度,可以广泛的应用和部署。新推出的稳定内核大部分都只是修正了一些Bug或是加入了一些新的设备驱动程序。相反地,处于开发中的内核中许多东西变化得都很快。而且由于开发者不断试验新的解决方案,内核常常发生剧烈的变化。
仔细阅读Linux内核变化的相关文档,体会其改变所发生的缘由(重点思考),欣然接受“变”所带来的活力!