
后来深入使用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等编译连接工具,为了和宿主机的工具区分开,需要使用前缀进行区别。仅此而已。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)