AROS/用户/常见问题
有关维基百科的描述,请查看 此处。有关详细描述,请查看 此处
欧洲法律规定,对软件进行逆向工程以实现互操作性是合法的。它还规定,分发通过此类技术获得的知识是非法的。基本上,这意味着你可以反汇编或资源任何软件来编写兼容的软件(例如,反汇编 Word 来编写一个程序,将 Word 文档转换为 ASCII 文本是合法的)。
当然也存在限制:如果可以通过其他方式获得信息,你不能反汇编软件。你也不得告诉他人你学到的东西。因此,“Windows 内部”这样的书籍是非法的,或者至少法律地位不明确。
由于我们避免使用反汇编技术,而是使用常见的可用知识(包括编程手册),这些知识不属于任何 NDA,因此上述内容不直接适用于 AROS。这里的关键是法律的意图:编写与其他软件兼容的软件是合法的。因此,我们认为 AROS 受法律保护。
不过,专利和头文件是一个不同的问题。我们可以在欧洲使用专利算法,因为欧洲法律不允许对算法进行专利保护。但是,在美国获得专利的算法使用的代码不得进口到美国。AmigaOS 中的专利算法示例包括屏幕拖动和菜单的工作方式。因此,我们避免以完全相同的方式实现这些功能。另一方面,头文件必须兼容,但与原始文件尽可能不同。
为了避免任何麻烦,我们向 Amiga Inc. 申请了官方许可。他们对这项工作持积极态度,但对法律影响非常担忧。我们建议你将 Amiga Inc. 没有向我们发送任何停止和停止函作为积极信号。不幸的是,除了双方良好的意愿之外,还没有达成任何具有法律效力的协议。
嗯,
1. If it was really important, it probably would be in the original OS. ;-) 2. Why don't you do it yourself and send a patch to us?
这种态度的原因是,周围有很多人认为他们的功能是最重要的,如果该功能没有立即内置,AROS 就没有未来。我们的立场是,AmigaOS(AROS 旨在实现)可以执行现代操作系统应该执行的所有操作。我们看到 AmigaOS 有可以改进的地方,但如果我们这样做,谁来编写操作系统的其余部分?最终,我们会对原始 AmigaOS 进行很多改进,这将破坏大多数可用软件,但毫无价值,因为操作系统的其余部分将会丢失。
因此,我们决定阻止在操作系统中实现任何主要新功能,直到它或多或少完成。我们现在越来越接近这一目标,并且 AROS 中已实现了一些在 AmigaOS 中不可用的创新。
非常兼容,它允许你运行 AROS(如果你愿意,可以在你的经典 Amiga 硬件上运行),并且允许你运行 AROS 和大多数经典 Amiga 程序、游戏和演示,只要它们是兼容的,请查看兼容性列表 此处。
二进制文件:我们预计 AROS 将在 68k 系列 Amiga 硬件上运行现有软件,不会出现问题。在其他硬件上,可以运行现有软件通过集成的 Amiga 模拟器(“emumiga”或“Janus-UAE”),或者必须重新编译代码(见下文)。
源代码:将程序从 AmigaOS 移植到 AROS 目前主要是一个重新编译的问题,偶尔需要进行一些调整。当然,有些程序不适用,但这适用于大多数现代程序。我们将提供一个预处理器,你可以在代码上使用它,它将更改可能导致 AROS 崩溃的任何代码,并/或警告你有关此类代码。有关将软件移植到 AROS 的更多信息,请参阅 Aros/Developer/Porting_software。
嗯,说实话,这是一个误解。基本开发旨在实现“至少”在 AmigaOS v3.1 中使用的 API。但是,在开发过程中,由于 AmigaOS 3.1 不支持必要的功能,因此需要对计划进行一些修改。最终结果是功能集介于 OS 3.1 和 3.9 之间,但是 3.1 仍然是我们目标的_基础_。
还有其他开发不符合此框架,因为它们不涉及任何操作系统的 API,例如 HIDDS 和实现和支持它们的相应技术。
为此,开发人员可以自由地改进底层的 AmigaOS 技术,只要他们能够在几乎不需要任何努力的情况下继续支持现有的 AmigaOS 功能和 API。
目前,AROS 作为原生和托管版本(在 Windows、Linux、FreeBSD 和 NetBSD 下)适用于 i386 架构(即 IBM PC AT 兼容克隆),并且作为托管版本(Linux 和 NetBSD)适用于 m68k 架构(例如 Amiga、Atari 和 Macintosh)以及托管在 ARM Linux 发行版之上。正在进行移植到 SUN SPARC(在 Solaris 下托管)和 Palm 兼容手持设备(原生)的工作,这些移植的完成程度各不相同。
由 Michael Schulz 在 Sam-440 板上进行了移植,以及另一个移植到 EFIKA 5200B。
此外,一个在 Linux-PPC 上运行的 AROS 系统已经存在。
我们使用 Linux 和 X11 来加速开发。例如,如果您实现了一个打开窗口的新函数,您只需编写该单个函数,而无需在 layers.library、graphics.library、大量的设备驱动程序以及该函数可能需要使用的其他部分中编写数百个其他函数。
AROS 的目标当然是要独立于 Linux 和 X11(但如果人们真的想要,它仍然可以在它们上面运行),并且随着 AROS 的原生版本,这正在慢慢成为现实。不过,我们仍然需要使用 Linux 进行开发,因为好的开发工具还没有移植到 AROS 上。
这是一个 AROS 的长期存在的错误。退出 AROS 后,运行以下命令来重新启用自动重复功能。
> xset r on
与 AmigaOS 相比,AROS 的主要新功能之一是 HIDD(硬件独立设备驱动程序)系统,它将使我们能够非常轻松地将 AROS 移植到不同的硬件上。基本上,核心操作系统库不会直接访问硬件,而是通过 HIDD,HIDD 使用面向对象的系统进行编码,这使得替换 HIDD 和重用代码变得很容易。
我们每天都从很多人那里听到 AROS 不会成功的消息。他们中的大多数人要么不知道我们在做什么,要么认为 Amiga 已经死了。在向那些不知道的人解释了我们正在做什么之后,大多数人同意这是有可能的。后者则会造成更多问题。好吧,Amiga 现在死了吗?那些仍然使用 Amiga 的人可能会告诉你它还没有死。当 Commodore 破产时,你的 A500 或 A4000 爆炸了吗?当 Amiga Technologies 破产时,它爆炸了吗?
事实是,很少有新的软件为 Amiga 开发(尽管 Aminet 仍然运行得很好),硬件的开发速度也比较慢(但现在出现了最令人惊叹的小工具)。Amiga 社区(仍然活着)似乎在坐等。如果有人发布一款类似 1984 年 Amiga 的产品,那么那台机器将会再次兴盛。谁知道呢,也许你还会收到一个贴着“AROS”标签的 CD 光盘。
请在 AROS 用户邮件列表中发布包含详细信息(例如,您收到的错误消息)的邮件,或者成为开发人员并订阅 AROS 开发人员列表,并在那里发布,有人会尝试帮助您。
这是一个热烈讨论的话题,有些人说有,有些人说没有 - 只有时间才能证明一切......
当然,没问题。事实上,我们希望尽可能多的测试版测试员,所以每个人都欢迎!不过,我们没有测试版测试员的名单,所以您只需下载 AROS,测试您想测试的内容,然后向我们发送一份报告即可。
UAE 是一个 Amiga 模拟器,因此它与 AROS 的目标有所不同。UAE 想要在二进制层面上兼容,即使是游戏和访问硬件的代码,而 AROS 想要拥有原生应用程序。因此,AROS 比 UAE 快得多,但在 UAE 下可以运行更多软件。
我们与 UAE 的作者保持着松散的联系,UAE 的代码很有可能出现在 AROS 中,反之亦然。例如,UAE 开发人员对操作系统的源代码感兴趣,因为如果某些或所有操作系统函数可以用原生代码替换,UAE 就可以更快地运行某些应用程序。另一方面,AROS 可以从集成 Amiga 模拟中获益。
由于大多数程序一开始不会在 AROS 上可用,Fabio Alemagna 将 UAE 移植到了 AROS,因此您至少可以在一个模拟盒子里运行旧程序。
Haage & Partner 在 AmigaOS 3.5 和 3.9 中使用了 AROS 的一部分,例如颜色轮和渐变滑块小部件以及 SetENV 命令。这意味着在某种程度上,AROS 已经成为官方 AmigaOS 的一部分。但这并不意味着 AROS 和 Haage & Partner 之间有任何正式关系。AROS 是一个开源项目,任何人都可以在他们自己的项目中使用我们的代码,只要他们遵循许可证即可。
AROS 和 MorphOS 之间的关系基本上与 AROS 和 Haage & Partner 之间的关系相同。MorphOS 使用 AROS 的一部分来加速他们的开发工作;根据我们许可证的条款。与 Haage & Partner 一样,这对两个团队都有益,因为 MorphOS 团队从 AROS 中获得了开发的提升,而 AROS 则从 MorphOS 团队获得了对其源代码的改进。AROS 和 MorphOS 之间没有正式关系;这仅仅是开源开发的运作方式。
大多数 AROS 开发都是使用 ANSI C 完成的,通过在其他操作系统(如 Linux、FreeBSD 或 NetBSD)下交叉编译源代码。
- C/C++,通过原生包含的 gcc/g++(最初由 Fabia Alemagna)或 Murks! IDE 或者在其他操作系统(Linux、Windows)下交叉编译。
- Python 是一种脚本语言,因为它设计精良,功能丰富(面向对象编程、模块系统、许多有用的模块包含在内、语法简洁...),所以它变得非常流行。
- Regina 是一个可移植的符合 ANSI 标准的 REXX 解释器。AROS 端口的目标是与经典 AmigaOS 的 ARexx 解释器兼容。
- False 可以被归类为一种奇特的语言,所以它很可能不会被用于严肃的开发,尽管它可能很有趣。
- Lua
- PortablE 是 Amiga E 的开源实现,用 E 从头开始编写,并且能够自我编译。可以在 http://cshandley.co.uk/portable 找到。
- Ruby
- Basic4SDL (b4sdl)
请参阅 AROS 开发人员文档 获取更多信息。
为了让老的 Amiga 程序在 AROS 上运行,我们移植了 UAE 到 AROS。AROS 上的 UAE 版本可能会比其他版本的 UAE 更快一些,因为 AROS 所需的资源比其他操作系统少(这意味着 UAE 会获得更多 CPU 时间),并且我们会尝试修补 UAE 中的 kickstart ROM 以调用 AROS 函数,这将带来另一个小的改进。当然,这仅适用于 AROS 的原生版本,不适用于托管版本。
但是,为什么我们不直接在 AROS 上实现一个虚拟的 m68k CPU 来直接运行软件呢?嗯,问题在于 m68k 软件期望数据以大端格式存储,而 AROS 也运行在小端 CPU 上。这里的问题是 AROS 内核中的小端例程必须处理模拟中的大端数据。自动转换似乎是不可能的(举个例子:AmigaOS 中一个结构中的字段有时包含一个 ULONG,有时包含两个 WORD),因为我们无法判断 RAM 中的几个字节是如何编码的。
如果你在这个网站上看到了关于 Zune 的内容,它只是一个 MUI 的开源重新实现,MUI 是一个功能强大(如用户友好和开发者友好)的面向对象的共享软件 GUI 工具包,也是 AmigaOS 上的事实标准。Zune 是开发原生 AROS 应用程序的首选 GUI 工具包。至于名字本身,它没有任何意义,但听起来不错。Zune 也是微软推出的一个便携式 MP3 播放器/多媒体硬件产品,但与 AROS 的 Zune 无关。