在开始的是Caos(Amiga历史 - 1988年)

2021-05-15 07:24:02

Amiga交易者的第一个问题 - 从理想的交易者旋转 - Thenthe-Amiga软件经理Andy Finkel的一篇文章。幸运的是,艺术家的艺术品,虽然amiga交易者没有没有#39; t。它的'有趣的是amigados状态,现在,特别是在比较Caos规范中。感谢安迪 - 和一个innedid amiga owno在文本中键入并将它发送给Andy - ViewPort是能够整体的文章的Toreprint。因此,设置了1988年的Wayback Machine,并阅读...

正如大多数人所知,Amigados不是Amiga电脑上第一个首选顶级OS / DOS。我们现在呼叫Amigadoswas真的是备份DOS,基于已经存在的操作系统,基于已知的Tripos(在剑桥大学计算机实验室开发的Tripos Research GroupBy,并与令人惊叹的SpeedByCo'蒂姆国王和他的乐队转换程序员)。原始的,预期的,设计的armiga dos未能实现(在毫无疑问是一个有趣的故事本身),Theamiga被Amigados推出,其余的是历史,Soto说话。

偶尔偶尔,有人建议根据原始规范粘附原始DOS。这是甚至提出了amiga团队的一些成员,但Amiga Management DecidedThat它不会完成DOS,仍然可以按时发射amiga,特别是因为软件家伙在家里的周末已经过了。回家。和睡觉。

我们留下了一个大问题..如果我们可以使用原始的DOS,那么Amiga就像我们一样的amiga? Amiga的组成是什么?生命那么完美吗?

当然,在那里真的没有理解的方式。但如果我阻止了,这将是一篇非常简短的文章,对吧?那么为什么要轻快地看看规格,也许可以做一些比较armigados ......

因为这些问题很大的开发人员为Somer申诉,一个小于Usenet的Caos带来了一系列的电子邮件,所有人都要求详细信息(好的,他们想要规格)。所以我决定写这个 - 它似乎比我在工作的文章(" Dosbase&#34指南,或&#34指南;为什么这个库与其他图书馆不同的文章?")所以我' ll另存了另一个时间。理想情况下,这篇文章应该是由一个amiga人写的,其中一个amiga' d caos(primarycarl sassenrath,也写过exec)回首Dim Reachtes的时间(1984)。然而,就像他们身上的那样安静,我已经和原型播放了(你知道Apain一个贤者可以设置的东西吗?)它'时间。无论如何,规格是曹索草案文件。

CAOS代表Commodore Amiga操作系统。它的目的是(这里的规格草案报价的好地方):

"它是一个小型,全身的操作系统,功能亮相的小(但伟大的)机器,用于消费市场。主要目的不是提供复杂的软件开发环境 - 而不是提供替代的基础和有用的应用程序。这并不是说否则忽视程序员'需要。外部它是意味着伪造用户;然而,在内部,它旨在支持大多数应用程序的ChoMplex需求。它为其类的操作系统提供了额外的丰富功能。

CAOS总是打算建立在EXEC之上(以大量的方式建立AMIGADOS建立在EXEC之上)。 Exec将提供低级服务。它将初始化硬件,携带系统软件,处理中断和例外,DO TheLod级设备控制(如TrackDisk.Device),提供系统错误处理,提供低级时序例程和SemaphoreSemaphore,提供一些有用的实用程序功能,并致力于基本多任务处理。

Caos本身会给什么?多处理,文件系统,内存管理和命令如何?基本上,amigados给我们的东西 - 毫不奇怪,因为Amigadoshad进入Caos的鞋子。虽然,Caos和Amigados都拥有自己的特殊优势。例如,CAOS也比AmiGados更大程度地向Memory Management进行了更大的管理,并且会有资源跟踪。

有三个(井,至少三个)的一般令人兴趣的是Caos:多处理,文件系统和内存管理。然后在那里' s也是投影命令(用于欺骗文件和类似的操作。)

我们也可以启动简单的...多处理和内存管理。您可能想知道为什么多处理是简单的。它' s是因为多处理(至少ingeneral轮廓)与amigados下的多处理相同。

CAOS进程围绕EXEC任务构建。 CAOS依赖于HINGLYON用于多处理的EXEC数据结构和控制原语(声音熟悉?)CAOS过程结构是基于EXEC任务结构的顶部构建的。 EXEC处理上下文切换,任务互动,同步,队列和相互排除。使用AmiGados,只有进程可以与文件系统交谈。

CAOS过程结构包含(以及任务结构)有关其堆栈的信息,程序数据,资源跟踪和异常代码。 (再次,除了`资源跟踪&#39之外,它听起来很像Amigados Process信息,对吧?)

资源跟踪是一个关键差异。 CAOS旨在保留包含Process - 文件控制块,I / O块,消息端口,库,内存使用,共享数据,覆盖等的资源块的链接列表。 (这部分是休息背后的迦勒格盖;这可能会解释为什么我们现在没有'现在已经达到了它。)

使用单个(用户模式样式)堆栈以用户模式运行。除了在主管模式(使用Supervisor Stack)中运行的上下文交换机,以及当然中断,所有内容都将坚持用户模式。 OS系统例程表现良好(他们不使用堆栈),并使用堆栈空间良好定义的量(他们不分配局部变量反射的大面积)。现在,' s一个很大的不同。 Amigados为其运营提供了宽度的堆栈。那好吧。

创建一个过程有三种方法:从头开始创建它,分配新的数据结构和代码;克隆它来自parentProcess,制作新的数据结构,但共享父母' scode;或将其从父母链,并替换它。

1)分配过程结构2)分配堆栈3)在,OUT和错误4打开标准)加载代码并使其准备好执行(重新定位它)5)加载静态数据6)翻译包文件(如果一个)存在),并创建PackageControl块7)预加载包文件8)初始化异常向量9)将任务添加到Exec' s任务列表(使用AddTask),该任务列表(使用AddTask)才能在队列上运行

我提到了上面列表中的包文件。他们完全是什么?简单地:包文件是用于描述负载和运行时间内存环境的方法,用于应用程序以易于管理的形式绑定应用程序和数据文件的方式。当我们去Amigados时,这是我们失去的东西,它'我们认为我们应该看看。

另一个重要任务(抱歉)CAOS旨在执行内存管理。看着当前的操作系统,可以注意到exec致力于处理内存的丰富的原语。加上Amigados并不是' Thave(以及一些它)的一些额外功能。

CAOS基本上提供了管理的内存区域。 viThinthis内存区域,CAOS内存管理器将统治至高无上(有点像抓住一部分存储器AllocentryCall)。然后CAOS将在该子区域,用于代码,数据,程序堆栈等的子区域分配部分中的内存来管理内存。可以设置碎片化。由于分散加载不是未指N(在规格I' m使用)CAOS设计的一部分,CAOS内存管理器需要一种应对碎片的方法。如果一个子区域变为碎片,CAOS将尝试执行地区的压实和垃圾收集。首先,它将将子区域作为志愿者覆盖候选人。如果此故障重新获得足够的内存,则不会删除具有没有用户的子区域(LibrariesAnd设备,例如具有零的零的零计数)。如果此失败,则将调用特殊的入口点,可重定位和无法称为unloadable子区域。如果这失败,则将用户处理为Guru(或从内存请求者中)

当在CAOS分配的已经内存中管理内存所需的程序时,程序将在SEGMENTS中考虑内存。转接可以标记为可重定位或固定的永久性的或固定的。

CAOS内存管理器将尝试紧凑relocatableSegments,并在内存紧密时删除可重用的段。非RELOCATABLESEgments将在A OFA区域的顶部或底部保持在一起,以避免内存管理器的重定位/压缩算法的灾难性故障。

段也可以进行粗略的交换形式:它们可以从预曝种的磁盘文件中读取或写入。

相信它与否,Amigados Seglist几乎赋予了多功能性。除了重定位类型的段和过量的内存管理器,您可以几乎与Seglists播放这些同类。

现在我们到了硬件 - 文件系统。这是从Amigados不同的遗传症。提供文件Systemis磁盘操作系统最重要的目标。

CAOS使用文件概念,就像AmiGados - 一个文件呈抽象数据对象,一组访问方法,它似乎是无论其底层的正文表单如何都是一致的数据流。许多,许多计算机系统发生在该概念上。

普通文件用于数据存储。数据可以beanything - ascii,二进制,无论如何。普通文件的内容上没有系统缺陷。

普通文件也被键入,以帮助Caos和Userin了解文件'内容。例如,普通文件可能符合特殊的图形信息,文本,编程或程序数据。在文本类型的普通类型的情况下,施加的唯一限制是没有文本线仓更长超过512字节。

目录是用于将文件名映射到实际数据的文件。它们与普通文件不同地对待,其中有一个系统强加的结构,并且他们被视为覆盖。目录可能包含另一个目录文件的name,等等 - 支持树文件系统。

图像文件提供绑定到SystemInternal数据对象的符号方法。 CAOS将使用这些文件给出文件系统样式访问库,设备,中断链等内部系统对象。这将允许处理这些低级对象的标准高级方法。文件系统将充当符号地址空间。

图像文件被视为“选项”和#39; - 可能已经使用了特殊的伪DeviceFiles。但是,我真的很喜欢这个概念。它'我希望我们与Currentdos有聪明的东西之一。 (幸运的是,我认为我有一种替代这种冒险的方法。)

特殊文件就像普通文件一样处理,但是Don' Tgenerlyply表示存储设备的接口。它们已被人使用,以提供对I / O设备的标准访问。

CAOS允许最多30个字符的文件名。路径可以使用“/&&'特点。支持绝对(来自Volumeroot)和相对(到当前目录)路径。保留文件名称`:'指当前目录。其文件名称`..'指指定人当前目录的父级。路径(包括文件名)无法与255个字符' t。

CAOS支持硬链接和软链接。硬链接是一个文件的内部数据结构的justa指针(实际上,caos下的目录是硬链接数组)。 SoftLink通过使用文件名和执行文本替换来引用文件。(例如,如果用户程序要提出文件系统,则要调用"库",其实际上是一个softlink to&# 34; / exc / lib / library",文件系统应该赞同名称" / exc / lib / library"在做出打开之前。)

CAOS维护有用的文件信息,如描述域(最多255个信息供参考),创建时间,更新时间,链接计数,权限(读取,写入,执行,锁定),类型(目录,可打印,不可打印,ANDSO上),用户ID,大小和分配给文件的块。 Imageand特殊文件可能无法维护所有信息;默认值 - 您知道,当应用程序程序intergateSthe文件系统关于其中一个文件时,返回谎言。

可以支持读取,写入或附加操作的文件。可能支持众多函数和字符操作。您还可以在普通文件中寻求任何特定字节。但是,图像和特殊文件禁止这一点。

系统目录,如/(root),/ dev,和/ exec arespecial目录,系统通常会使其特殊文件,图像文件等保持。

Let' s向CAOS文件系统的建议限制(始终是流行的比较方式)。最大文件大小是onemegabyte;最大名称大小为30个字符。最大路径大小(包括名称)是255个字符(但可能已增加到512,需求足够)。最大的文件数将超过块数的四分之一(在软盘上约440);最大打开文件数为16个每个进程16,并且SoftLink文本替换的最大长度将具有与路径相同的长度。

有三种类型的文件操作:高级(安全,简单)文件访问,低级文件操作,该操作直接工作文件控制块(较高级别的函数DevolveInto呼叫这些低级例程),以及支持/维护程序(即公用事业)。当然,通过CAOS库界面弹出所有文件函数。

基于描述符的文件操作是访问文件系统的最简单方法。您使用名称(和路径)打开文件,ANDIN返回获取描述符,用于所有后续文件夹。

函数是开放的,关闭,读取,写,seek,eof(testfor eof),大小(返回文件的大小以字节为单位),截断(我想念这个),更新(将所有脏缓冲区写入与之关联的所有脏缓冲区该文件),名称(返回指向文件名的指针),选项,锁定(防止同时访问),解锁(解锁先前锁定的文件),LasterRor和控制(MiscellMailyfile访问控制)。

上述高级文件访问方法是基于较低级别的文件控制块访问方法。使用文件控制块的函数是:MapFile(从描述符到Acontrol块),OpenFile(给定名称,返回文件控制块),Closefile,ReadFile,WriteFile和更新。

顺便说一下,如果可以使用高级呼叫,如果可能的所有操作都可以删除低级访问文件。

本质上,程序与现在的程序非常相似(除了当然,偶尔语法也会被习惯)。我们' D有链接,软链接,删除,重命名,FileInfo,SearchDir,CurrentDir,Changer,Makedir等。

与AmiGados一样,CAOS支持逻辑地映射磁盘,分区,设备,文件网络和结构内存的卷。当他们在线时访问volumeScan。磁盘和网络VolumesGo在线读取和验证它们的卷ID结构。(对于软盘,当磁盘isInserted时,这会自动发生。)当进入卷时,卷是不存在的,脱机或关键的(如在,必须替换卷......)

CAOS维护卷识别信息,如名称(最多40个字符),描述,时间戳和写保护状态。通过使用"特殊"文件类型,它是possibleto获得直接访问卷。在软盘的情况下,短文文件将提供相同类型的访问(但以文件-SystemStardard方式),就像直接使用TrackDisk.Device。

这是Caos的快速概述。让' s说它是availableNow ......我们会获得什么?就个人而言,我认为维修将是一个更多的集成系统。来自论文,您可以看到Amigados真的像Caoswas旨在那样强大。问题是,AmiGados与操作系统的其余部分不同。 CAOS将使用TheSame类型的数据结构作为操作系统,相同类型的堆栈,相同的语言(C和汇编器),并且本来将理解系统更容易。

Caos在大多数情况下签订了一家,这是一个如此美妙的公司更好的选择,并在我的设计中购买。他们在使用他们的Sun开发系统开始其他项目时,它们历史记录,而不是Amiga更高级别的操作系统函数。