- 博客(13)
- 收藏
- 关注
原创 2023-2024-1 20232818《Linux内核原理与分析》第十三周作业
如果线程已经删除了cap A,那么即使攻击者获得了程序的控制权,也无法使用cap A,因为已经从进程的权限集中移除了这个capability。这样,风险就被降低了。Set-UID程序允许用户暂时以root权限进行操作,即使程序中所进行的权限操作用不到root权限的所有权利,这很危险:因为如果程序被入侵了的话,攻击者可能得到root权限。在操作系统中,有许多只允许超级用户使用的操作,比如配置网卡,备份所有用户文件,关闭计算机等,但如果要进行这些操作就必须先成为超级用户的话,那就违背了最小权限原则。
2023-12-01 09:33:06
934
原创 2023-2024-1 20232818《Linux内核原理与分析》第十二周作业
上面的这段 C 语言代码运行结果为,会发现字符串中的格式符%d被参数(0827)替换。格式化字符串大致就是这么一回事。
2023-11-30 20:22:19
935
原创 2023-2024-1 20232818《Linux内核原理与分析》第十一周作业
第十二章全面概述了Linux系统的安全机制,从用户账号管理和文件系统权限,到日志记录和网络安全策略。还介绍了高级访问控制技术,如Linux Capabilities、AppArmor和SELinux,以及在可信计算环境中应用这些技术的方法,特别是通过secGear架构。这为维护Linux系统的安全提供了必要的理论和实践指导。
2023-11-29 21:33:06
841
原创 2023-2024-1 20232818《Linux内核原理与分析》第十周作业
虚拟机技术通常是指一种将物理计算资源例如处理器、内存、存储虚拟化,以创建一个或多个虚拟环境的技术。这允许在单个物理主机上同时运行多个独立的操作系统实例或应用程序,而它们之间互相隔离,好像它们在各自的独立物理机器上运行一样。宿主机(Host): 物理计算资源的实际硬件,例如服务器或个人电脑。虚拟机监控器(VMM): 这是虚拟机技术的关键组件,负责管理和分配物理资源给虚拟机。有两种主要类型的Hypervisor:Type-1(裸机型)和Type-2(宿主型)。
2023-11-23 16:54:55
84
原创 2023-2024-1 20232818《Linux内核原理与分析》第九周作业
在Linux中,schedule() 函数是核心的调度器组件,它负责决定哪个进程将获得CPU时间。它在进程执行结束、等待资源或当被中断时被调用,以选择下一个要执行的进程,并执行上下文切换以恢复该进程的状态。它是Linux系统中进行进程管理和CPU资源分配的关键环节,确保CPU时间被公平且有效地分配给所有请求的进程,同时也处理中断和系统调用,使得用户和系统程序能够顺畅地执行。
2023-11-14 19:42:34
56
原创 2023-2024-1 20232818《Linux内核原理与分析》第八周作业
当用户尝试运行一个程序时,例如通过命令行,首先,shell 会调用execve()系统调用来请求内核执行程序。内核接着确定该文件的格式,例如常见的 ELF (Executable and Linkable Format) 格式。一旦确定文件格式,内核使用相应的二进制格式处理器(如 ELF 处理器)来加载程序到内存。这包括为程序分配内存空间、设置堆栈、加载可执行文件的各个段到合适的内存位置等。
2023-11-07 12:00:00
61
原创 2023-2024-1 20232818 《Linux内核原理与分析》第七周作业
当Linux系统创建一个新进程,通常使用fork()系统调用,这使得当前进程复制出一个与其几乎完全相同的子进程。子进程继承了父进程的内存、文件描述符、状态等属性,但有自己的进程ID。虽然子进程初时使用其父进程的内存页面,但在尝试修改时会触发“写时复制”机制,为其创建新的内存页面。通常,子进程创建后,可以使用exec()系列函数来加载并执行新程序。
2023-11-01 12:00:00
60
原创 2023-2024-1 20232818 《Linux内核原理与分析》第六周作业
可以看到已经增加了read和read_asm功能。2. 修改test.c文件。
2023-10-24 22:22:57
122
原创 2023-2024-1 20232818 《Linux内核原理与分析》第五周作业
系统调用是用户空间程序与操作系统内核之间的接口,允许用户空间程序请求操作系统内核提供的服务,如文件操作、进程控制、网络操作等。它们是安全的机制,因为它们通过预定义的接口在用户空间和内核空间之间建立了明确的边界。
2023-10-20 12:00:00
57
原创 2023-2024-1 20232818 《Linux内核原理与分析》第四周作业
Linux的启动会从硬件初始化到用户空间,逐步建立系统的运行环境。init进程:内核创建1号进程(init进程),这是Linux系统中的第一个用户态进程。Idle进程:同时,内核还创建Idle进程,用于在CPU空闲时执行。
2023-10-14 12:00:00
115
原创 2023-2024-1 20232818 《Linux内核原理与分析》 第三周作业
上述代码中 my_timer_handler 函数是一个由定时器中断调用的处理程序,它运行在当前正在运行的进程的上下文中,它增加了 time_count 计数,并且如果 time_count 是1000的倍数且 my_need_sched 不等于1时,它将设置 my_need_sched 为1。切换过程中,它保存当前任务的堆栈指针、指令指针和状态,然后将这些信息切换到下一个任务的堆栈和寄存器中。这段代码是一个简单的多任务内核模块,它初始化了一组任务,每个任务都包含了一个简单的循环,用于模拟多任务的运行。
2023-09-30 11:22:05
139
原创 2023-2024-1 20232818 《Linux内核原理与分析》 第二周作业
【代码】2023-2024-1 20232818 《Linux内核原理与分析》 第二周作业。
2023-09-23 10:45:49
83
原创 2023-2024-1 20232818 《Linux内核原理与分析》 第一周作业
Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Mac OS。至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍一下操作系统在整个计算机系统中的角色。我们的 Linux 主要是系统调用和内核那两层。当然直观地看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。
2023-09-17 11:12:10
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人