- 博客(7)
- 资源 (7)
- 收藏
- 关注
原创 分析kfifo
分析kfifokfifo也是内核常用的数据结构,今天分析kfifo。fifo:first in first out先进先出。这至少会涉及到数据的入队,数据的出队。先想想如果自己来实现一个fifo该怎么设计:如果设计的话,只需要满足语义,我会用链表或者数组来实现,数组效率更高,设计思路:先申请一片数组作为fifo的大小,然后设计两个指针。入队指针指向数组的尾部,数组增加,指针加1,出队指针指向数...
2020-03-28 12:24:10
611
原创 分析linked_lists
分析linked_lists在内核中使用链表的地方非常多,链表是将所有的节点通过指针串联起来,内核使用双链表。普通的链表我们通常认识的链表都这么定义struct node { int data; struct node *next; struct node *prev;};先定义一个数据,再加上一个前向指针,再加上以后后向指针,如果只是使用这个数据结构的话,似...
2020-03-26 11:26:38
213
原创 分析 container_of 宏
分析 container_of 宏功能和使用这个宏的作用是通过得知结构体中的某个成员变量的地址,然后找到结构体的首地址。举例说明:有个结构体:struct person { int age; int salary; char *name;};struct person leo;int *salary_ptr = &(leon.salary);得...
2020-03-25 15:40:50
721
原创 编写snull程序
编写snull程序内容简介这是一篇手把手简易实现LDD3第17章:网络驱动程序的记录过程(其实我是把程序调试完了再来写的总结文章)。确认内核版本$uname -r4.15.0-88-generic模块程序的框架这是内核的模块驱动(module driver),那先就把模块的框架和对应的Makefile写好。构成模块的文件为snull.c snull.h Makefile(为什么要...
2020-03-24 16:34:21
778
原创 《X86汇编语言从实模式到保护模式》第06章:相同的功能,不同的代码
针对第5章的代码,可以说是直截了当,直接对内存进行了写。这一章通过使用循环和条件转移指令来实现,知识点都是一样的,直接上代码,然后再分析每一行代码:既然功能相同,直接运行下程序,得到运行结果:总共去敲这3条命令,感觉有点麻烦,所以,我把这三条命令写在脚本里,每次修改代码,只需要运行下脚本sh run.sh就行了。#!/bin/bashrm c06_mbr.binrm bo...
2019-11-07 13:03:06
672
原创 《X86汇编语言从实模式到保护模式》第05章:编写主引导扇区代码
从第5章开始写起,第一部分主要是介绍写基础知识,看书即可,从第5章开始涉及代码编写。这些文章的主要结构如下:总结书中涉及的知识点。 调试和验证书中的代码部分。1:知识点1.1 主引导扇区在电脑已启动就会去读0面0道1扇区,这个扇区就是主引导扇区(main boot sector)。程序从0X7C00开始,一个扇区是512字节(0X200),所以主引导扇区是从0X7C00--...
2019-11-04 14:23:50
712
原创 《X86汇编语言从实模式到保护模式》
我最近读了一本好书。更新了我对intel汇编语言以及x86体系架构的认识。我于是把读书笔记写上来,一是为了自己能完全的搞懂这本书,还有就是如能能对大家有所帮助就算锦上添花了。我会把每一章的调试以及自己的思考都写下来,直到把这本书完全理解。这本书分为3个部分:预备知识,实模式,32位保护模式。代码的调试是在ubuntu下用qemu调试。这本书做到了由浅入深,循序渐进,预备知识和实...
2019-10-18 17:10:49
514
How to passthrough your integrated device to a VM on ARM
2019-09-12
The Slab Allocator An Object-Caching Kernel Memory Allocator
2018-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人