皋陶 发表于 2020-8-24 10:51:58

操作系统清华 向勇 陈渝(RISC-V)(1)---概述

本帖最后由 皋陶 于 2020-8-27 01:09 编辑

主要是汇编和C,
汇编直接和机器指令集相关。
C是高级语言,不直接对应一种特定的体系结构,也有很好灵活性,高效。
也有人用其他语言尝试写操作系统。比如Rust。
Rust具备C所不具备的特征,有类型检查比较严格,安全性好。语言级别上有并发同步等支持。使操作系统开发出来的代码错误减少。

内核需要各种各样的数据结构。



RISC-V开源,受到业界广泛关注。


编译器对我们写程序的效率和质量有影响。


三大简易元素,网站内容都有。
操作系统概念,京东
精髓与设计原理。京东
没有指定教材

操作系统和外设打交道,中断。 应用打交道,系统调用


CPU和memory


外设,打印机等。
RISC-V比X86简单。而且写操作系统也要容易些。



什么是操作系统?这门课来讲操作系统这个软件。
一个软件,要实现一定的功能,到底要让这个软件干什么?来解释了什么是操作系统。


什么功能在操作系统,什么功能不在操作系统,没有严格的定义。因人而异。


这个软件管理硬件资源、控制程序运行、改善人机界面、为应用软件提供支持。


操作系统是计算机系统中的底层软件。直接和硬件打交道,为应用程序提供支持,利用硬件提供的能力来完成操作系统的功能实现。
系统应用和操作系统中的功能就没有明确的界限了。
应用程序可以直接利用操作系统的功能,也可以在操作系统中写一些通用的应用。那些是系统应用,那些是操作系统中,没有明确界限。



解决问题,
访问资源的高效。多应用访问相同硬件,需要协调。
资源管理程序


狭义,就是内核。
通常传统含义,还有命令行,GUI,等。
编译器叫系统应用。调试器也是系统应用。
从软件分类,在底层。



CPU用来计算,抽象成进程。进程控制。占用CPU执行,多个程序执行要进行调度。
磁盘上数据,抽象成文件。访存基本单位。用户利用程序对数据访问,就是文件。往数据写入,知道存在哪里。
内存抽象成地址空间。哪块儿空间给进程。
分配算法和应用程序算法有什么区别?
main开始,结束
操作系统中,需要管理多个正在运行的程序交替执行。


不同资源有不同分享方式和策略。
多个进程看起来都在一个完整计算机执行。
内存,磁盘都有类似的虚拟。各个程序看起来都是他自己在使用。
内部实际是共享的。
为什么学习操作系统?


(人月神话,软件工程方面著作)

操作系统的发展空间还有很多,还很大。


高效,低功耗,安全可靠。
综合考虑,系统思维。




coding 太难。
我们要打通,知识点,原理和实践。
数据结构,组成原理,等设计出OS。控制计算机。
对OS要有整体把握。做到胸中有OS。
操作系统历史


提高计算机利用率。软件技术,硬件能力都不行,操作系统初级阶段。

硬件发展,磁带,磁盘传输。
内存大,可以有多个程序出现在内存。
有个软件,程序控制,调度程序执行顺序。提高效率





引入IO。引入中断处理。
中断管理,很重要。


机器成本比程序员低了。不仅仅解决效率。还有更多功能,打印等


搜索,数据中心,云存储。都是基于分布式系统。在集群内部资源调度。通过操作系统软件,应用程序运行稳定。

物联网系统。更多挑战。管理的设备越来越多。安全,更新等。
操作系统发展和硬件,应用相关。都有发展。软件各种协调。
操作系统结构
早期,结构简单。


应用程序,用系统调用,软中断进入下面来。CPU加电,加载基本输入输出。


多用户交替使用。


操作系统内部,分成多层。UNIX Linux


对于大内核,下一步就是微内核。





内核->外部->内核,需要更多的系统开销。灵活,安全



把操作系统分成了两部分。


一台物理的机器,虚拟成多台机器。每台机器看上去和一台物理机器是“一样的”。



OS实验概述

ucore 基于C语言 x86
rcore 基于Rust语言 risc-v





从0开始构建OS。和学习方向相反。


系统开发主要的调试方法是输出字符。中断和异常。







内核里有线程。











基于inode方式的文件系统

本篇完,感谢关注:RISC-V单片机中文网

页: [1]
查看完整版本: 操作系统清华 向勇 陈渝(RISC-V)(1)---概述