大家好,我是 Ian,因为一些原因,我在年初的时候接触到嵌入式系统开发与系统软件实作。在这一年来也写了许多文章记录学习历程,希望这篇系列文可以激起读者对 CS 的兴趣 : )
在 2020 年底,随着推甄告一段落,闲来无事的我看到了一个有趣的东西:由金门大学资工系陈锺诚教授开源的作业系统专案: mini risc-v os 以及麻省理工学院开发的 xv6 os。
在尝试阅读专案原始程序码时,我发现自己对计算机科学领域的认知与 C 语言程序能力都有严重的不足。
Jserv 也曾说过本科生的定义:
不要强调自己「非本科」,在这个世纪只要没强度都是非本科。
我想,这世界上最可怕的事情莫过於知道自己的不足却坐以待毙。
就算自己在大学时并不是正资工系也不能作为逃避的藉口,因此我买了几本书并参考大量文献,在空闲时研读、整理成笔记,实践 Teach Yourself Computer Science 的精神。
本系列文名为计算机科学之美,所以它包含了非常广大的领域,主要应该包含了:
gdb
, Makefile
, gcc
, vim
, git
等。其中,作业系统是一门综合性的 CS 学科。我想,比起直接阅读,修读过资料结构与演算法和计算机概论、计算机组织後再来研读会有更深的感触。
本系列文会围绕在 RISC-V 上建构,介绍导读作业系统原始程序码所需要的工具、 RISC-V ISA 介绍、作业系统原始程序码导读,在介绍 RISC-V 以及计算机组织的相关知识时也会用到 rv32emu 的原始程序码方便解说。
目标读者需要有以下条件:
本系列文采取先理论後实作的策略,先补足计算机科学的基本知识,再探讨作业系统设计并尝试研读开源专案的原始程序码。
学习 System programming 以及 Operation system 之前,我们需要对计算机有更进一步的认知:
RISC-V 是由 UC Berkeley 发展的 ISA,其官方规格书仅有 200 多页的长度,相比 ARM 以及 MIPS,是更容易学习的 ISA,本系列文将利用 RISC-V 让读者对计算机组织有更深入的了解。
受到微中子的拯救资工系学生的基本素养影响,我也整理了一些文章来教大家资工人必须要会的基本工具/技巧。
以自干作业系统为目标,学习作业系统的导论并阅读作业系统的专案原始程序码理解实作原理。
之前修读学校开的作业系统时,因为作业要求,用了 Node.js 写一个非常基础的多执行绪程序,笔者自认为没有真正的搞懂多执行绪。
刚好藉由这次机会,可以学习多执行绪的同步问题以及使用 POSIX Thread 开发多执行绪程序。
<(_ _)>
文章相关问题或勘误欢迎留言或是发信到我的信箱: [email protected]
。
<<: TypeScript 能手养成之旅 Day 1 出发
在JAVA中,可以设定一些的变数,例如:long, int, char, float,...等等 l...
HERE Fleet Telematics Advanced 资料集是一种 REST API,可让您...
延续上回~~ 四、再往底下看是主要的Main Content,也就是对於使用者来说目光会停留最久的区...
本系列文之後也会置於个人网站 Client与一些安全相关的设定 在OAuth架构下的Client(...
在新建立的小试用专案内熟悉所有会使用的UI界面与其功能性,并尝试组成一页界面,用於练习。而编辑程序码...