From e39bd6d40e29a79ca8264c0095361a4fad2d180d Mon Sep 17 00:00:00 2001
From: nftuoa
Date: Wed, 20 Nov 2024 22:22:07 +0800
Subject: [PATCH] Update a post
---
index.xml | 2 +-
posts/csapp1/index.html | 99 +++++++++++++++++++++++++++++++++++++----
posts/index.xml | 2 +-
3 files changed, 92 insertions(+), 11 deletions(-)
diff --git a/index.xml b/index.xml
index 1b66468..acf9350 100644
--- a/index.xml
+++ b/index.xml
@@ -63,7 +63,7 @@
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Hello, World!"</span>);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>这是一个最简单的"Hello, World"C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个"字节",每个字节都代表其中的一个字符。
-其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。</p>
+其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。</p>
<h2 class="relative group">程序被其他程序翻译为各种形式
diff --git a/posts/csapp1/index.html b/posts/csapp1/index.html
index 0c3723a..d96f363 100644
--- a/posts/csapp1/index.html
+++ b/posts/csapp1/index.html
@@ -69,7 +69,7 @@
@@ -461,7 +461,7 @@ 信息=二进制位+语境
printf("Hello, World!");
}
这是一个最简单的"Hello, World"C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个"字节",每个字节都代表其中的一个字符。
-其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。
+其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。
程序被其他程序翻译为各种形式
@@ -496,17 +496,98 @@ 程序被其他程序翻译为各种形式
-编译原理很难通晓(但你仍然有必要去学)
-
+编译原理值得了解
+
#
+ style="text-decoration-line: none !important;" href="#%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86%E5%80%BC%E5%BE%97%E4%BA%86%E8%A7%A3" aria-label="">#
-(还没写完……持续更新中……)
+理解编译原理有利于:
+
+- 优化程序性能
+- 理解链接错误
+- 避免安全漏洞
+
+
+
+处理器读取并处理内存中存储的指令
+
+
+
+ #
+
+
+
+我们可以利用Shell来运行我们编写的Hello程序。Shell是一种命令行解释程序,这意味着它接受命令行输入并执行。我们在Shell中输入./hello, Shell会检测到hello是一个可执行文件,并将它加载到内存中后执行。程序执行完成后,Shell会继续请求命令行输入。
+
+
+计算机系统的硬件组成
+
+
+
+ #
+
+
+
+
+
+总线
+
+
+
+ #
+
+
+
+总线是沿着整个系统运行的一系列电子线路的集合。总线可以将信息位在元件之间来回传输, 总线一般所传输的信息位数是固定的, 这些字节的组块被称作“语词”, “语词”长度一般为4字节(也就是32位)或8字节(也就是64位)
+
+
+I/O 设备
+
+
+
+ #
+
+
+
+I/O设备以输入或输出的方式建立计算机与外界的连接。I/O设备通过控制器或者适配器连接到I/O总线。控制器是主板上的专门芯片,适配器则是一些连接在主板上的设备。
+
+
+主内存
+
+
+
+ #
+
+
+
+主内存是一种临时储存设备,在处理器执行程序时会将程序与对应的数据暂存进内存。内存一般采用DRAM(Dynamic Random Access Memory,动态随机访问存储)技术。在软件层面内存会被抽象为一系列线性的数组,并从0开始编号,这一编码被称为内存地址。
+
+
+处理器
+
+
+
+ #
+
+
+
diff --git a/posts/index.xml b/posts/index.xml
index e376e45..d450944 100644
--- a/posts/index.xml
+++ b/posts/index.xml
@@ -63,7 +63,7 @@
</span></span><span style="display:flex;"><span> <span style="color:#a6e22e">printf</span>(<span style="color:#e6db74">"Hello, World!"</span>);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>这是一个最简单的"Hello, World"C程序,计算机在存储它时通过ASCII标准将其中的字符与换行转化为ASCII码,并以ASCII码的形式储存。存储在计算机中的这段程序其实只是一串有顺序的二进制位,这些二进制位的每八位组成一个"字节",每个字节都代表其中的一个字符。
-其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令etc……。</p>
+其他数据也采用了相同的表达方式:在不同的语境中,一串相同的字节可能是整数、浮点、字符串、机器指令、etc。</p>
<h2 class="relative group">程序被其他程序翻译为各种形式