.
Linux语言基础
学习linux的价值与意义
- 掌握一种强大的操作系统:Linux是一种免费、开源、稳定、安全、高效的操作系统,可以运行在各种设备上,从服务器到移动设备都有应用。
- 增强职业竞争力:Linux是企业级服务器和云计算领域的主流操作系统,具备Linux技能可以成为IT职业中的竞争优势。
- 提高技术能力:学习Linux可以帮助开发人员更好地理解计算机系统、网络和安全等方面的知识,提高技术能力和解决问题的能力。
- 节省成本:Linux是一种免费的操作系统,可以节省企业和个人的成本。
- 掌握开源文化:Linux是开源软件的代表之一,学习Linux可以更好地理解和掌握开源文化,为开源社区做出贡献。
分别由以下五个方面学习Linux语言基础:
01. 计算机硬件
计算机由五大基本单元组成
- 控制器
- 运算器
- 存储器单元
- 输入单元
- 输出单元
计算机硬件可细分为:计算机分为主机和输入输出设备,主机包括:机箱、电源、主板、声卡、网卡、显卡、内存、CPU、硬盘、光驱,输入输出设备包括:鼠标、键盘、音响、打印机、扫描仪、显示器等。
02. 计算机操作系统
2.1 操作系统(Operating System, Os)
操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。用于在用户与系统之间传递信息
常见的操作系统有:
- 苹果系统
- 安卓系统
- 鸿蒙(HarmonyOS)系统
- windows系统
- Linux系统
问题与思考
程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的?
答:在计算机开机时,计算机会首先执行BIOS(Basic Input/Output System)程序,BIOS是固化在计算机主板上的一种程序,它会检查硬件设备是否正常,然后加载操作系统的引导程序。引导程序通常存储在硬盘的引导扇区中,BIOS会读取这个扇区并执行其中的引导程序,引导程序会进一步加载操作系统的内核程序。操作系统内核程序是操作系统的核心部分,负责管理计算机的硬件和软件资源。因此,操作系统内核程序是计算机启动时必须要被执行的程序。
2.2 操作系统启动流程
03. Linux系统概括
3.1 发展简史
3.2 Linux版本
- 内核版本
- 发行版本
3.3 查看Linux系统内核版本
3.4 查看Linux系统版本
3.5 Linux 系统应用领域
-
IT服务器(操作系统、虚拟化和云计算),如Web服务器、邮件服务器、数据库服务器等。
-
嵌入式和智能设备,如智能家居、智能电视、路由器等
-
个人办公桌面,如Ubuntu、Fedora等Linux发行版提供了完整的桌面环境和应用程序。
-
学术研究与软件开发,如天文学、物理学、生物学等领域的研究都需要使用Linux系统。
-
超级计算机:Linux系统在超级计算机领域被广泛使用,如世界上最快的超级计算机"Fugaku"就是使用Linux系统的。
04. Linux系统结构
4.1 Linux 基本组成
Linux一般有四个主要部分
- 内核
- shell
- 文件系统
- 应用程序
4.2 Linux 体系结构
Linux 体系结构大致分为两个部分: 用户空间(User Space) : 用户空间又包括用户的应用程序(User Applications)、C 库(C Library) 。
内核空间(Kernel Space) : 内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、 平台架构相关的代码(Architecture-Dependent Kernel Code) 。
- Linux内核
靠近硬件的是内核,即Linux操作系统常驻内存部分。Linux内核是整个操作系统的核心,由它实现对硬件资源的抽象和访问调度。它为上层调用提供了一个统一的虚拟机器接口,在编写上层程序的时候不需要考虑计算机使用何种类型的物理硬件,也不需要考虑临界资源问题。每个上层进程执行时就像它是计算机上的唯一进程,独占了系统的所有内存和其他硬件资源。但实际上,系统可以同时运行多个进程,由Linux内核保证和进程对临界资源的安全使用。所有运行在内核之上的程序可分为系统程序和用户程序两大类,但他们统统运行在用户模式之下。内核之外的所有程序必须通过系统调用才能进入操作系统的内核。
为什么 Linux 体系结构要分为用户空间和内核空间?
1、现代 CPU 实现了不同的工作模式,不同模式下 CPU 可以执行的指令和访问的寄存器不同。 2、Linux 从 CPU 的角度出发,为了保护内核的安全,把系统分成了两部分。
4.3 Linux 内核漫画
地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”——电脑中的文件。左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(进程 ID Process ID) 为 421 的进程,它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗,它是看门狗(watchdog) ,这代表对文件系统的监控。
在这一层,最引人瞩目的莫过于中间的一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。
左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂,说你呢,哇塞娃(171),转过身来”。它代表着 Linux 内核中的初始化(init)进程,也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在等待状态wait中,等待工作任务。
在这层的左侧,有一只号牌为 1341 的小企鹅,守在门口,门上写着 80,说明这个 PID 为 1341 的小企鹅负责接待 80 端口,也就是我们常说的 HTTP (网站)的端口
向右看,我们可以看到这里仍有一扇门,门上写着 21,但是,看起来这扇门似乎年久失修,上面的门牌号都歪了,门口也没人守着。看起来这个 21 端口的 FTP 协议有点老旧了,目前用的人也比以前少了,以至于这里都没人接待了。这是无人看守的FTP进程
而在最右侧的一个门牌号 22 的们的待遇就大为不同,居然有一只带着墨镜的小企鹅在守着,看起来好酷啊,它是黑衣人叔叔吗?为什么要这么酷的一个企鹅呢,因为 22 端口是 SSH 端口,是一个非常重要的远程连接端口,通常通过这个端口进行远程管理,所以对这个端口进来的人要仔细审查。这是SSH守护进程。
它的身上写着 52,说明它是第 52 个小企鹅
在图片的左上角,有一个向下台阶。这个台阶是底层(地基)的文件系统中的,进程们可以通过这个台阶,到文件系统中去读取文件,进行操作。
在这一层中,有一个身上写着 217 的小企鹅,他正满头大汗地看着自己的手表。这只小企鹅就是定时任务(Crontab),他会时刻关注时间,查看是否要去做某个工作。
在图片的中部,有两个小企鹅扛着管道(PipeLine)在行走,一只小企鹅可以把自己手上的东西通过这个管道,传递给后面的小企鹅
在这一层还有另外的一个小企鹅,它手上拿着一杯红酒,身上写着 411,看起来有点不胜酒力。它就是红酒(Wine)小企鹅,它可以干(执行)一些来自 Windows 的任务。
在一层之上,还有一个跃层,这里有很多不同的屏幕,每个屏幕上写着 TTY(这就是对外的终端)。比如说最左边 tty4 上输入了“fre”——这是想输入“freshmeat…”么 :d ;它旁边的 tty2 和 tty3 就正常多了,看起来是比较正常的命令;tty7 显示的图形界面嗳,对,图形界面(X Window)一般就在 7 号终端;tty5 和 tty6 是空的,这表示这两个终端没人用。等等,tty1 呢?
tty(终端)是对外沟通的渠道之一,但是,不是每一个进程都需要 tty,某些进程可以直接通过其他途径(比如端口)来和外部进行通信,对外提供服务的,所以,这一层不是完整的一层,只是个跃层。
4.4 .1Linux 系统结构--进程管理
- 进程是正在执行的一个程序或命令
- 进程有着自己的地址值空间,占用一定的心态资源
- 一个CPU核同一时间只能运行一个进程
- 进程由它的进程ID和它的父进程ID(PPID)唯一识别
4.4.2 进程调度及原则及系统调用
进程调度是指操作按某种策略或规则选择进程占用CPU进行运行的
-
一个CPU核同一时间只能运行一个进程
-
每个进程有近乎相等的执行时间
-
对于逻辑CPU而言进程使用轮询的方式执行,当轮询完成之后回到第一个进程反复
-
进程执行消耗时间和进程量成正比
4.5 文件系统
文件系统负责管理持久化数据的子系统,负责把用户的文件存到磁盘文件中
linux文件系统是采用树状的目录结构, 最上层是/(根)目录
问题及思考: linux如何实现对用户提供统一的调用接口的?
答:inux系统通过统一的调用接口,即系统调用(system call),来提供对用户的服务。系统调用是操作系统内核提供给用户程序的一组接口,它们可以让用户程序请求内核执行某些操作,如读写文件、创建进程、访问网络等。
05. Linux系统软件管理器
5.1 软件包
软件包(Package)是指将一个或多个相关的软件程序、文档、配置文件等打包成一个单独的文件,方便用户进行安装、升级、卸载等操作的一种形式。软件包通常包含了软件程序的二进制代码、库文件、配置文件、文档、示例等内容。
软件包在计算机领域中广泛应用,特别是在Linux系统中,软件包是软件安装的重要方式。在Linux系统中,软件包通常以特定的格式打包,如RPM、DEB、TGZ等。用户可以使用特定的工具,如yum、apt-get、dpkg等来管理软件包,进行安装、升级、卸载等操作。