《Linux嵌入式实时应用开发实战(原书第3版)》——第2章 安装Linux2.1 发行版

简介:

本节书摘来自华章计算机《Linux嵌入式实时应用开发实战(原书第3版)》一书中的第2章,第2.1节,作者:(美)Doug Abbott 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第2章 安装Linux

如果比尔•盖茨在每次Windows死机时都能挣5美分……哦,等等,他就是这么做的。
——摘自Slashdot.org

最初可以开始在Windows下进行嵌入式Linux开发时,开发过程是很不容易的。基本的Windows系统缺少很多工具和实现嵌入式开发的特性。但是尽管如此,你为什么还想那样做?因此我们应该把注意力主要集中在Linux上,而不是研究安装Windows开发系统的过程上。
尽管这本书不是对Linux的介绍,但是也值得花一些时间去回顾安装过程和可选择的配置。如果你已经安装了可以正常使用的Linux,那么你可以不看这一章,除非你想学习虚拟化或双启动。
本章的介绍和步骤最初是针对Fedora的,但是通用的概念可以应用于几乎任何Linux系统的安装。

2.1 发行版

经过多年的充分改进,安装Linux的步骤已经相当直接而简单。事实上,最简单易理解的安装Linux的方法是从一个发行版(distribution)或简称distro开始的。互联网上有多达几百个发行版可供下载,其中的许多针对特定的领域如嵌入式。
一个发行版包括你在安装Linux时需要的所有组件,包含内核、应用程序、图形桌面环境、开发工具、游戏、媒体播放器等。多数但不是全部的发行版使用软件包管理器(package manager),这是一个将单个组件集成到易于管理的包中的软件。Fedora和Red Hat发行版使用RPM,即the Red Hat 软件包管理器。Debian和它的衍生产品如Ubuntu使用dpkg。一个软件包包括组件的软件如可执行文件、库等,外加安装和卸载组件的脚本以及还需要哪些相互支持的软件包等信息。
一个典型的distro可能包括几千个包。事实上,这成了关于Linux的各种项目和经销商的一个营销游戏:“我的distro比你的有更多的包。”这里给出一些更流行和对用户更友好的发行版中,其中的任何一个都可以用于嵌入式开发。在本章最后一节里给出了相关的一些网址。
2.1.1 Debian GNU/Linux
Debian项目由世界各地3000多个志愿者共同努力完成,其支持完全来自捐助。2007年由SurveyMonkey.com做的一个调查显示,在个人和组织使用最多的Linux发行版排行里面,Debian仅次于Ubuntu,而Ubuntu本身是Debian的一个衍生产品。
Debian因其丰富的选项而闻名。最新发布的稳定版本6.0有超过29 000个包,支持9种计算机架构,包括通用的Intel/AMD32位和64位处理器,还有ARM和IBM eServer zSeries大型主机。与RPM不同,Debian是首先声明使用稳定的包管理系统的发行版之一。Debian包有文件extension.deb。
与其他流行的发行版通常两年发布一个主要的版本相比,Debian的发布周期更长,也更有规律。
2.1.2 Fedora
Fedora项目是从2003年年末开始的,当时Red Hat不再继续它的Linux发行版零售产品线而选择开始专注于企业软件。最初的Fedora发布版本是基于Red Hat Linux 9。Red Hat继续赞助Fedora项目,这也是Red Hat 企业版Linux(RHEL)发布的起点。
Fedora以其一直居于开源软件开发的领导地位而自豪,而且它有一个相当快的发布时间表,大概每6个月发布一次。目前最新的版本是16。从Red Hat开始,Fedora就成了我最喜欢的Linux发行版,我目前正在用的就是版本14。我倾向于使用距最新版1~2个版本的发布版,而且每隔2~3个发布版才更新一次。我不需要使用绝对最新和最好的版本,而是只要它能工作,就坚持使用。
对于最新的版本,我有两个不满意的地方,这个说法也可以同样应用于distros,而不仅仅是Fedora:
1)属性总在改变。我也许对这个太敏感了,因为我在配置和安装时一直使用图形对话框。但是在每个新的发布版本里,这些对话框的路径都会改变。
2)每个连续的发布版本看起来总是变得更像Windows。也就是说,更多的菜单变成了单个的图标,而不是更简单、直接的文本选择框。毫无疑问,这反映了吸引更多用户的需求,但是作为计算机专业人士,我觉得不太好。幸运的是,迄今为止,还有方法可以转换到经典的菜单风格。
本书所讨论的一切都可以应用于任何发行版,不同distros之间的区别仅在于安装和配置。在第4章中当需要对网络做一些改变时,我们将讨论这个问题。这里描述的主要是Fedora。基于这点,如果你还没有选定一个你喜欢的Linux发行版,那么我推荐Fedroa,至少在你通读本书期间你可以使用它。
Fedora只能运行在Intel/AMD平台上。
2.1.3 Red Hat企业版Linux
RHEL是专门面向包括大型机的商用市场的。目前有针对x86、x86-64、Itanium、PowerPC、IBM System Z的各种服务器版本和针对x86、x86-64的桌面版本。RHEL从Fedora继承了很多属性,但它有一个更保守的发布时间表,大约2年发布一个主要的版本。到2011年年末,最新的稳定发布版本是6.1。
尽管RHEL是一个商业产品,但它完全基于开源代码。结果就是,Red Hat提供其完整源代码库的下载。有几个小组利用这点重新生成了他们自己的RHEL版本。最知名的小组之一是CentOS,据说是到2011年年末为止,最受欢迎的第8个发行版。这些重建去掉了任何与Red Hat商标相关的信息,并在非Red Hat服务器上更新系统。否则,他们在功能上就是雷同的。
由于重建是自由的,所以他们当然不符合任何种类Red Hat支持的条件。
2.1.4 SUSE
SUSE最初是在德国开发的,它最原始的发布版本是在1994年,因此是现存的最古老的商用发行版。其名称是软件和系统开发的德文缩写(Software und System Entwicklung)。它的名字后来就成了SUSE,也不再认为是缩写了。
Novell在2003年得到了SUSE Linux AG ,在2005年宣布openSUSE项目允许外部的开发者参与。SUSE Linux以两种形式提供:由OpenSUSE项目主导的OpenSUSE和一个商用版本SUSE Linux企业版。和Fedora、Red Hat一样,OpenSUSE一直保持在Linux开发的最前沿,有一个相当快的发布时间表,SUSE Linux企业版则坚持一个更保守的发布时间表。
2.1.5 Ubuntu
根据其网站描述,Ubuntu是一个古老的非洲词汇,意思是“仁慈待人”,也有“我们成就了我”的意思。这是2004年首次发布的Debian代码库的一个分支,目的是创造一个易于使用的Linux版本。它有两种版本可以选择:桌面版和服务器版。
每6个月发布一个版本,每4个版本就会有一个长期支持(LTS)。LTS的发布版对于桌面版支持3年,对于服务器版支持5年。将要发布的12.04版,桌面支持将延长到5年。
一直以来,Ubuntu和多数其他的Linux Distros一样,支持图形桌面环境,包括GNU目标模型环境(GNOME)和K桌面环境(KDE)。2011年春季发布的11.04版引入了一个新的桌面环境叫Unity,这是GNOME的一个Shell接口,目的是充分利用笔记本和平板电脑上的有限尺寸屏幕的空间。一些用户批评新的接口与GNOME差异太大,处理能力也差,但是另一些用户认为精简至下限的方法比老的架构更有吸引力。
Ubuntu强调易用性,开发者通过取消掉一些支持安装和配置的图形对话框(如在Fedora中)而将基本的系统配置设计得更复杂。另外,根用户账号是锁定的,因此不可能直接像根用户一样直接登录。你必须使用sudo命令,这显然是有目的的。在Windows里,这是一个阻止普通用户破坏系统的惯用方法。
第4章中,在我们不得不改变一些网络参数时,配置上的困难将会成为一个问题。我不推荐Ubuntu,除非它是你最喜欢的发行版,并且你觉得很好用。
尽管如此,Ubuntu可能是最流行的Linux发行版。2009年6月,据ZDNet报道:“世界范围内,有1300万活跃的Ubuntu用户,且其增长率超过其他任何发行版。”

