BeOS API
Encyclopedia
The BeOS API, often called the Be API after Be Inc.
Be Inc.
Be Incorporated was an American computer company founded in 1990, best known for the Be Operating System and BeBox personal computer. Be was founded by former Apple Computer executive Jean-Louis Gassée with capital from Seymour Cray....

, is the application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 required to write graphical native applications on BeOS
BeOS
BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing...

, and hence its derivatives such as ZETA and Haiku
Haiku (operating system)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....

.

The API is divided into a number of "kits", which collect related classes together and bear some relation to the library which contains the supporting code.

It is almost entirely C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, with third-party bindings for most classes in Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 and a tiny subset of classes, mostly Storage kit related, in Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

.

Application Kit

The Application kit contains the basic classes required to launch a BeOS application, as well as support for the global clipboard
Clipboard
A clipboard is a thin, rigid board with a clip at the top for holding paper in place. A clipboard is typically used to support paper with one hand while writing on it with the other, especially when other writing surfaces are not available.-Other uses:...

, inter-application and internal messaging, timers, rosters and other functions seen as required to support any graphical application. Application kit classes are supported by libbe.so

Storage Kit

The Storage kit provides methods for manipulating files from creating and managing symlinks all the way to the file open/save panels for graphical applications, as well as dealing with Be File System
Be File System
The Be File System is the native file system for the BeOS....

 attributes. Storage kit classes are mostly in libtracker.so, Tracker
OpenTracker
OpenTracker is the open source version of the Tracker file manager for BeOS-compatible operating systems.Be Inc. developed the original Tracker for their operating system, BeOS. In 2000, prior to selling all of their assets to Palm, Inc., Be Inc. open-sourced some of their software, including Tracker...

 being the native file manager on the OS.

Interface Kit

The Interface kit provides a large collection of widget
Widget (computing)
In computer programming, a widget is an element of a graphical user interface that displays an information arrangement changeable by the user, such as a window or a text box. The defining characteristic of a widget is to provide a single interaction point for the direct manipulation of a given...

s for building graphical applications from the main window class down to dialogue boxes, including font handling and rendering
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

 control. The majority of libbe.so comprises this kit.

Kernel Kit

The Kernel kit provides threading
Thread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

, semaphore
Semaphore (programming)
In computer science, a semaphore is a variable or abstract data type that provides a simple but useful abstraction for controlling access by multiple processes to a common resource in a parallel programming environment....

s and the ability to access system information, and is also in libbe.so

Support Kit

The Support kit provides more advanced functions which do not readily fall into another kit, such as assisted memory allocation and list support.

Network Kit

The Network kit provides either a rudimentary (BeOS R5
BeOS R5
BeOS R5 is the final version of BeOS from Be Inc.. It was released in March 2000, and came in two varieties: Professional and Personal.R5 was the 4th major release of BeOS for a public audience, and the 6th since it left developer-only stages. It changed only slightly from the previous release,...

 and lower) or almost complete (BeOS Dano
Dano (BeOS)
BeOS R5.1d0 or Dano/EXP is the build codename and most commonly used name to refer to a leaked R5.1 prerelease of the Be Operating System. Dano's build date is 15 November 2001, the day of Be Inc.'s closure...

 and higher) implementation of Berkeley sockets
Berkeley sockets
The Berkeley sockets application programming interface comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly for communications across a computer network....

 and BIND
BIND
BIND , or named , is the most widely used DNS software on the Internet.On Unix-like operating systems it is the de facto standard.Originally written by four graduate students at the Computer Systems Research Group at the University of California, Berkeley , the name originates as an acronym from...

 as well as "native" functions based on the Nettle C++ networking library. libnet.so provides the Berkeley sockets on R5, later replaced by the more common libsocket/libbind.so nomenclature; and libnetapi on R5, later replaced by libbnetapi provides the modified version of Nettle.

Mail Kit

The Mail kit provides a native email format as well as a way to use the system to fetch and receive email using standard protocols (POP3 and SMTP). The Mail kit is supported in libmail.so

Translation Kit

