操作系统 :
操作系统是计算机用户和计算机硬件之间的接口。操作系统是一种软件,它执行所有基本任务,如文件处理、文件管理、内存管理、处理输入和输出、控制外围设备,如磁盘驱动器和打印机、鼠标等
节奏操作系统:
它也是一种操作系统。它是一个简单的操作系统,主要用于教学目的。但是,它完全能够在典型的 Intel x86 计算机系统上独立启动,并且有一些应用程序可以在其上运行。它使用页面内存管理,但不处理页面错误。
Tempo 操作系统的历史:
Tempo 最初用于系统调用 虽然可用,但这项工作依赖于 MS-DOS 进行加载、输入/输出服务和第一级中断处理。
首先,所有系统都是用 c++ 语言编写的,但只有该语言功能的有限子集。现代操作系统是用 c 语言和汇编语言编写的,例如(Microsoft 窗口和各种类型的 Linux 和 Unix),随着时间的推移,Tempo 操作系统有多种风格:
1. 节奏/c :
这是最早出现的 Tempo 操作系统之一,它是在 2000 年初开发的,Tempo OS 的主要进步如下:
替换所有 C++ 代码:
所有的 c++ 程序都被 c 和汇编语言取代,这使得它更容易理解并提高了系统用于教育目的的可用性,因为它不再依赖于 Borland 16 位 C++ 编译器。
系统调用重定义:
特别是系统调用与 c++ 中的相同,某些系统调用能够等待任意(可能是无限)时间完成或用户指定的最长时间。
键盘输入:
在原始系统中没有提供键盘输入,因此添加了系统调用以提供该功能。
2. 节奏/32:
在 2000 年夏天,tempo/c 被完全重写并重命名为 tempo/32,这比以前的版本更好,因为系统被修改为 32 位,随之而来的变化是:
32位保护模式:
该系统现在使用x86处理器中的32位指令和寄存器,它为处理器提供了内核和用户两种执行模型。这与“真实”操作系统采用的方法一致,尽管它确实
使系统比“玩具”系统更复杂。
独立启动:
在这里,一个软盘引导加载程序被添加到 Tempo,它消除了启动 MS-DOS 操作系统的工作。这是唯一使用 16 位代码的地方。
平面地址空间:
所有 x86 内存都有下面给出的两个段:
1)一个段
2) 段中的偏移量
它包含 20 位地址,即段的 16 位和偏移量的 4 位,可以计算为
16*segment register + offset,产生一个 20 位长的地址。
Windows环境下使用的Cygwin:
Cygwin 被用来在 Windows 平台上提供必要的开发环境。它是运行窗口操作系统的流行的免费可用系统。
3. 2005年秋季Tempo/32:
2005 年,节奏操作系统中添加了一些更多功能,如下所示:
简单的硬盘输入/输出:
正如我们所知,所有计算机都有硬盘并且要使其正常工作,我们有系统调用,而该系统调用是硬盘的驱动程序。 Bochs 还模拟了磁盘控制器和驱动器,使其成为 Tempo/32 的合理扩展。
现有系统调用重组:
对于系统上的一些工作,有时系统调用还得再次访问,特别是一些原来的Tempo
系统调用存在缺陷(稍后将讨论)。
添加了新的类似于 POSIX 的 I/O、命令行参数和用于进程终止和等待进程终止的系统调用:
在那之后,我们在 2006 年春季推出了 Tempo/32,在 2006年夏季和秋季推出了 Tempo/32,最新的在某个乐章中发挥作用的是tempo (2007)他们只有一点点变化版本 。
节奏的特点:
Tempo 是一个独立的系统:
正如我们所知,除了 PC 的系统 BIOS 之外,它不依赖于任何类型的启动或运行软件。这很好,因为运行操作系统所需的时间更少。
Tempo 提供了类似 POSIX 的 I/O 设施:
执行输入和输出的系统调用;
open(path,mode) — 打开一个现有文件
creat(path) — 创建一个新文件
mkdir(path) — 创建一个目录
close(fd) — 关闭打开的文件
read(fd,buffer,size) — 从打开的文件中读取
write(fd,buffer,size) — 写入打开的文件
seek(fd,offset,origin) — 设置下一次读取或写入的位置
remove(path) — 删除一个文件
Tempo 开发是使用开源工具完成的:
gcc — GNU c 编译器
ld — GNU 链接器
make — 构建实用程序
objcopy — 在格式之间复制和转换目标文件
dd — 原始文件副本(用于磁盘映像)
Cygwin — Microsoft Windows 的 UNIX 环境
Bochs — 适用于 Microsoft Windows、Linux、BSD 等的 PC 硬件系统仿真。
用于 Tempo 系统编译、链接、磁盘映像创建等的 Shell 脚本。
Tempo 是一个整体的、不可抢占的内核:
Monolithic 意味着形成一个包含操作系统内核的单一大操作系统。当今操作系统提供的功能是能够在系统启动后动态加载某些软件。
参考 :
https://www.researchgate.net/profile/Walter_Tichy/publication/2959795_Advanced_Operating_Systems/links/0c96053441cb071132000000/Advanced-Operating-Systems.pdf?origin=publication_detail