Try   HackMD

有意修習 (或未來)embedded system (課名: 研究所 高等作業系統) 課的同學

Author: WhoAmI
email: kccddb@gmail.com

Date: 20230312
Copyright: CC BY-NC-SA

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

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 備援 還需 異地 備援~怕 不可抗拒 的意外(火災 地震)

這兩個錯誤 都是 基礎觀念 (也是習慣不好)沒建立好而造成~寫軟體只是 交 作業的心態

  1. 計概+ c language: ANSI C for Programmers on UNIX Systems, Tim Love (含 習題, makefile 一定要會) 紮實的計算機概論, 因為本課程 有 linux kernel module 實作.
    如果 c language 不行 又沒 自學, 勸您 別修這門課, 您我都很痛苦~我的 痛苦 就是 當掉 學生

  2. 微處理機(基礎 組合語言實務 是學習上必須的過程, 最後 實務上還是大都用 c language), 此外 練習 看 8051 datasheet. 日後業界上班 寫 Linux device driver 會有需求. External Memory Interfacing in 8051 Microcontroller, The 8051 Simulator for Teachers and Students

  3. 練習 看 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)

  4. 網路 TCP/IP 知識 (至少 rfc1180: A TCP/IP Tutorial), ethernet, PPP, PPPoE, Routing (iproute2),

  5. Linux 使用 (請自學, 例如 https://blog.gtwang.org/linux/linux-io-input-output-redirection-operators/ , https://linux.vbird.org/linux_basic/centos7/)

  6. Embedded (Linux) System Design, 有建議 Linux 版本+VirtualBox+QEMU

  7. 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

  8. 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,

  9. 資料結構與演算法 (至少 基本的 doubly linked list, binary tree)

  10. OOP 觀念, https://hackmd.io/@pingulinux/c-oop

  11. Wireshark, MobaXterm, VirtualBox,

  12. win32 editor: 個人覺得 Komodo Edit 不錯

雖然 vim 沒 nano 好用, 但實務上 可能只有 vim 能用~
iproute2 很多取代 ifconfig 與 route

Linux 匹配文字 grep 指令用法教學與範例

Linux I/O 輸入與輸出重新導向,基礎概念教學


為何大都英文資料 資電的英文不難 要養成習慣, 應沒有 datasheet 是中文的

課程內容 (如有 硬體設備 例如 Raspberry Pi 更好, 但不要求有

網路程式設計

山不在高 有仙則名