Linux学习笔记(一)- 基础概念

介绍

       Linux由Linux Torvalds在1991年构思设计而成,继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它是一套免费使用和自由传播的开源的类 Unix 操作系统,同时也是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

        操作系统则是指直接管理系统硬件和资源(如 CPU、内存和存储空间)的软件。操作系统位于应用与硬件之间,负责在所有软件与相关的物理资源之间建立连接(这里简单带过,不再多做介绍。)

优势

        Linux最大的优势就是它的“开源性”和“可移植性”。以下是Linux相较于主流操作系统(如Windows和macOS)的优势。

开源和自由

开源特性

        Linux是一个开源的操作系统,用户可以自由地查看、修改和分发其源代码。这种开源特性不仅促进了技术创新和社区协作,还降低了用户的成本,因为不需要支付额外的许可费用。

自由定制

        用户可以根据自身需求自定义和定制Linux操作系统,以满足特定的应用场景和性能要求。因为Linux生态系统的核心项目之一就是桌面环境——由基础的用户程序和可视化元素组成的一个集合,这些元素(比如状态栏和启动器)构成了用户与计算机的一个交互界面。

高度稳定性和可靠性

稳定性

        Linux以其高度的稳定性而闻名,能够长时间运行而不需要重启,具有出色的系统鲁棒性。(简单来说,鲁棒性是指系统或者算法在面对各种可能出现的变化时仍能保持正常的运行状态和正确的输出结果。)这使得Linux在需要高稳定性的服务器、超级计算机和嵌入式系统中得到广泛应用。其中也有一部分原因是因为Linux内核的源代码是以标准规范位数的计算机来做的最佳化设计,在确保系统稳定的同时也使它在系统上运行的要求低于Windows和macOS。(而且,主流操作系统在更新包时往往需要重启来进行安装,Linux由于运行基理的不同,除非内核更新,否则任何更新的安装都无需重启。)

可靠性

        Linux被认为是可靠的操作系统,能够处理运行软件和意外输入时的错误,并且受到安全补丁的良好支持。

强大的安全性

多层次安全机制

        Linux提供了多层次的安全机制,如文件权限、用户身份验证、防火墙和加密等,以保护用户免受恶意攻击。

及时修复漏洞

        Linux社区会及时修复和更新操作系统中的安全漏洞,确保系统的安全性。因为它采取了很多安全措施,比如读写权限控制和审计跟踪,一般情况下当一个病毒在linux中出现后,在几个小时内所有的linux发行版都会接种对应“疫苗”,这也是更新周期长的主流操作系统很难做到的。

灵活性和可定制性

多用户和多任务支持

        Linux支持多用户和多任务操作,多个用户可以同时登录并在同一时间执行多个任务,共享系统资源。

丰富的发行版选择

        Linux拥有众多的发行版,如Ubuntu、RedHat、CentOS等,用户可以根据自己的需求选择合适的发行版,并根据需要安装和配置各种软件、服务和工具。

良好的性能和扩展性

性能优越

        Linux操作系统具有出色的性能和扩展性,能够充分利用硬件资源,提供高效的系统运行能力。

支持多种硬件

        Linux具有良好的可移植性,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行这是因为Linux的内核大部分都是由C语言编写,并采用了可移植的UNIX标准应用程序接口,所有它支持众多系统平台(比如Alpha、AMD、I386),包括个人电脑到大型主机,甚至包括智能移动设备和嵌入式设备在内的各种硬件。。

庞大的开源软件生态系统

丰富的开源软件

        Linux拥有庞大的软件生态系统,包括各种开源应用程序、库和工具。用户可以方便地访问和使用这些软件,满足各种需求,无需额外购买商业软件。

高效的文件系统

使用高效

        Linux秉持了“一切皆文件”的UNIX哲学,几乎兼容了所有市面上主流的文件系统。它们不但可以对文件设置权限,实施完全的保护,而且在使用过程中会有“越用越整齐”,“越用碎片越少”的效果。

低的成本

无许可费用

        与Microsoft Windows或Apple macOS不同,Linux没有明确的许可费用。虽然一些Linux供应商提供收费的系统支持,但操作系统本身可以免费复制和使用。这大大降低了用户的成本。

完善纯净的软件包管理机制

