Skip to content

Commit

Permalink
✏️ 修复部分拼写问题
Browse files Browse the repository at this point in the history
  • Loading branch information
youzi-2333 committed Jul 2, 2024
1 parent e8a871e commit db6977a
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion network/2_http/https_optimize.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@

如果公司预算充足对于新的服务器是可以考虑购买更好的 CPU,但是对于已经在使用的服务器,硬件优化的方式可能就不太适合了,于是就要从软件的方向来优化了。

软件的优化方向可以分层两种,一个是**软件升级**,一个是**协议优化**
软件的优化方向可以分成两种,一个是**软件升级**,一个是**协议优化**

先说第一个软件升级,软件升级就是将正在使用的软件升级到最新版本,因为最新版本不仅提供了最新的特性,也优化了以前软件的问题或性能。比如:

Expand Down
2 changes: 1 addition & 1 deletion network/2_http/https_rsa.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ TLS 协议是如何解决 HTTP 的风险的呢?

这个密码套件看起来真让人头晕,好一大串,但是其实它是有固定格式和规范的。基本的形式是「**密钥交换算法 + 签名算法 + 对称加密算法 + 摘要算法**」,一般 WITH 单词前面有两个单词,第一个单词是约定密钥交换的算法,第二个单词是约定证书的验证算法。比如刚才的密码套件的意思就是:

- 由于 WITH 单词只有一个 RSA,则说明握手时密钥交换算法和签名算法都是使用 RSA;
- 由于 WITH 单词前只有一个 RSA,则说明握手时密钥交换算法和签名算法都是使用 RSA;
- 握手后的通信使用 AES 对称算法,密钥长度 128 位,分组模式是 GCM;
- 摘要算法 SHA256 用于消息认证和产生随机数;

Expand Down
2 changes: 1 addition & 1 deletion network/4_ip/ip_base.md
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ IPv6 可用范围非常大,以至于每台设备都可以配置一个公有 IP

*第二种 NAT 穿透技术*

NAT 穿越技术拥有这样的功能,它能够让网络应用程序主动发现自己位于 NAT 设备之后,并且会主动获得 NAT 设备的公有 IP,并为自己建立端口映射条目,注意这些都是 NAT 设备后的应用程序自动完成的。
NAT 穿透技术拥有这样的功能,它能够让网络应用程序主动发现自己位于 NAT 设备之后,并且会主动获得 NAT 设备的公有 IP,并为自己建立端口映射条目,注意这些都是 NAT 设备后的应用程序自动完成的。

也就是说,在 NAT 穿透技术中,NAT 设备后的应用程序处于主动地位,它已经明确地知道 NAT 设备要修改它外发的数据包,于是它主动配合 NAT 设备的操作,主动地建立好映射,这样就不像以前由 NAT 设备来建立映射了。

Expand Down
2 changes: 1 addition & 1 deletion network/4_ip/ping.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ traceroute 还有一个作用是**故意设置不分片,从而确定路径的
这样做的目的是为了**路径 MTU 发现**

因为有的时候我们并不知道路由器的 `MTU` 大小,以太网的数据链路上的 `MTU` 通常是 `1500` 字节,但是非以外网的 `MTU` 值就不一样了,所以我们要知道 `MTU` 的大小,从而控制发送的包大小。
因为有的时候我们并不知道路由器的 `MTU` 大小,以太网的数据链路上的 `MTU` 通常是 `1500` 字节,但是非以太网的 `MTU` 值就不一样了,所以我们要知道 `MTU` 的大小,从而控制发送的包大小。

![MTU 路径发现(UDP 的情况下)](https://cdn.jsdelivr.net/gh/xiaolincoder/ImageHost/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ping/18.jpg)

Expand Down
2 changes: 1 addition & 1 deletion os/4_process/deadlock.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 5.4 怎么避免死锁?

面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了。
面试过程中,死锁也是高频的考点,因为如果线上环境真的发生了死锁,那真的出大事了。

这次,我们就来系统地聊聊死锁的问题。

Expand Down
2 changes: 1 addition & 1 deletion os/4_process/process_commu.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ int pipe(int fd[2])
![](https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1/5-%E7%AE%A1%E9%81%93-pipe.jpg)
其实,**所谓的管道,就是内核里面的一串缓存**。从管道的一段写入的数据,实际上是缓存在内核中的,另一端读取,也就是从内核中读取这段数据。另外,管道传输的数据是无格式的流且大小受限。
其实,**所谓的管道,就是内核里面的一串缓存**。从管道的一端写入的数据,实际上是缓存在内核中的,另一端读取,也就是从内核中读取这段数据。另外,管道传输的数据是无格式的流且大小受限。
看到这,你可能会有疑问了,这两个描述符都是在一个进程里面,并没有起到进程间通信的作用,怎么样才能使得管道是跨过两个进程的呢?
Expand Down
10 changes: 5 additions & 5 deletions os/6_file_system/pagecache.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ page 是内存管理分配的基本单位,Page Cache 由多个 page 构成。p
Linux 系统上供用户可访问的内存分为两个类型,即:

- File-backed pages:文件备份页也就是 Page Cache 中的 page,对应于磁盘上的若干数据块;对于这些页最大的问题是脏页回盘;
- Anonymous pages:匿名页不对应磁盘上的任何磁盘数据块,它们是进程的运行是内存空间(例如方法栈、局部变量表等属性);
- Anonymous pages:匿名页不对应磁盘上的任何磁盘数据块,它们是进程的运行时内存空间(例如方法栈、局部变量表等属性);

**为什么 Linux 不把 Page Cache 称为 block cache,这不是更好吗?**

Expand Down Expand Up @@ -193,11 +193,11 @@ Linux 提供多种机制来保证数据一致性,但无论是单机上的内

上述两种方式最终都依赖于系统调用,主要分为如下三种系统调用:

| 方法 | 含义 |
| :---------------- | :----------------------------------------------------------- |
| fsync(intfd) | fsync(fd):将 fd 代表的文件的脏数据和脏元数据全部刷新至磁盘中。 |
| 方法 | 含义 |
| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| fsync(intfd) | fsync(fd):将 fd 代表的文件的脏数据和脏元数据全部刷新至磁盘中。 |
| fdatasync(int fd) | fdatasync(fd):将 fd 代表的文件的脏数据刷新至磁盘,同时对必要的元数据刷新至磁盘中,这里所说的必要的概念是指:对接下来访问文件有关键作用的信息,如文件大小,而文件修改时间等不属于必要信息 |
| sync() | sync():则是对系统中所有的脏的文件数据元数据刷新至磁盘中 |
| sync() | sync():则是对系统中所有的脏的文件数据元数据刷新至磁盘中 |

上述三种系统调用可以分别由用户进程与内核进程发起。下面我们研究一下内核线程的相关特性。

Expand Down

0 comments on commit db6977a

Please sign in to comment.