Aros/Developer/Docs

From Wikibooks, the open-content textbooks collection

< Aros
Jump to: navigation, search
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

Contents

[edit] A technical overview of AROS

AROS

[edit] Self Compile Project

Compiling AROS on AROS

[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

Library Overview

     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

  1. AROS Application Packages
  2. AHI Audio Drivers - Usage/Development
  3. AROSTCP Sana2 Network Interface Drivers - Usage/Development
  4. gfx.hidd/cybergraphics Video Drivers - Usage/Development
  5. IO Device Drivers - Usage/Development
  6. USB Device Drivers - Usage/Development
  7. 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

[edit] Maintainer Documentation

AROS Maintainer Docs

Personal tools
Create a book