- 博客(7)
- 收藏
- 关注
原创 20242811《Linux内核原理与分析》第八周作业
3、使用 gdb 跟踪分析一个 execve 系统调用内核处理函数 sys_execve ,验证您对 Linux 系统加载可执行程序所需处理过程的理解,详细内容参考本周第三节;对于静态链接的可执行程序和动态链接的可执行程序 execve 系统调用返回时会有什么不同?2、编程使用 exec*库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态链接,编程练习动态链接库的这两种使用方式,详细内容参3考本周第二节;1、理解编译链接的过程和 ELF 可执行文件格式,详细内容参考本周第一节;
2024-11-11 22:47:10 685
原创 20242811《Linux内核原理与分析》第七周作业
gdb中continue执行,会停留在每个断点,最终进入dup_task_struct内部,停留在copy_thread和ret_from_fork上。系统调用用于创建一个新进程,它通过调用。时,它会触发一个系统调用进入内核。的实现有助于理解进程创建过程及。主要通过以下几个步骤修改。在 Linux 内核中,数据结构如何被修改。
2024-11-06 20:28:07 915
原创 20242811《Linux内核原理与分析》第六周作业
1、使用 gdb 跟踪分析一个系统调用内核函数(您上周选择的那一个系统调用),系统调用列表参见 torvalds/linux。再另打开一个shell,进行GDB调试,建立GDB和gdbserver之间的连接。此后,在getpid函数处设置断点,进行分析。2、根据系统调用的过程,从 system_call 开始到 iret 结束之间的整个过程,并画出简要准确的流成图。回到LinuxKernel目录,启动一个使用指定内核和根文件系统的虚拟机,同时允许远程调试。在x86架构的操作系统中,
2024-10-28 14:18:40 683
原创 20242811《Linux内核原理与分析》第五周作业
系统调用(System Call)是操作系统提供给用户空间程序与内核交互的接口。通过系统调用,应用程序可以请求操作系统执行特定的低级操作,如文件读写、内存管理、进程控制、网络通信等。在现代操作系统中,用户空间与内核空间是隔离的,用户程序不能直接访问硬件资源或管理内存等敏感操作。系统调用提供了一种受控的方式,让用户程序能够通过操作系统进行这些操作,而无需直接访问硬件。./test_api程序通过getuid()和getgid()获取了用户的主用户 ID和主组 ID,但它没有显示用户所属的其他组。而id。
2024-10-22 19:42:55 914
原创 20242811《Linux内核原理与分析》第4周作业
通过这些步骤,可以开始使用GDB对Linux内核进行调试。在GDB中,可以使用各种命令来检查变量、单步执行代码、查看调用栈等。这些调试技巧对于理解内核的行为和查找问题非常有用。继续执行: 在设置好断点后,可以通过在GDB中输入c(continue的缩写)来继续执行内核,直到它到达断点。连接到QEMU的GDB服务器: 接下来,连接到QEMU的GDB服务器。这将使得内核在启动时暂停执行,从而进行调试。在GDB中加载符号表: 在GDB提示符下,加载内核的符号表。这允许GDB解析和显示内核的源代码。
2024-10-16 23:47:29 172
原创 2024-2025-1 20242811《Linux内核原理与分析》第三周作业
1、使用wget 工具从GitHub下载一个名为 mykernel-2.0_for_linux-5.4.34.patch 的补丁文件,这个补丁文件是用来修改Linux内核源代码的。(axel -n 20 https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.34.tar.xz)4、使用xz -d linux-5.4.34.tar.xz这条命令解压 linux-5.4.34.tar.xz 文件,移除其 .xz 压缩格式。
2024-10-13 13:01:13 529
原创 20242811《Linux内核原理与分析》第二周作业
AT&T汇编格式与lntel汇编格式略有不同,Linux内核使用的是AT&T汇编格式,几个重要的汇编指令:push、pop、call、ret。eip寄存器不能被直接修改,只能通过特殊指令间接修改。这个过程中不涉及链接步骤,因此不会生成可执行文件,只有汇编代码文件会被创建。文件编译成32位的汇编语言代码,并将生成的汇编代码保存到。这条命令的整体作用是:将。
2024-09-28 15:25:12 952
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人