我学习嵌入式linux开发入门过程(三)

linux系统的介绍和选择


因为去年工作的需要才开始学习linux,我本身的专业学的是 自动化,有一部分汇编和c语言的基础。毕业以后呢做过单片机汇编语言的开发。去年回到老家之后才开始学习arm的嵌入式开发的,需要用到linux基础和 c语言编程。其实学习软件开发的难度并不是很大,主要是需要有实践的机会,才能有快速而长足的进步。当然如果要是没有太好的实践机会的话,最好还是自己去 买一块开发板。当然如果实在是不想买开发板或者感觉开发板太贵的话,可以在PC机上先装linux做实验也是可以的,只是有些东西不能完全模拟。


首先我们可以先说一说linux,个人感觉linux的主要功能是分两大块,简单来说就是做服务器或者嵌入式软件开发,具体怎么用linux来做服务器这一点我就不是很明白了,关于linux的部分大家可以去看一下这本书《鸟哥的linux私房菜》,如果愿意的话,你也可以自己搭一个服务器试一试。


自从来了linux世界后,我发现我得选择恐惧症了。具体原因,是因为在linux世界实在是太过多姿多彩了,和选择买东西不同,买东西的选择恐惧症是因为我没钱( ⊙ o ⊙ )啊!!在这里的选择恐惧症是因为我没有那么多的精力。


关于选择linux的发行版的话,不推荐新人在这个上面消耗太长的时间,用ubuntu就可以了。我之前推荐的那本书上,是让大家用centos,这个我是不推荐的,centos用来做服务器还是挺好的,但如果用来做嵌入式开发的话,功能上感觉差了一点。这个发行版的问题不会有什么太大的区别,找一个好上手的就 可以了。我在这个方面上就消耗了很长的时间,各种发行版装了很多,但实际功能没有太大的变化。确定好一个发行版之后,就不要总变来变去了,这样容易浪费很多的精力。如果你实在想折腾的话,那么可以试一下LFS。

(题外话,我用的发行版是debian的stable版,新手还是不要用的好,光是把发行版的镜像烧录到U盘就是一个很坑的过程,我也是折腾了很久才搞定。如 果有人说dd就行啊,那麻烦把你的命令行发过来,我也学习一下...如果你给我发来,如“dd if=xxx.iso of=/dev/sdb bs=2M”这样的命令,只能告诉你,这样的U盘你安装到一半就会有提示找不到光盘介质,不得不退出安装...)


(PS:发行版之间最大的区别,就在于包管理的不同,我建议大家还是选择相同的包管理)

以下是不同的包管理的命令

包管理命令
主要发行版
apt-get ubuntu,debian,linux mint等等
yum redhat,centos,fedora,opensuse等等
pacman arch及衍生版等等
没有包管理 slackware等等


虽然我推荐你们用ubuntu,但是咱们的包管理是相同的,后面可能会用到一些命令时就能直接使用。但是不同的包管理,命令之间就不通用了。


这里再推荐一个网站,专门做linux版本介绍与排行的。有兴趣可以看看啊,哦,对了英文的啊。

http://distrowatch.com/


(PS:我的废话比较多,这里突然又想起一个别的东西,就是FreeBSD,你可能没有听说过,那么苹果电脑的MAC OS你一定听过了吧。Mac OS X操作系统就是以FreeBSD内核为基础的。而现在市面上的手机普遍使用的安卓系统则是以linux的内核为基础的。FreeBSD和linux通俗一些讲就是属于近亲一类的关系。看看,很猛吧!有兴趣也可以试试freeBSD,不过最好不要用配置太过顶尖的电脑,听说freeBSD的驱动更新的慢,可能会没有驱动用,那就悲催了。)