干净管理

        大部分 Linux 发行版都具有特定的软件包管理工具(类似于无需注册帐号的 App Store),具有易于安装,更新和卸载的特性;并起到了保护配置文件的作用,不需要处理依赖关系也不容易对系统造成污染。同时由于其开源的特点,相较 Windows 和 macOS 里你那些平时用不到却会在每次大版本升级后「卷土重来」的预置应用,在 Linux 里你可以卸载一切不想安装在系统里的预置应用。

        综上所述,Linux操作系统在开源和自由、高度稳定性和可靠性、强大的安全性、灵活性和可定制性、良好的性能和扩展性、庞大的开源软件生态系统以及较低的成本等方面具有显著优势。这些优势使得Linux成为广泛使用的操作系统之一。

哲学思想

        Linux哲学思想主要有以下几点:

一切皆文件

        这是 Unix/Linux 的基本哲学之一。不管是普通的文件,目录,或者是字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待。它们虽然类型不同,但是对其提供的却是同一套操作界面。这样可以设计统一的访问控制操作,也可以进一步提高内核控制源码的精简程度。

小型,单一用途的程序

        单个程序和可执行文件不要太复杂,这样才能保证了linux内核的高效运行。

组合小程序完成复杂任务

        复杂的任务可以通过连接多个简单的程序实现复杂的功能。对于复杂的功能linux通过许多简单程序的组合等方式实现,在保证简单功能的高效性的同时,复杂的程序也必然是高效性的。

提供机制,而非策略

        在Linux 中有一经典“只提供机制而非策略”。从笼统意义上讲,所谓机制就是“提供什么功能”;策略就是“实现什么功能”。这种独特的设计思想为设计者提供了更大的空间使其更好的实现它。在中国百科全书中这样一段关于军事的文字,“将能而君不御者胜”,即将有才同时君王不统御的话,战争必胜。其实,机制就好比不盲目指挥的“君主”,他只发出他要达到怎样的目的诏令,却不给出任何具体行为,任凭将军们自行决定,也就是把主动权交给使用者。

避免用户界面的麻烦

        在windows中用户界面出了问题一般人会选择重启,实在是不行的话就是重装系统了,因为那种不开源且用户界面比较复杂操作系统出了问题,一般的人是根本没有办法自行解决的。但是linux就不一样了,它避免交互介入,易于以编程的方式实现自动化任务,以脚本编程的方式实现功能管控的自动化。Linux是开源的,无论什么问题都可以通过简洁的命令行实现排错。

将配置数据存储在文本文件中

        Linux所有的配置文件放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可,而不是类似于windows那样将保存在注册表中。Linux用文本方式管理程序的配置信息,使得程序具有更丰富的特性功能表现。

体系结构

        Linux系统一般有四个主要部分:内核、shell、文件系统、应用程序。 前三者一起构成了基本的操作系统结构,它使得用户可以使用这个操作系统并在系统中完成特定的任务。(其结构如上图所示)

Linux内核

        内核是操作系统的核心,提供很多的基本功能,它负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统等,决定着系统的性能和稳定性。Linux内核主要由内存管理、进程管理、设备驱动程序、文件系统、网络管理等几部分组成,其体系结构可表示成如下图所示。

         从上图可以看出,用户与内核之间的交互是通过系统调用接口来完成的。

内存管理

        对于计算机而言,内存资源总是有限的,为了让有限的物理内存满足应用程序的需求,Linux采用了“虚拟内存”管理方式, 它使得应用程序认为它拥有连续可用的内存(实际上是多个物理内存碎片,甚至部分暂存在外部磁盘上),让大型程序的编写变得更容易,对物理内存的使用也更有效率。

        Linux将物理内存划分为容易处理的内存页,目前大多数系统的页面都是4kb。

        Linux管理可用内存的方式以及物理、虚拟映射所使用的硬件机制。当然,内存管理不光是管理4kb缓冲区, 其中系统提供了对4kb缓冲区的抽象,它是以4kb为基数,从中分配结构,并跟踪内存页的使用情况,从而达到根据系统的需要动态调整的效果。

        为了支持多用户使用内存,有时内存可能被消耗光,此时系统可以将暂时不用的页面放入磁盘中,这个过程称为交换。

