[连载]Ubuntu 18.04 嵌入式开发环境手把手搭建指南二

 [连载]Ubuntu 18.04 嵌入式开发环境手把手搭建指南二

在上一篇博文https://www.mr-wu.cn/how-to-setup-environment-for-embedded-system-development-part-one/我们已经把Ubuntu 18.04 LTS 这个系统给装上了,现在,老wu打算来了撩一撩一些基础的Ubuntu概念
Ubuntu 是一个南非的民族观念,着眼于人们之间的忠诚和联系。该词来自于祖鲁语和科萨语。Ubuntu (发音”oo-BOON-too”–“乌邦图”) 被视为非洲人的传统理念,也是建立新南非共和国的基本原则之一,与非洲复兴的理想密切相关。 Ubuntu 精神的大意是“待人以仁” (人性对待他人)。另一种翻译可以是:“天下共享的信念,连接起每个人”。

“具有 ubuntu 精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能,因为他/她拥有适度的自信,而这源自如下认知:自己乃是属于一个更大的整体,当他人受到伤害或死去时,当他人受到折磨或压迫时,这个整体就会消失。”
自由软件

Ubuntu 项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。也就是说 Ubuntu 目前是并将永远是免费的。 然而,这并不仅仅意味着零成本,自由软件的理念是人们应该以所有“对社会有用”的方式自由地使用软件。“自由软件”并不只意味着您不需要为其支付费用,它也意味着您可以以自己想要的方式使用软件:任何人可以任意方式下载、修改、修正和使用组成自由软件的代码。因此,除去自由软件常以免费方式提供这一事实外,这种自由也有着技术上的优势:进行程序开发时,就可以使用其他人的成果或以此为基础进行开发。对于非自由软件而言,这点就无法实现,进行程序开发时,人们总得白手起家。基于上述原因,自由软件的开发是迅捷、高效和激动人心的。
Ubuntu的不同之处
目前已有大量各种各样基于 GNU/Linux 的操作系统,例如:Debian、SuSE、 Gentoo、RedHat 和 Mandriva。在这业已竞争纷繁的世界里,Ubuntu 是又一个参与者。那么 Ubuntu 何以有所不同? Debian 是一个广受称道、技术先进且有着良好支持的发行版,Ubuntu 正是基于 Debian 之上,旨在创建一个可以为桌面和服务器提供一个最新且一贯的 Linux 系统。
Ubuntu 囊括了大量精挑细选自 Debian 发行版的软件包,同时保留了 Debian 强大的软件包管理系统,以便简易的安装或彻底的删除程序。与大多数发行版附带数量巨大的可用可不用的软件不同,Ubuntu 的软件包清单只包含那些高质量的重要应用程序。 在注重质量的同时,Ubuntu 提供了一个健壮、功能丰富的计算环境,既适合家用又适用于商业环境。本项目花费了大量必要的时间,努力精益求精,每6个月就会发布一个版本,以提供最新最强大的软件。Ubuntu 支持各种形形色色的架构,包括 i386、AMD64以及 PowerPC 等。
Ubuntu和Debian是有史以来最具有影响力的两个Linux发行版。在大约285个活跃发行版当中,有132个源自Debian(也包括Ubuntu本身),另有67个直接源自Ubuntu。不过使用这两个发行版的体验几乎在每个方面都不一样。因而,在Ubuntu和Debian之间作一个选择并非易事。

如果要求你解释一下Ubuntu和Debian之间的区别,大多数会这样回答:Ubuntu是面向新手的发行版,而Debian是面向专家的发行版。这样的描述部分正确,但同时夸大其辞。
同样,从设计概念来看,Ubuntu非常易于使用。如果你的工作习惯与这些概念不一致,可能会强烈反对Ubuntu易于使用这一观点。
然而,虽然Ubuntu源自Debian,但两者的区别还是很明显。从安装和桌面,到程序包管理及社区,大家认为自己对于Ubuntu和Debian了解的情况可能是错误的,或者至少需要作一些严格限制――这一切使选择哪个发行版适合贵公司的业务战略显得非常困难。

  • 安装方面的区别

