# NCTU OSDI
###### tags: `OSDI`
* [HomePage](/@JingWang/S19aXmFY8)
## Materials
- [Labs](https://grasslab.github.io/osdi/en/index.html)
- [Homework Submission](https://github.com/GrassLab/osdi2020)[target=_blank]
- [Lecture Slides](https://drive.google.com/drive/u/0/folders/1mpLxwgv6gA3NlroyrJFe308w39Ch3NBu)[target=_blank]
<!--- [Lecture Videos](https://drive.google.com/drive/u/1/folders/1WMCcPpImhHmXg_vs-ISv3qHgQYZvQjSy) [target=_blank] -->
## Discussion
- [Youtube Playlist](https://www.youtube.com/playlist?list=PLKiQFBPo47h3zMklRHBEPyA-RXO1xBbaK)[target=_blank]
- [Memory Management I](/n0ntOi0BSCyakwgpgpJl3w)
- [Memory Management II](/j9LxdrrORHm5aytv31aouA)
- [Memory Management III](/pT2gZUN8S4WSdq4X9y7m7Q)
- [File System](/XVUzC3o1Qh6LMxucqYe7yQ)
- [Kernel Synchronization](/aLU4v_mlRK6V9uxP2cFIyA)
## NOTE
- [OSDI LAB](/bKFlTbgcQ2WtNI76D6Cgmw)
## Workshop - eBPF
- [Slide](https://docs.google.com/presentation/d/1LrFjXOb8nJVaXVhstnKDC1A0TV8NRigvrVpp5kRU67g)[target=_blank]
- [Report](https://drive.google.com/file/d/1yjU9VjmopVC9O4wz7iM8pmLU4AqNRQQr/view)[target=_blank]
-
### Reference
- [Linux 核心設計: 透過 eBPF 觀察作業系統行為](https://hackmd.io/@sysprog/linux-ebpf)
- [ebpf原理分析_c/c++\_hjkfcz的博客](https://blog.csdn.net/hjkfcz/article/details/104916719)
- [eBPF 简史](https://www.ibm.com/developerworks/cn/linux/l-lo-eBPF-history/index.html)
- [Linux 核心設計:透過 eBPF 觀察作業系統行為 (2018-11-15) - YouTube](https://www.youtube.com/watch?v=UmCnh6mELwA&feature=youtu.be)[target=_blank]
- [kernel/bpf/core.c - Linux source code (v4.20) - Bootlin](https://elixir.bootlin.com/linux/v4.20/source/kernel/bpf/core.c)
- [动态追踪技术漫谈](https://blog.openresty.com.cn/cn/dynamic-tracing/)
- [net/core/filter.c - Linux source code (v4.20.17) - Bootlin](https://elixir.bootlin.com/linux/v4.20.17/source/net/core/filter.c)
- [BPF Design Q&A — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/bpf/bpf_design_QA.html)
- [samples-bpf-README.rst](https://www.kernel.org/doc/readme/samples-bpf-README.rst)
- [bpfsample.c](https://raw.githubusercontent.com/windywolf/example/master/eBPF/bpfsample.c)[target=_blank]
- [Kernel-Analysis-Using-eBPF-Daniel-Thompson-Linaro.pdf](https://events19.linuxfoundation.org/wp-content/uploads/2017/12/Kernel-Analysis-Using-eBPF-Daniel-Thompson-Linaro.pdf)
- [PyEBPF — eBPF proxy routines generation and Python callbacks (iovisor/bcc wrapper)](https://medium.com/@dany74q/pyebpf-ebpf-proxy-routines-generation-and-python-callbacks-iovisor-bcc-wrapper-42d6cf558be4)
- [BPF and XDP Reference Guide — Cilium 1.7.90 documentation](https://docs.cilium.io/en/latest/bpf/#instruction-set)
- [BPF, eBPF, XDP and Bpfilter - Netronome](https://www.netronome.com/blog/bpf-ebpf-xdp-and-bpfilter-what-are-these-things-and-what-do-they-mean-enterprise/)[target=_blank]
- [Tracing with BPF - Linux Observability with BPF [Book]](https://www.oreilly.com/library/view/linux-observability-with/9781492050193/ch04.html)[target=_blank]
- [iovisor/bcc: BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more](https://github.com/iovisor/bcc)[target=_blank]
## Lab Reference
### Lab 0
- [10分鐘讀懂 linker scripts](https://blog.louie.lu/2016/11/06/10%E5%88%86%E9%90%98%E8%AE%80%E6%87%82-linker-scripts/)
- [bztsrc/qemu-raspi3](https://github.com/bztsrc/qemu-raspi3)[target=_blank]
- [linux 安装报错:pkg-config not found](https://www.cnblogs.com/gyfluck/p/9635130.html)
- [ERROR: glib-2.22 gthread-2.0 is required to compile QEMU](https://github.com/Cisco-Talos/pyrebox/issues/41)[target=_blank]
- [嵌入式链接脚本(Link Script)介绍](https://blog.csdn.net/phenixyf/article/details/89242395)
### Lab 1
- [BCM2835 registers - eLinux.org](https://elinux.org/BCM2835_registers#PM)
- [BCM2835 ARM Peripherals.docx](https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/BCM2835-ARM-Peripherals.pdf)
### Lab 2
- [mailboxes](https://github.com/raspberrypi/firmware/wiki/Mailboxes)[target=_blank]
- [Accessing mailboxes · raspberrypi/firmware Wiki](https://github.com/raspberrypi/firmware/wiki/Accessing-mailboxes)[target=_blank]
- [Mailbox property interface · raspberrypi/firmware Wiki](https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface)[target=_blank]
- [uart](http://yangwei-s.blogspot.com/2016/12/c-uart.html)[target=_blank]
- [raspbootin/raspbootcom.cc at master · mrvn/raspbootin](https://github.com/mrvn/raspbootin/blob/master/raspbootcom/raspbootcom.cc)[target=_blank]
### Lab 3
- [LDR/STR](https://huenlil.pixnet.net/blog/post/24861953)
- [MSR](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289881714.htm)
- [CBZ/CBNZ](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289867296.htm)
- [Assembly](http://godleon.blogspot.com/2008/02/comparisons-assembly-cmp-cmp-cmp-vleft.html)
- [SPSR/ELR/ESR](http://www.wowotech.net/armv8a_arch/238.html)
- [FAR_EL2](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/far_el2)
- [Wiki - ARMv8](http://wiki.csie.ncku.edu.tw/embedded/ARMv8#%E7%A8%8B%E5%BC%8F%E7%8B%80%E6%85%8B%E5%84%B2%E5%AD%98%E6%9A%AB%E5%AD%98%E5%99%A8spsrs-saved-program-status-registers)
- [va_list](https://blog.csdn.net/qq_34369618/article/details/67639964)
- [ELR_EL2](https://developer.arm.com/docs/ddi0595/e/aarch64-system-registers/elr_el2)
- [ESR_EL2](https://developer.arm.com/docs/ddi0595/e/aarch64-system-registers/esr_el2)
- [SPSR_EL2](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/spsr_el2)
- [instruction set](https://www.cnblogs.com/rongmouzhang/p/9707516.html)
- [Linux kernel的中断子系统之(六):ARM中断处理过程](http://www.wowotech.net/irq_subsystem/irq_handler.html)
- [eret](https://developer.arm.com/docs/100076/0100/a32t32-instruction-set-reference/a32-and-t32-instructions/eret)
- [hcr_el2](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/hcr_el2)
- [HSR_EL2.IMO](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/hcr_el2#IMO)
- [LSR](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289876525.htm)
- [CurrentEL](https://developer.arm.com/docs/ddi0595/e/aarch64-system-registers/currentel)
- [p state](https://developer.arm.com/docs/den0024/latest/armv8-registers/processor-state)
- [daif](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/daif)
- [NienfengYao/armv8-bare-metal](https://github.com/NienfengYao/armv8-bare-metal)[target=_blank]
- [簡單學 makefile:makefile 介紹與範例程式 | Mr. Opengate](https://mropengate.blogspot.com/2018/01/makefile.html)
- [ORR](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289884183.htm)
- [MRS](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289881374.htm)
- [LDR](http://www.keil.com/support/man/docs/armasm/armasm_dom1361289873425.htm)
- [CNTP_CTL_EL0](https://developer.arm.com/docs/ddi0595/latest/aarch64-system-registers/cntp_ctl_el0)
- [CNTP_TVAL_EL0](https://developer.arm.com/docs/ddi0595/c/aarch64-system-registers/cntp_tval_el0)
- [Bomb Lab 實作紀錄 - HackMD](https://hackmd.io/@posutsai/SyNzl72f4?type=view)
- [CPACR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/cpacr_el1)
- [ESR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/esr_el1)
- [SPSR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/spsr_el1)
- [Architectures | Exception model – Arm Developer](https://developer.arm.com/architectures/learn-the-architecture/exception-model)
- [HVC](http://www.keil.com/support/man/docs/ARMASM/armasm_dom1387466087086.htm)
- [AArch64 Exception and Interrupt Handling | Synchronous and asynchronous exceptions](https://developer.arm.com/docs/100933/0100/synchronous-and-asynchronous-exceptions)
- [ARMv8-AArch64寄存器和指令集_嵌入式_ForDream321的专栏-CSDN博客](https://blog.csdn.net/tanli20090506/article/details/71487570)
### Lab 4
- [ARM Cortex-A Series Programmer’s Guide for ARMv8-A | Context switching – Arm Developer](https://developer.arm.com/docs/den0024/latest/the-memory-management-unit/context-switching)
- [ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM_嵌入式_BOOK0614的博客-CSDN博客](https://blog.csdn.net/u013477200/article/details/50723555)
- [ARM Information Center](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.kui0100a/armasm_cegibccg.htm)
- [FP寄存器及frame pointer介绍_嵌入式_Skylar-CSDN博客](https://blog.csdn.net/zzsfqiuyigui/article/details/22992957)
- [TPIDR_EL1](https://developer.arm.com/docs/ddi0595/d/aarch64-system-registers/tpidr_el1)
- [ARM64 汇编语言 | 不要说话](http://d0m021ng.github.io/2017/03/17/Mobile%20Security/ARM64-%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80/)
- [c - How to print #define value in gdb? - Stack Overflow](https://stackoverflow.com/questions/26881742/how-to-print-define-value-in-gdb)[target=_blank]
- [ARM Compiler Scalable Vector Extension User Guide Version 6.6 | Introducing SVE – Arm Developer](https://developer.arm.com/docs/100891/0606/sve-overview/introducing-sve)
- [Calling convention - Wikipedia](https://en.wikipedia.org/wiki/Calling_convention#ARM)
- [ARM Compiler armasm Reference Guide: BLR](http://infocenter.arm.com/help/topic/com.arm.doc.dui0802a/BLR.html)
### Lab 5
- [TCR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/tcr_el1)
- [AMD64 Architecture Programmer’s Manual, Volume 2: System Programming](https://www.amd.com/system/files/TechDocs/24593.pdf)[target=_blank]
- [s-matyukevich/raspberry-pi-os](https://github.com/s-matyukevich/raspberry-pi-os/blob/master/docs/lesson06/rpi-os.md)[target=_blank]
- [ARM指令浅析2(adrp、b)_嵌入式_技术宅拯救世界-CSDN博客](https://blog.csdn.net/liao392781/article/details/79162919)
- [ORR shift left](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/ORR_log_shift.html)
- [LDR and STR, register offset](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABFGBDD.html)
- [SCTLR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/sctlr_el1)
- [MAIR_EL1](https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/mair_el1)
- [AND, ORR, EOR, BIC, and ORN](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489g/Cihdafai.html)[target=_blank]
### Lab 6
- [Linux 的記憶體管理](http://ccckmit.wikidot.com/lk:memory)
### Lab 7
- [VFS中的file,dentry和inode](https://bean-li.github.io/vfs-inode-dentry/)
- [Linux/Unix inode、vnode和dentry](http://daoluan.net/linux/2012/07/10/inode-vnode-dentry.html)
### Lab 8
- [MBR, LBA, FAT32](https://cpl.li/2019/mbrfat/)
- [Design of the FAT file system](https://en.wikipedia.org/wiki/Design_of_the_FAT_file_system)
- [Partition type](https://en.wikipedia.org/wiki/Partition_type)
- [Master Boot Record (MBR) 以及 FAT32 解析](https://lexra.pixnet.net/blog/post/303910876-%EF%BF%AD-master-boot-record-(mbr)-%E4%BB%A5%E5%8F%8A-fat32-%E8%A7%A3%E6%9E%90)
- [FAT32 Structure Information - MBR, FAT32 Boot Sector Introduction](https://www.easeus.com/resource/fat32-disk-structure.htm)
### Other
- [bztsrc/raspi3-tutorial](https://github.com/bztsrc/raspi3-tutorial)[target=_blank]
- [s-matyukevich/raspberry-pi-os](https://github.com/s-matyukevich/raspberry-pi-os)[target=_blank]
- [dwelch67/raspberrypi](https://github.com/dwelch67/raspberrypi)[target=_blank]
- [mrvn/RaspberryPi-baremetal](https://github.com/mrvn/RaspberryPi-baremetal)[target=_blank]
- [Raspberry Pi Bare Bones](https://wiki.osdev.org/Raspberry_Pi_Bare_Bones)
- [rsta2/cuircle](https://github.com/rsta2/circle)[target=_blank]
{"metaMigratedAt":"2023-06-15T07:31:33.569Z","metaMigratedFrom":"Content","title":"NCTU OSDI","breaks":"true","contributors":"[{\"id\":\"19d53741-2d58-48e3-9386-b7d7079d18e4\",\"add\":12075,\"del\":789}]"}