Linux学习路线



关于 Linux

Linux 因其开源,免费,可裁剪,被应用到很多领域,尤其是嵌入式设备上。

Android 系统内核也是基于 Linux 的。

另外还有各种服务器和工作站也是用的 Linux。

什么是嵌入式设备?

手机、平板,路由器,机顶盒,MP3, 物联网智能产品等。



Linux 学习路线

这是我画的一幅图,大家可以按此路线循序渐进地学习。

不过需要说明的是,第五项驱动开发和第六项嵌入式系统开发是并列的,也就是说,学习完内核之后,你可以选择从事不同的领域,当然嵌入式开发有时会包含驱动开发。

还有就是嵌入式开发包括硬件,软件和系统开发,假如只做硬件的话,你没有必要按照上述路线进行,系统级开发的话,前面的是必备。


<img src="https://pic4.zhimg.com/v2-fda0fb4c18f1b15d5f4a49a05395037a_b.jpg" data-rawheight="889" data-rawwidth="1334" class="origin_image zh-lightbox-thumb" width="1334" data-original="https://pic4.zhimg.com/v2-fda0fb4c18f1b15d5f4a49a05395037a_r.jpg"&g

  1. 熟悉 Linux 系统,基本命令

    安装 Linux 系统,学会基本操作,熟悉文件系统,shell 脚本以及常用命令


  2. 了解程序开发过程

    搭建开发环境,了解 Linux 上程序开发过程。

    学会使用文本编辑工具 Vim,编译工具 gcc, as, 连接工具 ld, 调试工具 gdb, make 工具,会写 makefile。

    用 C 语言实现并编译自己的测试程序。


  3. 尝试系统编程

    试着在 Linux 上用 C 语言进行系统编程,

    其中需要调用 Linux 系统库函数 (API)。

    例如,实现一个需要进行网络通信、操作文件的多线程/进程程序。

    以此深入了解 Linux 系统运行机制。


  4. 学习内核

    上面学的差不多了,感兴趣的同学可以接着学习 Linux 内核。

    Linux 内核模块如下图

    <img src="https://pic3.zhimg.com/v2-d3ea61337758b865fa2b3bc365541b35_b.jpg" data-rawheight="392" data-rawwidth="526" class="origin_image zh-lightbox-thumb" width="526" data-original="https://pic3.zhimg.com/v2-d3ea61337758b865f

    这一部分内容比较深,能把它学透的基本就是大牛了,写个 OS 就不在话下了。


  5. 驱动开发

    从这里开始,就不是必须的了。

    有兴趣的朋友可以深入学习。

    但是学习驱动开发无疑要把前面的都要学好。


  6. 嵌入式系统开发

    学好 Linux 是嵌入式系统开发的基础。

    嵌入式开发包括很多方向,有硬件、软件,以及系统级别。

    硬件要学单片机,ARM、MIPS,DSP 等各种 MCU,Verilog, RTL, 具体就不多说了,跟 Linux 关系不太大。

    软件的话,需要了解交叉编译,以及嵌入式环境下 C 语言的特殊用法,例如 volatile、 位操作、寄存器操作、大小端、程序跳转等。

    系统级,要了解 Linux 内核裁剪、移植、编译、调试,还有 Bootloader 、设备驱动等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值