当前位置:  技术问答>linux和unix

请大家帮我指导下学习规划,谢谢

    来源: 互联网  发布时间:2016-01-31

    本文导语:  说来惭愧,小弟28了,想沉下心来作技术,想做一些unix/linux 底层驱动开发方面的学习,苦于无从下手,所以请教大家给小弟指点一下大致的学习步骤和建议,以前有一些浅薄的c语言毛皮基础,最近把《c primer plus》...

说来惭愧,小弟28了,想沉下心来作技术,想做一些unix/linux 底层驱动开发方面的学习,苦于无从下手,所以请教大家给小弟指点一下大致的学习步骤和建议,以前有一些浅薄的c语言毛皮基础,最近把《c primer plus》精读了几遍,目前正在看《unix环境高级编程》,和《内核情景分析》,看的是似懂非懂,不知道除了这些还需要做哪方面的补充和精进,学习环境的搭建还需要哪些设备?

|
做底层驱动说简单也很简单,设置一些寄存器状态什么的,封几个接口加到系统里面就可以了。说难也很难,要真正为什么这么做,可能需要把操作系统原理看透了,

熟悉操作系统工作原理,建议从深处学起,边做项目边研究系统内核,了解操作系统的工作原理,

|
我说说我个人的看法.
就事论事,你想学unix/linux 底层驱动开发。底层驱动并不代表Everything. Linux内核是个巨大的东西,看过understanding Linux Kernel的人知道这本书有多厚,但它的作者却说这本书大部分内容是有关内存管理的,而且只是1/3。你应该只关心Linux的中断响应处理,IO总线管理,模块等。其实作驱动这些甚至都不需要非常了解,只要知道驱动是外部世界同计算机系统的接口就行了。

你需要掌握汇编语言(AT&T)/C语言。
你需要了解这个驱动所代表的硬件的特性,就像楼上讲的,绝大多数时候是了解这个硬件的寄存器功能和如何使用这些寄存器完成数据的输入输出。linux内核源中有大量的例子可以模仿,学习,都以模块形式存在。
如果你做过驱动开发,也许你并不会喜欢它,因为它很枯燥,置寄存器,从IO空间地址读数据,或写数据。然后再封装成文件的基本操作函数形式,read,write,open,close,ioctl,在做几个内核模块所需的标准函数接口 等等等等

《unix环境高级编程》对你的帮助不会太大,它主要是用户空间程序的编程方法。
《内核情景分析》我想你也不必啃了,最多看看IO部分。
有一本也许会对你有很大帮助。

|
《unix环境高级编程》和《内核情景分析》最好完全看懂,似懂非懂没有意义。有问题的话一定要搞清楚。
还有一本书推荐以下:The Art of Unix Programming

|
理论上底层驱动有C语言基础和ldd3,有阅读英文芯片资料的能力就能够胜任,但是学计算机的都知道,很多知识都是相关的,一些操作系统,汇编,硬件相关的知识对底层驱动的编写都有很大帮助。

一本ldd3足够你入门驱动,可以自己编写上面的scull,只需要pc,不需要其他设备,先熟悉驱动开发的流程,然后再寻找一些简单的设备进行驱动的开发,在实践中检验真理。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁用过lttng,帮忙指导指导
  • 不知道那位写过显示进度条,进来指导一下!
  • 请高人指导:RedHat Linux 9.0 下怎样输入中文?
  • 如何 在linux 下使用 pvm 请高手指导 不知道的也来学习!
  • 求:JAVA安装程序和Linux开发中的指导!
  • 各位 请指导??
  • 关于XDR,高手指导。
  • 请大牛指导程序思路
  • linux学习指导
  • Linux入门,求指导?? iis7站长之家
  • 求指导。。。怎么编solaris脚本
  • Linux入门,求指导??
  • 求指导:linux环境编程能干什么
  • 内核学习,请达人指导
  • 我是一名初学者,各位给点指导!
  • 哪位高手能指导一下cvs命令的用法?
  • 小弟初学UNIX,想用ODBC访问INFORMIX,该怎么做?请指导一下吧
  • 请高手指导Jsp新手入门
  • POSTFIX能收不能发邮件,请高手指导!!
  • 谁有solaris8安装手册或指导,劳驾仍上来,多谢


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3