(PPS:再补充一下啊,由于年代的不同或者开发的不同,即使是同一个发行版还会有不同的分类版本,比如ubuntu12.04,ubuntu13.10,ubuntu14.04和现在的ubuntu15.04,其中呢ubuntu12.04和ubuntu14.04又是LST版,也就是传说中的长期支持版本。后面标记的12.04,13.10等等,顾名思义就是说明是在哪一年某月发行的。长期支持版一般软件支持在5年左右,如果不是则只会支持1年左右。不过具体的支持年限还得看发行公司的心情而定。当然如果到期了,也不是不能使用了,只是你无法再通过网络对系统和软件进行升级,那么系统漏洞就无法修补,新的软件功能也无法使用。


而我使用的debian一般分为stable,testing,unstable三种版本,顾名思义,stable是经过长期测试的,只要不是瞎折腾,系统自身是不会出现崩溃的。testing则是经过一定测试的版本,但还在观察中。unstable就是用的新的软件和新功能,它的稳定性还没有经过太多的测试。stable,testing,unstable是俗称,时间上的不同,这三个版本也是在变更的,所以要去debian的官网去查看。


大致的版本分类差不多就是这样了,个人建议还是尽量使用最新的稳定版本。太过久远的版本,使用起来,一旦出了问题想解决在网上都不好找到的。比如:曾经就看有人还在用已经废弃多年的老版redhat,安装时出来问题,网上询问别人给的答案都无法使用了。)


(PPPS:上面已经提到了关于系统升级的问题,一个版本是有使用寿命的。如果这个版本用了几年以后而停止维护,你就需要考虑升级新版本了。当然如果你一个系统真的用了几年,就不要妄想用系统自带的诸如apt-get dist-upgrade一类的命令来直接升级系统版本了,我可以很负责的告诉你,这样升级重启后,一般来说是无法开机的...所以还是乖乖的重装吧。

一般的发行版跨版本升级时都会有很大的问题,如果需要升级,大家还是重装的好。


什么???arch,gentoo和debiansid党不服啊!!!


虽然这些发行版是滚动升级没有跨版本一说,不过这些版本尽量要保持每周更新啊,如果超过1个月以上没有更新过系统,就不要更新了,更新也会有问题了。


我没出过问题啊?是啊,我也没有出过问题啊!


那我只想对你说,你脸长得真好看...



其实发行版之间的差别不是很大,搭载的桌面环境的差别还是很大的,让人感觉就不是用的同一个系统。彪悍的大牛一定会鄙视我还在用桌面,不过我还是推荐大家安装一个吧!毕竟这还是很方便。具体用哪 一种桌面环境,大家可以根据自己的喜好,还有电脑的配置情况,自己决定吧!本人的电脑很渣,一般就用的是xfce。如果有条件的话,用Gnome或者 Kde(现在改名叫Plasma)都行,再或者你都安装上也可以。当然你还有其他的选择,只是这里我们就不仔细讨论了,有兴趣的话可以自己尝试。


选定上述问题之后,我们来选择是在虚拟机上安装呢?还是实体机直接安装双系统呢?

个人的意见是在实体机上进行安装,只是这个有一定的风险,新手可以等一等。

如果不放心,还是先在虚拟机上安装,省的实体机的linux没装好,再把本机的windows或者mac搞坏了。等熟练一些了在安装个双系统,那时候你就能真正感觉到linux的真正效率了。


然后呢,问题又来了,虚拟机用哪一个呢?virtualbox还是vmware呢?

你要是有钱呢,可以vmware,买正版;要是没钱呢?就是virtualbox;

要是不道德呢?就用vmware然后上网上找个序列号。反正我就是很不道德的,安装了vmware...


说笑了,其实vmware个人使用是没有关系的,但是你若是商用,还是麻烦你买个正版支持一下吧。

功能上肯定是vmware好,但是对你的电脑有一定的配置要求,我的机子是渣渣,后来不得已又安装了virtualbox

(PS:还有别的虚拟机可以用,我没用过,大家可以上网搜搜,然后试一试啊)


好了,linux系统安装前的选择大概就是这么多了。待你选择好后,就可以进一步着手进行安装了。




你可能感兴趣的:(ubuntu,软件开发,嵌入式开发,C语言编程,嵌入式软件)