会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
welsey
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
9
下一页
2021年6月8日
stl deque(gcc 4.8.5)
摘要: 整个deque的数据结构是以数据块作为基础的,一个缓冲块限制为512 byte,实际使用过程中根据对象需要空间大小去判断该缓冲块可以容纳多少个对象,然后返回对应一个数据块的需要使用空间大小;以下是计算一个缓冲块可容纳对象的数量以及申请一个缓冲块的实现: inline size_t __deque_b
阅读全文
posted @ 2021-06-08 10:26 呵哈呵
阅读(42)
评论(0)
推荐(0)
2021年6月7日
stl list(gcc 4.8.5)
摘要: 首先,在使用STL中的list数据结构的时候,会使用#include <list>进行相应头文件的引入,而后创建list对象,使用remove等成员函数,如果你突发奇想,抱着既然template模板函数必须在构建的时候对使用位置可见,不能模板类函数定义在一个单独的目标文件中这种想法,去点开他的声明位
阅读全文
posted @ 2021-06-07 09:22 呵哈呵
阅读(27)
评论(0)
推荐(0)
2021年6月6日
linux 0.11 系统调用过程
摘要: 系统调用,就是int 0x80;函数定义一般使用三个宏来进行定义: #define _syscall0(type,name) \ type name(void) \ { \ long __res; \ __asm__ volatile ("int $0x80" \ : "=a" (__res) \
阅读全文
posted @ 2021-06-06 13:01 呵哈呵
阅读(56)
评论(0)
推荐(0)
2021年6月5日
Linux 0.11分页管理
摘要: 分页,这个东西,首先就是实模式和保护模式的概念;然后就是就是逻辑地址、线性地址和物理地址的概念,之后就是页目录和页表的概念; 首先,实模式,这种模式下的寻址方式就是通常意义上的"段左移4bit然后叠加偏移量"作为最后地址进行寻址;且这种模式下兼容以前的处理器,只能寻址1M空间; 然后就是保护模式,保
阅读全文
posted @ 2021-06-05 22:14 呵哈呵
阅读(61)
评论(0)
推荐(0)
2021年6月4日
linux 0.11中的等待队列
摘要: linux 0.11中的等待队列比较有意思,他并不是直接创建一个链表,然后使用next指向下一个链表阶段这个样子,他是基于任务调度而进行的链表结构搭建: 就是说对于一个等待队列wait,他先指向任务A,而当需要新增一个等待任务B的时候,先将本身进行阻塞,即设置任务状态为不可中断睡眠状态,然后主动执行
阅读全文
posted @ 2021-06-04 23:35 呵哈呵
阅读(18)
评论(0)
推荐(0)
linux 0.11块设备读写逻辑
摘要: 块设备读取,linux 0.11中有三种块设备:软盘、硬盘和内存虚拟盘,这里只描述整体架构逻辑,具体实际读取和硬件相关,而硬件操作只是大体理解,并不是太懂; 首先,Linux中一切皆文件,而对于一个文件,整体操作无非就是open,增删修改、close: 对于块设备的话,整体模型分为三层,一层是用户层
阅读全文
posted @ 2021-06-04 23:24 呵哈呵
阅读(46)
评论(0)
推荐(0)
linux 0.11 init/main.c初始化部分
摘要: 在head设置了页表、GDT和IDT之后,然后就进入了main程序,这里首先介绍一些参数: ORIG_ROOT_DEV,该参数是读取0x901FC的两个byte读取的数据,这两个byte就是bootsect模块的0x509、0x510两个byte的数据,该参数的设置经过了两个步骤,第一个就是直接bo
阅读全文
posted @ 2021-06-04 15:14 呵哈呵
阅读(84)
评论(0)
推荐(0)
2021年6月1日
linux 0.11文件系统
摘要: 对于linux 0.11文件系统,是直接沿用MINIX文件系统的,整体上这种类型的文件系统由以下几个部分内容组成:引导块+超级块+i节点位图+逻辑块位图+i节点+数据区(逻辑块); 首先,在MINIX文件系统的超级块中,每个文件最终都是一个i节点,而i节点中存储着该文件的文件类型,文件权限,文件大小
阅读全文
posted @ 2021-06-01 16:44 呵哈呵
阅读(77)
评论(0)
推荐(0)
linux 0.11 head.s文件
摘要: 经过setup初始化后,控制流转移到该文件起始位置,进入该文件需要留意一点就是此时已经切换到分段模式,因此这里的寻址的段寄存器的意义变为了分段状态下的段,也就是段选择符;因此一开始的段寄存器设置0x10段,该段就是GDT表中的第一个段,该段段基址为0x0,段长为8M(setup中设置), 然后指向一
阅读全文
posted @ 2021-06-01 15:31 呵哈呵
阅读(34)
评论(0)
推荐(0)
2021年5月30日
关于linux 0.11 setup
摘要: 首先,bootsect引导部分和setup初始化部分仅在系统加载初始期间使用,系统正常运行过程中这两块是不需要的,因此放在0x90000之后,用于加载完毕就舍弃的位置(内核可以随便使用);那么bootsect引导将setup(引导扇区后的4个扇区)加载到了0x90200后(也占据了4个扇区),又将I
阅读全文
posted @ 2021-05-30 19:59 呵哈呵
阅读(33)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
8
9
下一页
公告