├── .github └── workflows │ ├── make.yml │ └── markdown-linter.yml ├── .gitignore ├── .gitmodules ├── .markdownlint.json ├── LICENSE ├── Makefile ├── README.md ├── doc ├── README.md ├── asm │ ├── .gitignore │ ├── README.md │ └── x86汇编语言.md ├── gnu-toolchain │ ├── README.md │ ├── linker-scripts │ │ ├── 01 │ │ │ ├── Makefile │ │ │ ├── linker.ld │ │ │ └── main.c │ │ ├── README.md │ │ ├── arm │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── add.S │ │ │ └── add.ld │ │ ├── c-startup │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── csum.c │ │ │ ├── csum.ld │ │ │ └── startup.S │ │ ├── output-option-address.md │ │ └── output-section-LMA.md │ └── makefile │ │ └── README.md ├── linux-utilities │ ├── README.md │ └── dd.md └── os │ ├── README.md │ └── uefi │ ├── README.md │ ├── qemu-uefi.md │ └── uefi-basic.md ├── examples ├── asm │ ├── 01-hello-world │ │ ├── Makefile │ │ ├── README.md │ │ └── main.nasm │ ├── 01 │ │ ├── Makefile │ │ ├── README.md │ │ └── main.nasm │ ├── 02-args │ │ ├── Makefile │ │ └── main.nasm │ └── linux64.inc ├── makefile │ ├── 01-hello-world │ │ ├── Makefile │ │ ├── README.md │ │ └── main.c │ └── 02-variable │ │ ├── Makefile │ │ ├── README.md │ │ └── main.c └── uefi │ └── 01-hello-world │ ├── Makefile │ ├── src │ ├── efi.h │ ├── linker.ld │ └── main.c │ └── start.ps1 ├── images ├── booth-1947.png ├── compilation-process.jpg ├── ei_osabi.png ├── elf-format.png ├── intel-8086.jfif ├── ljc-tabulator.jpg └── vscode-nasm-highlight.png ├── note ├── 978-1-558-60496-4 │ ├── 01 │ │ └── README.md │ └── README.md ├── 978-7-111-66607-3 │ ├── 04 │ │ └── README.md │ └── README.md ├── 978-7-121-08511-6 │ ├── 02 │ │ └── README.md │ ├── 03 │ │ ├── 1.c │ │ ├── Makefile │ │ ├── README.md │ │ ├── SimpleSection.c │ │ └── SimpleSection.s │ ├── 06 │ │ └── README.md │ └── README.md └── README.md ├── package.json ├── references ├── asm-intel-vs-att-syntax.md └── why-gnu-linker-named-ld.md └── yarn.lock /.github/workflows/make.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/.github/workflows/make.yml -------------------------------------------------------------------------------- /.github/workflows/markdown-linter.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/.github/workflows/markdown-linter.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/.gitmodules -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/.markdownlint.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/README.md -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/README.md -------------------------------------------------------------------------------- /doc/asm/.gitignore: -------------------------------------------------------------------------------- 1 | *.bin 2 | *.img 3 | *.out 4 | -------------------------------------------------------------------------------- /doc/asm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/asm/README.md -------------------------------------------------------------------------------- /doc/asm/x86汇编语言.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/asm/x86汇编语言.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/README.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/01/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/01/Makefile -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/01/linker.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/01/linker.ld -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/01/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/01/main.c -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/README.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/arm/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/arm/.gitignore -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/arm/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/arm/Makefile -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/arm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/arm/README.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/arm/add.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/arm/add.S -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/arm/add.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/arm/add.ld -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/c-startup/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/c-startup/.gitignore -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/c-startup/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/c-startup/Makefile -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/c-startup/csum.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/c-startup/csum.c -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/c-startup/csum.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/c-startup/csum.ld -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/c-startup/startup.S: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/c-startup/startup.S -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/output-option-address.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/output-option-address.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/linker-scripts/output-section-LMA.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/linker-scripts/output-section-LMA.md -------------------------------------------------------------------------------- /doc/gnu-toolchain/makefile/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/gnu-toolchain/makefile/README.md -------------------------------------------------------------------------------- /doc/linux-utilities/README.md: -------------------------------------------------------------------------------- 1 | # Linux 实用工具 2 | 3 | ## dd 4 | 5 | 转到 [dd.md](./dd.md) 6 | -------------------------------------------------------------------------------- /doc/linux-utilities/dd.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/linux-utilities/dd.md -------------------------------------------------------------------------------- /doc/os/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/os/README.md -------------------------------------------------------------------------------- /doc/os/uefi/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/os/uefi/README.md -------------------------------------------------------------------------------- /doc/os/uefi/qemu-uefi.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/os/uefi/qemu-uefi.md -------------------------------------------------------------------------------- /doc/os/uefi/uefi-basic.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/doc/os/uefi/uefi-basic.md -------------------------------------------------------------------------------- /examples/asm/01-hello-world/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/01-hello-world/Makefile -------------------------------------------------------------------------------- /examples/asm/01-hello-world/README.md: -------------------------------------------------------------------------------- 1 | # 01 Hello World 2 | 3 | ## Usage 4 | 5 | ```zsh 6 | make all 7 | ./target 8 | ``` 9 | -------------------------------------------------------------------------------- /examples/asm/01-hello-world/main.nasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/01-hello-world/main.nasm -------------------------------------------------------------------------------- /examples/asm/01/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | nasm -o target.o -f bin main.nasm 3 | -------------------------------------------------------------------------------- /examples/asm/01/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/01/README.md -------------------------------------------------------------------------------- /examples/asm/01/main.nasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/01/main.nasm -------------------------------------------------------------------------------- /examples/asm/02-args/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/02-args/Makefile -------------------------------------------------------------------------------- /examples/asm/02-args/main.nasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/02-args/main.nasm -------------------------------------------------------------------------------- /examples/asm/linux64.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/asm/linux64.inc -------------------------------------------------------------------------------- /examples/makefile/01-hello-world/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/01-hello-world/Makefile -------------------------------------------------------------------------------- /examples/makefile/01-hello-world/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/01-hello-world/README.md -------------------------------------------------------------------------------- /examples/makefile/01-hello-world/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/01-hello-world/main.c -------------------------------------------------------------------------------- /examples/makefile/02-variable/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/02-variable/Makefile -------------------------------------------------------------------------------- /examples/makefile/02-variable/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/02-variable/README.md -------------------------------------------------------------------------------- /examples/makefile/02-variable/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/makefile/02-variable/main.c -------------------------------------------------------------------------------- /examples/uefi/01-hello-world/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/uefi/01-hello-world/Makefile -------------------------------------------------------------------------------- /examples/uefi/01-hello-world/src/efi.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/uefi/01-hello-world/src/efi.h -------------------------------------------------------------------------------- /examples/uefi/01-hello-world/src/linker.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/uefi/01-hello-world/src/linker.ld -------------------------------------------------------------------------------- /examples/uefi/01-hello-world/src/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/uefi/01-hello-world/src/main.c -------------------------------------------------------------------------------- /examples/uefi/01-hello-world/start.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/examples/uefi/01-hello-world/start.ps1 -------------------------------------------------------------------------------- /images/booth-1947.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/booth-1947.png -------------------------------------------------------------------------------- /images/compilation-process.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/compilation-process.jpg -------------------------------------------------------------------------------- /images/ei_osabi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/ei_osabi.png -------------------------------------------------------------------------------- /images/elf-format.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/elf-format.png -------------------------------------------------------------------------------- /images/intel-8086.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/intel-8086.jfif -------------------------------------------------------------------------------- /images/ljc-tabulator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/ljc-tabulator.jpg -------------------------------------------------------------------------------- /images/vscode-nasm-highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/images/vscode-nasm-highlight.png -------------------------------------------------------------------------------- /note/978-1-558-60496-4/01/README.md: -------------------------------------------------------------------------------- 1 | # Linking and Loading 2 | 3 | 这一章和《程序员的自我修养:链接、装载与库》的 2.3 部分差不多。 4 | -------------------------------------------------------------------------------- /note/978-1-558-60496-4/README.md: -------------------------------------------------------------------------------- 1 | # Linker and Loaders 2 | 3 | ## 目录 4 | 5 | - [第一章:链接和加载](./01/README.md) 6 | -------------------------------------------------------------------------------- /note/978-7-111-66607-3/04/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-111-66607-3/04/README.md -------------------------------------------------------------------------------- /note/978-7-111-66607-3/README.md: -------------------------------------------------------------------------------- 1 | # 现代操作系统:原理与实现 2 | 3 | ## 相关链接 4 | 5 | 配套资源:https://ipads.se.sjtu.edu.cn/mospi 6 | 7 | ## 目录 8 | 9 | - [第四章:内存管理](./04/README.md) 10 | -------------------------------------------------------------------------------- /note/978-7-121-08511-6/02/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/02/README.md -------------------------------------------------------------------------------- /note/978-7-121-08511-6/03/1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/03/1.c -------------------------------------------------------------------------------- /note/978-7-121-08511-6/03/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/03/Makefile -------------------------------------------------------------------------------- /note/978-7-121-08511-6/03/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/03/README.md -------------------------------------------------------------------------------- /note/978-7-121-08511-6/03/SimpleSection.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/03/SimpleSection.c -------------------------------------------------------------------------------- /note/978-7-121-08511-6/03/SimpleSection.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/03/SimpleSection.s -------------------------------------------------------------------------------- /note/978-7-121-08511-6/06/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/06/README.md -------------------------------------------------------------------------------- /note/978-7-121-08511-6/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/978-7-121-08511-6/README.md -------------------------------------------------------------------------------- /note/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/note/README.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/package.json -------------------------------------------------------------------------------- /references/asm-intel-vs-att-syntax.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/references/asm-intel-vs-att-syntax.md -------------------------------------------------------------------------------- /references/why-gnu-linker-named-ld.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/references/why-gnu-linker-named-ld.md -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himself65/learn-os/HEAD/yarn.lock --------------------------------------------------------------------------------