Linux基础|青训营笔记

138 阅读4分钟

这是我参与【第六届青训营】笔记创作活动的第2天~学习的内容是【Linux基础】。

Linux是现代化应用程序交付的首选平台,学习Linux能够帮助我们加深对操作系统概念和实现的理解。本次课程共分成计算机硬件、计算机操作系统、Linux系统概览、Linux系统结构和Linux系统软件包管理器5个部分展开。

0 Linux为什么选企鹅作为Logo?

这是一个比较有意思的问题,其实在我刚刚接触操作系统这门课时候也有想过,当时觉得可能是发明人的喜好。事实上因为企鹅是南极洲的标志性动物,其不属于当今世界上的任何国家,也是说Linux是全人类共同所有的,任何公司无权将其私有。

截屏2023-05-11 下午8.40.55.png

1 计算机硬件

在一个完整的冯诺依曼计算体系中,计算机主要由五大基本单元组成,分别是控制器、运算器、存储器单元、输入单元和输出单元,五个单元的简要关系如下图所示。

截屏2023-05-11 下午8.42.56.png

2 计算机操作系统

2.1 操作系统的概念

本课程中给出的操作系统的概念如下:

操作系统是用于管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。

在汤小丹老师的《计算机操作系统》一书中,对操作系统给出的定义如下:

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,所有其他软件都要依赖于操作系统的支持。

截屏2023-05-11 下午8.48.03.png

可见,无论是哪种定义,都表明:操作系统管理和控制计算机系统中的硬件和软件资源,用于在用户与系统软件之间传递信息。

2.2 操作系统启动流程

截屏2023-05-11 下午8.49.38.png

操作系统的启动流程分为传统模式(BIOS)和主流模式(UEFI),这两种模式都是一段固化在主板上的程序,计算机启动时会默认运行这段程序

3 Linux系统概览

3.1 Linux版本

Linux版本有内核版本和发行版本,两者之间的关系如下图所示:

截屏2023-05-11 下午8.52.48.png

如何查看Linux内核(Kernel)版本?

#方法1
uname -a
#方法2
cat /proc/version
#方法3
dmesg | grep Linux

其中方法1和2是老师给出的方法,方法3是网上给出的其他方法。

如何查看Linux系统版本?

cat /etc/os-release

了解内核版本和系统版本,可以在出现版本不匹配的时候帮我们快速调整。

3.2 Linux系统应用领域

Linux系统的应用范围广,课程中给出如下几个应用:

截屏2023-05-11 下午9.00.30.png

4 Linux系统结构

4.1 Linux基本组成

Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序,它们之间的关系如下图所示:

截屏2023-05-11 下午9.07.08.png

内核是硬件与软件之间的中间层。

截屏2023-05-11 下午9.13.22.png

4.2进程管理

典型的进程定义:

1)进程是程序的一次执行;
2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位(操作系统引入进程的作用)。

进程实体=程序段+数据段+PCB

PCB是进程存在的唯一标识!

Linux中查看进程信息的代码如下:

#查看启动的nginx进行
ps -ef|grep nginx

#查看某个进程
top -p 93827

#关闭指定的进程
kill 93827

#全部进程动态实时视图
top

进程调度的原则:

截屏2023-05-11 下午10.40.14.png

特别注意:对于进程调度来说不能保证一个程序是连续完成的!!由于CPU调度和进程切换,上下文也会出现切换情况。

另外还有文件管理和用户权限两部分,由于自己这部分操作系统还没学到,所以准备后期学校里学后再来听作补充~

5 Linux软件包管理

软件包与软件包管理:

截屏2023-05-11 下午10.42.30.png

6 个人总结

平时虽然听着Linux感觉很高大上的东西,但是自己用起来的时候觉得好像又和平常的terminal差不多,主要是指令比较多,尤其是vim的时候,各种指令对于我这种不太常用的初学者简直是很痛苦!但是学背后操作系统的知识感觉还是蛮有意思的(课本的各种算法~),这节课感觉特别有用的是各种关系图,就是说可能不能理解他们之间的关系,但是示意图这样直观的特别便于理解!感谢青训营~