操作系统是计算机从业人员的基础素养,大名鼎鼎的《ostep》的作者 Remzi Arpaci-Dusseau
认为每个从业者所掌握的操作系统内容包括:基本操作系统结构、进程和线程同步和并发、文件系统和存储服务器、内存管理技术、进程调度和资源管理以及虚拟化。
最终获得的能力有:
解释操作系统抽象的基本类型,包括进程、同步、虚拟内存和持久性。
设计和实现系统库和内核调用,它们是提供给用户访问和开发新操作系统功能的机制。
评估系统性能并解释将各种算法和数据结构应用于操作系统的复杂操作的影响。
笔者认为上述内容确实应该学习。不过为了合理利用我们珍贵的资源 ——时间,大家对于操作系统的学习应该有所侧重。我认为熟练应用Linux下的各种系统调用,熟悉多线程多进程同步,相对比较重要。
笔者认为一种比较好的练习系统调用
的方式就是利用c语言实现Linux下的各种指令。包括但不限于 ls wc shell zip cd cat > < pwd mkdir chmod
等等。同时,这些学习的过程本身就可以当作自己简历上一个关于不起眼的操作系统小项目。
所以,笔者会在之后陆续分享完成以下功能的指令源码,希望能和读者朋友们一起学习。