linux 设备驱动第三版 linux字符设备驱动开发

大家好,感谢邀请,今天来为大家分享一下linux 设备驱动第三版的问题,以及和linux字符设备驱动开发的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

GitHub 上有哪些值得推荐的开源电子书

语言无关类

操作系统

鸟哥的Linux私房菜(简体)

Linux系统高级编程

The Linux Command Line(中英文版)

Linux设备驱动(第三版)

深入分析Linux内核源码

UNIX TOOLBOX

Docker中文指南

Docker——从入门到实践

FreeRADIUS新手入门

Mac开发配置手册

FreeBSD使用手册

Linux命令行(中文版)

智能系统

一步步搭建物联网系统

web服务器

Nginx开发从入门到精通(淘宝团队出品)

版本控制

Git教程(本文由@廖雪峰创作,如果觉得本教程对您有帮助,可以去 iTunes购买)

git–简易指南

猴子都能懂的GIT入门

Git参考手册

Pro Git

Git Magic

GotGitHub

Git Community Book中文版

Mercurial使用教程

HgInit(中文版)

沉浸式学 Git

Git-Cheat-Sheet(感谢@flyhigher139翻译了中文版)

GitHub秘籍

NoSQL

NoSQL数据库笔谈(PDF)

Redis设计与实现

Redis命令参考

带有详细注释的 Redis 3.0代码

带有详细注释的 Redis 2.6代码

The Little MongoDB Book

The Little Redis Book

Neo4j简体中文手册 v1.8

Neo4j.rb中文资源

MySQL

MySQL索引背后的数据结构及算法原理

项目相关

持续集成(第二版)(译言网)

让开发自动化系列专栏

追求代码质量

selenium中文文档

Joel谈软件

约耳谈软体(Joel on Software)

Web

关于浏览器和网络的 20项须知

前端知识体系

浏览器开发工具的秘密

Chrome开发者工具中文手册

Chrome扩展开发文档

Grunt中文文档

移动Web前端知识库

正则表达式30分钟入门教程

前端开发体系建设日记

移动前端开发收藏夹

JSON风格指南

HTTP接口设计指北

前端资源分享(一)

前端资源分享(二)

前端代码规范及最佳实践

w3school教程整理

大数据

大数据/数据挖掘/推荐系统/机器学习相关资源

编程艺术

程序员编程艺术

每个程序员都应该了解的内存知识(译)【第一部分】

取悦的工序:如何理解游戏(豆瓣阅读,免费书籍)

其他

OpenWrt智能、自动、透明翻墙路由器教程

语言相关类 AWK

awk程序设计语言

C/C++

C++并发编程指南(@傅海平ICT)

Linux C编程一站式学习(宋劲杉,北京亚嵌教育研究中心)

CGDB中文手册

100个gdb小技巧

100个gcc小技巧

ZMQ指南

How to Think Like a Computer Scientist(中英文版)

跟我一起写Makefile(PDF)

GNU make中文手册

GNU make指南

Google C++风格指南

C/C++ Primer(by@andycai)

简单易懂的C魔法

Cmake实践(PDF版)

C++ FAQ LITE(中文版)

C++ Primer 5th Answers

CSS/HTML

学习CSS布局

通用 CSS笔记、建议与指导

CSS参考手册

Emmet文档

前端代码规范(腾讯alloyteam团队)

Dart

Dart语言导览

Fortran

Fortran77和90/95编程入门

Java

实时 Java系列

Apache Shiro用户指南

使用 Eclipse和 Java SE 6创建独立 Web Services应用程序

第 1部分: Web Services服务端应用程序

第 2部分: Web服务客户端应用程序

JavaServer Faces 1.2入门

第 1部分:构建基本应用程序

第 2部分: JSF生命周期、转换、检验和阶段监听器

用 Eclipse Europa进行 Web开发

第 1部分: Eclipse Java EE

第 2部分: PHP开发工具

第 3部分: Ruby Development Toolkit和 RadRails

使用 JavaServer Faces构建 Apache Geronimo应用程序

第 1部分:使用 Eclipse和 Apache MyFaces Core构建基本的应用程序

第 2部分:在 JavaServer Faces中使用 Tomahawk

第 3部分:使用 ajax4jsf添加 Ajax功能

第 4部分:使用 Apache Trinidad组件扩展 JSF

第 5部分:将 JSF应用程序与 Spring集成

Apache Geronimo和 Spring框架

