- 博客(14)
- 收藏
- 关注
原创 arch linux signature is unknown trust
【代码】arch linux signature is unknown trust。
2024-01-02 19:18:00 715
原创 2023-2024-1 20232817《Linux内核原理与分析》第十三周作业
在实验过程中,可能会遇到一些错误,如缺少32位库文件的问题。解决方法是安装相应的软件包,或查找适用于32位环境的库文件。实验中使用的方法是经典的缓冲区溢出攻击和 Return-to-libc 攻击,这些漏洞利用技术强调了对程序输入的安全性检查的重要性。开发者需要采取适当的防御措施,如栈保护机制、地址空间随机化等,以减缓攻击者的成功利用漏洞的可能性。
2023-12-12 16:20:28 126
原创 2023-2024-1 20232817《Linux内核原理与分析》第十周作业
主流虚拟化技术有 VMware 的 ESXi、开源项目 Xen 和 KVM 等,主要差别在于 CPU 的虚拟化、内存的虚拟化和 I/O 的虚拟化,以及调度管理实现有所不同。在 ESXi 中,所有虚拟化功能都在内核中实现;Xen 中,内核只实现 CPU 和内存虚拟化,I/O 虚拟化与调度管理由主机上启动的第一个负责管理的虚拟机实现;KVM 中,Linux 内核实现 CPU 与内存虚拟化,I/O 虚拟化由 QEMU 实现,调度管理通过 Linux 进程调度器实现。
2023-12-12 16:07:08 128
原创 2023-2024-1 20232817《Linux内核原理分析与设计》第十一周作业
操作系统安全是计算机系统中至关重要的一部分,特别是对于Linux这样的开源系统。它涉及到保护系统的机密性、完整性和可用性,以及防范各种安全威胁,如恶意软件和未经授权的访问。
2023-12-03 13:00:24 155 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第九周作业
理解编译链接的过程和 ELF 可执行文件格式编程使用 exec库函数加载一个可执行文件,动态链接分为可执行程序装载时动态链接和运行时动态链接,编程练习动态链接库的这两种使用方式使用 gdb 跟踪分析一个 execve 系统调用内核处理函数 sys_execve ,验证您对 Linux 系统加载可执行程序所需处理过程的理解。特别关注新的可执行程序是从哪里开始执行的?为什么 execve 系统调用返回后新的可执行程序能顺利执行?
2023-11-15 15:13:48 69 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第八周作业
从上面的代码可以看出,fork、vfork和clone这三个系统调用以及user_mode_thread和kernel_thread内核函数都能创建一个新的进程,而且都是通过kernel_clone这个函数来创建的,只是传递的参数不一样。因为父进程和子进程的绝大部分信息是一样的,除开pid的值和内核堆栈以及thread结构体变量记录进程执行上下文的CPU关键信息。而对于创建一个新进程进而修改 task_struct 数据结构的秘密就在获取父进程的进程描述符和其他数据结构的步骤之中,涉及的函数就是。
2023-11-15 15:12:37 72 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第七周作业
是接下来四次实验的平台。但是由于MenuOS原本设计是为x86架构所服务的,如果需要在RISC-V架构上的机器上运行,就必须对关键部分的汇编代码进行修改。首先使用以下命令克隆另外一个需要修改的文件是Makefile,这个文件的修改非常重要,将决定产生的什么架构的执行文件。需要注意的是,本次实验需要使用和, 请完成第三次实验后,再来做此次实验。
2023-11-15 15:12:06 197 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第六周作业
在第一个实验中,我们配置好了使用ssh连接开发板的流程。在连接好网线后,通过使用浏览器登录网管地址查看开发板的ip地址后,使用以下命令连接开发板。Ip地址需要使用自己查阅的Ip地址。回车后,输入密码:starfive。进入开发板中的shell。
2023-11-15 15:11:37 171 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第五周作业
故此,使用他人编译好的工具链,是一种有效的方式。网站提供了已经编译好的RISC-V工具链,如下图所示:选项:在Select arch选项中,我们选择riscv64-lp64d在Select libc中选择glibc下载stable版或者Bleeding-edge本节以下载Bleeding-edge为例。
2023-11-15 15:11:10 193 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第四周作业
理解 Linux 系统中进程调度的时机使用 gdb 跟踪分析一个 schedule()函数仔细分析 switch_to 中的汇编代码,理解进程上下文的切换机制,以及与中断上下文切换的关系;
2023-11-15 15:06:08 88
原创 2023-2024-1 20232817《Linux内核原理与分析》第三周作业
第三章主要讲解了linux内核的文件结构,如何编译内核,如何制作文件根系统和如何调试。在vscode中使用ssh连接到了ubuntu。编译linux内核并实现了和实验楼二一样的实验。最终在实验楼中启动QEMU打开编译好的程序。编译过程中遇到错误:thunk。编译linux3.9.4内核。在.config中设置。
2023-10-01 14:08:54 79
原创 2023-2024-1 20232817《Linux内核原理与分析》第二周作业
pushl %ebp 将之前的基址指针保存到栈中,movl %esp, %ebp 则将当前栈顶位置赋值给基址指针,完成堆栈帧的建立。这条指令将 %esp 中的值(即当前栈顶位置)复制到 %ebp 寄存器,实现了基址指针的更新,通常在函数的入口处执行,用于建立函数的堆栈帧(Stack Frame)。这条指令将当前 %ebp 寄存器中的值压入栈,用于保存之前的基址指针。f 函数保存旧的基址指针到栈上,然后将当前栈顶位置赋给 %ebp。g 函数保存旧的基址指针到栈上,然后将当前栈顶位置赋给 %ebp。
2023-09-24 15:47:41 100 1
原创 2023-2024-1 20232817《Linux内核原理与分析》第一周作业
Linus在其老师编写的Minix内核的基础上得到了自己的内核并且使用了GNU的部件组成了GNU/Linux,他给自己的内核取名Linux,意味着Linux is not Unix,并与1991 年 9 月 17 日将Linux的代码发布到一个名叫comp.os.minix的新闻组。GNU工程起先于Linus,GNU有自己的内核叫作Hurd,采用先进的微内核的技术构建,但是由于微内核的原因导致调试变得极其复杂,以至于Hurd内核始终无法作为一个成熟的内核作为操作系统的一部分。
2023-09-17 19:30:47 398 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人