Embedded Linux Primer----嵌入式Linux基础教程--2.4节--嵌入式Linux发行版
嵌入式Linux发行版
究竟什么是Linux发行版?在Linux内核引导之后,它期望找到并挂载根文件系统。当一个匹配的根文件系统已经挂载上,启动脚本开始运行大量程序和系统要求的工具。这些程序经常调用其他的程序做一些特定的任务,例如产生一个登录shell,初始化网络接口,启动用户程序。这些程序都有特定的要求(经常称为依赖)就是适用于系统中的其它组件。绝大多数Linux应用程序依赖于一个或者多个系统库。其它一些程序需要配置和日志文件,等等。总之,甚至于一个小型的嵌入式Linux系统都需要根文件系统目录结构中的大量文件。
成熟的桌面系统的根文件系统中有数以千计的文件。这些文件来自于按功能分组的包(packages)。这些包通过包管理器来安装和管理。红帽的包管理器(rpm)就是一个很好的例子,并且被广泛使用。如果你的Linux工作站是基于红帽的,包括Fedora系列,都通过在命令中输入rpm –qa来安装包。如果你使用一个Debain发行版本,例如Ubuntu,你可以输入dpkg –l得到相同的结果。
一个包通常包含许多文;甚至一些包包含几百个文件。一个完整的Linux发行版包含几百个甚至上千包。下面这些包都有可能在你的嵌入式Linux发行版中找到:
·initscripts包含基本的系统启动和关闭脚本。
·apache实现了流行的Apache网站服务。
·telnet-server包含实现telnet服务功能的必要文件,允许你和开发板之间简历telnet会话。
·glibc实现了标准C库。
·busybox包含了许多UNIX/Linux系统上的流行命令行工具集的精简版本。
一个典型的Linux发行版本伴随着带有大量有用的程序,库,工具,使用工具集和文档的的CD-ROM一起发行。一个典型的发行版能够提供一系列配置选项满足用户的定制需求。你可能熟悉一些流行的桌面Linux发行版本,例如Red Hat(红帽)或者Ubuntu。
嵌入式的Linux发行版与一般的Linux发行版有几点不同。第一点,嵌入式发行版的可执行的二进制目标代码不是在你的PC运行,而是针对于你的嵌入式系统的处理器架构。(当然,如果你的嵌入式Linux是x86架构的话,这就不是必须的了。)一个桌面Linux发行版针对典型的桌面用户有很多GUI工具,例如漂亮的图形时钟,计算器,个人时钟管理工具,e-mail客户端,等等。一个嵌入式Linux发行版只含有开发者需要的一些工具,例如内存分析工具,远程调试工具这些等等,而忽略了图形化组件。
桌面Linux发行版与嵌入式Linux发行版的其它一些显著的区别就是嵌入式发行版包括交叉工具,例如gcc工具链。其它的一些工具链都有相似的配置:他们运行在开发主机上(通常是x86的PC),设计用来操作其它体系结构的目标,比如ARM或者Power Architecture。
商业Linux发行版
制作属于你自己的Linux发行版
你可以选择你的嵌入式工程里面的所有需要的组件。你必须对此所产生的风险做好准备。如果做这一工作完全是为了兴趣,例如爱好或者大学项目,这个方法可能很适合你。然而,你必须花费大量的时间收集你项目中必须的所有的工具和工具集,并且确保都能使用。
对于刚接触的人来说,你需要工具链。gcc和binutils可以从www.fsf.org获得。两者都要求为你的额项目编译内核以及用户空间程序。这些在源码格式(source code form)中被首要分配并且你必须为你的交叉编译环境编译这些工具。这些工具集的稳定源码树(recent “stable”source trees)都要求打补丁,尤其是你使用x86/IA32架构的机器。这些补丁通常都可以在基础包的目录中找到。找到可以解决特殊问题和架构的补丁包是一项有挑战的工作。
只要你的工具链正在工作,你就需要下载并编译伴随着依赖项的应用程序包。这是一个令人生畏的挑战,由于许多包不允许交叉编译。当它们在本地的x86环境就已经建立好了。
要解决这些挑战,你可能需要足够强大的开发环境,包括工具(例如图形化的调试器),内存分析工具,系统追踪和剖析工具等等。当你在建立你自己的嵌入式Linux发行版的时候就能够看到这些问题了。
Embedded Linux Primer----嵌入式Linux基础教程--2.4节--嵌入式Linux发行版的更多相关文章
- Linux下配置Squid基础教程
Linux下配置Squid基础教程 本视频高清下载地址:http://down.51cto.com/data/437529 本文出自 "李晨光原创技术博客" 博客,请务必保留此出处 ...
- 嵌入式系统基础知识(一): 系统结构和嵌入式Linux
目录 一. 嵌入式体系结构 二. 开发过程中的分工 三. 嵌入式软件体系结构 四. 嵌入式Linux 一. 嵌入式体系结构 <嵌入式系统设计师教程>这本书的前三章脉络很清晰, 按照嵌入式系 ...
- Unix/Linux环境C编程入门教程(5) Red Hat Enterprise Linux(RHEL)环境搭建
Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out执行出结果,证明C++程序编译成功,也就说明li ...
- Unix/Linux环境C编程新手教程(5) Red Hat Enterprise Linux(RHEL)环境搭建
Unix/Linux版本号众多,我们推荐Unix/Linux刚開始学习的人选用几款典型的Unix/Linux操作系统进行学习. 通过./a.out ./Y.out运行出结果,证明C++程序编译成功.也 ...
- 2016 最佳 Linux 发行版排行榜
2015年,不管在企业市场还是个人消费市场都是 Linux非常重要的一年.作为一个自2005年起就开始使用 Linux的 Linuxer ,我门见证了 Linux在过去十年的成长.2016 Linux ...
- 全球最受欢迎的十大Linux发行版(图)
帮助新的Linux用户在越来越多的Linux发行版中选择最合适的操作系统,是创建这个网页的原因.它列出了迄今为止最流行的10个Linux发行版(另外增加的是FreeBSD,到目前为止最为流行的BSD系 ...
- 2016年如何选择 Linux 发行版
不管是在企业级应用还是在消费者领域,2015 对于 Linux 来说都是极其重要的一年.作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展 ...
- 版本 ------- 2017年最受开发者欢迎的10个Linux发行版
1.Arch Linux Arch Linux在安装过程中提供了强大的可定制选择,支持你下载和安装自己所需的程序包.虽然这个选择对新手来说没有多大的帮助,但是它确实能够帮助那些使用Arch构建系统和存 ...
- 2016 最佳 Linux 发行版排行榜【转】
转自:http://www.linuxstory.org/the-best-linux-distros-of-2016/?utm_source=tuicool&utm_medium=refer ...
随机推荐
- BootStrap 智能表单系列 三 分块表单配置的介绍
相信广大博友肯定碰到过一个编辑页面分了很多块的情况,智能表单插件已经为您支持了这种情况, 代码如下(链接地址:https://github.com/xiexingen/Bootstrap-SmartF ...
- USB数据流模型
USB数据流模型 <<USB Specification11>> << USB Specification20>> << Linux Dev ...
- HDU3535-AreYouBusy
描述: As having become a junior, xiaoA recognizes that there is not much time for her to AC problems, ...
- 自定义jquery表格插件
以前一直都是再用easyui插件来实现各种功能,但是easyui太过于庞大,使用越多对服务器负载影响越大. 基于此,在模仿easyui的dataGrid表格插件的同时,自己去封装了一个.实现了基本的j ...
- Linux 系统之Systemd
子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...
- 有意思的C宏
在Linux内核.嵌入式代码等传统的C代码里,会有一些难以识别的宏定义.我记得在eCos, UBoot, FFmpeg有一些比较BT的宏定义,很难读懂.对于C++程序员来说,最好将这种难读的宏定义转成 ...
- 磁珠在PCB中的应用
1.磁珠的单位是欧姆,而不是亨特,这一点要特别注意.因为磁珠的单位是按照它在某一频率产生的阻抗来标称的,阻抗的单位也是欧姆.磁珠的 DATASHEET上一般会提供频率和阻抗的特性曲线图,一般以100M ...
- 17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment 引入额外的Slaves 到一个存在的复制
17.1.1.9 Introducing Additional Slaves to an Existing Replication Environment 引入额外的Slaves 到一个存在的复制环境 ...
- perl5 第七章 控制结构
第七章 控制结构 by flamephoenix 一.条件判断二.循环: 1.while循环 2.until循环 3.for循环 4.针对列表(数组)每个元素的foreach循环 5. ...
- ubutun 下webalizer 分析Apache日志
http://www.webalizer.org/ 配置Webalizer 我们可以通过命令行配置Webalizer,也可以通过配置文件进行配置.下面将重点介绍使用配置文件进行配置,该方法使用形式比 ...