硬件和程序员的约定

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
    • 给厂商最大程度的自由
WikiC/C++Linux

最小的 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:

:这段代码是什么意思?

WikiC/C++Linux

今天开始开启了人生新阶段,从学生身份转变为社会人儿了。

也从 3 年的 CVer 即将变成 Coder 了。

3 年的 CV 生涯可以说是毫无建树,希望在未来的两年能够有所收获,成为一名工程师。

码农界流传着一种说法,想要获得长足的发展,基础一定要牢固。所以我决定花半年左右的时间学习《操作系统》这门课程,至于为什么是操作系统,因为 jyywiki.cn 的教程制作精良,不学有些可惜了。

本系列的博客主要为 jyywiki.cn 的示例代码作笔记,以便于加深印象。

WikiC/C++Linux

前言

考虑到硬盘空间不使用是一种极大的浪费现象,为了提高磁盘空间的利用率,想要存储更多学习资料在里面,抖音上有铺天盖地的小姐姐教我们跳舞,是极好的学习资源库。因此,出于学习目的,就想要把她们的学习资料保存到我的本地空间,免得哪一天她们被封了我想看也看不到学也学不到了。

阅读更多
教程WikiPython

再见

结绳记事

关于 Rclone

Rclone是一个命令行程序,用于管理云存储上的文件。它是云服务商网页存储界面的功能丰富的替代品。超过40种云存储产品支持rclone,包括S3对象存储、企业和消费者文件存储服务,以及标准传输协议。

Rclone具有强大的云存储等效程序,类似于Unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat。Rclone的语法非常熟悉,并支持shell管道和–dry-run保护。它可以通过命令行、脚本或其API使用。

用户称 rclone 为“云存储的瑞士军刀”和“难以分辨的魔术技术”。

教程WikiLinux