The Translation kit provides a method whereby both images and plain text formats are handled by addons allowing applications to support only one format, a native intermediate one, and save/load to any addon-supported format. The API also allows video and audio translation through the library, although this was superseded by BeOS R4 and immediately disabled. The Translation kit is supported in libtranslation.so

Media Kit

The Media kit provides an audio and video input/output abstraction layer based on pluggable addons, as well as handling sound mixing, audio and video format translation and other media related functions. Media kit functions are supported by libmedia.so

MIDI Kit

The MIDI kit provides MIDI hardware input and output abstraction as well as a software synthesiser (provided by Headspace
Headspace
In firearms, headspace is the distance measured from the part of the chamber that stops forward motion of the cartridge to the face of the bolt. Used as a verb, headspace refers to the interference created between this part of the chamber and the feature of the cartridge that achieves the correct...

) in BeOS R5). libmidi.so provides the old, BeOS R3 era MIDI API, libmidi2.so provides the R4+ API.

Game Kit

The Game kit provides a number of sound formats suited to computer game audio output, as well as the ability to run full-screen applications and use video overlays.

OpenGL Kit

The OpenGL kit provides an implementation of OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 as well as supporting classes to allow its use in native applications. In BeOS R5, the supported OpenGL version was 1.1, and was software accelerated, although the kit was hardware-neutral, and in fact outperformed many hardware implementations that were running on competing platforms which could not deliver similar latency/bandwidth performance due to underlying inefficiencies in their design or implementation http://web.archive.org/web/20010202233200/http://www.benews.com/story/3587.

Device Kit

The Device kit provides platform-abstracted direct hardware access to serial and parallel ports, as well as the BeBox
BeBox
The BeBox was a short-lived dual processor personal computer, offered by Be Inc. to run the company's own operating system, BeOS. Notable aspects of the system include its CPU configuration, I/O board with "GeekPort", and "Blinkenlights" on the front bezel....

s infamous GeekPort.

Non-BeOS implementations

The majority of the Be API has been reimplemented by Haiku
Haiku (operating system)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....

 for their opensource BeOS replacement, although in an effort to catch up with the intervening years since BeOS R5
BeOS R5
BeOS R5 is the final version of BeOS from Be Inc.. It was released in March 2000, and came in two varieties: Professional and Personal.R5 was the 4th major release of BeOS for a public audience, and the 6th since it left developer-only stages. It changed only slightly from the previous release,...

 some additional functionality has been added, ranging from large changes to the Mail kit to support IMAP, encrypted connections and multiple accounts, and a move to OpenGL 1.5 support via Mesa 3D
Mesa 3D
Mesa 3D is an open source 3D computer graphics library that provides a generic OpenGL implementation for rendering three-dimensional graphics on multiple platforms. It was initially developed by Brian Paul in August 1993, and is still maintained by him today...

.

Alternative systems have attempted to draw some inspiration (Syllable
Syllable (operating system)
Syllable Desktop is a free and open source operating system for Pentium and compatible processors. Its purpose is to create an easy-to-use desktop operating system for the home and small office user...

) from the BeOS API, but are not making attempts to provide a base to port applications.

A private port of much of the API to Microsoft Windows and later Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 (using GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

) was done by Gobe Software to enable them to port their Gobe Productive office suite to these platforms from BeOS, where it had originally been developed.

Documentation

The entire API, as it was at the stage of BeOS Revision 3, was documented in two paper books - the Be Developer Guide and Be Advanced Topics, released by O'Reilly Media
O'Reilly Media
O'Reilly Media is an American media company established by Tim O'Reilly that publishes books and Web sites and produces conferences on computer technology topics...

 under a Be, Inc imprint in 1997/8. In addition, a digital representation of this was provided and updated, albeit slightly shoddily towards the end, with BeOS itself. In 2007, ACCESS Co Ltd, the owners of Be, Inc's intellectual property, released the text of this under a Creative Commons
Creative Commons
Creative Commons is a non-profit organization headquartered in Mountain View, California, United States devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons...

licence. http://haiku-os.org/news/2007-04-03/access_co_releases_bebook_and_be_newsletters.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK