程序员“三大浪漫”探讨

灌水乐园
2 1330


chenggang: 感觉三大块确实有道理:工具链(包括编译器,虚拟机等),操作系统,图形系统......

chenggang: 个人目前觉得,图形系统包括:

1,显示(主要是充分使用硬件发挥性能)。

2,算法(各类图形学算法)。

3,框架(例如安卓与linux窗口系统的融合)。

操作系统,其实主要以内核为主。

以上只是个人觉得...


Jack: 操作系统内核主要是:

1,对上应用层api的易用性、扩展性。

2,对底层硬件平台管理框架的普遍适用性。

3,应用无关层、硬件无关层的算法实现。这3大板块吧。

(菜鸟浅见)


chenggang: 个人觉得,这么说可能更适合整个儿操作系统,而不是内核(而且第三条也要修改一下,第二条也要修改一下)。。。因为,内核与上层的分解点是内核态与用户态,,,但对于不同的操作系统,其逻辑功能相似的内容,有的是在用户态实现的,有的是在内核态实现的。。。而且还有不少内容实际上符合以上条件,但都是在用户态实现的(例如各类中间层的通用库,基本可以认为也符合以上三点)。。。内核的hal层以及设备驱动实际上都是硬件相关的。。。而且用户态也有不少通用的后台服务是第三方提供的,但却符合以上三点。。。个人觉得。。。

chenggang: 关于第二条,个人觉得可以更改为:屏蔽底层硬件框架,对应用提供统一的硬件接口和通道。。。关于第三条,个人觉得可以更改为:通用处理器端,应用无关层的,默认的,基本软件实现。。。

chenggang: 整体来看,一句话,从技术的角度来说明通用操作系统,个人觉得可以是:在通用处理器端,实现整体框架,来对应用层,中间层,内核层设备相关部分,提供易用的,可扩展的API,并提供默认的基本实现。

chenggang: 哦。前面关于第二条,有打字错误。关于第二条,个人觉得可以更改为:屏蔽底层硬件框架,对通用处理器端硬件相关部分,提供统一的软件接口和通道(包括内核与设备,设备与应用)。。。


Jack:嗯。谢谢陈老师指点。第1点,以内核态和用户态运行区分来说,也要修改一下。应用层调用的posix api都是在libc层实现的,libc层封装了内核0x80的各种中断,在执行中断之前是运行在用户态的,内核只提供了中断服务。


chenggang: 客气。。。以上内容,只是我个人的想法。。。有可能不严谨不全面。。。欢迎大家沟通交流。。。


Zvi: 引导思考方向 ,这是主要的。硬件也有“接口规范”和“电气规范 ”,只是比起软件方面,更难统一抽象。