首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
刨一刨内核container_of()的设计精髓
】的更多相关文章
刨一刨内核container_of()的设计精髓
新年第一帖,总得拿出点干货才行,虽然这篇水分还是有点大,大家可以晒干了温水冲服.这段时间一直在整理内核学习的基础知识点,期间又碰到了container_of()这个宏,当然还包括一个叫做offsetof()的家伙.在这两个宏定义里都出现将"零"地址强转成目标结构体类型,然后再访问其成员属性的情形.如果有童鞋看过我之前的博文<Segmentation fault到底是何方妖孽>的话,估计此时心里会犯嘀咕:不是说0地址不可以访问么,那container_of()和offseto…
2017-2018-1 20179205《Linux内核原理与设计》第六周作业
<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…
《About Face 3:交互设计精髓》【PDF】下载
<About Face 3:交互设计精髓>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230384328 内容简介 全书分成3篇:第1篇描述了"目标导向设计",详细讨论了用户和设计的过程及思想:第2篇讲的是交互设计的原则,可以帮助您在较高层次上去把握设计:第3篇则介绍具体的细节方面的界面设计原则. 本书结构清晰.深入浅出,是一本难得的大师经典之作.本书的读者对象包括数字产品和系统的交互设计师.用户界面设计师.项目经理.可…
期末总结20135320赵瀚青LINUX内核分析与设计期末总结
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 对LINUX内核分析与设计这门课程的理解 LINUX内核在我看来就是操作系统和深入理解计算机系统的结合.Linux是一种开源电脑操作系统内核.它是一个用C语言写成,符合POSIX标准的类Unix操作系统.我觉得LINUX操作系统和WINDOWS操作系统最大的不同就是,WINDOWS操作系统的内核源代码是不公开的,也不共享,这样一些编程的…
2017-2018-1 《Linux内核原理与设计》第十二周作业
<linux内核原理与设计>第十二周作业 Sql注入基础原理介绍 分组: 和20179215袁琳完成实验 一.实验说明 SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,本章课程通过 LAMP 搭建 Sql 注入环境,两个实验分别介绍 Sql 注入爆破数据库.Sql 注入绕过验证两个知识点. 首先通过下面命令将代码下载到实验楼环境中,作为参照对比进行学习. $ wget http://labfil…
《Linux内核原理与设计》第十一周作业 ShellShock攻击实验
<Linux内核原理与设计>第十一周作业 ShellShock攻击实验 分组: 和20179215袁琳完成实验及博客攥写 实验内容: Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,既可以远程也可以在本地触发,本实验通过重现攻击来理解改漏洞. 实验操作: 什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开.许多互联网守护进程,如网页服务器,使用ba…
2017-2018-1 20179205《Linux内核原理与设计》第十周作业
<Linux内核原理与设计>第十周作业 教材17.19.20章学习及收获 1.在Linux以及所有unix系统中,设备被分为以下三种:块设备(blkdev)以块为单位寻址,通过块设备节点来访问:字符设备(cdev),不可寻址,通过字符设备节点访问:网络设备:对网络的访问,通过物理适配器和协议进行访问. 2.可装载内核模块:单独的二进制镜像,允许内核在运行时动态插入或删除代码.如果编译到内核中,入口点init存放在内核映像中,并且退出函数不会被包含和调用. 3.导出符号表:只有被导出后的内核函数…
2017-2018-1 20179205《Linux内核原理与设计》第九周作业
<Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多时间等待I/O操作的完成:CPU-bound 是计算密集型,需要大量的CPU时间进行运算,使得其他交互式进程反应迟钝,因此需要不同的算法来使系统的运行更高效,以及CPU的资源最大限度的得到使用.第二种分类包括批处理进程(batch process):实时进程(real-time process)以及交互式进程…
2017-2018-1 20179205《Linux内核原理与设计》第八周作业
<Linux内核原理与设计>第八周作业 视频学习及操作分析 预处理.编译.链接和目标文件的格式 可执行程序是怎么来的? 以C语言为例,经过编译器预处理.编译成汇编代码.汇编器编译成目标代码,然后链接成可执行文件,再将可执行程序加载到内存中执行,过程可以通过下图展示(其中预处理已省略): 可执行文件的创建--预处理.编译和链接: cd Code vi hello.c gcc –E –o hello.cpp hello.c –m32 //预处理,把include的文件包含进来及宏替换等工作 vi…
2017-2018-1 20179205《Linux内核原理与设计》第七周作业
<Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_fork来实现进程的创建:函数返回了两次,即在父进程子进程中各返回一次.通过复制当前进程可以创建一个新的进程.Linux通过复制父进程来创建一个新进程,那么这就给我们理解这一个过程提供一个想象的框架: ·复制一个PCB--task_struct 1.err = arch_dup_task_struct(tsk, o…