├── .github └── lockdown.yml ├── CHANGELOG.md ├── Notes ├── Bridging Theory and Practice.pdf ├── Bridging Theory and Practice │ ├── Adding a Simple System Call in Raspberry Pi.pdf │ ├── global-var │ │ ├── global-var-def.c │ │ ├── global-var-use-1.c │ │ ├── global-var-use-2.c │ │ └── some-header.h │ ├── initialize-struct │ │ ├── initialize-struct-1.c │ │ └── initialize-struct-2.c │ ├── lowmemorykiller.c - kernel:arm64 - Git at Google.pdf │ ├── os-project-makefile │ │ └── Makefile │ └── track-history-with-git.md └── Courses │ ├── Arch │ ├── 01-fundamentals.pdf │ ├── 02-fundamentals.pdf │ ├── 03-mips-isa.pdf │ ├── 04-single-cycle-processor.pdf │ ├── 05-multi-cycle-processor.pdf │ ├── 06-pipeline.pdf │ ├── 07-ilp.pdf │ ├── 08-memory.pdf │ ├── 09-dlp.pdf │ └── ilp-lecture-note.pdf │ ├── OS │ ├── 00-macos-development.pdf │ ├── 01-introduction.pdf │ ├── 02-os-structure.pdf │ ├── 03-process.pdf │ ├── 04-thread.pdf │ ├── 05-scheduling.pdf │ ├── 06-process-sync.pdf │ ├── 07-deadlock.pdf │ ├── 08-main-memory.pdf │ ├── 09-virtual-memory.pdf │ ├── 10-mass-storage-system.pdf │ ├── 11-file-system.pdf │ ├── 12-distributed-system.pdf │ ├── 13-distributed-file-system.pdf │ └── review-mindmap.pdf │ └── Org │ ├── 01-introduction.pdf │ ├── 02-io-and-memory.pdf │ ├── 03-8086.pdf │ ├── 04-asm-programming.pdf │ ├── 05-io.pdf │ ├── 06-interrupt.pdf │ ├── 07-serial.pdf │ └── 08-arm.pdf ├── README.md └── sync.sh /.github/lockdown.yml: -------------------------------------------------------------------------------- 1 | skipCreatedBefore: false 2 | lock: true 3 | close: true 4 | only: pulls 5 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | * Tue Mar 3 14:08:23 CST 2020 add changelog 3 | * Tue Mar 3 14:17:53 CST 2020 update sync log from git repo 4 | * Tue Mar 3 14:18:20 CST 2020 add org notes 5 | * Tue Mar 3 17:37:04 CST 2020 add arch lecture 01 6 | * Thu Mar 5 09:38:22 CST 2020 add arch lecture 2 7 | * Thu Mar 5 11:33:58 CST 2020 remove algorithm notes, I decided to take hand-written notes for this course 8 | * Thu Mar 5 15:44:15 CST 2020 add os lecture 02 9 | * Thu Mar 5 15:52:22 CST 2020 add Q&A for OS 10 | * Thu Mar 5 17:41:00 CST 2020 add org lecture 02 11 | * Mon Mar 9 15:37:40 CST 2020 add os lecture 03 12 | * Mon Mar 9 15:50:25 CST 2020 fix typo in os lecture 03 13 | * Mon Mar 9 17:39:06 CST 2020 update readme 14 | * Tue Mar 10 11:39:18 CST 2020 add org lecture 03 15 | * Tue Mar 10 11:53:27 CST 2020 new notes now have white background 16 | * Tue Mar 10 17:41:44 CST 2020 add arch lecture 03 17 | * Thu Mar 12 09:45:31 CST 2020 add arch lecture 04 18 | * Thu Mar 12 15:40:59 CST 2020 add OS lecture 04 19 | * Thu Mar 12 17:46:05 CST 2020 add org lecture 04 20 | * Mon Mar 16 15:38:37 CST 2020 add OS lecture 05 21 | * Tue Mar 17 11:44:00 CST 2020 add org lecture 05 22 | * Thu Mar 19 08:22:17 CST 2020 add arch lecture 05 23 | * Thu Mar 19 09:40:12 CST 2020 add arch lecture 05 24 | * Thu Mar 19 10:13:50 CST 2020 fix arch note style 25 | * Thu Mar 19 15:32:38 CST 2020 add os lecture 06 26 | * Sat Mar 21 11:47:04 CST 2020 new sync script 27 | * Mon Mar 23 18:09:32 CST 2020 add OS lecture 07 28 | * Tue Mar 24 11:35:58 CST 2020 add org lecture 07 29 | * Tue Mar 24 17:41:47 CST 2020 add arch lecture 07 30 | * Thu Mar 26 11:12:41 CST 2020 add arch lecture 08 31 | * Thu Mar 26 15:36:08 CST 2020 add OS lecture 08 32 | * Thu Mar 26 17:46:22 CST 2020 add org lecture 08 33 | * Mon Mar 30 15:34:41 CST 2020 add OS lecture 09 34 | * Thu Apr 2 17:36:38 CST 2020 add arch, os, org lecture 10 35 | * Tue Apr 7 11:47:09 CST 2020 add arch lecture 11 36 | * Thu Apr 9 15:53:07 CST 2020 add os and arch lecture 11 37 | * Mon Apr 13 15:42:18 CST 2020 add OS lecture 38 | * Tue Apr 14 19:41:39 CST 2020 add arch and org notes 39 | * Thu Apr 16 15:24:46 CST 2020 add OS and arch 40 | * Thu Apr 16 17:42:05 CST 2020 add org note 41 | * Tue Apr 21 11:27:38 CST 2020 add os and org 42 | * Tue Apr 21 17:45:07 CST 2020 add arch note 43 | * Thu Apr 23 17:39:46 CST 2020 add os and org notes 44 | * Tue May 5 14:40:49 CST 2020 add os review mindmap 45 | * Wed May 13 23:17:46 CST 2020 update arch lecture memory hierarchy 46 | * Thu May 14 19:52:19 CST 2020 complete arch memory lecture 47 | * Thu May 14 19:55:26 CST 2020 add arch lecture review note 48 | * Wed May 20 12:37:15 CST 2020 add arch lecture DLP 49 | * Thu May 21 09:41:11 CST 2020 update last arch lecture 50 | * Sun May 31 19:56:39 CST 2020 add os project tips 51 | * Tue Jun 23 13:14:26 CST 2020 update license 52 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Bridging Theory and Practice.pdf -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/Adding a Simple System Call in Raspberry Pi.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Bridging Theory and Practice/Adding a Simple System Call in Raspberry Pi.pdf -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/global-var/global-var-def.c: -------------------------------------------------------------------------------- 1 | #include "some-header.h" 2 | 3 | // This statement should appear only ONCE in whole project. 4 | struct TestStruct test_struct; 5 | 6 | // This statement should appear only ONCE in whole project. 7 | // You can assign initial value to a global variable on definition. 8 | int global_int = 1; 9 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/global-var/global-var-use-1.c: -------------------------------------------------------------------------------- 1 | // You can use global vars by including header 2 | 3 | #include "some-header.h" 4 | 5 | void test() { 6 | int result = test_struct.x; 7 | int result_2 = global_int; 8 | } 9 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/global-var/global-var-use-2.c: -------------------------------------------------------------------------------- 1 | // If you do not want to change or create header file, 2 | // just declare all global vars and structs when using them 3 | 4 | struct TestStruct { 5 | int x; 6 | }; 7 | 8 | extern struct TestStruct test_struct; 9 | 10 | extern int global_int; 11 | 12 | void test() { 13 | int result = test_struct.x; 14 | int result_2 = global_int; 15 | } 16 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/global-var/some-header.h: -------------------------------------------------------------------------------- 1 | struct TestStruct { 2 | int x; 3 | }; 4 | 5 | extern struct TestStruct test_struct; 6 | 7 | extern int global_int; 8 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/initialize-struct/initialize-struct-1.c: -------------------------------------------------------------------------------- 1 | struct TestStruct { 2 | int x, y; 3 | }; 4 | 5 | // statically initialize the struct 6 | 7 | struct TestStruct test_struct = { 8 | .x = 1, 9 | .y = 2 10 | }; 11 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/initialize-struct/initialize-struct-2.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | struct TestStruct { 4 | int x, y; 5 | }; 6 | 7 | struct TestStruct test_struct; 8 | int initialized = 0; 9 | 10 | void init_test_struct() { 11 | test_struct.x = 1; 12 | test_struct.y = 2; 13 | } 14 | 15 | DEFINE_MUTEX(init_mutex); 16 | 17 | void some_syscall() { 18 | // ensure struct is initialized only ONCE 19 | mutex_lock(&init_mutex); 20 | if (!initialized) { 21 | initialized = 1; 22 | init_test_struct(); 23 | } 24 | mutex_unlock(&init_mutex); 25 | } 26 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/lowmemorykiller.c - kernel:arm64 - Git at Google.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Bridging Theory and Practice/lowmemorykiller.c - kernel:arm64 - Git at Google.pdf -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/os-project-makefile/Makefile: -------------------------------------------------------------------------------- 1 | INSTALL_PATH=/data/local 2 | ARCH=armeabi 3 | SHELL:=/bin/bash 4 | TESTCASE_COLOR=\033[1;34m 5 | NO_COLOR=\033[0m 6 | LIMIT= 7 | 8 | all: run 9 | 10 | build_syscall_test: FORCE 11 | @echo -e "$(TESTCASE_COLOR)building syscall test...$(NO_COLOR)" 12 | cd test_syscall && ndk-build 13 | 14 | build_project2_test: FORCE 15 | @echo -e "$(TESTCASE_COLOR)building project test...$(NO_COLOR)" 16 | cd test_project2 && ndk-build 17 | 18 | push: build_syscall_test build_project2_test 19 | @echo -e "$(TESTCASE_COLOR)pushing executables...$(NO_COLOR)" 20 | @adb push ./test_syscall/obj/local/$(ARCH)/test_syscall $(INSTALL_PATH) 21 | @adb push ./test_project2/obj/local/$(ARCH)/project2_test $(INSTALL_PATH) 22 | @adb shell "chmod 777 $(INSTALL_PATH)/project2_test" 23 | 24 | run: push 25 | @echo -e "$(TESTCASE_COLOR)running syscall test...$(NO_COLOR)" 26 | @adb shell "cd $(INSTALL_PATH) && ./test_syscall $(LIMIT)" 27 | 28 | test: push 29 | @echo -e "$(TESTCASE_COLOR)running project2 test...$(NO_COLOR)" 30 | @adb shell "su 10070 $(INSTALL_PATH)/project2_test u0_a70 100000000 160000000" 31 | 32 | clean: FORCE 33 | cd test_syscall && ndk-build clean 34 | cd test_project2 && ndk-build clean 35 | 36 | emulator: FORCE 37 | make -C $(KID) 38 | cd ~/android-sdk-linux/tools && ./emulator -no-window @OsPrj -show-kernel -kernel $(KERNEL_PATH) 39 | FORCE: 40 | 41 | .PHONY: FORCE 42 | -------------------------------------------------------------------------------- /Notes/Bridging Theory and Practice/track-history-with-git.md: -------------------------------------------------------------------------------- 1 | # Track History with Git 2 | 3 | ## 下载 kernel 源代码 4 | 5 | ```bash 6 | git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish/ -b android-goldfish-3.4 --depth=1 7 | ``` 8 | 9 | ## 在新分支上开发 10 | 11 | ```bash 12 | git checkout -b android-goldfish-3.4 oom 13 | ``` 14 | 15 | ## 配置并编译 kernel 16 | 17 | 参考 handout 修改 Makefile 和编译选项。 18 | 19 | ```bash 20 | make menuconfig 21 | make -j4 22 | ``` 23 | 24 | ## 和原先的 kernel 代码比较 25 | 26 | ```bash 27 | git diff android-goldfish-3.4 > patch.diff 28 | ``` 29 | 30 | `patch.diff` 里面的内容类似这样: 31 | 32 | ```diff 33 | diff --git a/Makefile b/Makefile 34 | index 9f440dd8..bda521d0 100644 35 | --- a/Makefile 36 | +++ b/Makefile 37 | @@ -192,8 +192,10 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ 38 | # Default value for CROSS_COMPILE is not to prefix executables 39 | # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile 40 | export KBUILD_BUILDHOST := $(SUBARCH) 41 | -ARCH ?= $(SUBARCH) 42 | -CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) 43 | +#ARCH ?= $(SUBARCH) 44 | +#CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) 45 | +ARCH ?= arm 46 | +CROSS_COMPILE ?= arm-linux-androideabi- 47 | 48 | # Architecture as present in compile.h 49 | UTS_MACHINE := $(ARCH) 50 | ``` 51 | -------------------------------------------------------------------------------- /Notes/Courses/Arch/01-fundamentals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/01-fundamentals.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/02-fundamentals.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/02-fundamentals.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/03-mips-isa.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/03-mips-isa.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/04-single-cycle-processor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/04-single-cycle-processor.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/05-multi-cycle-processor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/05-multi-cycle-processor.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/06-pipeline.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/06-pipeline.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/07-ilp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/07-ilp.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/08-memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/08-memory.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/09-dlp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/09-dlp.pdf -------------------------------------------------------------------------------- /Notes/Courses/Arch/ilp-lecture-note.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Arch/ilp-lecture-note.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/00-macos-development.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/00-macos-development.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/01-introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/01-introduction.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/02-os-structure.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/02-os-structure.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/03-process.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/03-process.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/04-thread.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/04-thread.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/05-scheduling.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/05-scheduling.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/06-process-sync.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/06-process-sync.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/07-deadlock.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/07-deadlock.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/08-main-memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/08-main-memory.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/09-virtual-memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/09-virtual-memory.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/10-mass-storage-system.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/10-mass-storage-system.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/11-file-system.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/11-file-system.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/12-distributed-system.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/12-distributed-system.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/13-distributed-file-system.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/13-distributed-file-system.pdf -------------------------------------------------------------------------------- /Notes/Courses/OS/review-mindmap.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/OS/review-mindmap.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/01-introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/01-introduction.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/02-io-and-memory.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/02-io-and-memory.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/03-8086.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/03-8086.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/04-asm-programming.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/04-asm-programming.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/05-io.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/05-io.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/06-interrupt.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/06-interrupt.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/07-serial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/07-serial.pdf -------------------------------------------------------------------------------- /Notes/Courses/Org/08-arm.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skyzh/notes/df3130572e76add5d4a4cb151f30a5511ff1c63b/Notes/Courses/Org/08-arm.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Alex Chi's Lecture Notes 2 | 3 | This repo contains my notes for some of the courses. 4 | 5 | ## Contribution 6 | 7 | Feel free to discuss and help improve the notes by submitting an issue. I'll look into it and update my notes. I hope that my notes would contribute to your academic well-being in these courses. 8 | 9 | I'm grateful to every one who wants to contribute. However, I decided not to accept pull requests at this time. Just open an issue and I'll fix it. 10 | 11 | ## Courses 12 | 13 | * Computer Organization by Professor H.Z. Zhu 14 | * Computer Architecture by Professor Y.Y. Shen 15 | * Operating System by Professor F. Wu 16 | 17 | ## Tips 18 | 19 | **Commit Policy** I'll only retain the latest commit of this repo. Therefore, you won't be able to browse history. But I'll state what 20 | changes I've made each time in [CHANGELOG.md](CHANGELOG.md) 21 | 22 | **Made with Emacs and org-mode** Most of the notes are written with Spacemacs and org-mode. I just make pdf exports of these notes in public. If you want, you may request a copy of org-mode source code by sending email to me. 23 | 24 | **Notes will expire** I'll purge all notes from GitHub after the courses end. I decided to retain these notes on GitHub. All notes are only intended for ONLINE READING. 25 | 26 | **Academic Integrity** I may attach some source code to better illustrate the ideas in notes. If you want to use these code snippets in your course work or course projects, you should cite the source clearly. 27 | 28 | Also, here's some advice on using my notes. 29 | 30 | * My notes serve as an outline for a course. In these notes, I won't 31 | dive too deep into details. I would recommend 32 | [H.J. Fang's Lecture Notes](https://github.com/Galaxies99/SJTU-course-notes) 33 | for his instructive and detailed approach in explaining concepts, 34 | illustrating key ideas, and presenting examples. 35 | * I prefer plain-text notes. If I have a figure to present, generally I 36 | would draw it with [ASCII Flow](http://asciiflow.com/), or I just 37 | refer to a figure in slides. 38 | * Personally, I use these notes as a reminder of structure (or TOC) of a course. 39 | I would review these notes on a weekly basis. 40 | * I'll also add my own thoughts into the notes. For example, I've given 41 | many examples on [xv6](https://github.com/mit-pdos/xv6-riscv) in operating 42 | system notes. 43 | * I enjoy discussing with my peers. I take record of Q&A in course. The 44 | answers are summed up from the professor, combining with my own knowledge. 45 | * For final-term revision, I would make mindmaps from textbook and slides. 46 | This part will be uploaded when it comes to last few weeks of a semester. 47 | 48 | ## License 49 | 50 | Unlike other repositories on GitHub, I do NOT provide a license for this repository. Thereby, users can not "copy, distribute, or modify your work without being at risk of take-downs, shake-downs, or litigation". [This page](https://choosealicense.com/no-permission/) describes what a user should do on no license project. After all, you're free to view these note yourself. PLEASE DON'T: 51 | 52 | * Make printed version of these notes at printing shop in SJTU. 53 | * Share these notes files in QQ groups or other places. 54 | -------------------------------------------------------------------------------- /sync.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | if [ $# -eq 0 ]; then 6 | echo "empty commit message" 7 | exit 8 | fi 9 | 10 | rsync -am --progress --include="*.pdf" --include='*/' --exclude='*' ../notes-private/Notes ./ 11 | cp -a "../notes-private/Notes/Bridging Theory and Practice" ./Notes/ 12 | git --no-pager diff 13 | read -p "Press [ENTER] to continue" 14 | 15 | rm -rf .git 16 | git init 17 | git remote add origin https://github.com/skyzh/notes 18 | 19 | cat >> CHANGELOG.md <