Author: WhoAmI
email: kccddb@gmail.com
Date: 20230312
Copyright: CC BY-NC-SA
Dennis MacAlistair Ritchie~dmr
C語言的創造者、Unix作業系統的關鍵開發者, 圖靈獎(ACM A.M. Turing Award) 得主
https://hackmd.io/@pingulinux/prerequisite
軟體穩定是最基本的要求: 請看
軟體缺失導致的危害, 請看 波音 787 自動關機, 還有 race condition, 缺乏妥善同步機制引發美國大面積停電
我自己的經驗是 GPS 給的資料是錯的, 這就是 容錯的例子, 還有 認識的朋友 RAID 壞的是 控制卡 不是 硬碟…還好 有 off-line 備份 還能 救回一些 資料 除了 off-line 備援 還需 異地 備援~怕 不可抗拒 的意外(火災 地震…)
這兩個錯誤 都是 基礎觀念 (也是習慣不好)沒建立好而造成~寫軟體只是 交 作業的心態
計概+ c language: ANSI C for Programmers on UNIX Systems, Tim Love (含 習題, makefile 一定要會) 紮實的計算機概論, 因為本課程 有 linux kernel module 實作.
如果 c language 不行 又沒 自學, 勸您 別修這門課, 您我都很痛苦~我的 痛苦 就是 當掉 學生
微處理機(基礎 組合語言實務 是學習上必須的過程, 最後 實務上還是大都用 c language), 此外 練習 看 8051 datasheet. 日後業界上班 寫 Linux device driver 會有需求. External Memory Interfacing in 8051 Microcontroller, The 8051 Simulator for Teachers and Students
練習 看 man page 重要的 return value, data type (最好用 man page 裡的型態), errors, thread-safity … OS: Design of the UNIX Operating System, Maurice J. Bach, MMU, virtual memory, scheduling, file system, system calls,…(https://github.com/jyfc/ebook/blob/master/03_operating_system/the_design_of_the_unix_operating_system.pdf?fbclid=IwAR0MJPjYEL9CGizi93SUlzpM7M3oCqnB5fxlJwhMoUCx3Q1GTwCs1rwSamg)
網路 TCP/IP 知識 (至少 rfc1180: A TCP/IP Tutorial), ethernet, PPP, PPPoE, Routing (iproute2), …
Linux 使用 (請自學, 例如 https://blog.gtwang.org/linux/linux-io-input-output-redirection-operators/ , https://linux.vbird.org/linux_basic/centos7/)
Embedded (Linux) System Design, 有建議 Linux 版本+VirtualBox+QEMU
Linux commands: vim, nano, wget, sudo, cd, ls, cp, cat, more, find, ln, grep, ps, chmod, chown, tar, mkdir, rm, rmdir, df, du, kill, echo, ping, strace, top, man, strip
route, ifconfig, arp, pstree, touch, netstat, ldd, pstree, objdump, gunzip, gzip, bzip2, dmesg, pwd, which, iptables, brctl, iproute2: ip commands (ip route, ip addr, …), mount, umount, adduser, gcc, traceroute, uname, lsof, …
資料結構與演算法 (至少 基本的 doubly linked list, binary tree)
Wireshark, MobaXterm, VirtualBox,…
win32 editor: 個人覺得 Komodo Edit 不錯
雖然 vim 沒 nano 好用, 但實務上 可能只有 vim 能用~
iproute2 很多取代 ifconfig 與 route
為何大都英文資料 資電的英文不難 要養成習慣, 應沒有 datasheet 是中文的