眼下,你可以使用哪个发行版取决于拥有的硬件。Debian目前面向大约13种硬件架构:从标准的32位和64位英特尔架构到ARM和PowerPC架构,还支持另外两种正在开发的架构。相比之下,Ubuntu支持32位和64位版本这两大不同的计算机桌面环境,现正在为移动设备开发Ubuntu ARM版本。
要考虑的另一个方面是面向每个发行版的安装程序。Ubuntu的标准安装程序被设计成主要为了要求尽量少的用户输入,以便确保安装简单、速度尽可能快。要是你遇到任何问题,可以试试专家模式安装程序,这是Debian安装程序稍稍改头换面的版本。
Debian安装程序显然有其他优先事项。比如说,其图形化版本是GUI,这有别于主要在工具包中的基于文本的安装程序:除了让害怕使用命令行的那些用户感到安心外,没有任何优势可言。
相比之下,Debian之前的声誉是,只要按照在线操作说明,此外每个阶段接受默认设置,通常就可以安装Debian。然而,如果你决定亲自选择,可以在安装过程的每一步选择每个设置,这大大增加了安装所需的时间。Debian安装程序并不是迎合没有经验的用户,而是兼顾所有不同水平的用户。它不是很漂亮,但是不用编译自己的程序包,所以你不可能找到更灵活的安装程序。

  • 管理和程序包管理方面的区别

Debian和Ubuntu都鼓励使用根帐户用于管理,使用受限制帐户用于日常操作,这一点不足为奇。然而,选择的安全模式不一样。
在Debian中,用户通常通过直接登录进入到根帐户来执行管理任务,然后尽快再次注销,以便缩短安全隐患期。不过,Ubuntu隐藏了根密码;不是使用sudo,而是允许至少1个用户输入自己的密码,以便下达管理命令。
Debian的程序包主要分为三大类:测试版、稳定版和不稳定版。新的程序包进入稳定版,然后在经过调试后转变成测试版。官方版本准备好后,处于测试版的现有程序包接受进一步的检查,最后成为新的稳定版。
近些年来,官方、甚至非官方增添了另外一些程序包,比如Backports、Experimental、Security、Old Stable和Update。然而,用户需要把注意力主要放在三大类软件库上。
Debian系统具有的优点之一是,你可以在下面这两个极端之间作一选择:极其稳定,但缺点是版本较老;或者非常先进,但缺点是软件不大稳定,技术出现的重大变化可能让不知情用户的系统崩溃。这里的选择取决于你是升级核心组件(比如Linux内核),还是升级灾难发生时不影响其他东西的自带代码库的独立式实用工具。
恰恰相反,Ubuntu的程序包来自Debian测试版或不稳定版。Ubuntu的软件库按照其他标准来加以组织,而不是由测试状态来加以组织。Main含有Canonical支持的软件,以及Ubuntu社区支持的Universe软件。Restricted含有专有驱动程序,其中Multiverse存放有版权或其他法律限制的软件。
另一个主要的区别在于,Debian更致力于提倡软件自由。它在默认情况下只安装自由软件,安装程序甚至提供没有专有固件的内核。如果你需要非自由软件,就需要为每个软件库添加Nonfree和Contrib这两个部分。
正好相反,自由与专有之间的区别在Ubuntu当中不是那么清楚。这边厢,Debian不鼓励使用专有软件,不过允许用户做出自己的选择;那边厢,Ubuntu鼓励用户安装专有软件,获得与其他商业操作系统上的计算体验相媲美的计算体验。万一你愿意试一下,可以在Debian上获得同样的体验,但是Debian更清楚地表明:你这么做的同时牺牲了软件自由。

  • 桌面方面的区别

Ubuntu和Debian默认情况下使用不同的桌面环境。Ubuntu默认情况下使用Unity;近几年来,背后大力支持Ubuntu的企业Canonical一直在开发这个桌面。不过到了Ubuntu 18.04,Ubuntu 桌面又回归到了 GNOME,默认搭载 GNOME 3.28
然而,那些默认桌面意味着除了方便外没多大意义。Debian和Ubuntu都支持多个桌面。在Ubuntu中,桌面是半独立的发行版,包括Xubuntu for Xfce和Kubuntu for KDE。那些变种与标准的Ubuntu采用了同样的底层GNOME技术,能不能与官方版本同步不好说,时间相差不到几周。
在Debian中,桌面方面的选择大致一样,不过开发桌面的团队与开发标准Debian的团队关系比较紧密。那些版本的时间表有变化,所以总是预计要花点时间在网上搜索,查一查开发结果可能让你有兴趣的团队的近况。
除了Unity外,为Ubuntu编写的大多数软件也有面向Debian的版本。为Debian编写的软件几乎总是有面向Ubuntu的版本,因为Ubuntu的程序包来自Debian的软件库。由于Debian的发布周期慢得要命,Ubuntu的软件还通常比Debian的软件来得更新颖。不过其优点是,Debian往往更稳定,经过更全面的测试。
提醒一句:别想当然地以为共同的起源让两者程序包可以相互兼容;因为虽然许多程序包可以同时安装到Ubuntu和Debian上,但大约20%的Ubuntu程序包与Debian不兼容的可能性相当大,那是由于名称和文件位置不一样。

  • 社区方面的区别