进程管理

        进程是某特定应用程序的一个运行实体。Linux系统支持多任务,它是通过在“时间片”间隔内轮流执行这些进程来实现的,进程轮流执行的方法称为“进程调度”,完成调度的程序为调度程序。

        进程调度就是控制进程对CPU的访问, 每次由调度程序选择“最值得”运行的进程(可运行进程是仅等待CPU资源的进程),这种“最值得”是系统基于优先级的进程调度算法实现的。

        由于通用多任务机制,每个进程可认为只有自己独占计算机,从而简化了程序的编写。而每个进程有自己单独的地址空间,并只有自己可以访问,这样又有效避免了进程间的干扰。对于某项任务需要多个进程协作完成的,操作系统提供了进程间通讯机制来辅助完成。

        Linux系统中常见的进程间通讯机制有:信号、管道、共享内存、信号量、套接字等。

        内核通过SCI层提供了一个应用程序编程接口来创建一个新进程(fork 、exec或POSIX函数)、停止进程(kill、exit),并在它们之间进行通信和同步(signal或POSIX机制)。

文件系统

        Linux系统将独立的文件系统组合成了一个层次化的树形结构, 并由一个单独的实体代表这一文件系统。对于一个外部新的文件系统,Linux系统通过“挂载”的方式将其挂载到某个目录上,从而让不同的文件系统结合成一个整体。

        Linux支持多种不同的文件系统,其中Ext2是其原生文件系统外,它也能够支持FAT、VFAT、FAT32、MINIX等文件系统,从而可以方便地与其它操作系统交换数据。Linux系统能支持不同的文件系统,是因为它将各种文件系统组织成了一个统一的虚拟文件系统(Virtual File System)。

设备驱动程序

        设备驱动程序是Linux系统内核的主要部分,它控制着操作系统和硬件设备间的交互。一般,设备驱动程序与设备的控制芯片有关。

网络接口

        网络接口提供了各种网络标准的存取和各种网络硬件的支持。Linux的网络实现支持BSD接字,支持全部的TCP/IP协议。

主要任务

技术层面

        内核是硬件与软件之间的一个中间层。作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。

应用程序层面

        应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。在实际工作中内核抽象了相关细节。

资源管理

        负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。

提供一组面向系统的命令

        系统调用对于应用程序来说,就像调用普通函数一样。

Linux Shell  

   shell是系统的用户界面,提供了用户与内核进行交互操作的接口,它接收用户输入的命令并将它送到内核去执行。shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其它应用程序具有同样的效果。

        目前大部分GNU操作系统上默认的就是bash shell

Linux 文件系统

        文件系统是文件存放在存储设备上的组织方法。Linux系统支持的文件系统非常多,除Ext2、Ext3和Ext4之外,还能支持FAT、NTFS等Windows文件系统,较常见的文件系统如下表所示。(这里只列举几个)

名称开发者用途特点

 FAT32(File Allocation Table 32-bit)

微软(1996年)广泛用于各种操作系统和设备(包括USB闪存驱动器和SD卡)

 广泛兼容:几乎所有的操作系统(包括Windows、macOS、Linux等)都能原生支持FAT32,使其成为跨平台数据传输的常用文件系统。

 文件大小限制:不支持单个文件超过4GB,限制了在高容量需求场景中的应用。

 分区大小限制:分区大小上限理论上为8TB,但在大多数操作系统中,实际支持的最大分区大小通常限制在2TB。

 简单结构:由于FAT32的结构相对简单,文件系统损坏后相对容易修复。

 不支持权限管理:与NTFS不同,FAT32不支持文件级的权限管

 NTFS(New Technology File System)

微软(1993年)主要用于Windows操作系统

 安全性高:支持文件和目录级别的访问控制列表(ACL),提供更精细的权限管理。

 高性能:支持较大的文件和分区大小,以及高效的磁盘空间管理。

 日志功能:支持事务操作和恢复功能,提高数据完整性和可靠性。

 高级功能:包括文件加密(EFS)、磁盘配额管理、内置压缩等。

 跨平台支持:虽然主要为Windows设计,但通过NTFS-3G驱动程序,Linux系统也能实现对NTFS文件系统的

 EXT4(Fourth Extended File System)

Linux社区中的多个开发者和团队Linux系统的默认文件系统

 高性能:支持大文件和大分区,具有更快的读写速度。

 可靠性:支持日志功能和元数据检查,提供数据保护和恢复机制。

 灵活性:支持延迟分配和在线碎片整理,提升磁盘空间的利用效率。

 可扩展性:适合用于大型存储设备。

exFAT(Extended File Allocation Table)

