view slides/2018/04/16/memo.txt @ 52:73b27e5c1d79 default tip

auto-Update generated slides by script
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Tue, 16 Apr 2019 18:58:24 +0900
parents fc1dbdad3f63
children
line wrap: on
line source

# x86

OSの起動時
+ BOOTi
    - Kernel Load by ARM
    - CnPUがMemoryにアクセスする時はpagingのアルゴリズムを使うのでpagingをする必要がある
    - PageingTable
    - initialize ( memory,Process,IO,file...)
    - init process(rc.d/~)
  CPU , Memory, Device(UARTなど...結局はVM上に構築される)

ls
    - fork
    - exec ls <- open
                load
                memory空間の初期化==page tableのリセット
                goto user mode
        user.mode
            opendir
            memory allocation ( systemcall ) 
                historycal : brk();
    - 複数のprocess がactive -> task scheduler

- armのregisterはarm0~arm12
- 一番最初のentryはmainを誰かがよばないと行けない->assemblerレベルCRT(C runtime rootine)
- arm registerにいれられる値は大きさにより、サイズがでかいのはある場所に置いといてPCで計算して持っていく

define si
 stepi
 x/1i $pc
end

- initialize stack pointerがされるまでサブルーチンコールは許可されない。

実際にはkernel pagetableとuser pgage tableの2種類がある