2021-12-01から1ヶ月間の記事一覧

OS起動編② kvmalloc() (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com main.c(一部抜粋) https://github.com/mit-pdos/xv6-public/blob/master/main.c#L21 int main(void) { ... kvmalloc(); // kernel page table ...vm.c https://github.com/mit-pdos/…

OS起動編① kinit1(end, P2V(4*1024*1024)) (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com main.c(一部抜粋) https://github.com/mit-pdos/xv6-public/blob/master/main.c#L20 int main(void) { kinit1(end, P2V(4*1024*1024)); // phys page allocator ...kalloc.c https:/…

OS起動編⓪ entry.S (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com entry.s https://github.com/mit-pdos/xv6-public/blob/master/entry.S # The xv6 kernel starts executing in this file. This file is linked with # the kernel C code, so it ca…

ブートローダ編② bootmain.c (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com bootmain.c https://github.com/mit-pdos/xv6-public/blob/master/bootmain.c // Boot loader. // // Part of the boot block, along with bootasm.S, which calls bootmain(). // b…

ブートローダ編① bootasm.S (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com bootasm.S https://github.com/mit-pdos/xv6-public/blob/master/bootasm.S#L10 #include "asm.h" #include "memlayout.h" #include "mmu.h" # Start the first CPU: switch to 32-bit protected mode, jump into C. # The B…

Xv6を読む~OSコードリーディング~ ②概要

前回 jupiteroak.hatenablog.com 目次 ソースコードリーディングの概要 ブートローダ編 OS起動編 プロセス1実行編 ソースコードリーディングの概要(補足説明) ブートローダ編 OS起動編 プロセス1実行編 その他 ソースコードリーディングの概要 Xv6のソースコ…

Xv6を読む~OSコードリーディング~ ①はじめに

目次 Xv6とは Unix v6について Xv6-riscvについて Xv6を読む際の注意点 コードリーディングで使用したツール 参考 次回 Xv6とは Xv6とは、MIT(マサチューセッツ工科大学)がUnix v6をx86CPUの仕様に基づいて再実装した教育用のオペレーティングシステムです。…