自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023-2024-1 20232822《Linux内核原理与分析》第十三周作业

1. 缓冲区溢出原理:缓冲区溢出漏洞是由于程序没有对用户输入的数据进行足够的长度检查,导致用户输入的数据超过了缓冲区的大小,覆盖了其他内存区域。2. 实验步骤:实验中,我们编写了一个简单的C程序,其中存在缓冲区溢出漏洞。通过输入超过缓冲区大小的字符串来触发溢出,并尝试执行恶意代码。3. 结果观察:当输入超过缓冲区大小的字符串时,程序可能会崩溃或产生不可预测的行为。这是因为溢出的数据覆盖了其他内存区域,破坏了程序的正常执行流程。

2023-12-16 22:20:24 340 1

原创 2023-2024-1 20232822《Linux内核原理与分析》第十二周作业

passwd,chsh,su和sudo这些命令需要Set-UID(Set User ID)机制,因为它们需要以其他用户的权限来执行特定的系统级任务。如果这些命令没有Set-UID机制,普通用户将无法执行这些任务,这会限制系统管理和安全性相关的操作。因此,为了确保系统安全和功能正常,这些特定的系统命令需要使用Set-UID机制,以便以特定的系统用户的权限来执行相应的任务。在没有Set-UID机制的情况下,这些命令将以当前用户的权限来执行,而不是以特定的系统用户的权限来执行。,运行编译的程序 test。

2023-12-09 17:17:16 530

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

Linux操作系统的安全性比较高,能够实现CIA三元组(机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。)的安全目标,并具有其相关的机制,可以识别用户、进行权限管理和审计。操作系统安全的3个层次Linux系统上的用户可以分为超级用户、程序用户和普通用户3类。用户的类型通过UID和GID识别,特别是一个UID可以唯一标识一个用户的账号。(1)超级用户root(0):默认是root用户,其UID和GID都是0。

2023-12-01 12:27:06 700 1

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

主流虚拟化技术架构对比示意图CPU虚拟化是指利用虚拟化技术将一台物理 CPU 分割成多个独立的虚拟 CPU,从而使多个操作系统能够在同一台物理服务器上同时运行而不互相干扰。CPU虚拟化是现代数据中心和云计算环境中极为重要的一项技术,它为资源的灵活分配和利用提供了便利,同时也为系统安全和稳定性提供了保障。内存的虚拟化是一种将物理内存资源划分为多个逻辑内存块的技术。它通过软件层面的管理和控制,使得每个虚拟机(VM)可以拥有独立的内存空间,从而实现多个虚拟机之间的隔离和资源分配。

2023-11-26 20:51:36 86 1

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

总的来说,schedule()函数、pick_next_task()函数、context_switch()函数和switch_to()宏共同协作实现了进程的切换和上下文的保存与恢复,从而实现了进程调度和多任务处理。switch_to()根据传入的参数,切换到目标进程的堆栈,并从目标进程的堆栈中恢复上下文。schedule()函数在选择下一个要运行的进程时,会调用pick_next_task()函数来执行进程调度算法,并选择一个新的进程。此时,内核会进行进程调度,选择一个合适的进程运行。

2023-11-18 15:35:20 125 1

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

这次实验了解了ELF可执行文件和exec函数。ELF文件格式具有可扩展性和灵活性,适用于多种应用场景,从可执行程序到共享库和目标文件。这种通用性使得ELF成为多个操作系统的标准可执行文件格式,而不同操作系统只需实现相应的ELF解析器来加载和执行这些文件。execve系统调用将控制权转移到新的可执行程序的入口点,无论是静态链接还是动态链接的程序。对于静态链接的程序,所有内容都在可执行文件中,而对于动态链接的程序,一些内容可能需要在运行时加载。这使得程序能够顺利执行,而且具有灵活性和资源节省的优势。

2023-11-08 22:16:56 99 1

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

本次实验,了解了进程的创建过程,进程的创建过程涉及资源的复制、内核堆栈的初始化和执行起点的切换。这些步骤保证了子进程能够独立运行,并拥有与父进程相似的环境和状态。

2023-11-04 18:44:47 90 1

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

用户态进程通过 int 0x80 或 system_call 进行系统调用的过程:1. 用户态进程通过 int 0x80 这个中断指令(或者 system_call)发起系统调用请求。中断号 0x80 是预留给系统调用的中断向量号。2. 当进程发起系统调用请求时,CPU会从用户态切换到内核态,进入特权模式,并执行相应的中断处理程序。3. 中断处理程序会保护当前进程的现场。它会保存进程被中断时的状态,如程序计数器 PC、寄存器内容以及其他重要的进程信息,通常保存在内核栈中。

2023-10-27 23:19:19 164 1

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

system_call根据传入的系统调用号在系统调用列表中查找到对应的系统调用内核函数,然后根据EBX寄存器和ECX寄存器中保存的参数调用用内核函数sys_rename,执行完成后将执行结果存放到EAX寄存器中,将EAX寄存器的值传给ret。在Linux中,每个进程除了有一个进程ID和父进程ID之外,还有一个进程组ID,用于标识该进程属于哪一个进程组。在任务结构体中,每个进程都有指向祖先进程、父进程、子进程、弟进程和兄进程的任务结构体指针。在Linux中,兄弟关系是通过共享父进程的某些资源来体现的。

2023-10-21 20:40:51 98 1

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

Linux系统启动过程如下:1. 引导加载程序(bootloader)加载内核映像,并将控制权交给内核的固定入口点。2. 内核启动后,会执行start_kernel函数,该函数负责进行一系列初始化操作。3. 初始化完成后,start_kernel函数调用rest_init函数,该函数负责创建用户空间的第一个进程。4. rest_init函数会创建内核线程kthreadd,该线程是内核线程管理子系统的一部分,它是内核中所有其他线程和进程的父进程。

2023-10-14 18:11:55 89 1

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

然后替换位于home/shiyanlou/LinuxKernel/linux-3.9.4/mykernel/中的mymain.c;接下来在shell中将当前工作目录退回到home/shiyanlou/LinuxKernel/linux-3.9.4/然后执行make,重新编译内核,再次执行qemu -kernel arch/x86/boot/bzImage命令。找到mypcb.h;myinterrupt.c的代码;将mypcb.h也放在这里。使用make命令编译内核。

2023-09-30 16:37:47 103

原创 2023-2024-1 20232822 马丽《Linux内核原理与分析》第二周作业

国产Linux操作系统始于20世纪90年代,大多数基于Fedora、CentOS、Debian/Ubuntu等国外Linux发行版进行二次开发,直到2019年,华为公司开源了openEuler操作系统,它是自主演进的根操作系统,不是基于其他任何Linux发行版的二次开发,这是它与其他国产Linux操作系统的主要差异。-S:编译,生成汇编代码;在vim编辑器里写入上述代码,保存到main.c,使用最基本的gcc编译格式gcc main.c,执行完这句命令,会在当前目录下输出一个名为a.out的可执行文件。

2023-09-23 21:24:23 93 1

空空如也

空空如也

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

TA关注的人

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