自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第十三周作业

Linux Capability 是一种在 Linux 操作系统中实现权限控制的机制,它具有以下优势:细粒度控制:Capability 允许对进程或线程进行细粒度的权限控制。每个 Capability 代表一个特定的操作或权限,可以单独分配给进程或线程,从而实现更精确的权限管理。最小权限原则:使用 Capability 可以帮助实现最小权限原则,即将最低必要的权限分配给进程或线程,以最大程度地减少潜在的安全风险。通过将权限限制在需要的最小范围内,可以减少攻击者利用特权执行的可能性。

2023-12-03 19:25:45 767

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第十二周作业

Set-UID是Unix系统中的一个重要安全机制,允许程序在执行时以拥有者的权限运行。修改文件权限:将passwd程序拷贝到/tmp/目录下后,原始目录中的suid位被设置,导致复制的文件失去了修改密码的权限。对特定命令的影响:将chsh、su和sudo等命令拷贝到用户目录下后,这些复制的程序不再具有root权限。/bin/bash的保护机制:实验中观察到/bin/bash具有某种内在的保护机制,可以阻止Set-UID机制的滥用。

2023-12-03 18:36:45 932

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第十一周作业

对操作系统安全的关注,实际上是对操作系统中信息安全的关注。信息安全的基本原则是CIA三元组——机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。机密性:又称隐私性(Privacy),是指数据不能被未授权的主体窃取,即避免恶意读操作。完整性:是指数据不能被未授权的主体篡改,即避免恶意写操作。可用性:是指数据能够被授权主体正常访问。提出问题操作系统中的隔离机制是如何保证各种资源只能被有权限的应用访问的?

2023-11-28 08:55:29 910

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第十周作业

Linux虚拟机技术和容器技术是两种不同的虚拟化技术,用于实现应用程序的隔离和部署。Linux虚拟机技术基于完全虚拟化原理,通过在物理硬件上运行虚拟机监视器(Hypervisor)来创建和管理多个虚拟机实例。每个虚拟机拥有独立的操作系统、内核和用户空间,可以运行不同的操作系统,如Linux、Windows等。虚拟机之间相互隔离,具有较高的安全性和隔离性,每个虚拟机可以拥有自己的资源(CPU、内存、磁盘等)。虚拟机的启动和停止需要较长的时间,占用较多的系统资源。

2023-11-22 15:39:48 54

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第九周作业

进程调度函数:schedule函数是Linux中进程调度的核心函数。它负责在合适的时机选择下一个要执行的进程,并进行进程切换。选择下一个进程:pick_next_task函数是schedule函数中的重要组成部分,它根据调度策略和调度算法来选择下一个要执行的进程。这个函数会考虑进程的优先级、时间片等因素,以确定下一个应该被调度的进程。进程切换:进程切换是指从当前正在执行的进程切换到下一个要执行的进程。在Linux中,进程切换是通过context_switch函数实现的。

2023-11-14 20:26:19 39

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第八周作业

在Linux中,exec函数族的作用是根据指定的文件名找到可执行文件,并用它来替换调用进程的内容。这意味着当前进程的可执行文件被完全替换为新的可执行文件。可执行文件的开始执行起点是根据执行execve系统调用时压入内核堆栈的EIP寄存器的值来确定的。尽管进程的可执行文件已经被替换,但实际开始执行新的可执行文件中的指令需要等到执行新程序定义的入口地址位置,通常是0x8048xx。通过修改内核堆栈中EIP寄存器的值,将其设置为新程序的起点,使得execve系统调用返回到用户态时可以开始执行新程序。

2023-11-07 18:25:00 33

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第七周作业

创建一个新进程在内核中的执行过程大致如下:使用系统调用Sys_clone(或fork,vfork)系统调用创建一个新进程。这些系统调用会通过调用do_fork函数来实现进程的创建。Linux通过复制父进程的进程控制块(PCB)中的task_struct结构来创建一个新进程,并为新进程分配一个新的内核堆栈。需要修改复制过来的进程数据,例如进程ID(pid)、进程链表等。这一步通过执行copy_process和copy_thread函数来完成。

2023-10-31 23:18:22 36

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第六周作业

用户态进程调用 int 0x80 或 system_call 时,实际上触发了一个中断,这个中断使得 CPU 暂停当前进程的执行,保存当前执行环境(现场),并切换到内核态执行系统内核中预设的一些任务。这个过程确保了用户态进程在执行系统调用时能够以受控制的方式进入内核态,而系统调用执行结束后,再次保存当前执行环境,回到内核态,最终通过 iret 指令返回到用户态。在这个过程中,中断处理程序会对调用的任务进行各种检查,包括参数的合法性、权限的验证等。然后,系统可能会进行进程调度,选择下一个要执行的任务。

2023-10-23 21:22:50 43

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第五周作业

抽象级别:库函数调用是高级语言中使用函数调用触发系统调用,无需了解底层细节;内联汇编调用直接使用汇编指令触发系统调用,需要了解汇编语言和系统调用的细节。可移植性:库函数调用具有较好的可移植性,可以在不同平台上编译和运行;内联汇编调用的可移植性较差,特定于底层硬件和操作系统。简洁性和可读性:库函数调用使代码更简洁和易读;内联汇编调用使代码变得冗长和难以理解。性能:内联汇编调用系统调用通常具有较好的性能,绕过了库函数调用的开销。

2023-10-18 10:02:31 47

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第四周作业

start_kernel 是 Linux 内核启动的入口函数,它负责进行一系列的初始化工作,包括硬件初始化、内存管理的建立、中断系统的初始化、系统调用的初始化等。其中,rest_init 函数的作用是创建系统的第一个用户态进程,也就是 PID 为 1 的 kernel_init 进程。具体流程可以总结如下:start_kernel 函数: 是 Linux 内核启动的入口函数,负责进行整个内核的初始化工作;

2023-10-12 19:26:12 49

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第三周作业

(2023-2024-1)20232830《Linux内核原理分析与设计》第三周作业。

2023-09-29 15:50:40 43

原创 (2023-2024-1)20232830《Linux内核原理分析与设计》第二周作业

计算机的工作,我认为最核心的就是操作系统的工作,它被分为了好几个模块,如资源管理、进程管理、内存管理、文件系统、I/O管理、网络管理等主要模块;就如课上讲的“高内聚、低耦合”一般,模块内部的元素在某种程度上共享相同的目标,功能高度统一,执行相似的任务,不包含无关的功能;另外不同模块之间应通过清晰的接口进行通信,而不是直接依赖于彼此内部的实现,也就是更改一个模块不应该影响到另一个模块。所以,针对上述的几个模块,来讲讲计算机是如何工作的,主要是针对操作系统内核的工作;资源管理。

2023-09-24 11:06:09 46

原创 (2023-2024-1) 20232830《Linux内核原理分析与设计》第一周作业

20232830《Linux内核原理分析与设计》第一周作业

2023-09-16 17:43:50 154

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除