微软(2006年)替代FAT32,主要用于闪存存储设备(比如USB驱动器和SD卡)

 大文件支持:支持单个文件大于4GB,适合存储高清视频、大型数据库等。

 大分区支持:支持非常大的分区,理论上最大可以达到128PB。

 跨平台兼容:在Windows、macOS和Linux(通过第三方软件包)上均有支持。

 轻量级文件系统:没有复杂的权限管理和日志功能,适合资源受限的嵌入式系统和移动设备。

         还有一些其他的文件系统 ,比如HFS+和APFS(苹果公司的文件系统,用于Mac OS X操作系统)、XFS(用于Unix和Linux系统,支持大文件和高性能的文件系统)、ZFS(开源的文件系统,支持强大的数据完整性和管理功能)。

文件类型

        Linux系统主要有以下文件类型:

 普通文件

        分为纯文本文件和二进制文件,如C语言代码、shell脚本、二进制可执行文件等。

 目录文件

        目录是存储文件的唯一地方。

 链接文件

        指向同一个文件或目录的文件。

 设备文件

        与系统外设相关的,一般在目录/dev下面。设备分为块设备和字符设备。

 管道文件

        提供进程间通信的一种方式。

 套接字文件

        与网络通信相关的文件,可以通过命令ls -l、file、stat等命令来查看文件的类型相关信息。

目录

        Linux使用标准的目录结构,在安装时就已经为用户创建了文件系统和完整固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

         在系统中,使用/来表示根目录,用“.”或“./”表示当前目录,用“..”或“../”表示上一层目录。如果一个目录或文件名以“.”开始,则表示这个目录或者文件是一个隐藏目录或文件,比如“.bashrw”,在默认方式查找时,不会显示该目录或文件。

        Linux系统的目录结构大致如下图所示:

        

        这里介绍一些主要的目录作用与内容。

目录名称详细描述
/binbin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的程序和指令。
/boot这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/devdev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etcetc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录,更改目录下的文件可能会导致系统不能启动。
/home用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的自定义文件夹。
/liblib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/procproc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。(这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件)
/sbins 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序,也就是只有系统管理员才能使用的程序和指令。
/runrun是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/tmp这个目录是用来存放一些临时文件的。
/varvar 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/usrusr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

         在Linux系统中,有下面几个目录是非常重要的,注意不误删除或随意修改内部文件。

/etc

        这个是系统配置文件,修改了目录下的某个文件可能导致系统无法启动。

/bin、/sbin、/usr/bin、/usr/sbin

        这是系统预设执行文件的放置目录, 不要轻易修改。(这里还是再介绍下,/usr/bin是系统普通用户使用的应用程序,/usr/sbin是超级用户使用的比较高级的管理程序和系统守护程序。)

磁盘分区

        Linux分区不同于Windows,硬盘和硬盘分区在Linux系统中都表示为设备。

        硬盘分区一共有三种:主分区、扩展分区和逻辑分区。主分区与扩展分区的数目之和不能大于四个。

 主分区(Primary Partion)

        可以马上被使用,但不能再分区。

 扩展分区(Extension Partion)

        必须再进行分区后才能使用;

 逻辑分区(Logical Partion)

        由扩展分区建立起来的分区,逻辑分区没有数量上的限制。

        总结来说,一个硬盘分区首先要确认在哪个硬盘,然后再确认它在哪个分区。可以使用fdisk -l命令查看硬盘的详细信息。

链接与软链接

        Linux中连接有硬链接与软链接之分, 软链接又叫符号链接。

 硬链接

        硬链接是指通过索引节点进行链接。文件系统中的文件都会给其分配一个编号,这个编号即索引节点,多个索引节点指向同一文件就是硬链接。硬链接的作用在于允许一个文件有多个路径名,从而建立了硬链接,以防止“误删除”。文件真正删除的条件是与之相关的所有硬链接文件均被删除。

 软链接

        软链接用ln -s命令建立文件的符号链接是Linux特殊文件的一种,作为一个文件,它的数据是它所链接的文件的路径名,类似于Windows下的快捷方式。

        硬链接与软链接的区别在于:硬链接原文件与新文件的inode编号一致,而软链接不一样;对原文件删除,会导致软链接不可用,而硬链接不受影响; 对原文件的修改,软硬链接文件内容都同样的修改,因为指向的是同一个文件内容的。

命令(目录管理相关)

        在这里列举几个文件目录管理的相关命令。

