刘毅同学

About Python, MySQL & Life

《程序员的自我修养》小结

| Comments

应用开发程序员面向的是软件用户;系统程序员面向的是程序员。
应用程序使用OS提供的“抽象”的硬件——应用程序接口使用实际的硬件——用来计算的CPU,用来计时的计时器,用来输入的键盘、触摸屏、鼠标、麦克风,用来显示屏幕,用来发声的扬声器,用来保存数据的硬盘,用来和他人通信的网络等等。如果没有操作系统、没有开发工具链,那么应用的开发将回归到“原始社会”。

OS存在于每一个程序之中

也许你和我一样,都有一个疑问:自己编写的程序编译之后就能运行了,完全没有感觉到操作系统的存在,告诉自己操作系统只是提供了应用程序运行的平台,如同自己制作的蛋糕拿到市场售卖一般。
其实,你错了。操作系统存在于每一个程序之中。
参考 Anatomy of a Program in Memory 的图示

虚拟空间的分布

每一个操作系统上运行的原生程序,在它的虚拟内存中都有1G~2G是不属于自己的,即所谓的“kernel space”

Comments