现如今Linux运维工程师是每个公司都不可缺少的技术人才,导致越来越多的同学选择改行Linux,那么在学习Linux之前都要准备什么呢,今天小猿圈就给大家分享一下。
单纯的学习linux系统
一.要是只是单纯的学习linux系统,其实我感觉真的不需要去刻意的准备什么,但是还是需要去注意一下我认为的以下几个点吧:
1.环境的搭建,需要提前去做一些功课,不管是搭建虚拟机也好,还是搭建双系统都可以,这些工作其实都非常的简单,资料网上大把的是。在学习的时候,个人推荐使用双系统,windows+ubuntu。先搭建linux的操作环境:在windows中安装vmware虚拟机,然后在虚拟机中装linux发行版操作系统(比如常见的ubuntu、fedora、centos等);然后学习在linux环境下使用常用的命令,因为linux的GUI没有windows中的好,所以要熟悉操作这些命令(可以参考我写的文章:嵌入式软件开发之《Linux命令专题》);
2.要抛弃掉windows的使用习惯,再不要指望处处都有用户界面了,要慢慢的接受bash下的指令操作,这个习惯的养成是非常重要的。
3.要在学习的过程中记住一些常规的linux指令,这个是必须的。
4.学习一点shell编程,这其实linux就有一点入门了。
还可以再看看Linux驱动内容(比如什么是驱动?驱动的分类?重点掌握字符设备驱动等),可以写一些简单的驱动。如果还具备汇编语言更好,可以辅助你理解ARM汇编。如果这些你都熟练了,那么你就相当牛了。
深入学习
二.学linux你其实也知道你是用来干啥的,有了linux的简单入门,在加上你要主攻的方向你就离成功就更近了一步了。假如你想做嵌入式开发的,那这里面你要接触的知识点就太多了,可以说不胜枚举。简单的举两个例子吧。
1.假如是linux c的,那肯定你需要有扎实的c语言功底,这是基础。你还要选择一个平台,大多数都是arm了,那么你对这些板子必选要了解,一般的产品肯定不会在pc上跑的,肯定是在pc机上开发,交叉编译到arm上的。这扩展出来的有,应用层的开发,驱动层的开发,内核层的开发等等。这些随便精通一个,基本上就不愁没有工作了,并且待遇一般还不错的。
2.假如是嵌入式客户端的开发。那常规的就是qt了,一个跨平台的好东西。这个你需要了解的就是qt和c++了,然后在学习你涉及的项目中要特定用到的知识了,假如要做视频播放器,那音视频方便的知识你是必须了解的,声卡,显卡的驱动这些知识你也了解。太多了。
微机原理
因为不管是linux系统也好,还是windows操作系统,其根本的作用就是为应用程序和硬件搭起一座稳固的桥梁, 让应用程序和硬件可以高效和谐的交流,就比如说一个游戏软件是怎么让一个小怪兽在屏幕上飞舞的呢,应用程序不可以直接控制电脑屏幕的,操作屏幕是应用程序委托系统代为完成的。 那操作系统是怎么控制硬件的呢?如果想到这里的话,那肯定要对硬件有所了解了, 比如cup,内存等知识。 微机原理其实就是让你了解这些硬件怎么工作的。
c语言或者汇编
在你学习cpu和内存怎么工作的时候,肯定会学习到cpu跟内存相关的指令,这些指令就是汇编语言。 因此,要明白cpu每一步怎么运行的,就得熟悉下汇编语言了,不过汇编语言应该跟上面的微机原理是一起学的。 c语言为什么要学呢,因为linux是用c编写的,如果您在学习linux的时候非常熟悉c语言的话,学起来肯定是事半功倍的。 但是如果连c语言都不懂,对linux里面的一些机制看起来就很费劲了,那学起来自然是事倍功半的。还需要具备C语言知识(可以参考我写的文章:嵌入式Linux开发《C语言专题》),因为后续需要linux应用编程(涉及到Io文件操作、多进程、多线程操作以及网络编程);掌握了这些知识之后,就可以在windows下编辑代码,linux中编译代码,最后在电路板上运行代码;
linux机器
建议您在学习的时候,还是要准备一台linux的机器的,因为没有练习和使用,很难把计算机系统的知识点掌握好。 对于学生来说,一般有两种方式使用linux:
1. 装双系统 : 一般来讲,学生的电脑都是windows的,因为要处理作业什么的都是需要windows的,因此不太可能把自己的电脑换成linux系统的。但是我们可以选择装一个双系统,教程在网络上都有。
2. 在虚拟机上装linux : 如果嫌弃装双系统麻烦,可以在winodws上装一个vm虚拟机,然后在这个虚拟机上面安装linux。
耐心
学习任何计算机知识都是很枯燥的,就算课上一下子听不懂也是非常正常的事情,希望您不要急躁,保持一颗平常心,有一个长远的规划和打算,一定能成才的。
今天的分享就到这里啦,希望每一位想学习Linux的同学们都能学有所成,找到自己人生的方向,加油吧,骚年。