前端训练营1,2节学习笔记
计算机网络概论
从不同区域的网络连接出发描述网络构成,了解到了,本地网,域域网到广域网的构成,即局域网到万维网。
然后学习tcp/ip网络构成,分为三大层,应用层,运输层,网络层,以及物理连接。信息交换的方式主要分为电路交换和分组交换,电路交换建立在一对一的电脑通信中,而tcp/ip采用的是分组交换,分组交换大致过程:发送端将数据分组发送给路由器,路由器将收到的分组数据缓存到自己的缓冲区,然后转发给目标计算机。其中连接路由器的计算机划分为一个小组。
http协议部分,先了解了协议的构成,协议由标头和载荷构成,协议如同人和人对话,选用什么样的语言进行聊天当作“协议”,聊天过程就是“通信”,说活内容就是“数据”,协议的目的是为了更好通信,而且协议是提前达成的详细约定。
其中也了解了关于http的一些历史,关于短连接和长连接,HTTP管线,HTTP 队头堵塞,头部压缩,Server Push,QUIC,TCP队头堵塞,0 RTT连接。同时发散介绍了CDN和Websocket。其中CDN解决了HTTP协议之外的问题,而Websocket是http的升级版,好处是有状态的持久连接;服务端可以主动推送消息;用 WebSocket 发送消息延迟比 HTTP 低。
网络安全部分讲究安全三要素。机密性,完整性和身份验证。其中 // 机密性: 攻击者无法获知通信内容,// 完整性: 攻击者对内容进行篡改时能被发现。// 身份验证: 攻击者无法伪装成通信双方的任意一方与另一方通信。并详细介绍了如何实现这三要素。网络安全部分比较有趣,但也需要多加学习。
Linux基础
Linux分为内核版本和发行版本。 内核版本为核心,由作者维护,作用是进行一系列硬件直接相关的命令。发行版本是“内核+常用软件”,即linux操作系统。
uname -a
cat /proc/version //查看linux内核版本信息
cat /etc/os-release//查看linux发行版本
linux基本组成--------------------------------------
内核/shell/文件系统/应用程序
linux系统结构--------------------------------------
1--进程管理
进程:正在执行的一个程序和命令
--> 包含自己的地址空间(占用一定内存资源)
PS:其中线程为进程的实际运行单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
-->一个cpu核智能运行一个进程(例:AMD ryzen 4000 series 7 laptop为8核处理器)
-->PID:即 进程ID ,进程由 PID 和 PPID 即 父ID 唯一识别。
通过 fork 父进程 来拉起一个 子进程,以父进程为模板创建子进程(将资源映射), 并非通过接口创建一个全新的进程。
if PID0{
PID1 ,PID 2 ;
if PID1{PID456,PID789...} ; //所有用户进程父进程
if PID2{PID888,PID777...} ;//所有内核进程父进程
}
//PID0 创世进程
//可以观察出PID进程是一个树形结构
PS:较为特别的是0号PID和1号PID。PID为0者为交换进程,属于内核进程,负责分页任务;PID为1者则常为init进程,主要负责启动与关闭系统。
分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的资料。
辅助存储器(通常是磁盘)中的资料分割>>固定大小的区块
[ 需要 or 不需要 ]
if 需要:将资料取回,加载主存中
else 即不需要:将分页由主存(通常是内存)移到辅助存储器
进程命令
PS:
SHRS栏:S 休眠,R 就绪
NI:当发生资源抢占时进程调度优先级
进程调度
CPU将运行时间切分,例如每100ms切换一个进程。
linux文件系统
LINUX一切皆文件!
文件系统是操作系统中负责管理持久数据的子系统,负责把用户的文件存到磁盘硬件中,持久化的保存文件。
管理方式:树状结构管理
管理工具:VFS 虚拟文件系统
文件读取流程
用户权限
包括{
用户账户
普通用户账户: 在系统中进行管通作业
超级用户账户: 在系统中对普通用户和整个系统进行管理
用户组
标准组: 可以容纳多个用户
私有组: 只有用户自己
}
管理命令:
软件包管理
作用:安装nginx
通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库
软件包管理 底层工具: 主要用来处理安装和删除软件包文件等任务,DPKG,RPM(只执行一些软件的安装和卸载)
上层工具: 主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
底层工具相当于自己买菜做菜,而上层工具相当于你找了一个厨师,帮助把底层依赖项解决。
例:dpkg为 Debian和Ubuntu的软件包管理系统,格式.deb,前端工具有apt,apt-get
最后总结--------------------------------------