对于从事开发工作的用户来说,Ubuntu社区和Debian社区也是他在选择时需要考虑的一个因素。众所周知,Debian常常事无巨细地讨论一切,尤其是有争议的话题,甚至会进入集体表决的地步。
近些年来,Debian似乎很成熟老练,但是讨论仍有时变成一场混战。过去,Debian被被描述成是一种对女性不友好的环境;而近来,将init换成systemd方面的争论变得非常激烈,结果好几个资深开发人员选择走人,而不是忍受虐待。
与此同时,Debian奉行精英民主,所有官方维护人员投票表决Debian领导者及其他所有议题。虽然被任命的岗位有时是权力来源,但是Debian工作人员普遍推行的领导方式还是提建议和实行民主,而不是直接发号施令。
Ubuntu有别于Debian的地方在于,Ubuntu为社区活动制定了行为规范。时至今日,Ubuntu的社区管理员是Jono Bacon,他写过一本书,介绍《社区之道》,还投入了大量的精力来消除冲突。此外,每年都会选择技术委员会(Technical Board)和社区理事会(Community Council)的部分成员。
然而,这种表面上的民主与实际的民主不太一样。Ubuntu的创始人Mark Shuttleworth在管理委员会中占有永久性席位,还拥有决定权。Mark及其Canonical代表对于社区通常拥有否决权,这在过去好几次引起了用户反抗。

  • 如何做出最佳选择

是专家还是新手?要自由还是专有?要易用性还是控制性?需要平台支持吗?要先进性还是要稳定性?要Unity还是要GNOME?要有节制、有礼貌,还是畅所欲言但民主作风?
你也注意到了,选择Ubuntu还是选择Debian常常归结为哪个方面对你来说更为重要。
在你选择其中一个发行版之前,我强烈建议弄清楚你在所有这些两选一方面处于什么样的情况。你可能更看重某个方面。
然而,不管你做出怎样的决定,几乎不会选错。尽管我们上面提到了种种区别,但是Ubuntu和Debian并不是偶然成为自由软件领域的两大领先发行版。Ubuntu和Debian的共同霸主地位表明,任何一个都是合理的选择,只要你明白自己的优先事项就行。
长期支持版本(Long-Term Support LTS)
Ubuntu 的所有版本至少会提供 18 个月的安全和其它升级支持。LTS 有点特别,它已是个准企业级版本,Ubuntu的LTS现在无论是桌面版还是服务器版,每2年出一个LTS版本,都提供5年的支持更新。
Ubuntu的桌面环境
Ubuntu Linux 除了官方的Ubuntu桌面版,还有一些衍生版本:

  • Kubuntu – KDE 桌面版Ubuntu
  • Lubuntu – LXDE 桌面版Ubuntu
  • Xubuntu – Xfce 桌面版Ubuntu

Ubuntu 官方版

