![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核
文章平均质量分 69
北岛静石
以后新博客的更新会先放在自己的notion:https://www.notion.so/3b69777783774061b97d84cfba3e3684?v=b44f836f6de44ae598aa6af39b4e87ef
展开
-
操作系统真象-开启分页&加载内核
操作系统真象-开启分页&加载内核 Tags: learning experience, 操作系统 开启分页: ps. 下面的内容都是基于二级页表的, 毕竟大伙都是用的二级页表, 而且动态规划的二级页表空间利用率高于一级页表哇 为什么要开启分页: 最大化利用物理内存, 避免物理内存啥的, 以及加速内外存交换?(毕竟书上方案B在面对需要大空间进程时, 对内外存交换速度的打击是毁灭性的) 如何开启分页机制: ps. 这三个步骤是有顺序的 准备好页目录及页表 将页表目录的地址写入cr3 cr0的PG位置零原创 2021-10-03 04:01:35 · 1033 阅读 · 0 评论 -
21 09 05学习总结(qwb_2018_core kernel rop)
21.09.05学习总结(qwb_2018_core kernel rop) Column: September 1, 2021 Tags: kernel study, learning experience 大概是好久之后更新的一篇blog了, 之前都在忙忙碌碌的打比赛呢, 痴痴的看着短视频, 莫名其妙就会让时间流走呢(笑, 最近不会再这样了) qwb_2018_core, 唔, kernel还不是学的很好呢, 先注释一遍吧, 加强理解: #include <string.h> #includ原创 2021-09-05 13:59:37 · 956 阅读 · 0 评论 -
Ucore Lab1(下)
Ucore Lab1(下) Column: August 4, 2021 Tags: kernel study, learning experience 练习五: 堆栈啥的是用的32位的, 因为是学pwn的基础, 就不赘述了直接放代码(其实就是各种调用它写好的库函数) void print_stackframe(void) { uint32_t now_ebp = read_ebp(); uint32_t now_eip = read_eip(); while(now_ebp !=原创 2021-08-05 00:47:23 · 76 阅读 · 0 评论 -
Ucore Lab1(上)
Ucore Lab1(上) 前情提要: Vx6太难了, ????????跑路了 日, 怎么Ubuntu里敲出来的中文这么怪 ppt来源于清华大学的操作系统网课 练习1: Q1: ucore.img是如何一步一步生成的? 先看一下makefile(选择编译器和编译器选项), 经过对比, 发现使用的是LLVM makefile系统, cc实际上为gcc编译 / ld链接选项有如下: -g可调试 -Wall会列举编译文件中的一些常见错误 -O2为优化程度 -march(架构?不会翻译)为i686 -fn原创 2021-07-30 03:10:14 · 205 阅读 · 0 评论 -
Ucore Lab1(中)
Ucore Lab1(中) Column: August 3, 2021 Tags: kernel study, learning experience 关于A20地址线的一些东东: 诞生的原因: 之前CPU 8086的最大寻址范围为0xffff0+0xffff=0x10ffef, 由于当时技术的限制(地址线也只有20根), 所以当地址大于0xfffff后会发生"回滚"的现象, 然而到了CPU Intel 80286后地址线变为了24根(当然后面的地址线会更多就是了), 当地址大于0xfffff后不是回滚,原创 2021-08-03 18:14:56 · 88 阅读 · 0 评论