计操理论课08 -- openEuler实验第七章文件系统

任务1:为 Ext4 文件系统添加扩展属性(25min)

任务描述

  1. 熟悉文件系统扩展属性EA,查看树莓派文件系统是否支持EA。
  2. 使用setfattr设置文件系统的用户扩展属性,并设置文本、八进制数、十六进制数与base64编码这四种属性值。
  3. 使用getfattr获取文件系统的用户扩展属性,并在获取属性之后进行text、hex和base64这三种编码设置。
  4. 分析总结上述实验过程。

任务过程及截图

(1)对于不含转义字符 \ 的纯文本属性值,有无双引号限定效果一样。
在这里插入图片描述
(2)对于包含转义字符 \ 的文本属性值,无双引号则不对转义符 \ 进行转义;有双引号则对其进行转义。
例如:设置八进制数时,设置属性值为 \012 时,最终识别为文本012;设置属性值为“\012”时,最终以八进制数的base64编码存储。
在这里插入图片描述
(3)设置属性值为十六进制数时,所设置的数的位数必须为偶数,即0x 或 0X后的数字必须为偶数位,否则出错。 若设置成功,最终以十六进制数的base64编码存储。

在这里插入图片描述
(4)设置属性值为base64编码时,所设置的编码必须符合base64编码,即0s后的编码字符串必须符合base64编码,否则出错。 若设置成功,最终以base64编码对应的文本信息存储。
tips:可在 HYPERLINK “https://base64.us/” https://base64.us/ 中,将需要设置的属性值进行base64编码后,再使用setfattr命令设置,注意设置时需在 base64编码前加 0s 前缀。
在这里插入图片描述
在这里插入图片描述
(5)使用getfattr获取属性后后进行text编码设置。
当未对获取的属性进行编码设置时,直接使用 getfattr -d -m . file.txt 或 getfattr -d file.txt 即可完成。
在这里插入图片描述
对获取的属性设置text编码时,结果如下:
在这里插入图片描述
user.age 与 user.hex 的属性值变成了对应的文本值。
user.name、user.city、user.base64都仍保留原来的文本值。

(6)使用getfattr获取属性后后进行hex编码设置。
在这里插入图片描述
user.age 的属性值由八进制变成了十六进制;
user.hex 的属性值还原成了最初设置的原值;
user.name、user.city、user.base64的属性值都转化为对应的十六进制值。

(7)使用getfattr获取属性后后进行base64编码设置。
在这里插入图片描述

user.age 与user.hex的属性值都保留最初的 base64编码存储;
user.name、user.city、user.base64的属性值都转化为对应的base64编码值。

任务2:注册一个自定义的文件系统类型(15min)

任务描述

  1. 使用文件系统注册/注销函数,注册一个自定义文件系统类型;
  2. 加载模块后,查看系统中是否存在注册的文件系统类型。
  3. 加载、卸载模块并查看模块打印信息。

任务代码

1、register_newfs.c

#include <linux/module.h>
#include <linux/fs.h>

MODULE_LICENSE("GPL");

static struct file_system_type myfs_type = {
   
	.name	= "myfs",
	.owner	= THIS_MODULE,
};
MODULE_ALIAS_FS("myfs");

static int __init register_newfs_init(void)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

血月无华AUV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值