嵌入式Linux的一点学习心得

原创 2013年12月04日 20:32:01
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设备模型——设备驱动模型和sysfs文件系统解读

本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的。在分析过程中,本文将以platform总线和spi主控制器的...
  • yj4231
  • yj4231
  • 2012年07月29日 19:34
  • 11360

嵌入式Linux设备驱动开发(二)

上一篇中介绍到设备驱动如何匹配设备以及绑定设备的,在Linux系统下进行注册,这里将继续介绍probe函数的功能。 5、probe函数 Probe()函数必须验证指定设备的硬件是否真的存在,pro...

给学习嵌入式Linux的新手的一点建议

很多新手学习嵌入式Linux不知道要买什么样的开发板,于是到淘宝一搜ARM开发板,发现开发板真的好多啊,ARM9的TQ2440、JZ2440...ARM11的OK6410、TQ6410...还有Cor...

学习嵌入式linux开发的一点建议

对于是应该学嵌入式Linux(嵌入式Linux培训 嵌入式Linux教程 )应用开发呢,还是系统开发,又或者是驱动开发呢?希望下面的内容能给我们这些初学者有帮助。   一、编程比较熟悉,只关心系...

嵌入式学习方法-----关于arm+linux编程开发的学习心得

由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinC...

嵌入式学习心得

  • 2013年05月06日 17:26
  • 92KB
  • 下载

SQLite的一点学习心得

1.主键的设计原则: (1)主键应当对用户是没有意义的 (2)永远不要更新主键 (3)主键不应包含动态变化的数据 (4)主键应当由计算机自动生成 2. 创建表 CREATE TABLE if ...
  • ft6206
  • ft6206
  • 2016年10月22日 20:36
  • 120

关于C#中AutoResetEvent和ManualResetEvent的一点学习心得

C#中的AutoResetEvent和ManualResetEvent用于实现线程同步。其基本工作原理是多个线程持有同一个XXXResetEvent,在这个XXXResetEvent未被set前,各线...
  • lslxdx
  • lslxdx
  • 2011年04月02日 20:44
  • 1014

mysql存储引擎的一点学习心得总结

首先我们应该了解mysql中的一个重要特性——插件式存储引擎,从名字就可以看出在mysql中,用户可以根据自己的需求任意的选择存储引擎,实际上也是这样,即使在同一个数据库中,不同的表也可以使用不同的存...

[转载]关于文件系统和磁盘驱动的一点学习心得

原文地址:http://hi.baidu.com/weolar/blog/item/34a8ff19be316572dbb4bd4f.html 今天看到sudami同学问起这些东西,好久没搞了,很生疏...
  • wowbell
  • wowbell
  • 2011年03月08日 10:40
  • 1343
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式Linux的一点学习心得
举报原因:
原因补充:

(最多只允许输入30个字)