1.1 任务概况

1.1.1 工作场景

一、业务需求

要在园区网(如校园网)部署Web、FTP、SAMBA、DNS和DHCP服务器等,要先安装Linux操作系统。
在开始学习安装时,建议先在虚拟上进行安装。等熟悉后,可以尝试在真机或服务器硬件上安装,或在容器部署。

二、场景任务

  1. 一般学习者是在Windows 7/10上安装虚拟机软件,在虚拟机中安装部署Linux服务器,常用的虚拟机软件有Vmware和Virtualbox两种。其中Vmware的占有率大。
  2. 在国内Linux服务器市场中,CentOS因为与RHEL同源同步,深受国内互联网等企业青睐,最为普及。其中CentOS7是当前的主流。

工作任务: 在Win10的VMware虚拟机上安装CentOS7操作系统。

1.1.2 教学内容

对接工作任务,要在实训室(个人电脑)利用vmware机安装CentOS7操作系统。

一、教学条件

  1. Win10电脑,已经安装有VMware Workstation;
  2. 提供了CentOS-Everything-1908.iso镜像文件;
  3. 已经安装有1台教学用的CentOS7虚拟机环境,作为参考和后续教学使用。

    二、任务要求

    初期阶段,以能正确完成安装、进入系统为初始目标。具体要求:

  4. 选择中文,同时勾选英文English。

  5. 自动磁盘分区。暂不自定义分区。
  6. 选择“带GUI的服务器,选装开发工具和管理工具”。
  7. 在root帐号外,新增1个管理员用户(sudoer), 设置统一的教学用密码: Toor12#$

    1.2 新知导学

    1.2.1 Linux体系结构

    Linux是一个用C语言写成,符合POSIX标准的类Unix操作系统。一般有3个主要部分:内核(kernel)、命令解释层(Shell或其他GUI)、实用工具。

    一、内核Kernel

    用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。内核Kernel的开发和规范一直是由Linux社区控制着。

如图,Linux内核只是Linux操作系统一部分。对下,它管理系统的所有硬件设备;对上,它通过系统调用,向Library Routine(例如C库)或者其它应用程序提供接口。
image.png

二、Linux Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。

Shell既包括 bash等命令行解释器,也提供了X-Window的图形化的GUI用户界面。

三、实用工具

可分三类:

  1. 编辑器:用于编辑文件。
  2. 过滤器:用于接收数据并过滤数据。
  3. 交互程序:允许用户发送信息或接收来自其他用户的信息。

Linux的编辑器主要有:Ed、Ex、Vi/vim和Emacs。Ed和Ex是行编辑器,Vi/vim和Emacs是全屏幕编辑器。

1.2.2 Linux发行套件和包管理

一、Linux发行版的作用

起初的Linux操作系统更多面向开发者、极客、黑客等少数人群。软件安装从源码编译。过高的使用门槛,大大限制了使用者人群和推广范围。为将Linux推广到各个领域人群,由社区和商业公司在Linux操作系统的基础上,开发软件包管理工具和应用仓库,通过特定的软件打包格式组装软件,形成各具特色的发行版。对Linux的流行和普及功不可没。

二、国内流行Linux的两大发行版系列

由于Linux的开源、方便定制的特点,当前Linux发行版不下300种。
在国内来看,可以分为两大系列。

(一)商业公司代表的Redhat系列

  1. 重点面向企业领域,在发行企业操作系统RHEL的同时,重在为企业提供各种应用解决方案、服务和认证,来实现商业价值。
  2. 同时参与开源等基金会,资助开源项目和反馈社区,共同发展。课程中用到的CentOS基本上是RHEL的源码克隆版本。
  3. 包管理工具是rpm 和 yum。
  4. 另一个商业版本是德国的openSUSE,可以自行了解。

    (二)社区社群为代表的Debian系列

  5. 尽可能保持纯粹的开源特性和遵循GNU规范, 100%免费,稳定性和安全性高。

  6. 对安装和使用的门槛高,部分硬件驱动或程序因为不开源无法集成,要用户自行解决。
  7. 包工具是apt-get
  8. 在Debian基础上衍生了很多版本,如Ubuntu系列,国产的麒麟和Deepin等。

    (三)其他系列

  9. 包括从零开始,高度折腾的Gentoo和Slackware

  10. 采用滚动发布的Arch和Manjaro等等。。。

    (四)国产的版本

    以麒麟和深度Deepin为优秀代表。是信创产业的重点内容。

两个版本以满足国内行政机关和央企的基本信息化和数字化需求为目标,以桌面易用性为出发点,作了大量的开发、定制、调试和创新工作。以下图Deepin 20.6版本为例。
image.png

1.2.3 开源协议与安全可控

程序源码发布时,所有者可以为其指定一种发布协议,这个协议,作为一种契约或约定,同样收到所在国法律的保护。

一、GPL(GNU General Public License)

  1. Linux操作系统,尤其是GNU Linux,强调安装GPL(GNU General Public License)的开源协议进行发布系统及其源码。
  2. GPL的逻辑是我的代码开源,大家都可以自由获取,但你对它的修改变更同样必须以同样GPL协议发布,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。要不你就不要在我的代码基础上修改。
  3. 软件发布具有“传染性”。
  4. 有以类库链接使用的,更宽松的LGPL版本。如PyQT库可以同时支持开源社区和商业使用。

    二、BSD

  5. BSD开源协议是一个给于使用者很大自由的协议。使用者可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但需要尊重代码作者的著作权。

  6. BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。
  7. 而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

    三、MIT

  8. MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制。

  9. 你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

    四、Apache

  10. Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。

  11. 在代码再发布时,要给代码用户一份Apache Licence,如果修改了代码,要在被修改的文件中说明。
  12. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

请思考,Linux上的所有软件都必须开源吗?基于Linux的国产化软件可以实现安全可控吗?

1.3 操作示范

1.3.1 安装演示

具体安装步骤可查看下方B站视频,视频播放右下处可调清晰度。
点击查看【bilibili】

1.4 做迭代

1.5 同复盘