磁盘与文件空间管理

        fdisk、df、du

文件目录与管理

        cd、pwd、mkdir、rmdir、ls、cp、rm、mv

查看文件内容

        cat、tac、more、less、head、tail

文件目录与权限

        chmod、chown、chgrp、umask

文件查找

        which、whereis、locate、find

        具体详细的命令和操作会在后面的笔记中介绍。

发行版本

        Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本。前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

        在这里就列举这两类中几个比较主流的版本。

Red Hat(红帽)

        应该称之为Red Hat系列,包括RHEL(“Redhat Enterprise Linux”,也就是所谓的Red Hat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。

        Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Red Hat等同于Linux,这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Red Hat为例来讲解的。

        Red Hat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

        这里以Centos为例详细介绍,因为后面的环境搭建也是以Centos为例。

Centos

        CentOS于2003年底推出,是一个社区项目,目标是将红帽企业Linux(RHEL)的源代码重建为可安装的Linux发行版,并为所有包含的软件包提供及时的安全更新。换一种方式说,CentOS就是一个RHEL克隆版。这两个发行版之间唯一的技术差异就是品牌,CentOS用自己的所有代码取代了所有的红帽商标和标识。尽管如此,红帽与CentOS之间的关系仍然保持友好,许多CentOS开发者与Red Hat保持着紧密的联系,甚至直接受雇于Red Hat。

        CentOS经常被看作是一个可靠的服务器发行版。它配备了经过良好测试和稳定的Linux内核和软件包,构成了其母公司Red Hat Enterprise Linux的基础。尽管是志愿者维护的一个社区项目,但它已经赢得了市场上更高端服务器产品(尤其是经验丰富的Linux系统管理员)的稳定,免费替代品的声誉。 CentOS也适合作为企业桌面解决方案,特别是在稳定性,可靠性和长期支持优于最新软件和功能的地方。像RHEL一样,CentOS支持大约7 – 10年的安全更新。

        尽管有优势,CentOS可能不是所有部署方案中的最佳解决方案。那些喜欢使用最新的Linux技术和最新的软件包进行发布的用户应该到别处去看看。主要的CentOS版本是在RHEL版本的基础上发布的,每2 – 3年才会发布一次,而小版本(例如5.1)则以6到9个月为间隔。小发行通常不包含任何主要功能(虽然有时包括支持更新的硬件),只有少数软件包可能会更新到新版本。 Linux内核,基本系统和大多数应用程序版本保持不变,但偶尔也可以在试验的基础上提供重要软件包(例如LibreOffice或Firefox)的新版本。

        Centos的优点包括非常稳定和可靠、免费下载和使用、有7年以上的免费安全更新;缺点包括缺乏最新的Linux技术、有时该项目未能履行其及时提供安全更新和新稳定版本的承诺。

Debian

        也可以称为Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。

        Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch), stable、testing 和 unstable。其中,unstable为最新的测试版本,包括最新的软件包,但是也有相对较多的bug,适合桌面用户。而testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常高。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。

        这里用Ubuntu举例。

Ubuntu

        严格来说Ubuntu不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以说Ubuntu就是 一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,Ubuntu有三个版本可供选择,基于Gnome的Ubuntu、基于KDE的Kubuntu和基于Xfc的 Xubuntu。其特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

       在技术方面,它具有可预测的6个月发布时间表,外加一个长期支持(LTS)版本,支持5年的安全更新,具体取决于版本(非LTS版本支持9个月)。 Ubuntu的其他特殊功能包括可安装的Live DVD,独占应用和桌面主题,Windows用户的迁移助理,支持3D桌面效果等最新技术,为ATI和NVIDIA图形卡以及无线网络轻松安装专有设备驱动程序,并为非免费或专利设计的媒体编解码器提供按需支持。

        Ubuntu具体的优点包括拥有固定发布周期和支持期、 具有5年安全更新的长期支持(LTS)变体、新手友好、 丰富的文档、官方和用户无私贡献。缺点有与Debian有一定的兼容性问题、频繁的重大更新可能流失一些用户、Unity用户界面更适合移动设备,而不是电脑、 非LTS版本只有9个月的安全支持。

