2012-04-24

JuluOSDev 0424

原始資料:共筆用網路筆記本: http://sync.in/wIMmpS88Me

Ben

overview env.c and pmap.c for lab3 part A

https://github.com/benwei/MIT-JOS/commit/f69da8d5794ea631e87101b3834c039dbd075643

202 // Question: why need to memmove ?

203 memmove(e->env_pgdir, kern_pgdir, PGSIZE);

Answer: copy to user

Hawx

https://github.com/HawxChen/MIT-6.828-Adventure/commit/8d575500c6ce944e06b6e021ebd8f4f50e821169#kern/pmap.c

- return ((pte_t *) KADDR (pde_pg->paddr)) + PTX (va);

532

+ return &pgtable[PTX(va)];//((pte_t *) KADDR (pde_pg->paddr)) + PTX (va);

==> 使用表單方式存取 pgtable, 看起來比較優美

值得一看的圖表

http://pdos.csail.mit.edu/6.828/2011/lec/x86_translation_and_registers.pdf

Jserv

Cortex-M3: STM32

http://www.coocox.com/CN/CoOS.htm

如何測量程式在嵌入式板子執行時間?

Ans: 使用外部電路,並利用另一台電腦來測量版子上的程式所花費的時間。

作業出題

基本系統原始碼,改進其效能及檔案大小。

作業評分標準

依程式大小

依程式執行時間

L4ka

http://blog.linux.org.tw/~jserv/archives/2012/03/_l4ka.html

L4ka kernel debugger is very useful.

entry.S exception entry

Root task

UTCB

User-leve control block

http://os.inf.tu-dresden.de/L4Re/doc/group__l4__utcb__api.html

舉例來說,倘若系統存在兩個不同 address space 的執行單元 (如 UNIX Process),而其中一者 (userA) 想要存取另一者 (userB) 的記體體,只要將 userA 設置為 userB 的 pager (記憶體管理單元) 並提供 userB 的 page fault handler 即可。

linux thread control block size?

nachos

http://www.cs.washington.edu/homes/tom/nachos/

Nachos is instructional software for teaching undergraduate, and potentially

graduate, level operating systems courses. The Nachos distribution comes with: an overview paper simple baseline code for a working operating system a simulator for a generic personal computer/workstation sample assignments a C++ primer (Nachos is written in an easy-to-learn subset of C++, and the primer helps teach C programmers our subset)

--> 較少硬體相關程式碼

http://www.cs.washington.edu/homes/tom/nachos/README

Current researching Amber ARM

http://opencores.org/project,amber

The Amber processor core is an ARM-compatible 32-bit RISC processor. The Amber core is fully compatible with the ARM® v2a instruction set architecture (ISA) and is therefore supported by the GNU toolset. This older version of the ARM instruction set is supported because it is still fully supported by the GNU tool chain and is not covered by patents so can be implemented without a license from ARM. The Amber project provides a complete embedded system incorporating the Amber core and a number of peripherals, including UARTs, timers and an Ethernet MAC.