操作系统的 libc 支持
操作系统的 libc 支持

之前 我们说到系统从其功能实现上的目的是: 管理各种硬件资源,实现隔离并发与虚拟化. 但是站在一般用户的角度来说, 一个操作系统要有良好的生态, 支持应用程序才能被广泛使用. 而应用程序是由编程语言开发的, 这就要求操作系统能够支持一些语言(特别对于C语言)的标准库.
oscamp 第三节阶段总结. 由于部分操作系统原理性质的内容在二阶段中已经学过了, 因此总结主要针对两部分:
ArceOS 的优势区间在于快速针对特定领域构建出一个最合适的内核, 主要解决的痛点就是”从头开发一个操作系统太繁琐”, 而”现成的方案并不完全适用于应用场景”. 一些操作系统的可扩展性通过内核编译选项或者配置文件来实现, 但是这种方法无法在更深层次修改组装一个操作系统内核, 因此 ArceOS 采用了组件化的方案灵活组装某些功能.
oscamp 第一阶段的 rustlings 总结, 但因为去年写过一次 rustlings 了,
题目比较基础(除了最后的算法和数据结构实现有点麻烦)之前也接触过不少
Rust, 所以这次是总结一下二三阶段中特别需要的 Rust 特性
以 rCore 为例, 介绍一个操作系统从 RustSBI 开始, 从批处理系统到分时多任务系统, 包括地址空间/进程/文件系统的实现, 最后实现多线程以及同步互斥的各种机制.
暂时集中在一篇文章里, 以后有需要再分章节记录
这一章理解难度不大, 但是内容很多, 比较复杂, 读着读着时而觉得”我艹这简直是艺术品”时而觉得”我他妈快睡着了”。
pushq
/popq
二义性(数据操作在外侧,
栈指针变化在内测)