Mandriva

        Mandriva是目前全球最优秀的Linux发行版之一,稳居于linux排行榜第一梯队,2005年之前稳居linux排行榜NO.1。

        它是目前最易用的linux发行版,也是众多国际级linux发行版中唯一一个默认即支持中文环境的linux,是由法国的Mandriva公司(前身为Mandrake公司)开发的Linux发行版。

        Mandriva公司现在仍然是欧洲最大的Linux厂商,Mandriva Linux的前身为著名的Mandrake Linux。Mandriva(Mandrake)项目是世界上第一个为非技术类用户设计的易于使用、安装和管理的linux版本。

        Mandriva(Mandrake Linux)早期方便的字体安装工具和默认的中文支持,为Linux普及做出了很大的贡献。现在的Mandriva是由mandrake和Conectiva结合发展而来的。

        还有很多其他版本,比如SUSE Linux、FreeBSD等,这里就不多做介绍,网上有其他文章做了详细列举。

移动端

Android

        Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。它尚未有统一中文名称,我国较多人使用“安卓”或“安致”。

        Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。

        第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。

        其他移动端的Linux发行版也有很多(比如Chrome OS、Tizen、BADA等),这里也不再多做介绍。

国内版

Red Flag(红旗)

        Red Flag红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。红旗Linux是中国较大、较成熟的Linux发行版之一。

银河麒麟

        银河麒麟是一种由国内自主研发的服务器操作系统,由国防科技大学研发,拥有自主知识产权。它是一款安全、稳定、高效的操作系统,广泛应用于国家关键信息基础设施领域,如国防、政务、电力、金融、能源、教育等行业。

        银河麒麟操作系统已经发展为包括服务器操作系统、桌面操作系统、嵌入式操作系统等在内的完整产品线。

        它的特点包括安全性(具有严格的安全机制,支持多种加密算法,如RSA、DES等,能够有效保护用户信息安全)、 稳定性(该系统可以在不同硬件平台上稳定运行,能有效降低系统故障风险) 、可用性(银河麒麟桌面版提供了丰富的应用程序和软件包,用户可以轻松完成日常任务;同时,支持多种外设设备,如打印机、扫描仪等)、 定制性(支持定制化功能,企业可以根据自身需求进行个性化定制,从而更好地满足特定业务需求)、 跨平台性(支持多种处理器架构,比如AMD、Intel等,能够在不同硬件平台上运行。)

龙蜥

        龙蜥是基于 Linux 的新一代云原生服务器操作系统,支持 X86、ARM、龙芯(LoongArch)等多种芯片架构和计算场景,性能和稳定性经受住了历年双 11 的严苛考验,为云上典型场景带来 40% 的综合性能提升,故障率降低 50%,兼容 CentOS 生态,支持一键迁移,并提供全栈国密能力,致力打造数字经济基础设施的新底座。

        相较于其他操作系统,龙蜥有着自己独特的优势。

        首先,龙蜥是社区成员共同打造的,来自包括阿里云、统信软件、龙芯等多家企业的代码贡献,所以也综合了各个企业的优势,包括功能全面、适配简单、稳定可靠、安全可控、创新领先等。

        其中,来自阿里云的代码贡献,是经过大规模、长周期的云计算技术实践的沉淀,使龙蜥性能和稳定性更优、安全性更强,在 Linux 内核技术、云原生操作系统、混合部署等层面均具备自主维护和把控能力;统信软件将长久以来自主维护的、基于 CentOS 7 衍生的相关调优代码贡献给社区,维护社区版本采用的、统信软件自主研发的 DDE 桌面环境,并对其组件 SIG 组进行长期维护投入;同时,龙蜥有国内外知名芯片厂商如英特尔、ARM、龙芯等的积极贡献,他们主要在编译工具链、基础库、内核及驱动、虚拟化、系统加速库及系统架构等方面提供支持,协助龙蜥进行操作系统生态建设,使龙蜥具备了成为国际先进操作系统的技术基础。

        具体来说,在系统安全方面,除网络安全领域的操作系统层面加固外,龙蜥提供了基于 OpenSSL 衍生的 BabaSSL,能在密码应用场景使用国密算法实现国产替代;它还内置了首个机密计算开源容器 Inclavare Containers,奠定了解决可信、可控问题的基础;在系统性能方面,龙蜥搭载的 Alibaba Dragonwell(龙井)Java 编译器,在 SPECjbb2015 基准测试中获得了迄今为止业内最好的成绩;在系统管理方面,龙蜥提供了完善的迁移工具套件以便用户无缝迁移,也提供了一个全栈覆盖内核与核心组件的跟踪和诊断工具,能够增强在系统和应用两个层面的可观测性和可靠性,让业务的监控和诊断更加简单易用;在系统生态方面,由统信软件、红旗、万里红等国产操作系统厂商联合共建生态,基于其自有的软硬件适配中心,组建社区兼容 SIG 组,面向芯片、服务器整机、外设、数据库、中间件等基础软硬件进行适配工作,致力于为国内用户提供“开箱即用”的操作系统软件。

