在接触linux之前我学习的是单片机了解大概硬件的基本操作,同学说只是配置寄存器的话太low了去接触linux,学习linux时我是先接触命令的,当时学习的时候还是蛮有意思,就像传说中的黑客一样,说个题外的话当初看个电影叫什么“侏罗纪公园2“,那里面有个控制全局的电脑高手,我记得他好像输入ls这个命令就列出所有被龙破坏的地点,说来就有点觉得假。我学的命令是在网易上搜索“李明老师的课程”,这里不是打广告,这个课程不但是免费的,而且讲的非常详细,一节课大概接近1个小时甚至1h+,把基本原理都说的很清楚,这里做个配图:
当然这是以运维的方向来讲的,但是在linux的入门已经足够了,还有一点就是linux的版本有点低,不过不影响。里面还有服务器的配置以及shell脚本。
基本常用的命令用熟练后,可以进入下一步了,我学习的是嵌入式方向,所以我还得去学习计算机方面的知识,包括c++,c,数据结构,计算机网络,操作系统原理,汇编原理,这些知识在嵌入式方面是必学的,当我学完操作系统原理后,就对什么是线程,进程有了进一步的了解,华为再发布那个手机涡轮的强大功能就号称单线程胜多线程,到现在才理解是什么意思,哈哈这就是技术的魅力哈。
上面说的各个学科在工作方面的其实就是基础,进入工作后,若是做开发的,会进一步的接触到多线程,多进程的编程,以及网络编程,makefile等等。目前我处于学习课本的基础阶段,令我最深刻的感悟就是上面的基础不扎实,确实遇到很大的麻烦,每天都要回家看书。
若是学的差不多了,可以进一步的深入学习,那就是真的是没什么书可以看的了,想把技术学好就去看看linux内核的源代码,听朋友说里面有很多很经典的结构,比如最基本的二叉树,平衡树都是常见的,最好还是把汇编学一学,了解操作系统的启动代码等等。
对于向大数据方面的研究,我不是做这一行的所以不清楚,但是是嵌入式的话,基本的路线就是这样,其实学到一定的境界了,可以去接触一下cpu是如何制作的相关的书籍,好像和vhdl语言有关系,这个时候就对芯片的架构有了整体的把握,进一步的解析操作系统的各个内核结构或许有更大的帮助,或许自己可以开发一个小的操作系统。