Linux基础 - 笔记
企鹅->南极洲->全人类共有->cool
杂
操作系统(OS)将人(提供接口)与系统硬件(资源管理)联通,操作系统同样属于一个程序。
如何使操作系统这个程序被执行:
BIOS 引导开机启动操作系统
UEFI(目前主流)固化在主板上的程序,引导开机启动操作系统
两者的差异:
BIOS相较UEFI多一个自检部分,拉慢速度;
与直板配合模式不同。
UEFI缺少自检不会有安全隐患吗?
经资料查询:BIOS的自检一部分是因为当时还不能记录硬件的配置信息,BIOS不得不每次启动都自检,而UEFI则是解决了记录问题,或者把它后推,交给OS来检测。与其说不自检,不如说UEFI强化了自检功能并调整了自检时间。
乐了,还以为是深受开源精神感染整了个同样开源的Linux,反手一句觉得不好用于是开发了Linux,还就那个需求提供动力。
关于Linux版本的一些命令
uname -a
cat /proc/version
均返回Linux内核版本信息
cat /etc/os-release
返回发行版本
Linux部分应用领域:
IT服务器(操作系统、虚拟化和云计算)
嵌入式和智能设备
个人办公桌面
学术研究与软件研发
Linux基本组成
Linux系统主要部分:
内核
shell
文件系统
应用程序
shell ... 像cmd一样感觉
Linux体系结构 :
用户空间 内核空间
隔断用户与内核,防止用户操作使内核崩溃
内核是硬件与软件之间的中间层
内核是一个资源管理程序
内核提供一组面向系统的命令
算是一个更高权限的接口?
Linux系统结构
--进程管理
进程是正在执行的一个程序或命令
进程有自己的地址空间,占用一定的系统资源
一个CPU核同一时间只能运行一个进程
进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
父进程引导子进程,作为模板提供给子进程。
关于进程的一些命令:
...那理论上可以记住所有命令的对应进程,达到只用键盘完成想要的操作?
还不知道这些命令为什么有用,具体在什么地方会运用得上,难顶
--进程调度
即指操作系统按某种策略或规则选择进程占用CPU进行运行的过程。
为什么要分可否中断的睡眠状态? 个人理解是进程的操作等级?原因。如某些进程在等待一些特定条件,但这个条件并不是特别重要,也可以被终止。而不可中断的则是一些比较特别的指令,比如kill,这类进程不可改变。
如何确定僵尸进程被销毁? 可使用top命令查找,然后确定pid和ppid,然后使用kill指令确实销毁。
实际进程处理: 将进程放入一个待调用队列,轮流被CPU运行,每个进程执行相等的时间。
是因为这个“时间”实际巨短吗?所以可以让每个进程不一定完成,但又能看起来在不间断地执行。
--文件系统
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
一切皆文件
bin--可执行命令
dev--设备文件
home--用户信息
root--超级管理员权限
sbin--超管命令行目录
一些关于文件的命令:
df -T 返回文件系统磁盘空间利用率
ls 查看文件夹下内容
mkdir demo 创建文件夹
mv demo /home 移动
rm -r demo 删除
touch file.txt 创建空文件
cp file.txt file_bak.txt 赋值文件
io请求到内核层时有一个确认是否已有类似拷贝,可直接返回给用户的过程。
联想到CDN这玩意,看来大家都挺喜欢这样的。
缓冲区:为减少对系统的调用,提示效率。
--用户权限
一些用户相关命令:
w 查看当前登录用户信息
groups 查看当前用户所属组
id ... 查看用户uid
“用户”能被优化掉吗?是有什么硬件设施是作多人共用的吗?
--文件权限
文件权限关于用户有三个概念:
所有者:文件所有者
所在组:文件的所有组所在的组
其他人:除文件所有者及所在组的其他人
每个用户对于文件都有不同权限,包括R读W写X执行
一些文件相关命令:
软件包管理
一般指一个应用程序,也可以是一个GUI应用程序,命令行工具或(其他软件程序需要的)软件库
Debian APT常用命令