嵌入式Linux的一点学习心得
转载Linux本身是一个发展中的操作系统。它有很多前期不完善的机制,被后代用新的机制代替。但是老的机制不可能一下子就消亡,因此由于“历史原因”,会产生很多新旧机制共存的情况。而且Linux的教科书数不胜数,那些老的经典教科书的某些章节其实在技术上已经有点过时。这实际上为我们初学者带来了麻烦:一方面,我们要同时掌握新旧两种机制;另一方面,拿设备驱动的使用来说,新旧设备驱动的使用方式也不同,这在初学时会带来一些困扰。因此在学习时,不要抱住所谓“经典”的教科书不放,多看看外面的世界会比较好。如果要举一个例子来佐证的话,我就会举 sys 文件系统的例子:
“sysfs 本身并不是一项很新的技术,但笔者发现,虽然 sysfs 从2003年诞生至今已有5年,但人们对 sysfs 依然缺乏了解;一个很重要的原因可能是缺乏文档, Linux 内核方面最重要的理论书籍“Linux 设备驱动第3版”和“理解 Linux 内核第2版”都诞生于2003年前后,并且从那以后尚未有再版过,其它一些重要文章则多对 sysfs 与 proc 相提并论且举例常常只有 proc,这导致了 sysfs 的很多重要概念至今仍鲜为人知。”
“sysfs 给应用程序提供了统一访问设备的接口,但可以看到, sysfs 仅仅是提供了一个可以统一访问设备的框架,但究竟是否支持 sysfs 还需要各设备驱动程序的编程支持;在 2.6 内核诞生 5年以来的发展中,很多子系统、设备驱动程序逐渐转向了 sysfs 作为与用户空间友好的接口,但仍然也存在大量的代码还在使用旧的 proc 或虚拟字符设备的 ioctl 方式;如果仅从最终用户的角度来说, sysfs 与 proc 都是在提供相同或类似的功能,对于旧的 proc 代码,没有绝对的必要去做 proc 至 sysfs 的升级;因此在可预见的将来, sysfs 会与 proc, debugfs, configfs 等共存很长一段时间。”——www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
另外,各种设备驱动也是很多不同的人在不同时间写的,尽管linux规定了一些框架规则,但使用方式在细节上难免有差别,因此只有多阅读源码或说明文档才能解决问题。我们在编写自己的应用程序和驱动程序时,也要尽可能遵照最新标准来写,这样方便与别人交流和共享。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
嵌入式系统开发笔记
嵌入式开发学习笔记
linux 引导程序 寻址 -
【嵌入式linux】如何学习嵌入式linux
作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这篇文章来回答一下。在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。...
嵌入式linux linux 嵌入式 linux系统 嵌入式linux开发 -
学习嵌入式linux关键知识点
学习嵌入式linux关键知识点总结
linux 职场 驱动 休闲 嵌入式系统 -
在嵌入式软件中使用断言的一点想法
嵌入式软件中的断言应该分成三个级别,而不是仅有启用和关闭两种。1启用断
嵌入式软件 断言 #define 开发人员 嵌入式系统 -
Go学习的一点心得
比如说下面这段程序for i, tl := 0, len(t); i < tl; i++{ if t[i].method != httpMethod{ contin
golang 开发语言 后端 i++ 全局变量