到底什么是Linux发行版?

Linux内核完成系统引导后,它会找到并挂载一个根文件系统。一旦合适的根文件系统被成功挂载,启动脚本会启动很多系统需要的程序和实用工具。这些程序般会调用其他程序来完成具体的任务,例如生成一个登录shell、初始化网络设备接口和运行用户的应用程序。每一个程序都有一些必须由系统中其他成员来满足的具体需求(一般称为依赖关系)。大多数的Linux应用程序都依赖一个或多个系统程序库。还有一些程序需要配置文件和日志文件,诸如此类。总的来说,即使一个小型的嵌入式Linux系统也需要很多文件,这些文件分布在根文件系统的合适的目录中。

完整的桌面Linux系统的根文件系统中包含数千个文件。这些文件来自软件包(package),而软件包通常按照功能来组合文件。软件包由一个包管理器负责安装和管理。红帽公司(Red Hat)的rpm就是一个流行的包管理器,它广泛用于Linux系统中安装、删除和更新软件包。如果你的工作站采用了红帽公司的Linux操作系统,包括Fedora系列,你可以使用命令rpm –qa来列出系统中已安装的所有软件包。如果你使用的是基于Debian的发行版,例如Ubuntu,使用命令dpkg –l即可获得同样的效果。

一个软件包可以包含很多文件,事实上,有的软件包中包含了数百个文件。一个完整的Linux发行版会包含几百个甚至几千个软件包。

下面是一些嵌入式Linux发行版中可能存在的软件包:

  1. initscripts,包含了基本的系统启动和关闭脚本;
  2. apache,实现了流行的Apache web服务器;
  3. telnet-server,包含了实现远程登录服务器(telnet server)功能的必要文件,允许你远程登录到嵌入式目标上;
  4. glibc,实现了标准C程序库;
  5. busybox,包含了很多命令行工具的精简版本,这些工具都是UNIX/Linux系统中的常用工具。

这就是Linux发行版的作用。一个典型的Linux发行版包含好几张光盘的内容,其中装满了有用的应用程序、程序库、实用工具和文档等。当Linux发行版安装好之后,用户就可以使用功能完备的系统了,这个系统基于一组默认的配置合理的选项,这些选项也可以根据具体需要进行调整。你可能熟悉某个流行的桌面Linux发行版,比如Red Hat或Ubuntu。

针对嵌入式目标的Linux发行版与一般的桌面发行版之间有很多不同之处。首先,嵌入式发行版中的二进制可执行程序是不能在PC上运行的,它们是针对嵌入式系统所使用的硬件架构和处理器而开发的。(当然,如果你的嵌入式系统使用和PC一样的x86架构,情况可能会有所不同。)Linux发行版通常包含很多面向普通桌面用户的图形用户界面(GUI)工具,例如花哨的图形时钟、计算器、个人时间管理工具和电子邮件客户端等。嵌入式Linux发行版往往会省略这类应用程序,而是更多地提供面向开发者的专用工具,如内存分析工具和远程调试工具等。

另外,嵌入式发行版中一般会包含交叉开发工具,而不是本地开发工具。例如gcc工具链,它运行于采用x86架构的桌面PC,但是会生成可以运行于目标系统的二进制代码,而这个目标系统的架构一般不是x86。这个工具链中的很多其他工具也都是按照类似的方式进行配置的:它们运行于开发主机(通常是一台x86架构的PC),但生成针对其他架构(例如ARM或Power)的目标文件。



发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();