第 1部分:开发方法学

第 2部分:构建第一个应用程序

第 3部分:集成 DAO与 ORM

第 4部分:混合使用 Spring AOP和 Spring Web Flow

第 5部分: Spring MVC

第 6部分: Spring MVC:使用 Web视图技术

终极 mashup—— Web服务和语义 Web

第 1部分:使用与组合 Web服务

第 2部分:管理 Mashup数据缓存

第 3部分:理解 RDF和 RDFs

第 4部分:创建本体

第 5部分:切换 Web服务

Jersey 2.x用户指南

MyBatis中文文档

JavaScript

Google JavaScript代码风格指南

Airbnb JavaScript规范

JavaScript标准参考教程(alpha)

Javascript编程指南(源码)

javascript的 12个怪癖

JavaScript秘密花园

JavaScript核心概念及实践(PDF)(此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)

《JavaScript模式》翻译,此书中文版有售,但是纸质书翻译的还没有这个版本翻译的好

命名函数表达式探秘(注:原文由为之漫笔翻译,原始地址无法打开,所以此处地址为我博客上的备份)

学用 JavaScript设计模式(开源中国)

深入理解JavaScript系列

ECMAScript 6入门(作者:阮一峰)

jQuery

jQuery解构

简单易懂的JQuery魔法

How to write jQuery plugin

Node.js

Node入门

七天学会NodeJS

Nodejs Wiki Book(繁体中文)

express.js中文文档

koa中文文档

使用 Express+ MongoDB搭建多人博客

Express框架

nodejs文档

Node.js包教不包会

Learn You The Node.js For Much Win!(中文版)

Node debug三法三例

underscore.js

Underscore.js中文文档

backbone.js

backbone.js入门教程(PDF)

Backbone.js入门教程第二版

Developing Backbone.js Applications(中文版)

AngularJS

AngularJS最佳实践和风格指南

AngularJS中译本

AngularJS入门教程

构建自己的AngularJS

在Windows环境下用Yeoman构建AngularJS项目

zepto简明中文手册

Sea.js

Hello Sea.js

CoffeeScript

CoffeeScript Cookbook

The Little Book on CoffeeScript中文版

ExtJS

Ext4.1.0中文文档

Chrome扩展及应用开发

JavaScript入门教程

PHP

PHP调试技术手册(PDF)

XDebug 2中文手册(译)(CHM)

PHP之道

PHP最佳实践

PHP安全最佳实践

深入理解PHP内核

PHP扩展开发及内核应用

CodeIgniter用户指南

Laravel4中文文档

Laravel入门

Symfony2中文文档(未译完)

Phalcon中文文档(翻译进行中)

YiiBook几本Yii框架的在线教程

简单易懂的PHP魔法

swoole文档及入门教程

iOS

iOS开发60分钟入门

iOS7人机界面指南

Google Objective-C Style Guide中文版

iPhone 6屏幕揭秘

Apple Watch开发初探

马上着手开发 iOS应用程序

网易斯坦福大学公开课:iOS 7应用开发字幕文件

Android

Android Design(中文版)

Google Android官方培训课程中文版

Android学习之路

Python

小白的Python教程

简明Python教程

零基础学Python

Python 2.7官方教程中文版

Python 3.3官方教程中文版

深入 Python 3

PEP8 Python代码风格规范

Google Python风格指南中文版

Python入门教程(PDF)

Python的神奇方法指南

笨办法学 Python(PDF版下载)

Django文档中文版

Django最佳实践

The Django Book中文版

web.py 0.3新手指南

Web.py Cookbook简体中文版

Dive Into Python中文版

Bottle文档中文版(需翻墙)

Flask文档中文版

Jinja2文档中文版

Werkzeug文档中文版

Flask之旅

Introduction to Tornado中文翻译

Python自然语言处理中文版(感谢陈涛同学的翻译,也谢谢@shwley联系了作者)

Python绘图库 matplotlib官方指南中文翻译

Scrapy 0.25文档

ThinkPython

Ruby

Ruby风格指南

Rails风格指南

笨方法学 Ruby

Ruby on Rails指南

Ruby on Rails实战圣经

Ruby on Rails Tutorial原书第 2版(本书网页版免费提供,电子版以 PDF、EPub和 Mobi格式提供购买,仅售 9.9美元)

编写Ruby的C拓展

Ruby源码解读

Shell

Shell脚本编程30分钟入门

Go

