嵌入式Linux入门与实践 - Embedded Linux Learning and Practice

迟思堂工作室 李迟

如果出现此行文字,则说明本书还没有完稿,诸多地方还在编写、修改、审校中。敬请注意。
左侧目录如无超链接,说明此章节暂未编写。

为什么写这本书

在正式开始之前,先花一点时间写写笔者学习的经历。我是计算机专业,因此,模拟电路、数字电路、操作系统原理、数据库原理、编译原理、计算组成原理、计算机体系结构、数据结构等等课程,都是必修课。我虽然都不精通,但起码是学习了。

我从大二开始就已经接触51和AVR单片机,当时机缘巧合,由同专业的同学——也是我老乡带我开始的。然后开始画板、做板、焊板、写程序这些路子,前后陆续接触大约一两年时间,这些经历对于自学嵌入式Linux打下很好的基础。——事实上,在我开发单片机时,我已经计划好要学嵌入式,而且是偏向软件方向。同时我也开始安装Linux,自己捣鼓,包括虚拟机安装、物理机安装。因为考试和困难放弃一段时间,但最后还是继续。

大三在编译原理实验课堂时,偷偷上网买了一块ARM9的开发板,自己捣鼓(不用“研究”,是因为以纯粹的门外汉去进行的)uboot、内核、根文件系统。本着不服输的精神,虽然一度放弃,但还是坚持下去。

毕业时慢慢摸到一些门道。但此时技术还不够,代码量还不够,后来工作多年,大量接触各式不同的技术,虽然并没有很深入,但足够养成习惯:解决问题、研究新技术的方法和习惯。

自2008年第一次接触Linux,断断续续自学。看过很多书,走过很多弯路。

综上,我走的路子概括为:单片机-->使用Linux-->嵌入式Linux(u-boot->kernel->rootfs)。软件知识:基础必修课->linux环境编译->Linux驱动。

从上文可以看到,笔者是作为计算机专业的学生而进入嵌入式Linux领域的。但并不是说一定要在学校学习那些课程才能入门。无论学习什么知识,都是靠自己进行的,但有了过来人指点、带你入门,往往省时省力很多——而这正是本文的目的。

市场上已经有很多嵌入式Linux的入门书籍了,这里不对这些书籍做有意或无意的评价。嵌入式Linux包罗万象,以区区不才之能力,是不可能面面俱到的。因此,本书将根据笔者自学及工作经验,尽力尝试去写一写。而写这本书,也当是自己的一个修炼历程。

本书使用的环境、代码

本书宿主机为ubuntu 16.04 64bit系统,u-boot、内核和根文件系统等嵌入式实验环境则使用qemu模拟器,另外还使用一款x86平台的板子(芯片为n3160)。 在选择实验平台时想了很久,和几位好友讨论了,总有不同的看法,无法达到一致。最后,出于便捷目的,根据实际情况使用不同的平台,但书中尽量避开特定平台的限制。
本书排版约定如下:

  • 命令行使用“$”表示,而一些以root权限执行的,统一加上sudo。使用“#”作为命令的注释。因为root权限的shell提示符也是“#”,为了避免混乱,书中做此约定。但是在实际操作时,大家可以使用sudo -s切换为root用户。
  • 书中代码均有标行号,以方便行文表述。但是代码行数少的除外。
  • 书中代码标题与github源码仓库保持一致,方便大家直接对照。

本书所有脚本、代码均亲自测试通过。主要开源项目及版本如下:

  • u-boot版本为:2018.01
  • coreboot版本为: 4.7
  • Linux内核版本为:4.15.9
  • busybox版本为:1.28.1
  • qemu版本为:2.5.0

在线资源

为了让这本书具备更多实用价值,书中勘误和源码示例均公开于github上,欢迎大家follow和fork。限于作者的能力和写作时间,虽然书中命令、代码均亲自测试验证,行文也多次审核,另外为了尽量平衡工作、家庭和写书的关系,本书写作时间基本上都是在深夜和周末。但难免总有不足和错误。如果大家发现书中有任何问题,欢迎在github上提issue或pull request。
另外还可以通过电子邮件联系我,我的邮箱是:li@latelee.org(备用:latelee@163.com)。
本书地址为:https://github.com/cststudio/embedded-linux-learning-and-practice-ebook。
本书源码地址为:https://github.com/cststudio/embedded-linux-learning-and-practice-code。

目标读者

本书是一本入门读物,针对嵌入式Linux初学者或想提高的人员,如果你已经沉浸嵌入式Linux多年以上,抱歉,这本书可能不合适你。

致谢

写书是一个体力活,“文章千古事,得失寸心知”。个中辛苦,或者只有经历过的人才能体味。写作过程中得到许多人精神和物质上的支持和鼓励。特别感谢我的母亲和夫人照料孩子,感谢木木、小郭、小蟹、老尧、小桂哥、李二北、徐木风、曲商行,感谢众多未谋面的网友。

愿这本书给大家在嵌入式路上的探索带来帮助。

如果觉得本书有用,可扫码赞助作者:
Donate

迟思堂工作室 李迟
2017年年底构思,2018年4月开始编写

Copyright © Late Lee 2018 all right reserved,powered by GitbookLast update: 2018-11-24 00:41:38

results matching ""

    No results matching ""