- 博客(11)
- 收藏
- 关注
原创 20242809《Linux内核原理分析与设计》第十二周作业
2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发。在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题。
2024-12-13 22:00:57
859
原创 20242809《Linux内核原理与分析》第十一周作业
12.1.1 信息安全的设计原则保密性:确保数据仅被授权的人员访问,防止信息泄露。常用技术包括数据加密、访问控制等。完整性:保证数据未被未经授权的修改或破坏。通过校验和、数字签名等手段确保数据的准确性和一致性。可用性:确保合法用户在需要时可以访问和使用系统资源。通过冗余设计、负载均衡、灾难恢复等措施提高系统的可用性。身份认证:验证用户身份的合法性,防止未经授权的用户访问系统。常用方法包括用户名/密码、双因素认证、数字证书等。访问控制:根据用户身份和权限控制对资源的访问。
2024-12-06 23:29:41
791
原创 20242809《Linux内核原理与分析》第十周作业
虚拟机技术通过在物理硬件上创建多个虚拟实例,使得一台物理服务器可以运行多个独立的操作系统。这部分内容介绍了虚拟化的基本概念及其在CPU、内存和I/O设备方面的实现。虚拟化扩展:如Intel VT-x和AMD-V,这些硬件扩展允许虚拟机直接执行某些指令,从而减少虚拟化的开销,提高性能。上下文切换:虚拟化技术通过管理虚拟CPU(vCPU)和物理CPU之间的上下文切换,实现对多虚拟机的支持。
2024-11-29 23:27:18
947
原创 20242809《Linux内核原理与分析》第九周作业
Linux 系统在执行过程中涉及多个关键步骤和组件,以实现从开机启动到运行用户应用的完整流程。1.引导加载程序(Boot Loader)开机时,计算机会首先执行固件(如BIOS或UEFI)的初始化工作。然后,固件会加载并执行引导加载程序(如GRUB)。引导加载程序负责加载Linux内核到内存中,并将控制权移交给内核。2.内核初始化一旦内核被加载,内核会进行一系列初始化工作,包括初始化硬件设备、内存管理、进程管理和文件系统等。
2024-11-18 22:02:48
796
原创 20242809《Linux内核原理与分析》第八周作业
1.exec函数的具体实现2.查看hello(ELF文件)的头部信息3.特别关注点新的可执行程序的执行起点:通常是 _start 函数,它是程序的入口点。为什么 execve 系统调用返回后新的可执行程序能顺利执行:因为 execve 替换了当前进程的地址空间,并重新初始化了堆栈等资源。静态链接和动态链接的区别:静态链接的可执行程序在编译时已包含所有依赖库,而动态链接的可执行程序则需要在运行时加载共享库。
2024-11-12 21:44:09
351
原创 20242809《Linux内核原理与分析》第七周作业
新进程的执行起点通常是在 ret_from_fork 或 ret_from_syscall 位置。这些位置是内核堆栈的一部分,确保新进程从正确的位置开始执行,并能顺利继续执行。通过本次实验,加深了我对 Linux 系统创建新进程机制的理解,并掌握了如何使用 gdb 进行内核函数的调试和分析。
2024-11-03 16:50:28
359
原创 20242809《Linux内核原理与分析》第六周作业
系统调用过程主要包括以下几个步骤:1.用户态请求:应用程序通过系统调用接口发出请求。2.陷入内核态:通过 int 指令或 syscall 指令,陷入内核态。3.保存上下文:保存当前CPU的寄存器状态,以便以后恢复。4.系统调用处理:内核根据系统调用号查找对应的处理函数,并执行相应的内核代码。5.返回用户态:通过 iret 指令恢复之前保存的寄存器状态,返回用户态继续执行。
2024-10-28 22:23:19
243
原创 20242809《Linux内核原理与分析》第五周作业
系统调用是操作系统提供的一组接口,允许用户程序请求内核执行特定的操作。通过系统调用,用户程序可以访问硬件资源、文件系统、进程控制等功能,而不需要直接操作硬件。通过对系统调用的库函数和内联汇编两种实现方式,我们可以更深入理解系统调用的工作机制,尤其是参数传递和内核与用户模式的切换。这对于深入学习操作系统的原理以及开发高性能系统应用程序具有重要意义。
2024-10-23 21:02:08
215
原创 20242809《Linux内核原理与分析》第四周作业
总结 :start_kernel 函数是整个内核初始化的核心,它为后续的 init 进程的创建打下了基础。init 进程是 Linux 系统中第一个被创建的用户进程,它的重要性在于负责启动其他用户进程,并维持系统的正常运行。在系统启动过程中,idle 进程也是一个不可忽视的角色。它在没有其他进程运行时占用 CPU,确保系统资源的合理使用。1.使用实验楼的虚拟机打开 shell。2.使用 gdb 跟踪调试内核。3.另开一个 shell 窗口。
2024-10-15 20:42:50
309
原创 20242809《Linux内核原理与分析》第二周作业
通过分析这个简单的C程序及其对应的汇编代码,我们可以看到计算机是如何通过堆栈管理函数调用和参数传递的。堆栈在函数调用过程中起到了关键作用,确保了每个函数都有自己的独立空间来存储局部变量和返回地址。操作系统:Ubuntu 20.04汇编语言:x86汇编编译器:NASM调试工具:GDB。
2024-09-28 20:54:42
1154
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