Aros/Developer/Docs
From Wikibooks, the open-content textbooks collection
| Navbar for the Aros wikibook
|
| Aros User Docs |
| Aros User FAQs |
| Aros Developer Docs |
| Aros Developer BuildSystem |
| The Zune IDE |
| Zune for beginners |
| Aros Developer - Hello World |
| Specific platforms |
| Aros 68k Support |
| Aros PPC Support |
| Aros *nix Installing |
| Aros *nix Support |
| Aros x86 Installing |
| Aros x86 Support |
| misc |
| Aros on wikipedia |
| Aros Public License |
[edit] A technical overview of AROS
[edit] Self Compile Project
[edit] The AROS Public License - and what does it mean?
AROS and its Source code are released under "APL" - The AROS Public License found here
It is written to allow the use of AROS code in other open source or commercial projects without exception.
AROS is a research operating system, and while all contributions to the code are welcome, please remember this.
There are "3rd" party applications used by AROS that do not fall under this license, which are included with the distribution for convenience. The code for such applications resides under the "Contrib" source folder.
[edit] AROS/AmigaOS APIs and Documentation
[edit] System Libraries
exec.library
dos.library
graphics.library
intuition.library
utility.library
expansion.library
aros.library
layers.library
oop.library
workbench.library
gadtools.library
asl.library
diskfont.library
icon.library
muimaster.library
locale.library
iffparse.library
cybergraphics.library
keymap.library
datatypes.library
regina.library
rexxsyslib.library
mathieeesingbas.library
[edit] Zune - AROS' GUI system
Zune is the preferred GUI to use under AROS. Significant effort is being made to firstly complete the implementation, and secondly - get all the standard AROS Applications using consistent Zune powered interfaces.
Documentation to using Zune can be found HERE
[edit] Devices
Device Overview
[edit] HIDDs
HIDD Overview
The HIDD system is broken up into a collection of classes with a strict inheritance
hierarchy. A HIDD class implements a device driver for a single device or in rare
cases a group of devices and provides an interface for other programs and devices
to access.
In order to maintain portability of interfaces across a wide range of hardware this
interface will in general not present the raw interface to the underlying hardware.
Instead it will present a generic interface that describes many different hardware
implementations. This allows for the best reuse of both interfaces and code.
hiddclass.hidd
graphics.hidd
vesagfx.hidd
ati.hidd
nvidia.hidd
kbd.hidd
mouse.hidd
irq.hidd
pci.hidd
pcipc.hidd
serial.hidd
[edit] AROS Subsystems
- AROS Application Packages
- AHI Audio Drivers - Usage/Development
- AROSTCP Sana2 Network Interface Drivers - Usage/Development
- gfx.hidd/cybergraphics Video Drivers - Usage/Development
- IO Device Drivers - Usage/Development
- USB Device Drivers - Usage/Development
- PCI Device Drivers - Usage/Development
[edit] The Developer Environment
N.B: Most tools are still under development!
On single partition systems, and the Boot ISO, the AROS Developer environment is installed under "SYS:Development/".
Systems with multiple partitions - such as a Work: partition - tend to install it to there instead, however it may be installed manually to any location. Please remember though that you will need to correct the Development packages 'install location' env variable to point to the new locations root.
Currently, the developer environment consists of the following software components.
GNU GCC 3.3.1
GNU BinUtils
GNU Fileutils 4.1
GNU Textutils
if you have SVN access, and/or have obtained the source - you can compile the current build tools/environment using:
> make development
[edit] Software Development for AROS
[edit] Programming languages
Apart from 'The Developer Environment', which primarily supports C/C++ code, there are other programming languages available for AROS:
Lua, E, Python, AmigaOS shell scripting, REXX (through Regina, AROS' ARexx implementation)
[edit] Beginners Tutorials
Beginners' complete examples/tutorials of how to code software for AROS.
N.b: For the purposes of this tutorial, all examples are in C or C++.
* 'Hello World' - an old favourite, showing the basic steps of writing code, compiling, and executing
Lots of example code can be found inside AROS itself: download the 'source' and 'contrib-source' archives from www.aros.org, and study the AROS applications source code, e.g. the test programs' (in AROS' System:Tests folder) sources located in the 'test' folder of the 'source' archive.
[edit] Compiling C/C++ Code
[edit] Available compilers
Native compilers (namely GCC) are supplied with the Developer Environment.
Another option is to use cross-compilers for Linux. In order to do that, you have to compile AROS yourself. Download AROS source and contrib archives. Compile AROS by entering the main archives' directory, type './configure', and 'make'. (More on compiling AROS) The result will be a basic AROS system without development tools.
When done, type 'make gnu-contrib-crosstools', creating the crosscompilers in ./bin/linux-i386/tools with names 'i386-aros-gcc' and 'i386-aros-g++'.
If you want to compile native compilers (the Developer Environment), type 'make contrib-gnu-gcc', creating native compilers in AROS' System:Development/bin directory.
Note: Currently, to make the cross compilers usable copy 'collect-aros' from tools/ to tools/bin. At the moment the cross compilers if used from the linux command line will only find it when it's there.
[edit] Compiling under AROS as part of the build system
[edit] Compiling under AROS without the help of the build system
[edit] Writing CLI (shell) Applications
ANSI-C(++) and shell-only applications.
[edit] Using AROS resources/system components
How to use AROS specific libraries, GUI toolkits, etc.
* Writing Wanderer Applications. * Using Intuition for basic windows SimpleWindowIntuition * Using the ZUNE GUI Environment
[edit] Other resources/components available
* SDL * GTK through MUI-GTK (MUI/Zune implementation of GTK) * Cairo
Please see Porting software from other platforms on this subject, too.
[edit] Documentation, Reference, and getting help
Apart from this wikibook, documentation and help can be obtained from the following sources:
* utilitybase.com - Amiga related API reference, forum, articles * aros-exec.org - forum, news
As AROS is C-API compatible to AmigaOS, the majority of information on programming C on the Amiga applies to AROS, too.
[edit] Debugging Code
[edit] How to use gdb with AROS/hosted
Download AROS sources (AROS-xxxxxxxx-source.tar.bz2, where xxxxxxxx is the current date) from www.aros.org
Untar-bzip2 and cd to the unpacked archive directory.
> tar -xvjf AROS-xxxxxxxx-source.tar.bz2 > cd AROS-xxxxxxxx-source
Make sure you have the correct locale setting, otherwise compilation will fail at some point. See here (or link below) for more on that. You might have to enter this:
> export LANG="en_US.ISO-8859-1"
Configure and make with gdb support:
> ./configure --enable-debug=all > make
See here for more on compiling AROS, including more --enable-debug options: http://aros.sourceforge.net/documentation/developers/compiling.php
Compilation will take some time. The result will be AROS Linux hosted with gdb debugging enabled.
When finished, enter bin/linux-i386/AROS directory inside the unpacked archive directory.
> cd bin/linux-i386/AROS
Run AROS (here: with 128MB of memory) from gdb:
> gdb --args aros -m 128 (gdb) r
Next, compile your program with gdb support.
[edit] Other debugging tools for AROS
(Sashimi, Snoopy, ...)
[edit] The AROS build system
The Build system Documentation is Here
[edit] Status of AROS implementation
While AROS appears and feels almost feature complete, it is still missing a number of functions from the Amiga API - as well as implementations of core functionality. There are also a number of user applications that, while not strictly part of the AmigaOS 3.1 environment, need to be written.
The current detailed status of AROS completion can be monitored on aros.org's Status of AROS implementation page. Developer activities can be monitored at ohloh
[edit] Bounties
To help inspire developers with both ideas and monetary incentives, rewards are offered for the successful completion of "bounties" (requests for missing/new functionality) via The TeamAROS Bounty page

