学习Linux 的价值
- Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
- 公司内部服务(TCE、FaaS、SCM)统一使用Debian Linux系统
- 熟悉Linux基础指令,熟练运维前端常用服务 (Nginx,Node.js)
- 加深对操作系统概念和实现的理解,夯实基础知识
为什么选择企鹅为Logo呢?
- 企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有不属于当今世界上的任何国家。Linux 选择企鹅图案作标志,其含意也表明:
- 开源的 Linux,为全人类共同所有,任何公司无权将其私有。
01 计算机硬件
计算机五大基本单元
- 控制器:协调和指挥计算机中其他部件进行工作
- 运算器:进行算术和逻辑运算
- 存储器单元:分为内存和外存(内盘、光驱)
- 输入单元:键鼠
- 输出单元:显示器、音箱
控制器和运算器共同组成CPU单元
五大基本单元关系图:
用户可以通过输入设备向操作系统输入一些指令,操作系统通过调用运算器、控制器、存储器三者,进行相互配合,从输出设备呈现给用户。
02 计算机操作系统
操作系统 Operating System,OS :管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息
- 承上:在操作系统之上,运行一些应用程序
- 启下:通过操作系统,直接与系统硬件进行交互
操作系统的两大功能
- 管理计算机资源--处理器管理;存储器管理;设备管理;文件管理
- 提供用户接口--命令接口;图形用户接口;程序接口
用户可以通过这些接口直接与操作系统进行通信,从而对其相关资源进行一些操作和管理
常用的操作系统
程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?
- 操作系统的启动流程分为两类,一类是基于BIOS引导操作系统启动,一类是使用UEFI引导启动过程(目前主流)。二者都是固化在主板上的一段程序,供计算机在开机时执行和解析。
- 之后会进行一系列的初始化动作,找到操作系统的引导程序Bootloader并运行,它会加载并运行OS操作系统程序,并将控制权转移到操作系统内核中,启动操作系统的运行。
UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)是BIOS(Basic Input/Output System,基本输入输出系统)的优化和升级版本,是一种新型的计算机固件,提供比BIOS更多的功能和扩展性。
两者区别在于:
- BIOS自检过程会导致开机速度变慢,而UEFI优化了这一过程,加载速度和系统启动速度都得到提升
- BIOS默认与MB/MB2等磁盘分区进行配合,导致无法驱动2.2T容量以上的磁盘,而UEFI会配合GPT这种磁盘分区,引导其可以驱动2.2T容量以上的磁盘
UEFI的特点:
- 将不支持X86实模式,只支持64位操作系统
- 编码99%都是由C语言完成,一改之前的中断、硬件端口操作的方法,而采用了Driver/protocol的新方式
- UEFI采用模块化设计:在逻辑上可分为硬件控制和OS软件管理两部分:操作系统—可扩展固件接口—固件—硬件。
- UEFI模式下的系统会有两个很小的分区,一个叫ESP(EFI系统分区),另一个MSR(微软保留分区,通常为128MB),MSR是窗口要求的分区。
- ESP对UEFI启动模式很重要,UEFI的引导程序是后缀名为.efi的文件存放在ESP分区中的,ESP分区采用fat32文件系统。
- 优点:纠错特性,兼容性,鼠标操作,可扩展性,图形界面
为什么UEFI兼容性好
- 与BIOS不同的是,UEFI体系的驱动并不是由直接运行在CPU上的代码组成的,而是用EFI Byte Code(EFI字节码) 编写而成的。
- Java是以“Byte Code”形式存在的,正是这种没有一步到位的中间性机制,使Java可以在多种平台上运行。UEFI也借鉴了类似的做法。EFI Byte Code是一组用于UEFI驱动的虚拟机器指令,必须在UEFI驱动运行环境下被解释运行,由此保证了充分的向下兼容性。
03 Linux系统概览
Linux发展简史-诞生和初期发展
- 1969年,Unix诞生于贝尔实验室
- 1984年,贝尔实验室将Unix商业化
- 1984年,Tanenbaum开发Minix操作系统用于教学并开放源码
- 1984年,Richard M.Stallman发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议
- 1991年,Linus Torvalds受Minix影响实现初版的Linux内核
- 1992年,Liux内核以GPL协议发行V1.0
扩展资料
- 1991年~1994年:诞生和初期发展
1991年,Linus Torvalds在芬兰大学创建了Linux项目,最初只是一个小型的自由软件内核项目。Linus的目标是开发一个类Unix的操作系统,能在普通的PC上运行。最初的Linux内核只有几千行代码,但随着时间的推移,越来越多的程序员加入了开发队伍,使得Linux内核逐渐变得庞大和复杂。
- 1995年~2005年:商业化和扩张期
在这个时期,Linux发展迅速,开始获得商业公司的广泛认可。1995年,Red Hat公司成立,开始提供基于Linux的商业服务和支持,从而打响了Linux商业化的先声。其他的公司如SUSE和Debian也相继成立,并开始提供商业化的Linux发行版。同时,Linux社区也迅速扩张,越来越多的开发者加入其中,贡献代码和支持。
- 2005年~至今:成熟期和广泛应用
随着时间的推移,Linux内核逐渐成熟,并被广泛应用于服务器、嵌入式系统、移动设备和个人电脑等领域。目前,Linux已经成为世界上最流行的操作系统之一,应用领域涉及云计算、人工智能、物联网、区块链等多个领域。此外,Linux社区也继续发展壮大,新的发行版、工具和技术层出不穷,使得Linux在未来的发展中仍然具有广泛的应用前景。
Linux版本
- 内核版本:由linux作者本人维护,作为操作系统的核心,提供了包括进程管理、内存管理、文件系统管理、硬件资源管理等一系列底层能力
- 发行版本:常规意义上经常使用的操作系统,如ubuntu、Gentoo、debian等
常见的系统
查看Linux系统内核版本
#方法1
uname -a
//显示系统的所有信息,包括内核版本号、操作系统发行版、主机名、处理器类型和架构等等
uname -r
//只显示当前Linux系统的内核版本号
#方法2
cat /proc/version
//用于显示当前 Linux 系统内核的版本号、编译者和编译日期。该命令读取 /proc/version 文件的内容并将其输出到终端上。
//该命令可以提供有关 Linux 内核的基本信息,包括内核版本、内核编译器和内核构建日期等。此外,它还提供了有关操作系统的其他信息,例如 GNU 工具链的版本和 CPU 架构信息。
cat /etc/os-release
//查看当前Linux系统的发行版本
Linux系统应用领域
-
IT服务器(操作系统、虚拟化和云计算)
-
嵌入式和智能设备:手机
-
个人办公桌面
-
学术研究与软件研发
04 Linux系统结构
Linux四个主要部分
-
内核:Linux操作系统的核心,它管理计算机硬件的资源,负责管理系统的进程、内存、设备驱动程序、文件系统和网络系统等,决定着系统的性能和稳定性。
Linux内核主要由以下几部分组成:内存管理、进程管理、设备驱动程序、文件系统、网络管理等。 -
shell:用户与Linux内核之间的接口,是一个命令解释器,作为系统的用户界面,提供了用户与内核进行交互操作的接口。在
Shell中,它接收用户输入的命令并将它送到内核去执行。shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其它应用程序具有同样的效果。 -
文件系统:Linux操作系统中用于管理文件和目录的机制,是用户与操作系统之间进行文件交互的接口。Linux支持多种文件系统,如ext4、NTFS、FAT32等。它们管理着磁盘上的文件和目录,并提供文件读写、权限控制等基本功能
Linux文件类型
-
普通文件:分为纯文本文件和二进制文件,如C语言代码、shell脚本、二进制可执行文件等;
-
目录文件:目录是存储文件的唯一地方;
-
链接文件:指向同一个文件或目录的文件;
-
设备文件:与系统外设相关的,一般在目录
/dev下面。设备分为块设备和字符设备; -
管道文件:提供进程间通信的一种方式;
-
套接字文件:与网络通信相关的文件;
可以通过命令
ls -l、file、stat等命令来查看文件的类型相关信息。
Linux目录
-
- 应用程序:运行在Linux操作系统上的各种软件,如文本编辑器、浏览器、视频播放器、编译器等。Linux操作系统拥有众多的应用程序,涵盖了各种领域,可以满足不同用户的需求
Linux体系结构
主要分为内核空间和用户空间
05 Linux系统软件包管理器
一个文件可以具有的权限有:可读、可写、可执行权限
r 可读权限---read
对文件:具有显示文件内容的权限
对目录:具有浏览目录的权限,可以查看目录内容,但是无法进入目录
w 可写权限---write
对文件:具有编辑和删除文件的权限
对目录:具有删除和移动目录的权限
x 可执行权限---excute
对文件:具有执行文件的权限
对目录:具有进入目录的权限