华为openEuler  OS

        openEuler是一个开源的Linux操作系统,由华为发起并主导开发。它基于CentOS和Fedora等开源项目,旨在为企业和个人用户提供稳定、安全、可靠的操作系统环境。

        openEuler支持多种架构,包括x86、ARM和PowerPC等,并提供了丰富的软件包和工具以满足用户的各种需求。

        它的特点有 多架构支持(支持包括x86、ARM和PowerPC在内的多种主流计算架构)、安全可信(提供了强大的安全功能和可信计算技术,以保护用户的数据和隐私)、 AI支持(兼容NVIDIA、Ascend等主流算力平台,为用户提供高效的AI开发运行环境) 、弹性部署(支持嵌入式虚拟化弹性底座,提供多种部署方案以满足不同场景的需求)

Kylin(中标麒麟)

        Kylin中标麒麟(原名中标普华Linux),2010年12月底,中标普华与国防科技大学强强联手进行操作系统方面的技术合作,合作之后的中标普华Linux操作系统更名为“中标麒麟”,而且也进一步更换了新操作系统的Logo。

        此次合作,是民用“中标普华”操作系统的易操作性与军用的“银河麒麟”的高度安全性在技术上的深层次合作,双方分别将各自的特色性能融合到新操作系统中。中标麒麟操作系统采用强化的Linux内核,分成桌面版、通用版、高级版和安全版等,满足不同客户的要求,已经广泛的使用在能源、金融、交通、政府、央企等行业领域。

        中标麒麟增强安全操作系统采用银河麒麟KACF强制访问控制框架和RBA角色权限管理机制,支持以模块化方式实现安全策略,提供多种访问控制策略的统一平台,是一款真正超越“多权分立”的B2级结构化保护操作系统产品。

        还有一些其他版本(比如Magic Linux、华镭Linux、共创Linux),这里也不再多做介绍。

应用领域

        Linux操作系统的应用领域有很多,这里列举几个。

企业级服务器的应用领域

        Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题。

嵌入式Linux系统应用领域

        由于Linux系统开放源代码,功能强大、可靠、稳定性强、灵活而且具有极大的伸缩性,再加上它广泛支持大量的微处理体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备(路由器、交换机、防火墙、负载均衡器)到专用的控制系统(自动售货机、手机、PDA、各种家用电器),LINUX操作系统都有很广阔的应用市场。特别是经过这几年的发展,它已经成功地跻身于主流嵌入式开发平台。

个人桌面Linux应用领域

        个人桌面系统,就是我们在办公室使用的个人计算机系统,比如Windows xp、windows 7、Mac等。Linux系统在这方面的支持也已经非常好了,完全可以满足日常的办公及其他需求。

科研领域

        Linux提供了大量的科学计算工具和库,被广泛应用于科研领域。

云计算领域

        在云计算领域,Linux也占据了重要的地位。许多云服务提供商,如腾讯云,华为云等,都提供了基于Linux的虚拟机和容器服务。

        随着Linux在服务器领域的广泛应用,近几年来,Linux系统已经参透到电信、金融、政府、教育、银行、石油等各个行业,同时各大硬件厂商也相继支持Linux操作系统。同时,大型、超大型互联网企业都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前十的网站使用的几乎都是Linux系统,这意味着Linux已经逐步渗透到了各个领域。

环境搭建

        这里用Centos为例,首先需要下载一个虚拟机软件和一个Centos镜像文件。

        下面是几个可以下载Centos镜像文件的网站,可以进去下载最新版本的Centos。

centos-7-isos-x86_64安装包下载_开源镜像站-阿里云 (aliyun.com)

Centos镜像国内最全下载地址-腾讯云开发者社区-腾讯云 (tencent.com)

