linux开发概述
在自学linux和嵌入式开发的过程中,我看过很多的linux设备驱动开发的视频和书籍,也调试过很多的linux的应用和驱动,总是觉得自己对于嵌入式linux的知识和认识没有形成一个体系,虽然说日常工作能够会用和调试这些驱动和应用程序,但很多时候都感觉到认识不够深入,为此,决定花时间总结和重新系统的学习linux的驱动和应用程序开发过程,形成相对应的知识体系。
01 linux学习之路
当初学习linux是工作后边摸索,边学习的过程,很多时候是需要什么就去学什么,以至于很多知识都是一知半解,也看过相关的linux书籍和视频,总结个人在学习linux的一些经验
linux市面上比较普通的学习书籍有
- 《鸟哥的Linux私房菜基础学习篇》
- 《UNIX 环境高级编程》
- 《Linux程序设计》
- 《Linux设备驱动开发详解:基于最新的Linux 4.0内核》
- 《嵌入式Linux应用开发完全手册》
相关的视频的话看过韦东山的嵌入式linux开发的系列视频,可以说这也是很多人接触linux驱动的比较详细的资料,配套的书籍是《嵌入式Linux应用开发完全手册》,同样宋宝华的也有相关的视频和书籍,配套书籍《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,对于这些视频对于新手而言真的很详细,但又很容易让人陷进去,比较难以理解,主要是没有相关的实践。
对于嵌入式,无论看过多少资料,最终还是只有通过实践和调试才能学会和掌握。
02 linux 学习资料推荐
在个人这段时间从事的工作内容上看,linux开发的阶段对应推荐的书籍,这些书籍我都看过一遍,有些书籍需要重复的巩固和实践才能掌握,按照我个人的看法,将这些资料归类为四种。
-
入门级:《鸟哥的Linux私房菜基础学习篇》《Linux 环境编程图文指南》
-
中级:《Linux程序设计》《UNIX 环境高级编程》《Linux设备驱动开发详解:基于最新的Linux 4.0内核》
-
职业级:《嵌入式Linux应用开发完全手册》《GNU_makefile中文手册》《Linux Shell核心编程指南》《Linux设备驱动开发 ((法)约翰·马迪厄》
-
专家级:各对应的协议文档
在看过这么多的资料,书籍,总的来说我个人觉得有不少资料如果从入门的角度看,《鸟哥的Linux私房菜基础学习篇》这边书是带你认识linux比较好的一本书,另一方面说的就是里面讲的内容比较浅,后来发现另一本推荐学习的的教程粤嵌的《Linux 环境编程图文指南》可能对于工作时候入门更加快速。
而对于中级一点的书籍,就是比较经典的《Linux程序设计》《UNIX 环境高级编程》《Linux设备驱动开发详解:基于最新的Linux 4.0内核》,这基本书其实讲的东西有些是重复的,其实掌握一本的内容其实差不多就能迈过这个阶段。
而对于工作得心应手的地步,需要职业级别的书籍,韦东山的《嵌入式Linux应用开发完全手册》和系列视频教程可以说是比较全面和深入的资料,里面的内容多而且细,唯一的不足时版本比较旧了,有些代码在新的linux内核上面编译会编译不过,linux的一些接口都已经淘汰了,但学习相关的思想和方法还是很有用的,学习linux还必须要掌握Makefile和shell,这两本书是比较好的书籍。
而对于驱动开发,我个人的推荐是**《Linux设备驱动开发 ((法)约翰·马迪厄》**这一本书,这本书是我看过这边多驱动开发书籍里面最浅显易懂且有逻辑性的一本书,其他的驱动开发书籍会让你越来越不懂。
如果你想要达到专家级别,你就需要去阅读各种协议的官方文档,各种外设的官方文档,里面很多是英文的,同时很多的文档都是需要花很多时间去摸索。
03 嵌入式linux 需要掌握的技能
- makefile
- shell
- linux应用开发
- 外设应用
- 网络应用
- 各种功能应用
- linux驱动开发
- 串口
- can
- spi
- i2c
- usb
- sdio
- uboot
- kernel
- 文件系统,busybox和各种工具。
接下来会花时间整理关于这些知识技能的相关文档。