有东西被加密了, 请输入密码查看.
硬件和程序员的约定
CPU Reset 后寄存器会有确定的初始状态
- EIP = 0x0000fff0
- CR0 = 0x60000010
- 处理器处于 16-bit 模式
- EFLAGS = 0x00000002
- interrupt disabled
Reset 后处理器从固定地址(Reset Vector)启动
- MIPS: 0xbfc000000
- Specification 规定
- ARM: 0x00000000
- Specification 规定
- 允许配置 Reset Vector Base Address Register
- RISC-V: Implementation defined
- 给厂商最大程度的自由
最小的 C 程序
#include <sys/syscall.h>
.globl _start
_start:
movq $SYS_write, %rax // write(
movq $1, %rdi // fd=1,
movq $st, %rsi // buf=st,
movq $(ed - st), %rdx // count=ed-st
syscall // );
movq $SYS_exit, %rax // exit(
movq $1, %rdi // status=1
syscall // );
st:
.ascii "\033[01;31mHello, OS World\033[0m\n"
ed:
问:这段代码是什么意思?
今天开始开启了人生新阶段,从学生身份转变为社会人儿了。
也从 3 年的 CVer 即将变成 Coder 了。
3 年的 CV 生涯可以说是毫无建树,希望在未来的两年能够有所收获,成为一名工程师。
码农界流传着一种说法,想要获得长足的发展,基础一定要牢固。所以我决定花半年左右的时间学习《操作系统》这门课程,至于为什么是操作系统,因为 jyywiki.cn 的教程制作精良,不学有些可惜了。
本系列的博客主要为 jyywiki.cn 的示例代码作笔记,以便于加深印象。
前言
考虑到硬盘空间不使用是一种极大的浪费现象,为了提高磁盘空间的利用率,想要存储更多学习资料在里面,抖音上有铺天盖地的小姐姐教我们跳舞,是极好的学习资源库。因此,出于学习目的,就想要把她们的学习资料保存到我的本地空间,免得哪一天她们被封了我想看也看不到学也学不到了。
纪念人生中的最后一个寒假