Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9395870
  • 博文数量: 1747
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20060
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1747)

文章存档

2024年(23)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类:

2010-10-15 09:38:15

  • 目前,Linux软件工程师大致可分为两个层次:

      (1)Linux应用软件工程师(Application Software Engineer):主要利用C库函数和Linux API进行应用软件的编写;

      (2)Linux固件工程师(Firmware Engineer):主要进行Bootloader、Linux的移植及Linux设备驱动程序的设计。

      一般而言,固件工程师的要求要高于应用软件工程师的层次,而其中的Linux设备驱动编程又是Linux程序设计中比较复杂的部分,究其原因,主要包括如下几个方面:

      (1)设备驱动属于Linux内核的部分,编写Linux设备驱动需要有一定的Linux操作系统内核基础;

      (2)编写Linux设备驱动需要对硬件的原理有相当的了解,大多数情况下我们是针对一个特定的嵌入式硬件平台编写驱动的;

      (3)Linux设备驱动中广泛涉及到多进程并发的同步、互斥等控制,容易出现bug;

      (4)由于属于内核的一部分,Linux设备驱动的调试也相当复杂。
  • linux的内部代码是局限于少数的程序员,他们具有必要的技能,能够检查/理解/修改/添加代码。
  • 设备驱动通过linux内核内部定义好的编程接口封装设备的工作流程,通过标准的编程接口对外用户提供标准化应用。 而这些标准的对外编程接口适合具体设备驱动是独立的。
  • 驱动模块是可以动态加载的,可以于内核的其他部分分开建立。
  • 书中主要知道如何编写驱动和利用内核的相关部分,而不会指定具体的设备。
阅读(1259) | 评论(0) | 转发(0) |
0

上一篇:前言

下一篇:1.1 驱动程序的角色

给主人留下些什么吧!~~