需求 —— 指导我前进
搞了很久的技术工作,现在终于知道了 要理解技术的发展,一些技术细节的实现 首要的是理解需求 理解了需求 也就理解了 问题的绝大部分了。以linux程序设计为例 我们面对的是应用层软件 为的是满足我们客户的一个需求,而各类库以及 api、系统调用等为的是满足应用层软件的需求而不断的演化的。 因此 只要需求不变,各类平台api,调用接口和库就不会变化,这也就是会出现 posix 标准的根本原因,然而,可以长期保持稳定,此基础便是 我们的需求有着一脉相承的性质。 然而,可以说,系统调用接口的设计就是为了满足应用程序的需求,而系统调用的功能又是由内核 和驱动模块提供的,因此,不理界驱动程序 甚至不理界 应用层的软件需求,我们也一样无法理解为什么内核会设计成这样。当我们在开发时,读linux源代码时,一定要搞清需求,才有可能深入的认识问题,思考问题的方法是相当关键的。现在 我正在研究select 和poll 系统调用,如果没有应用层的实际需要,我不会想到为什么要实现这几个系统调用,同时,不明白 系统调用的方式也是难以理解模块驱动在实现这几个系统调用的时候怎么设计 和 为什么要如此设计。 因此,《unix/Linux编程实践教程》的巨大价值在于她 让我理解了 用户的需求,也就是应用软件的需求,引出了系统调用 的形式和方式。 而《APUE》让我搞清楚 系统调用的 型式和利用中的一些细节,并且用例子来比较和对比这些细节,因此来说,难以记忆。而ldd2 的书关于系统调用的内核实现,更加错综复杂,但是归根结底,还是系统调用的需求和应用软件的需求,搞清楚了需求,也就清楚了设计和实现的方式。 天哪,我终于发现我看这些书和资料时候比较慢的病因了哦! 愿我下面能走好!!!!尽快赶上吧:) 同时,太谢谢《unix/Linux编程实践教程》,让我明白太多道理了:)