Skip to content

Commit ffc9cf8

Browse files
committed
update gitcode image
1 parent 61486d6 commit ffc9cf8

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

content/07-os-tutorial-zh/04-bootsector-memory-zh.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ tags: ["tutorial", "os"]
1212

1313
**目标:学习操作系统内存组成**
1414

15-
请打开[this document](http://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf)第14页, 并且查阅内存结构图
15+
请打开[this document](https://web.archive.org/web/20211008041419/http://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf)第14页, 并且查阅内存结构图
1616

17-
![内存结构图](https://gitcode.net/xnzone/solar/-/raw/master/2021/03/05/20210305173850.png)
17+
文档新地址:[](https://github.com/user-attachments/files/19763309/os-dev.pdf)
18+
19+
![](https://s2.loli.net/2025/09/28/RJTKUNcXFrBML2l.png)
1820

1921
这节课的唯一目的是学习引导扇区保存在哪里
2022

content/12-xv6-lab/lab5-shell/doc.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ UNIX的xv6文件系统使用一个块大小是512字节,与磁盘扇区大小
4747

4848
我们的文件系统只有一个超级块,在磁盘上总是为数据块1。它的结构定义在`inc/fs.h``struct Super`。数据块0通常保留为引导程序和分区表,所以文件系统通常不使用第一个磁盘块。很多真正的文件系统保留多个超级块,以便于其中一个异常了或者磁盘区域损坏,其他超级块仍然可以使用
4949

50-
![](https://gitcode.net/xnzone/solar/-/raw/master/2021/10/25154136.png)
50+
![](https://s2.loli.net/2025/09/28/ARpEmiYCHPrhKoB.png)
5151

5252
### 文件元数据
5353
在我们文件系统中描述文件的元数据结构定义在`inc/fs.h``struct File`。这个元数据包含了文件名,大小,类型(通常是文件或目录)和组成文件块指针。正如上面提到的,我们没有inodes,所以元数据保存在磁盘的目录入口。不像大多数真正的文件系统,我们使用一个`File`结构体来代表文件元数据。
5454

5555
`struct File``f_direct`数组包含了存储文件前10个块(NDIRECT)的块序号空间,也称为文件的直接(*direct*)块。对于不超过 $10*4096=40KB$ 的小文件,这意味着所有文件块的块号将直接适应`File`结构体本身。对于大文件,需要有位置放置文件块号的其他部分。对于大于`40KB`的任何文件,需要分配额外的磁盘块,称为文件非直接块(*indirect*),来保存 $4096/4 = 1024$ 额外块号。因此我们文件系统允许文件超过1034个块,或者略高于4MB大小。为了支持更大的文件,真正的文件系统通常支持双和多非直接块
5656

57-
![](https://gitcode.net/xnzone/solar/-/raw/master/2021/10/25155714.png)
57+
![](https://s2.loli.net/2025/09/28/sjVtISlByg8Cc9M.png)
5858

5959
### 目录与常规文件
6060
我们文件系统的`File`结构体能够表示普通文件和目录;这个由结构体中`type`字段来区分。文件系统处理常规文件和目录是一致的,除了它不解释普通文件与数据块内容相关联,然而文件系统解释目录文件内容作为一系列的`File`结构体来描述子目录

content/12-xv6-lab/lab6-network/doc.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ E1000能产生调试输出,所以你必须启用指定的日志通道。可能
6666
- 定时器环境
6767

6868
下面插图显示了不同环境之间的关系
69-
![](https://gitcode.net/xnzone/solar/-/raw/master/2021/11/02143405.png)
69+
70+
![](https://s2.loli.net/2025/09/28/IrGFlo8QK9xsZb5.png)
7071

7172
### 核心网络服务器环境
7273
核心网络服务器环境是由所有套接字调用分发者和lwIP组成。套接字调度器和文件服务器工作类似。用户环境使用根(`lib/nsipc.c`)发送IPC消息给核心网络环境。如果你查看`lib/nsipc.c`,你可以看到核心网络服务器和文件服务器一样:`i386_init`创建带有`NS_TYPE_NS`的环境,所以我们扫描`envs`,找到特殊的环境类型。对于每个用户环境IPC,网络服务器的调度器调用合适BSD套接字接口函数

0 commit comments

Comments
 (0)