相关文章
|
10天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
5天前
|
Web App开发 安全 Linux
Linux系统之安装Firefox浏览器
【7月更文挑战第8天】Linux系统之安装Firefox浏览器
27 8
|
7天前
|
存储 数据管理 Linux
Linux命令sg的深入解析与应用
**Linux的`sg`命令用于高效管理SCSI设备,它基于DMA和Scatter-Gather技术,提供直接设备控制和高效数据传输。`sg`常通过`sg3_utils`工具集来使用,例如`sg_io`,用于执行SCSI命令。在实际应用中,需注意权限、数据安全和兼容性问题,遵循备份、详细阅读文档和逐步测试的最佳实践。**
|
7天前
|
存储 Ubuntu Java
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
13 1
|
1天前
|
监控 安全 Linux
Linux命令ssltap的深入解析与应用实践
`ssltap`是一个假想的Linux命令,用于模拟SSL/TLS流量分析。它捕获、解密(如果有密钥)并分析加密流量,提供实时监控、协议解析和安全审计。特点包括实时性、灵活性、可扩展性和安全性。示例用法包括捕获特定端口流量和实时监控会话状态。在实际操作中应注意私钥安全、性能影响及合规性,建议定期审计和自动化监控。
|
4天前
|
Ubuntu 安全 Linux
Linux系统之安装Ninvaders太空入侵者小游戏
【7月更文挑战第9天】Linux系统之安装Ninvaders太空入侵者小游戏
9 0
|
10天前
|
关系型数据库 MySQL Linux
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
Linux部署实战前言,MySQL在CentOS安装【单机软件】,MySQL的安装需要root权限,yum install mysql,systemctl enable mysqld开机自启的意思
|
10天前
|
Linux 数据处理
Linux命令setarch深度解析与实际应用
`setarch`是Linux下用于调整程序执行环境的命令,它允许在不同CPU架构间运行二进制文件,模拟架构并设置CPU功能标志。通过指定`-a`参数切换架构,如`-a i386`,用`-R`参数启用或禁用如SSE2的功能。在测试兼容性、调试和优化时非常有用。注意正确设置参数,避免滥用,确保程序正常运行。查阅文档、逐步测试和考虑兼容性是最佳实践。
|
10天前
|
Linux Shell 数据处理
Linux命令seq的深入解析与应用
`seq`命令在Linux中用于生成数字序列,适用于数据处理和脚本编写。它支持自定义起始值、步长和结束值,可生成整数或浮点数。通过选项如`-f`(格式化输出)、`-s`(设置分隔符)、`-w`(宽度对齐)和`-r`(逆序)调整输出。在实践中,`seq`常与for循环结合,用于测试数据、文件命名等。注意增量为零会导致无限循环,格式和宽度选项不能同时使用。善用`seq`能提升命令行效率。
|
10天前
|
Ubuntu Linux
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re
Linux软件安装-Linux系统靠yum命令安装软件,yum命令是一个RPM包软件管理器,用于自动化安装配置Linux软件,.rpm是Linux包下的软件,yum install下载 wget re