Go编程基础

Go入门指南

学习Go语言(PDF)

Go Web编程(此书已经出版,希望开发者们去购买,支持作者的创作)

Go实战开发(当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者捐赠,以鼓励作者的继续创作)

Network programming with Go中文翻译版本

Groovy

实战 Groovy系列

LaTeX

一份其实很短的 LaTeX入门文档

一份不太简短的 LATEX 2ε介绍(PDF版)

LISP

ANSI Common Lisp中文翻译版

Lua

Lua编程入门

Haskell

Real World Haskell中文版

R

R语言忍者秘笈

Scala

Scala课堂(Twitter的Scala中文教程)

Effective Scala(Twitter的Scala最佳实践的中文翻译)

Scala指南

Swift

The Swift Programming Language中文版

Perl

Modern Perl中文版

Perl程序员应该知道的事

Prolog

笨办法学Prolog

Vim中文文档

Vimscript

笨方法学Vimscript中译本

Vim中文文档

读书笔记及其它读书笔记

编译原理(紫龙书)中文第2版习题答案

把《编程珠玑》读薄

Effective C++读书笔记

Golang学习笔记、Python学习笔记、C学习笔记(PDF)

Jsoup学习笔记

学习笔记: Vim、Python、memcached

图灵开放书翻译计划–C++、Python、Java等

蒂姆·奥莱利随笔(由译言网翻译,电子版免费)

Octave入门(PDF版)

SICP解题集

精彩博客集合

正则表达式简明参考

学习嵌入式驱动前需要掌握哪些知识

嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。

具体步骤如下:

1、《C语言》第二版谭浩强;《C程序设计语言》第二版徐宝文译机械工业出版社

你能区分开指针数组和数组指针吗?你知道函数指针吗?

你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?

2、《数据结构》C语言版黄国愉、叶乃青编清华大学出版社

你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?

3、《实用C++程序设计》第二板中国电力出版社 Steve_Oualline著

此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。

4、学习单片机,最好能找个前辈带一带。

你能用51单片机做出一样实际的东西吗?即使它再简单!

要注意加深对中断的理解。

5、学习ARM单片机。

(1)、细读《ARM微控制器基础与实战》周立工编写(注:即使你不用书中的开发板)

(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf

6、学习uCOS!!操作系统。

(1)、细读《嵌入式实时操作系统uC/OS-!!》第二版召贝贝译

你能把uCOS!!移植到自己的平台上吗?

(2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序

7、熟悉Linux环境,学习Linux环境编程,学习交叉编程

(1)、细读《linux命令大全.pdf》

(2)、细读《GNU Make使用手册(中译版).pdf》

(3)、学习创建交叉编程环境.

8、学习Linux操作系统。

(1)、《UNIX环境高级编程》

(2)、细读“joyfire笔记”,可在“www.qianrushi.com”网站的好书下载栏目获取

(3)、细读《linux内核完全注释》

(4)、细读《understanding the linux kernel 2》

(5)、利用源代码阅读利器工具”Source Insight”进行真正的linux内核原码刨析

(6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序

9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》

学习linux底层驱动开发有什么经典的参考书

结构、操作系统、体系结构、编译原理、计算机网络你全修过

我想大概可以分为4个阶段,水平从低到高

从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码

其中学习linux常用命令时就要学会自己编译内核,优化系统,调整参数

安装和常用命令书太多了,找本稍微详细点的就ok,其间需要学会正则表达式

系统编程推荐《高级unix环境编程》,黑话叫APUE

还有《unix网络编程》

这时候大概还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好

内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发

参考书如下《linux device drivers》,黑话叫ldd

《linux kernel development》,黑话叫lkd

《understading the linux kernel》,黑话叫utlk

《linux源码情景分析》

这四本书为搞内核的必读书籍

最后,第三阶段和第四阶段最重动手,空言无益,光看书也不罩,不动手那些东西理解不了

学习linux/unix编程方法的建议

建议学习路径:

首先先学学编辑器,vim, emacs什么的都行。

然后学make file文件,只要知道一点就行,这样就可以准备编程序了。

然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。

如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。

然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。

如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。

对于几本经典教材的评价:

《The C Programing Language》K&R经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。

《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。

《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。

《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。

《用TCP/IP进行网际互连》Douglus.E.Comer一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。

《Operating System- Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会

有一个清晰的认识。

《Linux Device Driver》2e,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。

阅读剩余
THE END