21-物理页属性-P-RW

熟练掌握了线性地址到物理地址的转换后,我们也知道PDE和PTE的结构。当时只知道PDE和PTE中保存了物理页的属性。

1. PDE、PTE结构

  • PDE 结构
|<------ 31~12------>|<------ 11~0 --------->| 比特
                     |b a 9 8 7 6 5 4 3 2 1 0| 
|--------------------|-|-|-|-|-|-|-|-|-|-|-|-| 占位
|<-------index------>| AVL |G|P|0|A|P|P|U|R|P| 属性
                             |S|   |C|W|/|/|
                                   |D|T|S|W|
  • PTE 结构
|<------ 31~12------>|<------ 11~0 --------->| 比特
                     |b a 9 8 7 6 5 4 3 2 1 0|
|--------------------|-|-|-|-|-|-|-|-|-|-|-|-| 占位
|<-------index------>| AVL |G|P|D|A|P|P|U|R|P| 属性
                             |A|   |C|W|/|/|
                             |T|   |D|T|S|W|

2. 物理页属性

可是最后物理页的属性最后是以 PDE 为准,还是以 PTE 中的属性为准?一个物理页索引号的确定是需要 PDE 和 PTE 共同决定的,那么物理页的属性自然也需要 PDE 和 PTE 两者的属性共同决定才行。

物理页属性 = PDE 中的属性 & PTE 中的属性

写成 C 语言的方式,就应该是:

int physical_page_attribute = (0x00000fff & pde) & (0x00000fff & pte);

3. P 位

P 位在上一篇的读写空指针时提到过。这个位很简单,P=1 表示该页有效,P=0 则无效。

4. RW 位

RW = 1时,表示该页可写。
RW = 0时,表示该页只读。

如果你使用过常量区的变量,你可能会知道,什么样的页是只读的。比如:

char *str = "Hello world!";

如果要你修改 str 的内容,你能做到吗?

5. 总结

记住物理页的属性是如何计算的。另外,掌握 P 位和 RW 位。

自己独立完成 RW 的实验(修改常量区内容)。

### Linux 常见的重要文件和文件类型 #### 普通文件 (Regular File) 普通文件是最常见的文件类型之一,用于存储各种数据。这些可以是文本文件、图片、视频或其他二进制数据。当使用 `ls -l` 命令查看目录列表时,如果第一列的第一个字符为 `-` ,则表示该条目是一个普通文件[^3]。 ```bash $ ls -l /path/to/directory/ -rw-r--r-- 1 user group size date filename.txt ``` #### 目录文件 (Directory) 目录是一种特殊的文件,用来保存其他文件或子目录的信息。通过 `ls -ld` 可以看到目录的第一列首个字符会显示为 `d` 。这表明它不是普通的文件而是容器类型的实体。 ```bash $ ls -ld /home/user/ drwxr-xr-x 2 user group 4096 Jan 1 12:34 /home/user/ ``` #### 符号链接 (Symbolic Link 或 Symlink) 符号链接类似于Windows中的快捷方式,提供了一种指向另一个文件路径的方法而不复制实际的数据。创建软连接可以通过命令 `ln -s source target` 完成,在长格式列出时首字母为 `l` 表明这是一个符号链接。 ```bash lrwxrwxrwx 1 user group 8 Jan 1 12:34 linkname -> originalfile ``` #### 设备文件 (Device Files) 设备文件分为两种主要类别:字符型(`c`) 和块状 (`b`)。它们代表物理硬件资源如磁盘驱动器、打印机等,并允许应用程序与之交互。这类文件通常位于 `/dev/` 下面。 - 字符设备文件(Character Device) 这些设备一次处理一个字节流,适合于串口通信之类的场景。 ```bash crw-rw---- 1 root dialout 4, 64 Jan 1 12:34 ttyS0 ``` - 块设备文件(Block Device) 此类设备按固定大小的数据块来读取或写入信息,适用于硬盘分区等情况。 ```bash brw-rw---- 1 user group 8, 1 Jan 1 12:34 sda1 ``` #### FIFO 特殊文件 (Named Pipe) FIFO 是一种进程间通讯机制,也称为命名管道。尽管看起来像常规文件,但实际上提供了两个程序之间传递消息的方式。其标志是在 `ls -l` 输出中开头有 `p` 字母。 ```bash prw-rw---- 1 user group 0 Jan 1 12:34 mypipe ``` #### Socket 文件 (Socket) 套接字也是一种特殊类型的文件,主要用于网络编程以及不同主机间的通信。在文件系统视图下,socket 文件由 `s` 开头标识。 ```bash srwxrwxrwx 1 user group 0 Jan 1 12:34 socket_file ``` #### 配置文件 (Configuration Files) 配置文件对于系统的正常运行至关重要,尤其是在 `/etc/` 目录下的那些文件。这里包含了启动服务所需的各种设置选项和服务参数定义。许多重要的全局配置都存放在这个位置,例如: - `/etc/fstab`: 描述哪些文件系统应该被挂载及其属性- `/etc/passwd`: 用户账户数据库的一部分,记录着用户的登录名和其他基本信息。 - `/etc/resolv.conf`: DNS 解析配置文件,指定了域名服务器地址以便解析互联网名称到 IP 地址转换。 #### 日志文件 (Log Files) 日志文件帮助管理员监控系统活动并诊断潜在问题。大多数情况下,日志会被放置在 `/var/log/` 路径之下。一些典型例子包括但不限于: - `/var/log/syslog`: 记录来自多个源的一般性事件; - `/var/log/auth.log`: 关于认证过程的日志条目; - `/var/log/kern.log`: 来自内核的消息;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值