Linux内核原理与分析
文章平均质量分 83
ExNexus
这个作者很懒,什么都没留下…
展开
-
2021-2022-1 20212802《Linux内核原理与分析》第十二周作业
一 实验内容return-to-libc实验是一个基于缓冲区溢出攻击实验的基础上的一种攻击实验 缓冲区溢出攻击相关知识: 原理:通过一段包含shellcode以及shellcode地址的长字符串注入到程序中,以shellcode地址来覆盖程序原有的返回地址,从而让目标程序来执行我们的shellcode,以此达到攻击目的 保护措施:为了防止缓冲区溢出攻击,现在常用的保护措施有两种,一是设置堆栈不可执行,漏洞程序在执行注入到堆栈中的shellcode时就会发生程序崩溃。二是代码生成地址随机化,以此来原创 2021-12-04 15:24:34 · 205 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第十一周作业
一、实验描述Set-UID 是Unix系统中的一个重要的安全机制。当一个Set-UID程序运行的时候,它被假设为具有拥有者的权限。例如,如果程序的拥有者是root,那么任何人运行这个程序时都会获得程序拥有者的权限。Set-UID允许我们做许多很有趣的事情,但是不幸的是,它也是很多坏事情的罪魁祸首。因此本次实验的目标有两点:1.欣赏好的方面,理解为什么Set-UID是需要的,以及它是如何被执行的。2.注意坏的方面,理解它潜在的安全性问题。二、实验内容这是一个探索性的实验,你的任务是原创 2021-12-04 10:29:32 · 196 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第九周作业
进程的切换和系统的一般执行过程1.知识总结(1)进程调度的时机:中断处理过程直接调用schedule(),或者返回用户态时根据need_resched标记调用schedule()。 内核线程是一个特殊的进程,只有内核态没有用户态,可以直接调用schedule()进行进程切换,也可以在中断处理过程中进行调度(内核线程可以直接访问内核函数,所以不会发生系统调用)。内核线程作为一类的特殊的进程可以主动调度,也可以被动调度。 用户态进程无法实现主动调度,仅能在中断处理过程中进行调度(schedule原创 2021-11-19 15:07:35 · 748 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第八周作业
一 、可执行程序的装载1. 预处理、编译、链接gcc –e –o hello.cpp hello.c //预处理gcc -x cpp-output -S -o hello.s hello.cpp //编译 gcc -x assembler -c hello.s -o hello.o-m32 //汇编gcc -o hello hello.o //链接成可执行文件,使用共享库用gcc -o hello.static hello.o -static静态编译出来的hello.sta原创 2021-11-12 22:26:38 · 982 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第七周作业
一 、Linux内核创建一个新进程的过程1. 相关知识操作系统内核三大功能是进程管理,内存管理,文件系统,最核心的是进程管理 linux 进程的状态和操作系统原理的描述进程状态有所不同,比如就绪状态和运行状态都是TASK_RUNNING。(这个表示它是可运行的,但是实际上有没有在运行取决于它是否占有 CPU ) fork 被调用一次,能够返回两次。在父进程中返回新创建子进程的 pid;在子进程中返回 0 调用 fork 之后,数据、堆、栈有两份,代码仍然为一份(这个代码段成为两个进程的共享代码原创 2021-11-05 20:09:46 · 167 阅读 · 0 评论 -
OpenEuler树莓派基础实验 20212802范辰宇
3.2 实验 3-2:汇编语言练习——查找最大数1.实验目的通过本实验了解和熟悉 ARM64 汇编语言。2.实验要求使用 ARM64 汇编语言来实现如下功能:在给定的一组数中查找最大数。程序可使GCC(Aarch64 版本)工具来编译,并且可在树莓派 Linux 系统或者 QEMU + ARM64 实验平台上运行。.section .data.align 3my_data: .quad 1 .quad 2 .quad 5 .q原创 2021-10-31 15:02:24 · 649 阅读 · 0 评论 -
OpenEuler安装 20212802范辰宇
树莓派openEuler安装安装准备获取安装源在安装开始前,您需要获取 openEuler 发布的树莓派镜像及其校验文件。 登录 openEuler社区网站下载链接。 单击卡片 openEuler 21.03 上的“下载”按钮,下载最新系统(2021.04)。 单击“raspi_img”,进入树莓派镜像的下载列表。(aarch64:AArch64 架构的镜像) 单击“aarch64”,进入树莓派 AArch64 架构镜像的下载列表。 单击“op原创 2021-10-31 14:52:29 · 448 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第六周作业
一、系统调用实验:1.编辑 menu 中的 text.c 文件,给MenuOS增加 rename 和 rename_asm 命令:make rootf 打开 menu 镜像,可以看到MenuOS菜单中新增了两条命令:2.gdb 跟踪 sys_rename:同第二个实验相同,先使得 CPU 静止,在 sys_rename 处设置断点,在MenuOS中执行rename命令,发现停在SyS_rename(定义在fs/namei.c中)处,用宏来实现。然后继续单步执行:大家知道执行原创 2021-10-29 15:31:26 · 182 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第五周作业
一、系统调用实验:1.实验的相关知识准备:(1)系统调用的三层皮:xyz()(API)、system_call(所有系统调用的入口) 、 sys_xyz()(中断服务程序)(2)API是程序员在用户空间下可以直接使用的函数接口,它提供了一套封装例程,将系统调用在用户空间包装后供用户编程使用。涉及到与内核空间进行交互的API会封装系统调用,而不涉及与内核进行交互的API不会封装系统调用。(3)系统调用是用户进入内核的接口,并非内核函数。用户程序通过某个系统调用进入内核后,会接着去执行这个系统调原创 2021-10-21 20:06:44 · 191 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第四周作业
一、跟踪分析内核的启动过程实验 :1.启动Menuos:qemu仿真kernel:qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img2.调试跟踪:-S 开始处冻结CPU,方便调试-s 使用tcp端口1234来进行通讯,将进程信息传过去(在后面的调试中会用到)。若不想使用1234端口,可以使用-gdb tcp:xxxx来取代-s选项启动gdb,把内核加载进来,建立连接:file.原创 2021-10-14 23:13:33 · 209 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第三周作业
1、实验要求完成一个简单的时间片轮转多道程序内核代码2、实验过程进入实验楼的linux环境,打开shell,输入以下代码:cd LinuxKernel/linux-3.9.4rm -rf mykernelpatch -p1 < ../mykernel_for_linux3.9.4sc.patchmake allnoconfigmake #编译内核请耐心等待qemu -kernel arch/x86/boot/bzImage执行的效果如下:3、mykernel时间原创 2021-10-09 19:56:51 · 179 阅读 · 0 评论 -
2021-2022-1 20212802《Linux内核原理与分析》第二周作业
本周总结:本周的学习内容主要是庖丁解牛Linux的第一章,然后看完书后,又跟着云班课加深学习了一下第一章的内容。第一章主要讲述了linux里的汇编指令的一些指令,比如movl,pushl,popl等等,这些指令都是围绕数据结构中的栈做文章的。贯穿这一章的是esp、ebp,eip指针寄存器。简单来说,ebp就是指的栈底,esp就是指着栈顶。eip就是正在执行的指令所在的位置,然后不断重复的进行入栈出栈操作。C语言代码: //mian.c int g(int x) {原创 2021-10-02 11:04:01 · 474 阅读 · 0 评论 -
2021-2022-1 20212802 《Linux内核原理与分析》第一周作业
第一周课后主要学习了实验楼中《Linux基础入门》这节课,以下是自己的一些学习笔记实验一 Linux系统简介 这一节主要学习了Linux的历史,Linux有关的重要人物以及学习Linux的方法,Linux和Windows的区别。其中学到了LInux中的应用程序大都为开源自由的软件,用户可以修改定制再发布;内核是实现多任务运行和硬件管理的基础;在我们使用应用程序时,在背后支持软件服务的是成千上万个Linux服务器主机。实验二 Linux基础概念及操作 这一节首先学习了实验...原创 2021-09-28 15:23:36 · 221 阅读 · 0 评论