自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 20233808《Linux内核原理分析与设计》第十三周作业

跟使用ACL的访问控制相比,capabilities有其它优势:它可以动态调整大量线程的权限,这对于遵守最小权限原则是很有必要的。当线程中某个权限不再需要时,它应当移除所有相对应的capabilities。这样,即使线程被入侵了,攻击者也得不到已经被删除的capabilities。

2023-12-13 15:14:42 56

原创 20233808《Linux内核原理分析与设计》第十二周作业

Set-UID 是一种权限控制机制,允许用户以文件所有者的权限来执行文件,而不是以当前用户的权限来执行。Set-UID 是通过在文件的权限中设置特定的标志位来实现的,当用户执行这个文件时,系统会根据文件的权限进行相应的权限检查,从而决定是否以文件所有者的权限来执行文件。然而,Set-UID 机制也存在潜在的安全性问题。由于它允许用户以超出当前权限的权限来执行文件,如果没有正确地实现和使用,就可能导致系统的安全漏洞。恶意用户可以利用 Set-UID 程序的漏洞来获取系统权限,从而对系统进行攻击。

2023-12-08 23:06:13 55

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

1.信息安全的基本原则:CIA即机密性、完整性和可用性2.经典安全模型(3Au法则):基于引用监视器,措施为:认证、授权、审计认证(事前防御):包括身份识别和认证。身份识别强调主体如何声明自己的身份,身份认证强调主体如何声明自己的身份是合法的。授权(事中防御):通过某种途径显式地准许或限制访问能力及范围地一种方法。审计(事后防御):包括审计和问责。审计即记录用户的请求和行为,问责即发现用户做了某些异常操作时由日志系统提供记录。审计和问责的基础是日志。

2023-12-01 09:52:01 113 1

原创 20233808《Linux内核原理分析与设计》第十周作业

chroot是容器技术的基础,但并不提供容器所需的全部隔离和管理功能。一种基于Linux内核KVM的开源轻量级虚拟化技术,在保持传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机启动速度。KVM是基于硬件辅助虚拟化技术的虚拟化方案,在KVM中,一个虚拟机就是一个用户空间QEMU进程,vCPU就是分配给该进程的物理CPU核上的某个线程,由Linux内核动态调度。虚拟机的配置和创建、虚拟机运行所依赖的虚拟设备、虚拟机运行时用户环境和交互,以及一些虚拟机的特定技术都是QEMU自己实现的。

2023-11-24 12:29:21 54 1

原创 20233808《Linux内核原理分析与设计》第九周作业

Linux 系统一般执行过程当计算机开机时,BIOS(或UEFI)负责初始化硬件并加载引导程序(Bootloader),通常是 GRUB(GRand Unified Bootloader)。引导程序加载操作系统内核(通常是 Linux 内核)到内存中。内核加载后,它负责进行系统的初始化和设置。这包括初始化进程、文件系统、设备驱动、内存管理等。内核会启动第一个用户空间进程——init进程。在现代系统中,可能是systemd或其他类似的初始化系统。init。

2023-11-17 16:33:17 54 1

原创 20233808《Linux内核原理分析与设计》第八周作业

1.新的可执行程序在执行时是从其程序入口点开始执行的。在调用 `execve` 系统调用后,操作系统会加载新的程序映像到进程的地址空间,并将控制权转移给新程序的入口点。2.在静态链接的可执行程序中,所有的依赖关系和库都已经被编译到可执行文件中,因此在执行 `execve` 后,新的程序完全独立于系统中的其他库。相反,在动态链接的可执行程序中,一些库和依赖项在运行时才会被加载,所以在执行 `execve` 后,动态链接程序可能会有一些区别。3.exec*函数族包含execveexeclexecv等。

2023-11-10 20:36:54 50 1

原创 20233808《Linux内核原理分析与设计》第七周作业

