更新时间:2022-10-08 15:29:35
本节书摘来自华章计算机《Linux嵌入式实时应用开发实战(原书第3版)》一书中的第1章,第1.3节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
Linux模仿UNIX的基本架构,在其基础上发展成为一个通用的操作系统。没有人认为UNIX适用于嵌入式或实时操作系统(RTOS)。它太大了,占用太多的资源,而且其调度原则是基于顺序而不是优先级。因此,简而言之,它与嵌入式操作系统的要求完全是背道而驰的。
但是Linux有UNIX系统的早期版本所欠缺的几样东西。它是免费的,而且你可以得到源代码,并且有一个拥有大量热情的Linux开发者和使用者的大社区。你在使用中所面临的问题总有人正遇到或曾经遇到过,所有这些都在网络上,窍门就是找到它们。
1.3.1 开源
Linux是在***软件基金会(Free Software Foundation,FSF)倡导的开源软件的宗旨下发展起来的。开源的理念非常简单,即软件应该免费获取以用于使用、修改和复制。这个理念在建立了以太网和万维网的技术文化下发展了20多年,近年来开始向商业领域发展。
有许多关于开源软件的误解。也许对它是什么的***解释就是从它不是什么开始。
为什么要为免费得到的东西付钱?想必是因为任何东西只要存在,你就可以从供应商那里得到一些支持。当然,支持的质量很大程度上取决于供应商。
所以免费意味着可以***使用代码但不意味着零花费。想想“免费演讲”和“免费啤酒”的区别你就明白了。
开源代码是:
因此当微软公司视开源为他们商业模式的一个严重威胁时,这就毫不奇怪了。微软的发言人一直将开源归为“非美式的”。而另一方面,许多开源软件的领头供应商一直让他们的程序员和工程师为开源社区添砖加瓦。这不仅仅是公益,更是一个很好的商业模式!
1.3.2 移植和定制
Linux最初是为Intel的x86系列处理器开发的,而且多数正在进行的内核开发工作也还是针对x86系列的。尽管如此,Linux内核的设计将有所不同,以前的代码是依赖于处理器的,且对于每个不同架构的处理器都需要改动,但开源代码则只要进行简单的重新编译就可以导入一个新处理器。因此,Linux可以导入多数32位甚至64位的处理器,处理器架构包括:
这只是很多流行的处理器中的一些。所以,无论嵌入式项目中要用什么样的32位架构,总有Linux可用,也总有很多的开发者在支持它。
一个典型的桌面Linux的安装运行需要10~20GB的磁盘空间,并需要1GB的RAM来较好地运行。但是嵌入式的目标板通常只有64MB或更少的RAM和也许是128MB的flash ROM存储器。幸运的是,Linux是高度模块化的。10GB的内容大都包括文档、桌面实用程序、游戏等选项,这些在嵌入式目标板中不是必要的。如果资源受限的话,生成一个功能完整的只占用不超过2MB flash存储器的Linux系统是不难的。
内核本身是高度可配置的,包括一些合理的用户工具,允许在应用中去掉某些不需要的内核功能。