AmigaOS: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Reindra (bicara | kontrib)
Tidak ada ringkasan suntingan
Raksasabonga (bicara | kontrib)
Tidak ada ringkasan suntingan
 
(17 revisi perantara oleh 13 pengguna tidak ditampilkan)
Baris 1:
{{Terjemah|Inggris}}
 
:''ForUntuk theAmigaOS versi PowerPC version of AmigaOS, seelihat [[AmigaOS 4]].''
{{Infobox OS
|name = AmigaOS
|logo =
|screenshot = [[Image:AmigaOS4.png|250px]]<!-- Do not change unless you have read "Wikipedia:Software_screenshots"! -->
|caption = A screenshot of [[AmigaOS 4|AmigaOS 4.0]]
|family = [[:Category:AmigaOS|AmigaOS]]
Baris 12:
|list1 = [[AmigaOS versions|1.0-3.1]]
|group2 = <small>[[Haage & Partner]]</small>
|list2 = [[AmigaOS_versionsAmigaOS versions#AmigaOS 3.5, 3.9|3.5-3.9]]
|group3 = <small>[[Hyperion Entertainment]]</small>
|list3 = [[AmigaOS 4|4.0-4.1]]
Baris 26:
|website = [http://www.amigaos4.com/ AmigaOS 4.0 website], [http://www.amiga.com/ amiga.com]
}}
'''AmigaOS''' adalah [[sistem operasi]] asli default dari komputer pribadi [[Amiga]]. Sistem ini pertama dikembangkan oleh [[Commodore International]], dan awal diperkenalkan pada 1985, yaitu [[Amiga 1000]]. Sistem ini berjalan pada seri [[Motorola]] [[68k]] dari [[microprosessormikroprosesor]] [[16-bit]] dan [[32-bit]], kecuali untuk [[AmigaOS 4]] berjalan pada microprocessormikroprosesor [[PowerPC]].
 
Di puncak [[kernel (ilmu komputer)|kernel]] [[preemptive multitasking]] yakni [[Exec (Amiga)|Exec]], ia melibatkan suatu abstraksi perangkat keras unik Amiga, suatu sistem operasi disket yang disebut ''AmigaDOS'', sebuah sistem berjendela [[ApplicationAntarmuka programmingpemrograman interfaceaplikasi|''API'']] disebut [[Intuition (Amiga)|''Intuition'']] dan dengan [[graphicalantarmuka userpengguna interfacegrafis]] disebut [[Workbench (AmigaOS)|''Workbench'']]. Sebuah [[command line interface]] disebut [[AmigaShell]] juga tersedia dan terintegrasi pada sistem. GUI dan CLI saling melengkapi dan berbagi keistimewaan.
 
Pemegang hak intelektual Amiga terkini adalah [[Amiga Inc]]. Mereka mengambil alih AmigaOS 4, tetapi tidak mengembangkannya sendirian, sebagai gantinya diserahkan kepada Hyperion Entertainment. Pada 26 Desember 2006, Amiga Inc menghentikan lisensi Hyperion untuk meneruskan pengembangan AmigaOS 4. Kepemilikan AmigaOS (khususnya 4.0) masih menyisakan kontroversi dan kini berada di dalam subjek pendakwaan.<ref>{{Cite web |url=http://www.merlancia.us/amiga-hyperion/decmcewenshow_case_doc.pdf |title=Salinan arsip |access-date=2009-04-18 |archive-date=2007-07-08 |archive-url=https://web.archive.org/web/20070708045220/http://www.merlancia.us/amiga-hyperion/decmcewenshow_case_doc.pdf |dead-url=yes }}</ref>
 
== Komponen ==
Baris 37:
=== Kickstart ===
{{main|Kickstart (Amiga)}}
[[Berkas:Amiga kick34.5 askforwb1.3.png|frame|right|Gambar yang ditunjukkan oleh '''Amiga OS 1.x''' saat sistem dimulakan, meminta pengguna untuk memasukkan [[floppy disk]] Workbench.]]
'''Kickstart''' is the [[booting|bootstrap]] ROM. The Kickstart contains the code needed to boot standard Amiga hardware and many of the core components of [[AmigaOS]]. The function of Kickstart is comparable to the [[BIOS]] plus the main [[Microsoft Windows|Windows]] kernel in [[IBM PC compatible]]s. However, Kickstart provides more functionality available at boot time than would be typically expected on PC, for example, the full windowing environment.
 
'''Kickstart''' adalah ROM [[booting|bootstrap]]. Kickstart mengandung kode yang diperlukan untuk menge-boot perangkat keras Amiga standar dan banyak komponen inti AmigaOS. Fungsi Kickstart sebanding dengan [[BIOS]] ditambah kernel [[Microsoft Windows|Windows]] utama di dalam [[IBM PC compatible]]. Namun, Kickstart memberikan fungsionalitas yang lebih banyak pada saat boot daripada yang sejenis yang diharapkan di PC, misalnya, lingkungan penuh jendela.
The Kickstart contained many stock parts of the Amiga's operating system, such as ''[[Exec (Amiga)|Exec]]'', ''[[Intuition (Amiga)|Intuition]]'', the core of ''AmigaDOS'' and functionality to use [[Autoconfig]] expansion hardware. This meant that a powered-on Amiga already had a lot of the essential parts of the operating system available. Later versions of the Kickstart contained drivers for [[Integrated Drive Electronics|IDE]] and [[SCSI]] controllers, [[PC card]] ports and various other hardware that came built into Amigas.
 
Kickstart berisi banyak pasokan sistem operasi Amiga, seperti ''[[Exec (Amiga)|Exec]]'', ''[[Intuition (Amiga)|Intuition]]'', inti ''AmigaDOS'' dan fungsionalitas untuk menggunakan perangkat keras perluasan [[Autoconfig]]. Artinya adalah Amiga yang dinyalakan sudah memiliki banyak bagian penting dari sistem operasi yang tersedia. Versi terbaru Kickstart berisi driver-driver untuk kontroler [[SCSI]] dan [[Integrated Drive Electronics|IDE]], port [[PC card]], dan beraneka perangkat keras lain yang terpaket di dalam Amiga.
Upon start-up or reset the Kickstart performs a number of diagnostic and system checks and then initializes the Amiga [[chipset]] and some core OS components. It will then examine connected boot devices and attempt to boot from the one with the highest boot priority. If no boot device is present a screen will be displayed asking the user to insert a boot disk - typically a floppy disk.
 
Sewaktu start-up atau reset, Kickstart melakukan sejumlah pemeriksaan sistem dan diagnostik, kemudian memulakan [[chipset]] Amiga dan beberapa komponen inti sistem operasi. Kemudian ia akan memeriksa perangkat-perangkat terhubung yang di-boot dan berupaya untuk menge-boot dari yang memiliki prioritas boot tertinggi. Jika tidak ada perangkat boot, maka layar akan menampilkan permintaan kepada pengguna untuk memasukkan sebuah disket boot - biasanya floppy disk.
===Workbench===
{{main|Workbench (AmigaOS)}}
'''Workbench''' is the name given to both the core operating system software that is not stored in the Kickstart ROM (the "Workbench disk"), and also the native graphical [[operating system shell|shell]] for the [[Amiga]] computer. The Workbench environment does not have to be loaded for software to run. In fact, to take over the Amiga hardware and keep all memory and resources to themselves, many games boot directly from Kickstart (using a custom ''[[bootblock]]'' on the [[floppy disk]]).
[[Image:Amiga Workbench 1 3 large.png|thumb|300px|[[Amiga]] [[Workbench (AmigaOS)|Workbench]] 1.3 (1988)]]
As the name suggests, the [[metaphor]] of a [[workbench]] is used, rather than a desktop; directories are depicted as ''drawers'', executable files are ''tools'', data files are ''projects'' and GUI widgets are ''gadgets''. In many other aspects the interface resembles [[Mac OS]], with the main desktop showing icons of inserted disks and hard drive partitions, and a single menu bar at the top of every screen. Unlike the Macintosh, the standard Amiga mouse has two buttons – the right mouse button operates the pull-down menus, with a Macintosh-style "release to select" mechanism.
 
== Referensi ==
A unique feature of Workbench is ''multiple screens''. These are conceptually similar to [[X Window System]] virtual desktops or workspaces, but are generated dynamically by application programs as necessary. Each screen can have a different resolution and colour depth. A gadget in the top-right corner of the screen allows screens to be cycled — as the OS stores all screens in memory simultaneously, redrawing is instantaneous. Screens can also be dragged up and down by their title bars. On older Amigas this functionality was provided by the custom chipsets specially designed for the platform, but since AmigaOS4 a new technique is adopted and the screens are draggable in any direction. Drag and drop between different screens is possible too.
{{reflist}}
 
{{Sistem operasi}}
Underlying the Workbench is the ''Intuition'' windowing system. This controls and draws screens, windows and gadgets, and handles input from the keyboard and mouse, passing messages to programs.
 
[[Kategori:AmigaOS| ]]
==== Workbench 2.0 user interface improvements ====
[[Kategori:Sistem operasi]]
[[Image:Wb 20.png|thumb|300px|[[Amiga]] [[Workbench (AmigaOS)|Workbench]] 2.0 (1991)]]
Until Workbench 2.0, there was no unified [[look and feel]] design standard — application developers had to write their own widgets (both buttons and menus), with Intuition providing minimal support. With Workbench 2.0 came ''gadtools.library'', which provided standard widget sets, and the ''Amiga User Interface Style Guide'', which explained how applications should be laid out for consistency.
 
Workbench 2.0 also added support for ''public screens''. Instead of the Workbench screen being the only shareable screen, applications could create their own named screens to share with other applications.
 
Workbench 2.0 introduced ''[[AmigaGuide]]'', a simple [[hypertext]] markup scheme and browser, for providing online help inside applications. It also introduced ''Installer'', a standard software installation program, driven by a [[LISP]]-like scripting language.
 
Finally, Workbench 2.0 rectified the problem of developers [[hooking]] directly into the input-events stream to capture keyboard and mouse movements, often locking up the whole system. Workbench 2.0 provided ''Commodities'', a standard interface for modifying or scanning input events. This included a standard method for specifying global "hotkey" key-sequences, and a ''Commodities Exchange'' registry for the user to see what commodities were running.
 
==== Workbench 2.1 user interface improvements ====
Workbench 2.1 introduced locale.library and for the first time Workbench was translated to different languages. <ref>{{cite web |url=http://www.amigahistory.co.uk/amigaos21.html|title=Amiga Workbench 2.1|accessdate=2008-11-23}}</ref>
 
=== AmigaDOS ===
{{main|AmigaDOS}}
'''AmigaDOS''' provides the [[disk operating system]] portion of the AmigaOS. This includes [[file system]]s, file and directory manipulation, the [[command-line interface]], file redirection, console windows, and so on.
 
In AmigaOS 1.x, the AmigaDOS portion was based on a [[TRIPOS]] port by [[MetaComCo]], written in [[BCPL]]. Considerable amounts of functionality was only available by interfacing with libraries written in BCPL, which proved a difficult and error-prone task from C and other languages because of BCPL's idiosyncratic pointer mechanism. The original amigados [[command line interpreter|CLI]] utilities written in BCPL also had the disadvantage of occupying a relatively large memory footprint, and ran slower than equivalent C.
 
The third-party ''AmigaDOS Resource Project''<ref>http://uk.aminet.net/misc/antiq/ARP_13.readme</ref> (ARP, formerly the ''AmigaDOS Replacement Project''<ref>ARP is referred to as the AmigaDOS Replacement Project in ARP version 1.1's arpbase.h, available from ftp://ftp.funet.fi/pub/amiga/ancient/ex-amiga-s/archive/</ref>), a project begun by Amiga developer Charlie Heath, replaced many of the BCPL utilities with smaller and often more sophisticated equivalents written in C and assembler, and provided a wrapper library, arp.library, which eliminated the interfacing problems in applications by automatically performing conversions from native pointers (such as those used by C or assembler) to BCPL equivalents and vice versa for all AmigaDOS functions. ARP also provided one of the first standardized [[file dialog|file requester]]s for the Amiga, and introduced the use of more friendly UNIX-style wildcard ([[glob (programming)|globbing]]) functions in command line parameters. Other innovations were an improvement in the range of date formats accepted by commands and the facility to make a command resident, so that it only needs to be loaded into memory once and remains in memory to reduce the cost of loading in subsequent uses.
 
From AmigaOS 2.x onwards, AmigaDOS was rewritten in [[C (programming language)|C]] and [[Assembly language|Assembler]], retaining full 1.x BCPL program compatibility, and incorporated most of ARP into the OS.
 
As from [[AmigaOS 4.0]], the DOS abandoned completely any legacy with BCPL, and starting from [[AmigaOS 4.1]], it has been rewritten with full 64bit support.
 
AmigaDOS has all main features of other DOS in other systems. It allows [[Redirection (computing)|command redirection]], [[Pipeline (Unix)|piping]], scripting ([[batch file|batch programming]]) and has also all sets of commands like '''Echo''', '''If''', '''Then''', '''EndIf''', '''Val''', '''Skip''', etcetera, to deal with structured script programming. Scripts can be marked with "'''S'''" (Script) bit flag, and then executed automatically. ADOS commands featured a simple template help invoking question mark "'''?'''" since 1985 (when command help template was a very rare feature amongst other operating systems). Users can pause the output of a command, and resume it. There is command break function, and Amiga featured its system of protection bits and wildcard characters to indicate with a single command entire groups of data files. Commands could be nested in a single line, and Amiga has command "'''run'''", that if invoked before any other DOS command or productivity program, then runs these executables as separate processes and keeps always free the shell text based console windows for future input. AmigaOS is case insensitive and features a complete system of Global and local [[Variable (programming)|variables]].
 
For more information about Scripting, command output and redirection, etcetera, refer to main article [[AmigaDOS]].
 
==== Syntax of AmigaDOS commands ====
This is an example of typical AmigaDOS command syntax:
 
::{|style="background:transparent"
|rowspan=1 valign=top| <code>AmigaShellPrompt> '''DIR''' Df0:</code>
|-
|
:This shows the content of a directory of a floppy disk and lists directories but without entering the directory tree.
|-
|rowspan=1 valign=top| <code> AmigaShellPrompt> '''DIR''' SYS: OPT A</code>
|-
|
|-
|rowspan=1 valign=top| <code> AmigaShellPrompt> '''DIR''' SYS: ALL</code>
|-
|
:The argument word "'''OPT A'''" or also the argument word "'''ALL'''" show the entire content of a volume or device, entering and expanding all directory tree. "'''Sys:'''" is the obliged name that indicates the boot device, whatever it could be, floppy, hard disk or CD. Note that Amiga uses always the slash character ("'''/'''") in command arguments or also directory paths.
|}
 
==== Conventions of names of devices ====
Partitions and physical drives are typically referred to as '''DF0:''' (floppy drive 0), '''DH0:''' (Device hard disk 0 or '''HD0:''' hard drive 0), etc. However, unlike many operating systems, outside of built-in physical hardware devices like '''DF0:''' or '''HD0:''' the name of the single floppy disks, or the volumes or partition own names are totally arbitrary; for example a hard disk partition could be named '''HARDDISK''' or '''A''', or '''MyDisk''' or any other name when it was partitioned. Volume names then will be recognized as have the same format as device names, so a disk partition on device '''DH0:''' called '''Workbench''' could be accessed either with the name '''DH0:''' or '''Workbench:'''. Note that once the name of the volume was set up, then the system automatically appends a colon character to the name of the partition to indicate it is considered as a device as for example when showing a list of active devices. On the desktop, the name of the device appears right under device icon and without the colon. Users must indicate to the system that "''Workbench''" is a device "'''Workbench:'''" by always typing the colons "''':'''" when they are entering information in a requester form or into AmigaShell command based interface windows. This is mandatory. If the partition is the same that started the boot sequence, it could also be accessed as '''Sys:'''. So there could various ways to indicate and access the partition that made the boot. In addition, virtual volume names could be set with the "assign" command to any directory or device; for example programs often assigned a virtual volume name to their installation directory; an example might be a fictionary worprocessor called '''FooBarWriter''' assigning '''FooBar:''' to '''DH0:Productivity/FooBarWriter'''. This allows for easy relocation of installed programs.
 
==== Conventions of names and typical behaviour of virtual devices ====
The physical device '''DF0:''' share the same floppy drive mechanics with '''PC0:''' that is the CrossDOS virtual device capable to read PC formatted floppy disks. When any PC formatted floppy disk is inserted into the floppy drive, then the Df0: floppy Amiga icon will change to indicate that the disk is unknown for normal Amiga device, and it will show four question marks ''''????'''' as standard "unknown" volume name, while the '''PC0:''' icon will appear revealing the name of the PC formatted disk. Any disk change with Amiga formatted disks will invert this behaviour.
 
==== Filesystems ====
AmigaOS supports various filesystems and variants.
 
First filesystem was simply called [[Amiga Old File System|Amiga FileSystem]], and was suitable mainly for floppy disks, because it did not support automatic booting from hard disks (on floppy, booting was done using code from the bootblock). It was soon replaced by [[Amiga Fast File System|FastFileSystem]], and hence the original filesystem was de facto recognized with the name of "Old" FileSystem. It also was more efficient on space and quite measurably faster, hence the name.
 
With AmigaOS 2, FastFileSystem became an official part of the OS and was soon expanded to recognise cached partitions, international partitions allowing accented characters in file and partition names, and finally (with [[MorphOS]] and [[AmigaOS 4]]) long filenames, up to 108 characters.
 
Both AmigaOS 4 and MorphOS featured a new version of FastFileSystem called FastFileSystem 2. FFS2 incorporated all of the features of the original FFS including, as its author put it, "some minor changes". In order to preserve backwards compatibility, there were no major structural changes. (However, FF2 on [[AmigaOS 4.1]] differs in that it can expand its features and capabilities with the aid of [[plug-ins]]).
 
As with FFS2, the AmigaOS 4 version of Smart FileSystem is a fork of original SFS also adopted by MorphOS, and is not 100% compatible with it.
 
Other filesystems like [[FAT12]], [[FAT16]], [[FAT32]] from Windows or [[ext2]] from Linux are available through system libraries or third party modules or even into [[Aminet]] freeware software repository. MorphOS 2 has built-in support for FAT filesystems.
 
[[AmigaOS 4.1]] adopted a new filesystem called [[JXFS]] capable to support partitions over a Terabyte of size.
 
Alternate filesystems from third party manufacturers include [[Professional File System|Professional FileSystem]] which is a filesystem with an easy structure, based on [[metadata]], allowing high internal coherence, capable to defrag itself on the fly, and do not requires to be unmounted before being mounted again; and [[Smart File System|Smart FileSystem]] which is a very interesting [[journaling]] filesystem which performs journaled activities during system inactivities, and has been chosen by [[MorphOS]] as standard filesystem.
 
===== Official variants of Amiga filesystems =====
'''Old File System''' /'''Fast File System'''
 
*OFS (DOS0)
*FFS (DOS1)
*OFS International (DOS2)
*FFS International (DOS3)
*OFS Directory Caching (DOS4)
*FFS Directory Caching (DOS5)
 
'''Fast File System 2 (AmigaOS4.x/MorphOS)'''
 
*OFS Long filenames (DOS6)
*FFS Long filenames (DOS7)
 
(Both DOS6 and DOS7 feature International filenames featured in DOS2 and DO3, but not Directory Caching, which was abandoned due to bugs in the original implementation. DOS4 and DOS5 are not recommended for use for this reason.)
 
Dostypes are backwards compatible with each other, but not forward compatible. A DOS7 formatted disk cannot be read on original Amiga FFS, and a DOS3 disk cannot be read on a KS1.3 Amiga. However, any disk formatted with DOS0 using FFS or FFS2 can be read by any version of the Amiga operating system. For this reason, DOS0 tended to be the format of choice of software developers distributing on floppy, except where a custom filesystem and bootblock was used - a common practice in Amiga games. Where software needed AmigaOS 2 anyway, DOS3 was generally used.
 
===== FastFileSystem2 Plug-ins =====
With first update of [[AmigaOS 4.0]] in 2007, it has been released the first two plugins for FFS2:
 
*'''fs_plugin_cache''': increments performances of FFS2 by introducing a new method of data buffering.
*'''fs_plugin_encrypt''': data encryption plugin for partitions using [[Blowfish (cipher)|Blowfish]] algorithm.
 
==== Filename Extensions ====
Amiga has only one obliged filename extension for filenames and is "'''.info'''" that is appended as suffix to filenames of icons. If the name of a file is '''myprog''', then '''myprog.info''' is the file containing icons, its position on the desktop (AmigaOS is able to "snapshot" icons in places defined by the user), program metadata such as options and keywords, and other information about the file.
 
There is no mandatory issue in Amiga to identify programs and projects (datafiles) with extensions. Any user can rename files with any suffix. Amiga recognizes executables by using the first sequence of bytes in the binary header of file (magic cookie number), and recognizes datafiles by the icons, or by information again contained in headers. A list of files like "data1", "data2", "data3", etc, will be considered the same even if they have been renamed "data1.lbm, "data2.jpg", "data3.lbm". Amiga will open the correct software these data files depending upon the information contained in its icon, or by using [[Datatypes]] Amiga automatic system for recognizing datafiles based on file headers.
 
=== Graphics ===
Up to version 3, AmigaOS only supported the [[original Amiga chipset|native Amiga graphics chipset]], via ''graphics.library''. This led developers to avoid OS functionality for drawing, and go straight for the underlying hardware. Third-party graphics cards were only supported via unofficial solutions. The ideal situation, where the AmigaOS could directly support any graphics system, was termed ''retargetable graphics'' (RTG) [http://www.amigau.com/aig/amigartg.html]. Release 3.1 included some support for third party graphics cards, such as the Picasso. With AmigaOS 3.5, some RTG systems were bundled with the OS, allowing the use of common hardware cards other than the native Amiga chipsets. The main RTG systems are [[CyberGraphX]], [[Picasso 96]] and [[EGS]].
 
The Amiga did not have any official [[3D graphics]] capability, so it had no standard 3D graphics interface. Graphics card manufacturers provided their own standards, which include [[MiniGL]], [[Warp3D]], Storm[[Mesa 3D|Mesa]] (''agl.library'') and [[CyberGL]].
 
The Amiga was born at a time when there was almost no concept of 3D graphics libraries to enhance desktop GUIs and computer rendering capabilities but, thanks to its graphic capabilities, the Amiga was one of the first widespread 3D development platforms. [[VideoScape 3D]] was one of the earliest 3D rendering & animation systems, as well as [[TrueSpace]] 3D. Then Amiga lead the 3D software market for years with software like [[Imagine (3D modeling software)|Imagine]] and NewTek's [[Lightwave]] (used to render television shows like Babylon 5).
 
Likewise, while the Amiga is well known for its ability to easily [[genlock]] with video, it has no built-in [[video capture]] interface. In its golden age, the Amiga supported a vast market of third-party interfaces for video capture from American and European manufacturers. There were internal and external hardware solutions, called frame grabbers, for capturing individual or sequences of video frames, including: [[Newtronic]] Videon, [[Newtek]] DigiView [http://www.newtek.com/newtek/milestones.php], Graffiti external 24bit [[framebuffer]], the [[Digilab]], the [[Videocruncher]], [[Firecracker 24]], Vidi Amiga 12, Vidi Amiga 24bit and 24RT (Real Time), Newtek [[Video Toaster]], [[Great Valley Products|GVP]] [[Impact Vision IV24]], Macrosystem [[VLab Motion]] and [[VLab PAR]], DPS [[Personal Animation Recorder|PAR]] (Personal Animation Recorder), [[VHI (Video Hardware Interface)]] by IOSPIRIT GmbH, [[DVE-10]], etc. Some solutions were hardware plug-ins for Amiga graphic cards like the [[Merlin XCalibur]] module, or the DV module built for the Amiga clone [[Draco]] from the German firm Macrosystem. Modern [[Peripheral Component Interconnect|PCI]] bus TV expansion cards and their capture interfaces are supported through ''tv.library'' by Elbox Computer and ''tvcard.library'' by Guido Mersmann.
 
Amiga graphic engines and graphic widget libraries are [[ReAction GUI]], used in AmigaOS 3.9 and 4.0, [[Magic User Interface|MUI]] (Magical User Interface) used in all Amiga systems and natively in [[MorphOS]] as standard graphic engine, and [[Cygnix]] that provides Amiga with a full Unix/Linux [[X11]] compatible graphic environment. Some vector graphic libraries, like [[Cairo (graphics)|Cairo]] and [[Anti-Grain Geometry]] are also available.
 
All modern Amiga systems have made large use of cross-platform [[Simple DirectMedia Layer|SDL]] (simple DirectMedia Layer) engine for games and other multimedia programs.
 
==== 3D Accelerated GUIs ====
Following modern trends in evolution of graphical interfaces [[AmigaOS 4.1]] uses [[Cairo (graphics)|Cairo]] 2D vector based interface integrated with 3D hardware accelerated [[Alpha compositing|Porter-Duff]] image composition engine, while its counterpart and competitor [[MorphOS|MorphOS 2]] features 3D layers, a complete 3D GUI based on a subset of [[OpenGL]].
 
===Audio===
Up to version 3.1, AmigaOS only supported the original Amiga chipset's sound capabilities, via ''audio.device''. Support for third-party audio cards was vendor-dependent, until the creation and adoption of [[AHI (Amiga)|AHI]] [http://www.lysator.liu.se/ahi/] as a de facto standard. AmigaOS itself did not support [[MIDI]] until 3.1 when Roger Dannenberg's [[Commodore Amiga MIDI Driver|camd.library]] was adapted as the standard MIDI API. Commodore's version of camd.library also included a built in driver for the serial port. The later open source version of camd.library by Kjetil Matheussen did not provide a built in driver for the serial port, but provided an external driver instead.
 
====Speech synthesis====<!-- This section is linked from [[Speech synthesis]] -->
The original Amiga was launched with [[speech synthesis]] software, developed by Softvoice, Inc. [http://www.text2speech.com/#aboutsv] This could be broken into three main components: ''narrator.device'', which could play and modulate all [[phoneme]]s used in [[American English]], ''translator.library'', which could translate English text to American English phonemes, and the ''SPEAK:'' handler, which command-line users could redirect output to, to have it spoken.
 
In the original 1.x releases, a ''Say'' program in Utilities and a basic demo was also included with [[AmigaBASIC]] programming examples.
 
The speech synthesiser was occasionally used in third-party programs, often educational software. The word processors Prowrite and Excellence! could read out documents using the synthesiser.
 
Despite the limitation on the ''narrator.device'''s phonemes, Francesco Devitt wrote a new version of ''translator.library'' which could translate any language to phonemes, given a set of rules for that language, and thus provided multilingual speech synthesis. [http://uk.aminet.net/util/libs/translator42.readme]
 
Workbench 2.0 was the last release with speech synthesis support. The speech synthesis software was dropped from the 2.1 release onward.<ref>{{cite web |url=http://www.amigahistory.co.uk/amigaos21.html|title=Amiga Workbench 2.1|accessdate=2008-11-23}}</ref>
 
===ARexx===
{{main|ARexx}}
The Amiga OS has support for the [[Rexx]] language, called ARexx (short for "Amiga Rexx"), and is a script language which allows for full OS scripting, similar to [[AppleScript]], intra-application scripting, similar to [[Visual Basic for Applications|VBA]] in [[Microsoft Office]], as well as inter-program communication. Having a single scripting language for any application on the operating system is beneficial to users, instead of having to learn a new language for each application.
 
Programs can listen on an "ARexx port" for string messages. These messages can then be interpreted by the program in a similar fashion to a user pushing buttons. For example, an ARexx script run in an e-mail program could save the currently displayed email, invoke an external program which could extract and process information, and then invoke a viewer program. This allows applications to control other applications by sending data back and forth directly with memory handles instead of saving files to disk and then reloading.
 
===RAM disk===
The Amiga OS has a dynamically-sized RAM disk, which resizes itself automatically to its contents. Starting with AmigaOS 2.x, operating System configuration files were loaded into the RAM disk on boot, greatly speeding operating system usage. Other files could be copied to the RAM disk like any standard device for quick modification and retrieval. Also beginning in AmigaOS 2.x, the RAM disk supported file-change notification, which was mostly used to monitor prefs files for changes.
 
====RAD====
The Amiga OS also has support for a fixed-capacity recoverable RAM disk, which functions as a standard RAM disk, but can maintain its contents on soft restart. It is commonly called the RAD disk, and it can be used as a boot disk (with boot sector).
 
==Technical overview==
[[John C. Dvorak]] stated in 1996:
{{quotation|The AmigaOS "remains one of the great operating systems of the past 20 years, incorporating a small kernel and tremendous [[multitasking]] capabilities the likes of which have only recently been developed in [[OS/2]] and [[Windows NT]]. The biggest difference is that the AmigaOS could operate fully and multitask in as little as 250 K of address space. Even today, the OS is only about 1MB in size. And to this day, there is very little a memory-hogging CD-ROM-loading OS can do the Amiga can't. Tight code — there's nothing like it.<br>
I've had an Amiga for maybe a decade. It's the single most reliable piece of equipment I've ever owned. It's amazing! You can easily understand why so many fanatics are out there wondering why they are alone in their love of the thing. The Amiga continues to inspire a vibrant — albeit cultlike — community, not unlike that which you have with Linux, the Unix clone."<ref>From PC Magazine, October 22, 1996
Inside Track
By John C. Dvorak</ref>}}
 
===Libraries and devices===
The main [[modularity (programming)|modularisation]] technique in AmigaOS is based on [[library (computer science)|dynamically-loaded shared libraries]], either stored as a file on disk with a "<code>.library</code>" filename extension, or stored in the [[#Kickstart|Kickstart]] ROM. All libraries functions are accessed via an indirect [[jump table]], which is a negative offset to the library base pointer. That way, every library function can be [[patch (computing)|patched]] or [[hooking|hooked]] at run-time, even if the library is stored in ROM.
 
The most important library in AmigaOS is ''exec.library'' ([[Exec (Amiga)|Exec]]), which can be considered a [[microkernel]], as well as a library. It acts as a [[scheduling (computing)|scheduler]] for tasks running on the system, providing [[pre-emptive multitasking]] with prioritised [[round-robin scheduling]]. Exec also provides access to other libraries and high-level [[inter-process communication]] via [[message passing]]. (Other microkernels have had performance problems because of the need to copy messages between address spaces. Since the Amiga has only one address space, Exec message passing is quite efficient.) The only fixed memory address in the Amiga software (address 4) is a pointer to ''exec.library'', which can then be used to access other libraries. Exec was designed and implemented by [[Carl Sassenrath]].
 
Unlike traditional operating systems, the exec kernel does not run "privileged". Contemporary operating systems for the 68000 such as [[Atari TOS]] and [[SunOS]] used [[exception handling|trap]] instructions for invoking kernel functions. This made the kernel functions run in the 68000's ''supervisor mode'', while user software ran in the unprivileged ''user mode''. By contrast, exec function calls are made with the library jump table, and the kernel code normally executes in user mode. Whenever supervisor mode is needed, either by the kernel or user programs, the library functions Supervisor() or SuperState() are used.
 
[[Device driver]]s are also libraries, but they implement a standardised interface. Applications do not usually call devices directly as libraries, but use the ''exec.library'' I/O functions to indirectly access them. Like libraries, devices are either files on disk (with the "<code>.device</code>" extension), or stored in the Kickstart ROM.
 
===Handlers, AmigaDOS and filesystems===
The higher-level part of device and resource management is controlled by ''handlers'', which are not libraries, but [[Task (computers)|tasks]], and communicate by passing messages.
 
One important type of handler is a [[filesystem]] handler. The AmigaOS can make use of any filesystem for which a handler has been written, a possibility that has been exploited by programs like [[CrossDOS]] and by a few "alternative" file systems to the standard [[Amiga Old File System|OFS]] and [[Amiga Fast File System|FFS]]. These file systems allow one to add new features like [[journaling file system|journaling]] or [[file privilege]]s, which aren't found in the standard operating system.
 
Handlers typically expose a ''device name'' to the [[disk operating system|DOS]], which can be used to access the peripheral (if any) associated with the handler.
 
As an example of these concepts, the ''SPEAK: handler'' can have text sent to it. The handler makes use of ''translator.library'', which converts text into [[phoneme]]s, then it writes the phonemes to ''narrator.device'', which translates the phonemes into intoned speech samples and itself uses ''audio.device'' to play them through the Amiga's audio hardware.
 
Device names are [[case sensitivity|case insensitive]] (uppercase by convention) strings followed by a [[colon (punctuation)|colon]]. After the colon a ''specifier'' can be added, which gives the handler additional information about ''what'' is being accessed and ''how''. In the case of filesystem, the specifier usually consists of a [[path (computing)|path]] to a file in the filesystem; for other handlers, specifiers usually set characteristics of the desired input/output channel (for the ''SER:'' serial port driver, for example, the specifier will contain [[bit rate]], [[Asynchronous start-stop|start and stop bits]], etc).
 
Filesystems expose ''drive names'' as their device names. For example, ''DF0:'' by default refers to the first floppy drive in the system. On many systems ''DH0:'' is used to refer to the first hard drive.
 
Filesystems also expose ''volume names'', following the same syntax as device names: these identify the specific medium in the file system-managed drive. If ''DF0:'' contains a disk named "Workbench", then ''Workbench:'' will be a volume name that can be used to access files in ''DF0:''.
 
If one wanted to access a file named "Amp" located in directory "Win" of the disk with name "Work" in drive ''DF0:'', one could write
DF0:Win/Amp
or
Work:Win/Amp
However, these are not completely equivalent, since when the latter form is used, the system knows that the wanted volume '''is''' "Work" and not just any volume in ''DF0:''. Therefore, whenever a requested file on "Work" is being accessed without volume "Work" being present in any drive, it will say something to the effect of:
Please insert volume Work in any drive
 
[[Computer program|Programs]] often need to access files without knowing their physical location (either the drive or the volume): they only know the "logical path" of the file, i.e. whether the file is a library, a documentation file, a translation of the program's messages, etc.
 
This is solved in AmigaOS by the use of ''assigns''. An assign follows, again, the same syntax as a device name; however, it already points to a directory inside the filesystem. The place an assign points to can be changed at any time by the user. Standard assigns that are generally present in an AmigaOS system include
* ''SYS:'', which points to the boot drive's root directory.
* ''C:'', which points to a directory containing shell commands. At boot time, this is SYS:C, if it exists, otherwise SYS:. The [[Path (computing)#PATH_variable|command path]] defaults to C: and the current working directory, so putting executables in C: allows them to be executed simply by typing their name.
* ''DEVS:'', which points to a directory containing the system's devices. At boot time, this is SYS:Devs if that directory exists, otherwise SYS:.
* ''L:'', which points to a directory containing AmigaDOS handlers and filesystems. At boot time, this is SYS:L if it exists, otherwise L: is not automatically created.
* ''LIBS:'', which points to a directory containing the system's libraries. At boot time, this is SYS:Libs if that directory exists, otherwise SYS:.
* ''S:'', which points to a directory with scripts, including the <tt>startup-sequence</tt> which is executed automatically at boot time, if it exists. At boot time, this is SYS:S if it exists, otherwise S: is not automatically created.
* ''PROGDIR:'', a special assign that always points to the directory containing the currently running executable. So, if you run "SYS:Tools/Multiview" and "SYS:System/Format", PROGDIR: points at SYS:Tools for Multiview while simultaneously pointing at SYS:System for the Format command. This feature was introduced in Workbench 2.0.
 
===Paging Memory and Swap Partition===
[[AmigaOS 4.0]] "final update" revision introduced a new intelligent system for allocating RAM and defragmenting it "on the fly" during system inactivities. It is based on [[Slab allocation|slab allocation method]] and there is also present a [[memory pager]] that arbitrates paging memory and thus now allows also on AmigaOS (like in other systems) the swapping of large portions of physical RAM memory on mass storage devices as a sort of [[virtual memory]].<ref>{{cite web
|url=http://os4.hyperion-entertainment.biz/index.php%3Foption=content&task=view&id=22&Itemid=.html
|title=AmigaOS4.0 Memory Allocation
|author=Frieden brothers
|publisher=[[Hyperion Entertainment]]
|date=2007
|accessdate=2008-11-02
}}</ref>
<ref>{{cite web
|url=http://os4.hyperion-entertainment.biz/index.php%3Foption=content&task=view&id=23&Itemid=.html
|title=AmigaOS 4.0 new memory system revisited
|author=Frieden brothers
|publisher=[[Hyperion Entertainment]]
|date=2007
|accessdate=2008-11-02
}}</ref>
[[Paging]] was then tested by developers and finally implemented in [[AmigaOS 4.1]]. [[AmigaOS 4.0]] handles physical RAM with a [[Buddy memory allocation|Buddy System]] algorithm.
 
[[AmigaOS 4.1]] introduced the option of creating a single Swap partition of any desired size which is formatted as standalone partition during the initial installation of the OS. Swap memory is automatically used when, even after a RAM defragmentation, the system still requires more memory. Swap memory can be activated and deactivated with a simple option button in '''Preferences''' in AmigaOS System allowing the user to choose at any time to use only physical RAM.
 
==AmigaOS influence on other operating systems==
[[Image:AmigaOS.svg|thumb|AmigaOS and clones]]
AmigaOS has spawned at least two "clone" operating systems over time.
 
* '''[[AROS Research Operating System]]''' (AROS) is an attempt to clone the AmigaOS API in a portable open-source operating system. Although not binary compatible with AmigaOS (unless running on 68k), users have reported it to be highly source code compatible.
 
* '''[[MorphOS]]''' is a PowerPC native operating system, originally created when the future of the Amiga looked uncertain. It provides binary compatibility with "OS-friendly" AmigaOS applications (that is, those applications which do not access any native, legacy Amiga hardware directly). A version which runs on Commodore Amigas with PPC accelerator cards has been released.
 
* Although not strictly Amiga related, a fork of the [[FreeBSD]] 4.8 release, called '''[[DragonFly BSD]]''', has been created by a former FreeBSD developer and Amiga programmer [[Matt Dillon (computer scientist)|Matt Dillon]]. DragonFly BSD aims to make the FreeBSD kernel more like AmigaOS architecturally, featuring message-passing in the kernel and allowing for very efficient and virtually [[Mutual exclusion|mutex]]-free [[symmetric multiprocessing|SMP]] support.
 
*'''[[BeOS]]''' features also a centralized structure supporting Datatypes, which is a direct inheritance from the same Amiga original solution which allow the entire OS to recognize all kind of files (text, music, videos, documents, etc.) with standard file descriptors. Datatype system provides entire system and any productivity tools with standard loaders and savers for these files, without having the necessity to embed multiple file loading capabilities into any single program.
 
* '''[[AtheOS]]''' was inspired by AmigaOS, and originally intended to be a clone of AmigaOS.<ref>{{citeweb
|url=http://ann.lu/comments2.cgi?view=0957529072&category=news&start=1&37
|title=AtheOS comments
|publisher=ANN.lu
|date=2000-05-05
|accessdate=2008-12-01 }}</ref> [[Syllable (operating system)|Syllable]] is a fork of AtheOS, and includes some AmigaOS and [[BeOS]] like qualities.
 
* The operating system of the [[3DO Interactive Multiplayer]] bore a very strong resemblance to AmigaOS, and was developed by [[RJ Mical]],<ref>[http://www.mical.org/workhistory/ Mical Page<!-- Bot generated title -->]</ref> the creator of the Amiga's [[Intuition (Amiga)|Intuition]] user interface.<ref>[http://arstechnica.com/articles/culture/a-history-of-the-amiga-part-3.ars/3 A history of the Amiga, part 3: The first prototype: Page 3<!-- Bot generated title -->]</ref>
 
==Easter eggs==
Some versions of AmigaOS included [[copyright]] messages as [[Easter egg (virtual)|Easter eggs]] that required some trickery to access.
* In version 1.x, by holding down both Shift keys and both [[Alt key]]s and pressing the function keys F1 through F10, you could see copyright messages in the title bar. As an example, pressing F10 resulted in the message "Moral support: [[Joe Pillow and the Dancing Fools]]". "Joe Pillow" was the name used to book a seat on a flight which was used to transport a prototype Amiga computer to a computer trade show <ref>Article about Joe Pillow on AmigaU http://www.amigau.com/aig/pillow.html</ref>.
* In versions 2.x and 3.0, the secret message was accessed by repeatedly selecting the "About..." option from the Workbench menu, and leaving the resulting [[dialog box]] open. When there were enough (approximately 20) dialog boxes open at the same time, the next one had a secret message instead of the normal one. In version 3.1 the secret message was openly integrated into the "About..." dialog box.
* The Amiga 1000 Kickstart floppy diskette master for AmigaDOS 1.0 was not erased prior to duplication, and contains the remnants of various source code and header text files on the disk.
 
==References==
{{Reflist|2}}
 
==See also==
*[[AmigaOS versions]]
*[[AmigaOS 4]]
*[[AROS]]
*[[Comparison of operating systems]]
*[[MorphOS]]
 
==External links==
*[http://os4.hyperion-entertainment.biz/ Official AmigaOS 4 homepage]
*[http://arstechnica.com/reviews/os/amiga.ars AmigaOS4 PreRelease Update 1 review]
*[http://www.intuitionbase.com/static.php?section=en_upd4-first_impress AmigaOS4 PreRelease Update 4 first impressions]
*[http://os.amigaworld.de/index.php?lang=en AmigaOS Support homepage]
*[http://www.gregdonner.org/workbench The Workbench Nostalgia Page] – Very detailed information on all known versions of AmigaOS.
*[http://www.amigahistory.co.uk/ Amiga History Guide]
*[http://www.amigascene.nl AmigaScene.nl] - Information about Workbench GUI concepts and other Amiga / AmigaOne related material (Dutch)
*[http://gega.homelinux.net/AmigaDevDocs/ Reference Library]
*[http://UtilityBase.com/ Development site dedicated to Amiga systems]
*[http://www.amigaworld.net/ Amiga user community portal]
*[http://amiga.sourceforge.net/amigadevhelp/ Amiga Developer Help Site]
*[http://os4depot.net AmigaOS4 Free Files Archive]
*[http://www.aminet.net/ Aminet – Amiga OS all versions/MorphOS Free Files Archive]
*[http://amiga.sourceforge.net/ Amiga.sf] Compendium of OpenSource ported software for AmigaOS
*[http://wandel.ca/homepage/execdis/ Amiga Disassemblies] including a commented disassembly of the Amiga Exec multitasker
*[http://wigilius.se/amiga/ Famous Amiga Uses]
 
{{AmigaOS}}
{{Amiga hardware}}
{{Amiga companies}}
{{Operating System}}
 
[[Category:AmigaOS|*AmigaOS]]
[[Category:CBM software]]
 
[[ar:أميغا أو إس]]
[[bs:Amiga OS]]
[[ca:AmigaOS]]
[[cs:AmigaOS]]
[[da:AmigaOS]]
[[de:AmigaOS]]
[[en:AmigaOS]]
[[es:AmigaOS]]
[[eo:AmigaOS]]
[[fr:AmigaOS]]
[[gl:AmigaOS]]
[[ko:아미가OS]]
[[hr:AmigaOS]]
[[ilo:AmigaOS]]
[[it:AmigaOS]]
[[lt:AmigaOS]]
[[nl:AmigaOS]]
[[ja:AmigaOS]]
[[pl:AmigaOS]]
[[pt:AmigaOS]]
[[ru:AmigaOS]]
[[sv:AmigaOS]]
[[tr:AmigaOS]]
[[uk:AmigaOS]]