调用fork创建一个新进程:1>.当用户空间进程调用 fork 函数时,内核首先会创建一个新的数据结构,该数据结构是新进程的表示。2>.内核复制了调用进程的大部分属性和资源到新进程的数据结构中.3>.内核会为新进程分配一个新的内核栈和用户态栈,这些栈与相关联。4>.内核将新进程的代码、数据和堆栈从父进程中复制到新进程的内存空间。5>.新进程的state字段被设置为可运行状态,以使新进程能够立即被调度执行。6>.当新进程被调度执行时,它会从一个特定的入口点开始执行。

2023-11-01 21:39:43 51 1

原创 20233808《Linux内核原理分析与设计》第六周作业

test.c中写入API调用函数时不能命名为mkdir需要自己设定名称,因此我改为了 int my_mkdir.-help后可以看到多了my_mkdir和mkdir两个输出。1.修改menu中test.c文件,将两种调用函数写入。2.在int main()中添加如下两行函数。

2023-10-26 22:09:49 84

原创 20233808 《Linux内核原理与分析》第五周作业

对系统调用工作机制的理解:库函数调用提供了更高的可移植性、代码清晰度和安全性,而内嵌汇编较为复杂且不常用。总之,系统调用是操作系统提供给用户程序的接口,允许用户程序执行特权操作,而不必了解或干涉底层硬件和内核细节,使用便利。

2023-10-21 16:16:05 76 1

原创 20233808《Linux内核原理分析与设计》第四周作业

6. 初始化 1 号进程:1号进程是用户空间的第一个进程,通常是`/sbin/init`或`systemd`。1号进程的创建是由`kernel_init`或`init`函数负责的;3. 启动初始化进程的创建:start_kernel通过调用kernel_init函数创建初始化进程。这是通过在内核线程中创建一个用户态进程来完成的;1. 设置堆栈和初始化处理器:在这个阶段,内核还会禁用中断,以确保在初始化完成之前不会发生中断。5. 启动内核初始化代码:kernel_init函数进一步初始化系统;

2023-10-15 15:08:22 93 1

原创 20233808《Linux内核原理与分析》第三周作业

使用git-hub上提供的代码,以下代码段包含了代码分析。qemu启动编译后的内核,可以看到陷入死循环。使用实验楼提供的内容编译和自定义一个内核。可以看到跳出死循环,变成多进程执行。

2023-10-04 18:05:52 53 1

原创 20233808《Linux内核原理与分析》第二周作业

指令通常以助记符表示,如mov、add等其中几个重要的指令还有call(函数调用)、ret(函数返回)、pushl(将数据推入栈)、popl(从栈中弹出数据)。有16个64位寄存器,分别是 RAX 、 RBX 、 RCX 、RDX 、RSI 、RDI 、RDP、RSP 以及新增的R8~R15。RDI 、RSI 、RDX 、RCX 、R8、R9用作函数参数,依次对应第1~6个参数。RBX 、RBP 、R10、R11、R12、R13、R14、R15用作数据存储。段寄存器主要有CS、DS、SS、ES。

2023-09-23 14:23:46 44 1

原创 2023-2024-1 20233808《Linux内核原理与分析》第一周作业

Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导,一旦熟练之后效率极高。Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易,入门简单;Linux:Windows 能做到得它都能,Windows 做不到的,它也能。最新正版 Windows 10,需要付费购买;

2023-09-16 13:05:44 102

原创 Python学习笔记(基础知识)

变量与赋值将数据赋值给变量的语句:1.简单赋值x = 1002.序列赋值多个变量 x, y = 1, 2元组赋值(x2, y2) = 10, 20列表赋值[x3, y3] = 'ab' 输出结果为a,b((x4, y4), z4) = 'ab', 'cd' 输出结果为a, b, cdx5, *y5 = 'abcd' 输出结果为a, ['b', 'c', 'd']*x6, y6 = [1, 2, 3, 'abc

2022-09-13 21:54:52 699 1

空空如也

空空如也

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

TA关注的人

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