avatar
文章
48
标签
19
分类
9

主页
归档
标签
分类
H4wk1ns's blog
搜索
主页
归档
标签
分类

H4wk1ns's blog

操作系统-设计与实现-二
发表于2021-08-01|手写|手写•操作系统
前言 这一章没有新的内容,仅仅是实现课程中的L0实验 L0直接运行在硬件上的小游戏实验背景 传统上,操作系统被认为就是”写汇编”、”跟底层打交道”。但实际上,操作系统和硬件之间的关系被夸大了。操作系统实际上不过就是一个直接运行在计算机上的(高级语言)程序而已,只是会在适当的时候调用操作系统提供的机制。 因此,在初始化完成后设置好一个没有标准库的C程序运行环境,其中包含栈区、静态数据、堆区;代码从main函数开始执行,并允许我们在程序运行过程中直接、独占式地访问操作系统中的物理设备(例如显示器、计时器)和响应中断,即可实现当下主流的操作系统 实验描述 实验要求1:实现AbstractMachine中klib中缺失的函数 AbstractMachine的项目中包含一个基础运行库的框架klib,其中包含了方便你编写bare-metal程序的系列库函数,例如assert、printf和memcpy等。尽可能实现有能力实现的代码 实验要求2:实现可移植的、直接运行在计算机硬件上的小游戏 你需要编写一个直接运行在AbstractMachine上(仅仅是用IOE拓展,不使用其他硬件机制如 ...
操作系统-设计与实现
发表于2021-07-24|手写|手写•操作系统
前言 因为比较欠缺计算机基础知识,这里特别选取了南京大学蒋炎岩老师的《操作系统:设计与实现》,从而从理论和实践两方面,补全操作系统相关的知识 这些博客将简单记录重要的理论知识,以及全部的相关实验和实验心得,作为成长道路上的积累 M1打印进程树实验背景 在Linux中,everything is a file。因此操作系统的状态也可以成为文件系统的一部分——在保持文件系统基本API没有变化的基础上,添加相关对象管理操作系统的状态信息。 实验描述 实验要求:实现pstree,打印进程之间的树状的父子关系 Linux系统中可以同时运行多个程序。运行的程序称为进程。除了所有进程的根外,每个进程都只有唯一的父进程,你的任务就是将这颗树在命令行中输出。你可以自由选择展示树的方式。 总览 1pstree [OPTION]... 描述 把系统中的进程按照父亲-孩子的树状结构打印到终端 -p —show-pids:打印每个进程的进程号 -n —numeric-sort:按照pid的数值从小到大顺序输出一个进程的直接孩子 -V —version:打印版本信息 你可以在命令行中观察系统的p ...
调用汇编代码符号
发表于2021-07-22|信息安全|信息安全•ctf
前言 这里遇到了一个相关的CTF习题,看到其WP中的思路不错,特别学习一下 题目 其是picoCTF的asm4,题目要求获取调用asm4("picoCTF_a3112")的结果,其中附件代码如下所示 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758asm4: <+0>: push ebp <+1>: mov ebp,esp <+3>: push ebx <+4>: sub esp,0x10 <+7>: mov DWORD PTR [ebp-0x10],0x246 <+14>: mov DWORD PTR [ebp-0xc],0x0 <+21>: jmp 0x ...
深入了解const
发表于2021-07-15|编程|c++
前言 之前在学习C++的时候,对于const等相关概念了解的不是很清楚,最后在使用时就很痛苦😖 这次彻底的总结一下const相关的知识点 阅读变量声明 实际上,const位于变量声明的不同位置,会产生不同的作用。因此,首先我们需要学会如何阅读变量的声明语句,从而了解变量的具体类型,获取const修饰的对象,才能知道其作用。 这里我们依照由右至左规则,可以有效的分解变量的类型。 整个由右至左规则如下所示: 从变量名称开始 向右依次列出所有的关键词,直到遇到不匹配的右括号或者结束停止 向左依次列出所有的关键词,直到遇到不匹配的左括号或者结束停止 如果因为括号停止,则跳出括号,重新执行步骤2. 这里我们举一个比较有挑战性的例子 1char (*(*x())[])(); 下面给出按照上述分析的步骤 根据步骤1,找到变量名称x,即 char (*(*x())[])(); 根据步骤2 找到(),即 char (*(*x())[])();,因此为无参函数 右边遇到不匹配右括号,结束 根据步骤3 找到*,即 char (*(*x())[])();,因此返回值为指针 左边遇到 ...
manjaro配置
发表于2021-06-05|设置|设置•系统启动
“简单介绍manjaro的安装和配置"
基于Butterfly主题的hexo静态博客
发表于2021-05-24|设置|设置•nodejs•hexo
简单介绍基于Butterfly主题的hexo静态博客的搭建
1…78
avatar
H4wk1ns
coder && ctfer
文章
48
标签
19
分类
9
Follow Me
最新文章
中断简介2025-01-22
libvirt基础知识2024-12-04
glib的事件循环2024-11-07
virtio简介2024-08-23
qemu的PCI设备2024-08-04
分类
  • ctf5
  • 信息安全2
  • 内核6
  • 手写23
  • 杂谈1
  • 算法1
  • 编程1
  • 虚拟化7
标签
linux内核手写设置杂谈信息安全ctf虚拟化libvirt系统启动qemunodejshexo操作系统算法编程c++编译原理网络
归档
  • 一月 20251
  • 十二月 20241
  • 十一月 20241
  • 八月 20242
  • 七月 20242
  • 四月 20242
  • 九月 20231
  • 八月 20231
网站资讯
文章数目 :
48
本站访客数 :
本站总访问量 :
©2021 - 2025 By H4wk1ns
come to hack me!!
本地搜索