<Linux内核原理与设计>第十周作业 教材17.19.20章学习及收获 1.在Linux以及所有unix系统中,设备被分为以下三种:块设备(blkdev)以块为单位寻址,通过块设备节点来访问:字符设备(cdev),不可寻址,通过字符设备节点访问:网络设备:对网络的访问,通过物理适配器和协议进行访问. 2.可装载内核模块:单独的二进制镜像,允许内核在运行时动态插入或删除代码.如果编译到内核中,入口点init存放在内核映像中,并且退出函数不会被包含和调用. 3.导出符号表:只有被导出后的内核函数…
<Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多时间等待I/O操作的完成:CPU-bound 是计算密集型,需要大量的CPU时间进行运算,使得其他交互式进程反应迟钝,因此需要不同的算法来使系统的运行更高效,以及CPU的资源最大限度的得到使用.第二种分类包括批处理进程(batch process):实时进程(real-time process)以及交互式进程…
<Linux内核原理与设计>第八周作业 视频学习及操作分析 预处理.编译.链接和目标文件的格式 可执行程序是怎么来的? 以C语言为例,经过编译器预处理.编译成汇编代码.汇编器编译成目标代码,然后链接成可执行文件,再将可执行程序加载到内存中执行,过程可以通过下图展示(其中预处理已省略): 可执行文件的创建--预处理.编译和链接: cd Code vi hello.c gcc –E –o hello.cpp hello.c –m32 //预处理,把include的文件包含进来及宏替换等工作 vi…
<Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_fork来实现进程的创建:函数返回了两次,即在父进程子进程中各返回一次.通过复制当前进程可以创建一个新的进程.Linux通过复制父进程来创建一个新进程,那么这就给我们理解这一个过程提供一个想象的框架: ·复制一个PCB--task_struct 1.err = arch_dup_task_struct(tsk, o…
<Linux内核原理与设计> 视频学习及操作 给MenuOS增加time和time-asm命令的方法: 1.更新menu代码到最新版 rm menu -rf //强制删除menu, rm -rf 表示强制删除的意思. git clone 网址 //克隆一个新的menu,这样就使得menu的代码更新到最新版 2.在main()函数中增加MenuConfig 3.增加对应的Time函数和TimeAsm函数(这里的函数要换成我们自己编写的使用系统调用的函数,比如mkdir和mkdirAsm) 4.m…
<Linux内核原理与设计>第五周作业 视频学习及操作分析 一.用户态.内核态和中断 内核态在CPU执行中对应高执行级别,执行级别为0级,具有特权指令,可以访问任意物理地址:用户态执行级别为3级,在低级别执行状态下,代码掌控范围会受到限制. 内核态和用户态的区分:两者有一显著的区分方法,就是cs:eip寄存器.内核态时,cs:eip可以是任意地址,在32位X86机器上具有4G进程地址空间,因此既可以访问0X00000000-0Xbfffffff的地址空间,也可以访问0Xc0000000以上的地…
<linux内核原理与设计>第十二周作业 Sql注入基础原理介绍 分组: 和20179215袁琳完成实验 一.实验说明   SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,本章课程通过 LAMP 搭建 Sql 注入环境,两个实验分别介绍 Sql 注入爆破数据库.Sql 注入绕过验证两个知识点. 首先通过下面命令将代码下载到实验楼环境中,作为参照对比进行学习. $ wget http://labfil…
<Linux内核原理与设计>第十一周作业 ShellShock攻击实验 分组: 和20179215袁琳完成实验及博客攥写 实验内容:   Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,既可以远程也可以在本地触发,本实验通过重现攻击来理解改漏洞. 实验操作: 什么是ShellShock?   Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开.许多互联网守护进程,如网页服务器,使用ba…
2019-2020-1 20199303第二周作业 1.汇编与寄存器的学习 寄存器是中央处理器内的组成部份.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC).在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC). 寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径.寄存器通常都是以他们可以保存的位元数量来估量,寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组.…
2019-2020-1 20199303 <Linux内核原理分析> 第一周作业 1. 环境准备 在众多的Linux发行版中,Ubuntu,小红帽还有类Unix系统的BSD系统,我选择了目前比较流行的Ubuntu.Ubuntu的安装考虑了做双系统或者使用虚拟机安装,因为暂时没有性能需求且使用虚拟机的插件进行主系统和虚拟机系统的交互更为方便,就使用了VMware作为虚拟机安装了操作系统. 写博客的选择markdown标记语言,编辑器使用Markdownpad 2,因其可以实时显示html下的显示…