清华镜像站下载CentOS7过程 - Ishton - 博客园 (cnblogs.com)

        虚拟机软件的种类也有很多(比如VMware系列、QEMU、VirtualBox等),这里以VMware为例。

        当下载完虚拟机安装软件和相关镜像文件后,按照下面的步骤进行搭建。

  

        打开上图所示的虚拟机软件,进入下面的主页。

  

        点击创建新的虚拟机。

  

        选择自定义,点击下一步继续。

  

        这里不需要改动,直接点击下一步。

  

        这里选择稍后安装。

  

        这里选择Linux,版本根据你下载的对应Linux镜像文件进行选择,我这里安装Centos最新版,所以选择CentOS 7 64位。

  

        这里虚拟机名称自定义,位置也是自己选择,不过建议不要选C盘,会很卡,上面的名称和位置是默认选项。

          

        这里根据自己电脑的性能配置和具体需要选择处理器数量和内核数量,最低的话都选择1就可以了,基础使用没什么区别。

  

        这个内存也是自己选择,一般选择2048MB就可以,性能好的4096MB也可以。

  

        这里选择第二个,使用网络地址转换。

  

        这里选择第二个推荐的就可以。

  

        这里也是选择第二个推荐的就可以。

  

        这里选择第一个,创建新的虚拟磁盘。

  

        这里的最大磁盘大小20GB-100GB都可以,因为是虚拟的,所以不需要考虑实际磁盘空间,它实际占用应该只会在几GB作用,可能随着使用时间变长和在上面安装的东西增加,占用磁盘空间也会增加,所以需要定期清理。

  

        这里不用管,直接点击下一步。

  

        这一步就是确认信息,看哪里是否有错误,可以返回上一步修改,确认无误后点击完成。

  

        然后就能在主页看到这样的界面,点击编辑虚拟器设置。

  

        这里点击第四个CD/DVD(IDE)。

  

        然后在右边选择使用ISO映像文件,点击浏览,在你的电脑中找到你之前下载的Centos镜像文件,最后点击右下角的确定。

  

        回到这个界面后点击开启此虚拟机。

  

        这里用鼠标点进去后直接按回车键就可以。(鼠标点进去后会不见,如果想让它回到正常桌面,就使用ctrl+alt快捷键)

  

        这里也是直接回车就可以,不点回车几秒后它也会自动进行下一步。

  

        等待出现这个界面,左边框翻到最底下,找到中文,然后在右边框选择简体中文,点击继续。

  

        在这个界面有三个地方需要点击,第一个是软件选择。

  

        一般情况下,不是个人需要的话,最好选择最小安装,就是没有桌面交互,这样会大大减少卡顿,也不会过多占用空间。选择完后点击左上角的完成,回到上一个界面选择安装位置。

  

        这里其实不需要改动,点进去后直接点左上角的完成退出就可以。回到上上个界面后点击网络和主机名,这关系着虚拟机IP的生成,如果这里不点,之后就需要通过代码操作获得IP。

  

        要将图上箭头所指的以太网打开。

  

        打开后你会看到它已经自动生成了相应的IP地址,再点击左上角的完成,在之前的安装信息摘要总页面(也就是上上上上上个页面那里)点击开始安装即可。

  

        在这里点击ROOT密码去设置。(这个密码对应的用户名就是root,拥有最高权限)

  

        设置好后点击左上角完成,然后在下面的页面中等待安装完成就可以。

  

  

        安装完毕后出现上图所示界面,点击重启即可。

  

        出现这个界面后先输入用户名root,再输入之前设置的密码,就可以登录成功。

  

        成功登录后就可以输入代码执行相应操作,比如输入ip add就可查询这台虚拟机的ip地址。

  

        到这里环境已经搭建就好了,下面是一点附加操作,如何在xshell实现虚拟机的远程登录。(实现后直接在xshell上执行操作会方便和直观很多)

        首先,下载一个xshell软件,这在网上可以直接找到,一个小软件,并不占用什么空间。

  

        点开后点击左上角的那个带加号的图标新建会话。

  

        按照下图所示操作,填好上面两个空后点击确定即可。

  

        然后它会被添加到左边的会话中,点击你刚刚新建的会话,出现中间这个框。

    

        一次性接受和接受并保持都可以,点击接受并保存。

  

  

        按照上图操作,填完信息点击确认后,等待确认。

  

        当出现这个消息后就表示你已经远程登录虚拟机成功,以后可以直接在xshell上进行操作了。

       这是我个人总结的之前Linux学习笔记,如果笔记有哪些地方出错或者不严谨,请大家见谅。

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值