从 Ubuntu 18.04(2018 年 4 月)开始,GNOME 成为 Ubuntu Linux 的官方桌面环境。除了 GNOME 是一个极其稳定且易于使用的桌面环境之外,选择官方版的一个很好的理由是:支持服务。这个 Ubuntu 的官方版是由 Canonical 提供商业支持的。您可以每年花费 $150.00 为 Ubuntu 桌面版购买 官方支持服务。当然,对于这一级别的支持,最少要购买 50 个桌面的支持服务。而对于个人来说,最好的支持是 Ubuntu 论坛,Ubuntu 文档,或者社区帮助维基。
在商业支持之外,选择 Ubuntu 官方版本的原因是,如果你想要一个现代的、功能齐全的桌面的话,它是非常可靠和易用的。 GNOME 被设计成完美地适合桌面和笔记本电脑桌面的平台。与它的前代的 Unity 不同,GNOME 可以更方便地定制以适合你的需要。如果你不喜欢摆弄桌面,不要担心,GNOME 工作的很好。事实上,GNOME 开箱即用的体验也许是市场上最优秀的桌面之一,甚至可以与 Mac OS X 媲美(或者更好)。如果修补和调整是你的主要的兴趣所在,你会发现 GNOME 在一定程度上是受限制的。 GNOME 调整工具和GNOME Shell 扩展只会比你想要的提供的更多。
Kubuntu

K Desktop Environment(即 KDE)与 GNOME 长期并存,有时被误解为一个较少见的桌面。但随着 KDE Plasma 5 的发布,情况发生了变化。KDE 已经成为一个强大的、高效的、稳定的桌面,它正在一步步地成为最好的桌面系统。但是你为什么要选择 Kubuntu 而不是 Ubuntu 官方版本呢?这个问题的答案很简单——你习惯了 Windows XP / 7 桌面模式。开始菜单、任务栏、系统托盘,等等,KDE 拥有这些乃至更多,所有的这些都会让你觉得你在使用过去和现在的最好的技术。事实上,如果你正在寻找一款最像 Windows 7 的 Ubuntu 官方特色版本,除了它你就找不到更好的了。
Kubuntu 的优点之一是,你会发现它比你以前使用过的任何 Windows 版本都灵活,而且同样可靠/友好。不要觉得因为 KDE 提供的桌面有点类似于 Windows 7,它就没有现代特色。事实上,Kubuntu 对类 Windows 7 的界面进行了很好的处理,并更新了它以满足更现代的审美。
Ubuntu 官方版本并不是提供桌面支持的唯一特色版本。Kubuntu 用户也可以购买商业支持。注意,它不便宜,一个小时的支持服务将花费你 103.88 美元。
Lubuntu

如果你正在寻找一个易于使用的桌面,要非常快(以便旧硬件感受如新),而且要比你曾经使用的任何桌面都灵活,那么 Lubuntu 就是你想要的。对 Lubuntu 唯一的警告是,你看到更加空荡的桌面,也许你已经习惯了。Lubuntu 使用 LXDE 桌面,并包含一个延续了轻量级主题的应用程序列表。因此,如果你想在桌面上寻找极速快感的体验,Lubuntu 可能是个不错的选择。
然而,对 Lubuntu 有一个提醒,对于一些用户来说,这可能会影响他们选择它。由于 Lubuntu 的低配,其预先安装的应用程序可能无法胜任任务。例如,取而代之成熟的办公套件的是,您将发现 AibWord 字处理器和 Gnumeric 图表工具。别误会,这两个都是很好的工具。然而,如果你正在寻找一款适合商业使用的软件,你会发现它们缺乏友好的支持。另一方面,如果你想要安装更多的以工作为中心的工具(例如 LibreOffice),Lubuntu 包括了新立得软件包管理器可以简化第三方软件的安装。
Xubuntu

另一种很好地提供了低配支持的 Ubuntu 官方特色版本是 Xubuntu。Xubuntu 和 Lubuntu 的区别在于, Lubuntu 使用 LXDE 桌面,而 Xubuntu 使用Xfce。差别就是这个轻量级桌面,它比 Lubuntu 更具可配置性,也包括了更适合商务的 LibreOffice 办公套件。
Xubuntu 对任何人来说都是开箱即用的,无论是否有经验。但是,不要认为看起来熟悉就意味着这个 Ubuntu 特色版本可以让你马上随心所欲。如果你既想要 Ubuntu 传统的开箱即用,也想要经过大量调整成为一个更现代的桌面, 那么 Xubuntu 就是你想要的。
我一直很喜欢 Xubuntu 的一个非常方便的附加功能(就像之前的 Enlightenment),就是通过在桌面的任何地方右键点击打开“开始”菜单,这样可以非常有效的提高使用效率。
什么是 Linux?

