现在的工作可以说是一行代码也不写,WB 程序员,经历了才会懂。
为了避免手生以及进一步巩固基础知识,决定定期抄一抄代码。
从 Linux 核心工具 开始,学习如何优雅编程。
想当年 jsdelivr 在国内还能用的时候, GitHub 就是免费小网盘。
现在虽然国内访问不那么流畅了,但是用来存一些小的琐碎的日志文件还是不错的。
为了实现自动化,使用 Python 参考 GitHub API 文档 封装了一些常用功能。
有东西被加密了, 请输入密码查看.
硬件和程序员的约定
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 的示例代码作笔记,以便于加深印象。
前言
考虑到硬盘空间不使用是一种极大的浪费现象,为了提高磁盘空间的利用率,想要存储更多学习资料在里面,抖音上有铺天盖地的小姐姐教我们跳舞,是极好的学习资源库。因此,出于学习目的,就想要把她们的学习资料保存到我的本地空间,免得哪一天她们被封了我想看也看不到学也学不到了。