想做嵌入式开发,为什么要学习linux?

想做嵌入式开发,为什么要学习linux?,第1张

我最开始用Linux是被逼的。当时用的是一台旧的笔记本电脑,做一些文字处理的工作。跑Windows动不动就死机,无奈之下安装了Ubuntu。当时只是想找一个Windows的替代品。用Ubuntu的图形化界面很多,不怎么用命令行,所以总觉得比不上Windows。当然,基本的功能还是全的。我用那台旧电脑兼职翻译,赚了2000块的“巨款”。

后来深入使用Linux,是因为做论文时要用服务器。服务器是Debian系统,只能用ssh连接。我只能可怜巴巴的对着命令行敲字了。也是在这种情况下,我才真正发现Linux的好处。

首先,Shell编程很方便,特别是配合Linux下的各个工具,比如cat, sed, awk, grep。我经常会向服务器的任务管理器提交工作。工作太大,没有足够处理器时,就要排队等空隙。用shell编写一个小脚本,让它来替我安排工作的提交,就节省了我大量的时间。Shell编程甚至可以实现相当复杂的功能。Linux把每个小工具的功能都做强。想要实现复杂功能时,就利用文本流把它们连接在一起。这样,功能性和独立性就都兼顾了。(Linux文本流)

其次,Linux的稳定性很好。这也是大部分服务器使用Linux的一个重要原因。我没有用过Windows的服务器版本,不好评价。但在PC上,Linux要比Windows稳定的多。由于Linux与Windows的存储方式不同,所以Linux可以长时间的持续运转,也不需要对磁盘进行碎片整理。当然,Linux的图形化界面略弱。如果用图形化界面,会时有崩溃。(为什么Linux不需要磁盘碎片整理)

再次,Linux的源码和架构都是开放的,你可以从中学到很多 *** 作系统原理。Linux的整个哲学体系继承自UNIX,发展的年头要比Windows长很多时间,整个设计体系已经相当稳定,并化繁为简。POSIX的标准也很普遍,Linux熟悉了之后,其它的UNIX系统也很容易上手。Windows的许多东西不透明,很复杂,又常变化,并不是一个很好的学习样例。(Linux架构)

最后,Linux下的各种工具基本上都是免费的。更方便的,使用package manager下载编译好的版本。这和Windows下到处买光碟、找可用下载连接、找注册码的繁琐过程完全不同。如果你想要使用任何的工具,一般只需要几分钟,就能借网络搞定。Linux的开源社区也很活跃,很容易找到人讨论,或者找个项目练手。

再从我个人的角度说说吧。首先,Linux是一个很强的附加技能。Windows对于用户来说很贴心,但也意味着使用门槛低,基本上大家都会。而Linux,即使是命令行的使用,也需要一定时间熟悉。在CV上写上熟悉Linux的命令行使用,熟悉Linux配置,要比写熟悉Windows使用,加分不少。

其次,服务器和云服务平台选用Linux的比较多。这意味着,在超越PC的战场上,Linux是一个必修技能。如果是从事IT开发的人,Linux基本上是绕不过去的一个槛。现在Linux在移动端发展的也不错。看Ubuntu最近的动作,是希望在移动端有所作为的。而安卓用的也是Linux内核

最后,Linux设备投入小,而Linux知识更新换代较慢,学习的性价比很高。学完后还可以通吃Unix和Mac。

1.这个内核路径按理说应该是目标系统(编译完成之后的Linux系统)的内核头文件的路径,是这样么?

不对。编译驱动需要的是内核的导出符号表。导出符号表通常在编译好的linux源码根目录下。

那么怎么取得这个内核头文件路径呢?

下载目标板的内核源码,然后进行编译,通过后就得到了所需要的导出符号表。

在交叉编译的时候需不需要添加额外的选项,告诉交叉编译工具要生成内核头文件路径呢?

不需要,这都是Linux内核的Makefile自动完成的。

2.默认添加的文件系统是只读的

Linux启动时候的 *** 作不会受这个只读属性影响,没有写属性并不代表不能写。况且,你得的这个结论不准确。

数据丢失可能是因为数据没有同步到flash或者其他的外存设备。

3.一般来说,是不是交叉编译系统完成之后,需要交叉编译busybox(需要指定内核路径)来获取一系列的utilities呢?

通常不需要,busybox中只有少数与内核结构体相关的命令需要Linux内核源码的目录,大多数的都不需要,这个需要查看编译的输出结果进行确定。如果是只使用基本的命令,不需要Linux内核。

4、最后,想请教下,在移植好的嵌入式Linux系统上能否像PC机上的Linux一样来做开发(除了硬件资源有限,其他的开发思路应该一致)呢?

应用软件可以像pc机一样开发,硬件相关的和内核相关的有很大的不同,比如底层和硬件驱动

sys_path没用过

arm-linux-的前缀是有意义的。busybox通常使用gcc,ar,ld等编译连接工具,为了和宿主机的工具区分开,需要使用前缀进行区别。仅此而已。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8587013.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存