Linux 内核,其发音为 ‘lee-nucks’,是 Ubuntu 操作系统的核心。内核是操作系统的重要组成部分,它是硬件和软件之间进行通讯的桥梁。 Linux 诞生于1991年,由芬兰学生 Linus Torvalds 发起。那时,它只能运行在 i386 系统上,实质上是个独立编写的 UNIX 内核之克隆,旨在充分利用当时全新的 i386 架构。 现如今 Linux 几乎能运行在所有现代架构之上,这要归功于来自世界各地的人们所作的大量开发工作。 Linux 内核不仅在技术上占有一席之地,还在意识形态上占有重要位置。有一整个社区的人相信自由软件的理念,并花费大量时间帮助开源技术,使之臻于完美。 正是这个社区里的人们促使了 Ubuntu 的出现、促成了规范 Internet 发展的众多标准委员会、促成了一些组织如Mozilla基金会 (负责创建了Mozilla Firefox) 的出现、还促成了无数其它使您受益匪浅的软件项目。 开源精神,这通常归因于 Linux,正在深刻影响着各地的软件开发者和用户,他们驱使着各个社区朝着共同的目标前进。
Ubuntu 和linux的关系

严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。
发行版通常由个人,团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。
一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。
和有限的默认软件一起,Lubuntu 提供了一个简单易用的桌面(图 3),任何人都可以马上开始使用,几乎没有学习曲线。
Ubuntu则是世界上最流行的Linux发行版。
什么是 GNU?

GNU 项目,其发音为“guh-noo”,于1984年发起,目标是开发一个完整的 UNIX 类的操作系统-GNU 系统,它全部由自由软件组成。使用 Linux 内核的 GNU 操作系统变种已被广泛使用;尽管这些系统常冠以“Linux”,更准确的说它们应称为 GNU/Linux 系统。 GNU 项目和自由软件的理念紧密相连,它也是衍生自 GNU 的、诸如 Ubuntu 等项目的关键所在。
Linux目录和文件系统
Linux 和 Unix 文件系统被组织成一个有层次的树形结构。文件系统的最上层是 /,或称为 根目录。在 Unix 和 Linux 的设计理念中,一切皆为文件,注意,一切!皆为文件!!!——包括硬盘、分区和可插拔介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。 例如:/home/wuchuanbin/hello.c 给出了正确的完整路径,它指向 hello.c 文件,而该文件位于 wuchuanbin 目录下,该目录又位于 home 目录,最后,home 目录又位于根(/) 目录下。
在根 (/) 目录下,有一组重要的系统目录,在大部分 Linux 发行版里都通用。直接位于根 (/) 目录下的常见目录列表如下:
Linux 和Unix 文件系统被组织成一个有层次的树形结构。文件系统的最上层是/,或称为 根目录。在Unix 和Linux 的设计理念中,一切皆为文件,注意,一切!皆为文件!!!——包括硬盘、分区和可插拔介质。这就意味着所有其它文件和目录(包括其它硬盘和分区)都位于根目录中。 例如:/home/wuchuanbin/hello.c 给出了正确的完整路径,它指向 hello.c 文件,而该文件位于 wuchuanbin 目录下,该目录又位于home 目录,最后,home 目录又位于根(/) 目录下。
在根(/) 目录下,有一组重要的系统目录,在大部分Linux 发行版里都通用。直接位于根(/) 目录下的常见目录列表如下:

  • /bin – 重要的二进制(binary) 应用程序
  • /boot – 启动(boot) 配置文件
  • /dev – 设备(device) 文件
  • /etc – 配置文件、启动脚本等(etc)
  • /home – 本地用户主(home) 目录
  • /lib – 系统库(libraries) 文件
  • /lost+found – 在根(/) 目录下提供一个遗失+查找(lost+found) 系统
  • /media – 挂载可移动介质(media),诸如CD、数码相机等
  • /mnt – 挂载(mounted) 文件系统
  • /opt – 提供一个供可选的(optional) 应用程序安装目录
  • /proc – 特殊的动态目录,用以维护系统信息和状态,包括当前运行中进程(processes) 信息。
  • /root – root (root) 用户主文件夹,读作“slash-root”
  • /sbin – 重要的系统二进制(system binaries) 文件
  • /sys – 系统(system) 文件
  • /tmp – 临时(temporary)文件
  • /usr – 包含绝大部分所有用户(users)都能访问的应用程序和文件
  • /var – 经常变化的(variable)文件,诸如日志或数据库等
吴川斌

吴川斌