前言:虽然是计算机专业的,也经常听到Linux这个词,但是都没有去深入了解这是什么。然后在日常学习中,感觉这方面的知识涉及的还是蛮多的,学好这方面的知识挺重要的。所以就去大概了解了一下,并整理成笔记,以便后续复习。
此文将从以下几个方面展开:
- 什么是Linux
- 操作系统
- Linux系统结构
什么是Linux
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux不仅系统稳定,而且是开源软件。
(以上是从百度搬过来的词条解释)
说一下我自己的简单理解吧。Linux是操作系统的一种,具体操作系统还有Windows、MacOS、UNIX、Android、华为鸿蒙系统等。操作系统是管理和控制计算机硬件和软件资源的计算机程序,是直接运行在裸机上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
而Linux相比于其他系统的优势在于:(具体的深入细节我还不是特别了解吧,现在就初步学习所认为的一些优点展开)
- 开源性:它的源代码可以被任何人自由查看、修改并发布。这使得它具有较高灵活性,可以更好的适应各种需求。
- 安全性高:其核心防火墙组件性能高效、配置简单,保证了系统的安全。
- 可定制、优化:由于Linux是开源的,你可以修改操作系统的核心,定制、优化自己的操作系统。
操作系统
主要功能
-
处理机管理(处理机的分配和管理都是以进程为基本单位的,因而对处理机的管理可归结为对进程的管理)
- 进程控制
- 进程同步
- 进程通信
- 调度
- 作业调度
- 进程调度
-
存储器管理功能(为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存)
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
-
设备管理功能(1. 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定I/O操作;2. 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备)
- 缓存管理
- 设备分配
- 设备处理
-
文件管理功能(对用户文件和系统文件进行管理以便用户使用,保证文件的安全性)
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
-
操作系统与用户之间的接口(方便用户对操作系统的使用)
-
用户接口
- 联机用户接口
- 脱机用户接口
- 图形用户接口
-
程序接口
-
Linux系统结构
Linux系统结构主要分为4个部分:
内核、shell、文件系统、应用程序
进程管理
进程是进程实体运行过程,是系统进行资源分配和调度的一个独立单位
进程三种基本状态:
- 就绪:进程已分配到除CPU外的所有必要资源,只要获得CPU,便可立即执行
- 执行:进程已获得CPU,正在运行状态
- 阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行
三种状态的转换:
Linux进程的一些常用命令
- ps -ef/grep nginx 静态查看当前进程信息
- top -c 实时查看档期那进程信息
- kill pid 关闭进程
问题思考: 系统中运行的程序远远大于CPU的核数,那Linux系统是如何实现同时运行那么多程序的?
个人思考:我认为使用轮转调度算法,基于时间片的轮转,一个进程只运行一个时间片,在一个时间片用完时,系统将CPU分配给队首进程,若当前进程尚未运行完毕,调度进程将它送往就绪队列末尾,等待下一时间片。同时,时间片长度的选择也很重要,若时间片很小,有利于短作业,但也意味着会频繁执行进程调度和进程上下文切换,会增加系统开销,若时间片过长,则无法满足短作业和交互式用户需求。(如果有不同意见,或者认为有什么问题,希望评论区留言指出)
文件系统
在Linux系统中,一切都是文件,不仅我们平时所说的文本文档,图片、音视频是文件,目录也是一种文件,磁盘驱动器是文件,网络连接也是文件。对Linux来说,文件只是比特和字节流,只有运行它们的程序才关心他们组成的格式。
Linux系统中文件名是区分大小写的,例如:
在Linux的同一目录下,可以同时存在以下文件: Book.txt;book.txt
但在Windows和MacOS中,则不区分大小写,例如: 我在Windows中的一个目录中先新建一个Book.txt文件,此时我再新建一个book.txt文件时,就会有提示,该文件名已存在
Linux是多用户多任务操作系统,而Windows是单用户多任务操作系统。Linux可以由许多不同用户来使用,为每个用户提供单独的环境和资源,基于用户身份来控制安全性。可以以组成员方式来控制资源和访问权限。
Linux文件读取流程
(图源:字节前端训练营Linux基础课ppt)
Linux一些常用文件指令
$ls --列出目录中的文件和子目录
$ls -l --用单独一列的方式查看ls命令结果
$ls -a --查看隐藏文件
$cd --切换到不同目录,如cd /tmp
$cd ~ --切换到home目录
$mkdir --创建新目录
$cp --复制文件
$mv --移动和重命名文件
$rm --删除文件,如 rm book.txt
$rm * --一次删除多个文件
(现在还在学Linux的命令,在上操作系统这门课时,做实验还有课设还是需要用到挺多的,后续学得更深入一点再来补充)
参考文献:
《Linux命令速查手册》
字节前端训练营-Linux基础ppt