在《大道至簡,給所有人看的程式設計書》寫作期間,我查閱了大量的資料。有些資料已經在書中新增了連結或腳註,更多的只是看過或做了收藏。這裡我將這些資料整理出來,供大家參考。
如果你看了書,再看這些參考,會很有用。如果你沒看書,這些參考資料也很有用 😃。
(持續更新中,歡迎常回來看看)
參考資料
- URL Decoding:https://www.rosettacode.org/wiki/URL_decoding
- 從頭寫一個HTTP Server: https://medium.com/from-the-scratch/http-server-what-do-you-need-to-know-to-build-a-simple-http-server-from-scratch-d1ef8945e4fa
- word numbering: https://cybertext.wordpress.com/2014/03/31/word-change-caption-numbering-from-sequential-to-chapter-numbering/
- 在瀏覽器中執行各種作業系統:https://geekflare.com/run-linux-from-a-web-browser/
- Unicode: https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
- ISO8859: https://i18nqa.com/debug/table-iso8859-1-vs-iso8859-15.html
- 鍵盤掃描碼:https://www.lookuptables.com/coding/keyboard-scan-codes
- 中斷服務例程:https://wiki.osdev.org/Interrupt_Service_Routines
- Ninja得與失: https://neugierig.org/software/blog/2020/05/ninja.html
- Ninja效能:https://aosabook.org/en/posa/ninja.html
- newLib libc:https://sourceware.org/newlib/libc.html
- main函式之前是什麼:https://embeddedartistry.com/blog/2019/04/08/a-general-overview-of-what-happens-before-main/
- 從零開始打造一臺簡易計算機 https://xiaogd.net/book/spcp/
- Hello 演算法:https://github.com/krahets/hello-algo
- 中文程式語言:https://www.infoq.cn/article/umUelS6BrCgqPkVRfcwv
- https://www.gnu.org/software/libc/manual/pdf/libc.pdf
- https://www.macrumors.com/2012/03/22/steve-jobs-tried-to-hire-linux-creator-linus-torvalds-to-work-on-os-x/
- better C:https://theartofmachinery.com/2019/04/05/d_as_c_replacement.html
- checked C
- C 語言標準——C89、C99、C11、C17、C2x ... https://zhuanlan.zhihu.com/p/363380373
- 程式碼從編譯到執行經歷了什麼?你真的清楚嗎? https://blog.csdn.net/weixin_44895651/article/details/106260030
- Go:我們做對了什麼?又做錯了什麼?
https://commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html
OS:
- OS教程:https://github.com/cfenollosa/os-tutorial
- OS小書:https://littleosbook.github.io/
- OS開發:https://wiki.osdev.org/
- UEFI Boot Loader ARM64:https://github.com/DOGSHITD/Simple-UEFI-Bootloader-ARM64
- 從頭寫一個Boot Loader:https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch
- 啟動:https://www.kernel.org/doc/html/v5.8/arm64/booting.html
- 巨簡的HTTP伺服器:https://git.sr.ht/~pitust/lolttp
- Windows上的虛擬機器2024版: https://www.windowscentral.com/best-free-virtual-machine-software-windows-10-and-11
- VM
ware、KVM、Docker:https://zhuanlan.zhihu.com/p/272202324 - 虛擬化:https://zhuanlan.zhihu.com/p/680320488
- WSL Docker 安裝: https://zhuanlan.zhihu.com/p/148511634
- ttyd: https://github.com/tsl0922/ttyd
- libtool: https://zhuanlan.zhihu.com/p/35847200
- libtool: https://autotools.info/libtool/index.html
- limine bootloader:https://github.com/limine-bootloader/limine
- OS: https://github.com/Lyre-OS/Lyre (已失效)
- 免費程式設計書: https://linuxstory.org/free-chinese-programming-books/
- Browser: https://zhuanlan.zhihu.com/p/615993165
- printf:https://github.com/eyalroz/printf
- 從 0 開始寫 OS 核心:https://segmentfault.com/a/1190000040124650
- OS教程中文版:https://github.com/ruiers/os-tutorial-cn
- 編譯器實現之旅:https://github.com/DoctorWkt/acwj
- Wi-Fi:https://www.newscientist.com/question/what-does-wi-fi-stand-for/
- CherryOS:https://github.com/msiniavine/CherryOS
- 安全:https://www.ibm.com/cn-zh/topics/cybersecurity
- 安全:https://www.gartner.com/cn/topics/cybersecurity
- 安全:https://aws.amazon.com/cn/what-is/cybersecurity/
- 安全:https://www.akamai.com/zh/glossary/what-is-cybersecurity
- C與Webassembly:https://surma.dev/things/c-to-webassembly/
- Lua macOS App:https://github.com/mogenson/lua-macos-app
- libui:https://github.com/andlabs/libui
- Git GUI: https://zhuanlan.zhihu.com/p/144961175
- Multiboot: https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#Example-OS-code
- CMake:https://dominikberner.ch/cmake-library-setup/
- 如果用pkgconfig連線一個靜態庫 https://stackoverflow.com/questions/27586503/how-to-use-pkg-config-to-link-a-library-statically
- tree.c https://github.com/ccxvii/minilibs
- Bochs除錯常用命令:https://petpwiuta.github.io/2020/05/09/Bochs除錯常用命令
- Linux核心中的libc程式碼:https://github.com/torvalds/linux/tree/master/tools/include/nolibc
- rt0:https://github.com/lpsantil/rt0
- Chrome網路效能:https://aosabook.org/en/posa/high-performance-networking-in-chrome.html
- CMake:https://aosabook.org/en/v1/cmake.html
圖片來源
- 結繩記事:https://www.cdstm.cn/frontier/kpx/201901/t20190124_905762.html
- 莫比烏斯帶:https://zh.wikipedia.org/wiki/莫比烏斯帶
- 橢圓座標系:https://wuli.wiki/online/EliCor.html
- 加法器:https://zhuanlan.zhihu.com/p/370043999
- Tikz: https://zhuanlan.zhihu.com/p/137847051
- float: https://zhuanlan.zhihu.com/p/339949186
推薦書目
- UNIX 傳奇:https://zhuanlan.zhihu.com/p/359470320
- 《UNIX 程式設計藝術》,Eric Raymond 著,ISBN: 9787121176654,電子工業出版社。
- 《UNIX 環境高階程式設計》
- 《資料結構:Java 語言描述》
- 《C 程式設計》
- 《Just for Fun》,只是為了好玩
- 《計算機網路》
- 《TCP/IP 詳解》
- 《作業系統:設計與實現》
備選書名或次書名
- 大道至簡——給所有人看的程式設計書
- 循序漸進,殊途同歸
- 程式碼
- 程式碼修煉之從入門到走火入魔
- 程式設計
- 計算機與程式設計藝術
- 計算機程式設計從高手到入門
忘了在哪看到的
Torvalds has never met Bill Gates, but around 2000, when he was still working at Transmeta, he met Steve Jobs. Jobs invited him to Apple’s Cupertino campus and tried to hire him. “Unix for the biggest user base: that was the pitch,” says Torvalds. The condition: He’d have to drop Linux development. “He wanted me to work at Apple doing non-Linux things,” he said. That was a non-starter for Torvalds. Besides, he hated Mac OS’s Mach kernel.
微軟起家的是 BASIC 直譯器,那是蓋茨自己寫的。IBM 找微軟也是要其提供 BASIC 直譯器,蓋茨建議 IBM 用 CP/M 作業系統,IBM 沒能談妥,讓微軟也提供作業系統。當時微軟已成立五年,蓋茨已不自己程式設計,僱了 Tim Paterson 將他寫的 86-DOS 改成 MSDOS,其實也改自 CP/M。蓋茨做了一個正確決定,不賣版權,只授權 IBM 使用。
其他
購書連結:《大道至簡,給所有人看的程式設計書》 。
(持續更新中,歡迎常回來看看)
本文永久連結:https://www.dujinfang.com/2024/06/08/simple-book-by-product.html 。