学习linux驱动开发需要先学习UNIX环境高级编程这本书吗?

有人说linux驱动属于底层,而UNIX环境高级编程属于应用层,方向完全不同,但很多人都推荐先看UNIX环境高级编程再看驱动和内核,这本书好厚,如果看了完全没什么用,我就不看了

你连应用层都不懂就能搞底层吗?而且《UNIX环境高级编程》讲的不是真正意义上的应用层,它讲的是操作系统API,也就是系统调用,你去看看有哪个应用程序会直接使用系统调用的。
系统调用是比C标准库还底层的库,由操作系统直接提供,都是一些非常基础的功能。重要的是它讲述了大量的系统级编程的概念与方法,这些概念是在其他很多地方都通用的,甚至在windows下都是非常有意义的。
系统调用是内核与应用层的接口,把握住了这一层上可以写应用程序,下可以写内核模块,当然都需要深入学习。
《UNIX环境高级编程》是你学习操作系统非常好的方式(大学讲的“操作系统”完全就是扯蛋 ),多写几次fork,把内核代码中task_struct结构大概看一下,你就知道什么是进程了,还要去背那些过时的甚至是错误的概念?以后你再看内核方面的书你就会知道这些有多重要,事实上没有系统级编程的知识,你要直接看内核方面还是比较困难的(这些东西你终究还是要知道的)。
还是看你自己怎么看了,《UNIX环境高级编程》确实不讲述任何关于内核编程的东西。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-14
UNIX环境高级编程》这本书对于初学者来说还太难。建议从基础开始学习。

linux:
  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
  严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
相似回答