Haiku (operating system)
Encyclopedia
Haiku is a free and open source
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

 operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 compatible with 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...

. Its development began in 2001, and the operating system became self-hosting
Self-hosting
The term self-hosting was coined to refer to the use of a computer program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger...

 in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011.

Haiku is supported by Haiku, Inc., a not-for-profit organization founded in 2003 by former project leader Michael Phipps. Haiku, Inc. is based in Rochester
Rochester, New York
Rochester is a city in Monroe County, New York, south of Lake Ontario in the United States. Known as The World's Image Centre, it was also once known as The Flour City, and more recently as The Flower City...

, New York
New York
New York is a state in the Northeastern region of the United States. It is the nation's third most populous state. New York is bordered by New Jersey and Pennsylvania to the south, and by Connecticut, Massachusetts and Vermont to the east...

.

History

Haiku began as the OpenBeOS project in 2001, the year that Be, Inc. was bought by Palm, Inc.
Palm, Inc.
Palm, Inc., was a smartphone manufacturer headquartered in Sunnyvale, California, that was responsible for products such as the Pre and Pixi as well as the Treo and Centro smartphones. Previous product lines include the PalmPilot, Palm III, Palm V, Palm VII, Zire and Tungsten. While their older...

 and BeOS development was discontinued; the focus of the project was to support the BeOS user community by creating an open-source, backward-compatible replacement for BeOS. The first project by OpenBeOS was a community-created "stop-gap" update for BeOS 5.0.3 in 2002. In 2003, a non-profit organization (Haiku Inc.) was registered in Rochester, New York, to financially support development, and in 2004, after a notification of infringement upon Palm's trademark on the BeOS name was sent to OpenBeOS, the project was renamed as Haiku. However, development would only reach its first milestone in September 2009 with the release of Haiku R1/Alpha 1. This was followed in May 2010 by R1/Alpha 2, which contains more than 300 bug-fixes and improvements. R1/Alpha 3, released in June 2011, contains additional improvements and more than 950 bug-fixes.

Development

Haiku is developed in 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...

 and provides an object-oriented API.

The modular design of BeOS allowed individual components of Haiku to initially be developed in teams in relative isolation, in many cases developing them as replacements for the BeOS components prior to the completion of other parts of the operating system. The original teams developing these components, including both servers
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...

 and APIs (collectively known in Haiku as "kits"), included:
  • App/Interface – develops the Interface, App and Support kits.
  • BFS – develops the Be File System
    Be File System
    The Be File System is the native file system for the BeOS....

    , which is mostly complete with the resulting OpenBFS.
  • Game – develops the Game Kit and its APIs.
  • Input Server – the server that handles input devices, such as keyboards
    Computer keyboard
    In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

     and mice, and how they communicate with other parts of the system.
  • Kernel – develops the kernel, the core of the operating system.
  • Media – develops the audio server and related APIs.
  • MIDI – implements the MIDI protocol.
  • Network – writes drivers for network devices and APIs relating to networking.
  • OpenGL – develops 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...

     support.
  • Preferences – recreates the preferences suite.
  • Printing – works on the print servers and drivers for printers.
  • Screen Saver – implements screen saver functionality.
  • Storage – develops the storage kit and drivers for required filesystems.
  • Translation – recreates the reading/writing/conversion modules for the different file formats.


A few kits have been deemed feature complete and the rest are in various stages of development.

The Haiku kernel is a modular hybrid kernel
Hybrid kernel
A hybrid kernel is a kernel architecture based on combining aspects of microkernel and monolithic kernel architectures used in computer operating systems. The category is controversial due to the similarity to monolithic kernel; the term has been dismissed by Linus Torvalds as simple marketing...

 and a fork of NewOS, a modular kernel written by former Be Inc. engineer Travis Geiselbrecht. Like the rest of the system it is currently still under heavy development. Many features have been implemented, including a virtual file system
Virtual file system
A virtual file system or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way...

 (VFS) layer and rudimentary symmetric multiprocessing
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...

 (SMP) support.

Compatibility with BeOS

Haiku aims to be compatible with BeOS at both the source and binary level, allowing software written and compiled
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 for BeOS to be compiled and run without modification on Haiku. This provides Haiku users with an instant library of applications to choose from (even programs whose developers are no longer in business or have no interest in updating them), in addition to allowing development of applications to resume from where they had been terminated following the demise of Be, Inc. This dedication to compatibility has its drawbacks though — requiring Haiku to use version 2.95 of the GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

 compiler, released in 2001, which is now years old. Switching to the newer version 4 of GCC breaks compatibility with BeOS software; therefore Haiku supports being built as a hybrid GCC4/GCC2 environment. This allows the system to run both GCC version 2 and version 4 binaries at the same time.

Note that this compatibility applies to x86 systems only. The PowerPC version of BeOS R5 will not be supported. As a consequence, the ARM, 68k and PPC ports of Haiku use only the GCC version 4 compiler.

Despite these attempts, compatibility with a number of system add-ons that use private APIs will not be implemented. These include additional filesystem drivers and media codec add-ons, although the only affected add-ons for BeOS R5 not easily re-implemented are Indeo
Indeo
Indeo Video is a video codec developed by Intel in 1992. It was sold to Ligos Corporation in 2000. While its original version was related to Intel's DVI video stream format, a hardware-only codec for the compression of television-quality video onto compact disks, Indeo was distinguished by being...

 5 media decoders for which no specification exists.

R5 binary applications that run successfully under Haiku (as of May 2006) include: Opera
Opera (web browser)
Opera is a web browser and Internet suite developed by Opera Software with over 200 million users worldwide. The browser handles common Internet-related tasks such as displaying web sites, sending and receiving e-mail messages, managing contacts, chatting on IRC, downloading files via BitTorrent,...

, Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...

, NetPositive
NetPositive
NetPositive is the default browser that comes with the Be Operating System . It has partial support for JavaScript, but no Java or CSS support. NetPositive originally was the only web browser available for BeOS, but that is no longer the case. The last official version of NetPositive before the...

, Quake II
Quake II
Quake II, released on December 9, 1997, is a first-person shooter computer game developed by Id Software and distributed by Activision. It is not a sequel to Quake; it merely uses the name of the former game due to Id's difficulties in coming up with alternative names.The soundtrack for Quake II...

, Quake III, SeaMonkey
SeaMonkey
SeaMonkey is a free and open source cross-platform Internet suite. It is the continuation of the former Mozilla Application Suite, based on the same source code...

, Vision and VLC media player
VLC media player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...

.

Driver compatibility is incomplete, and unlikely to cover all kinds of BeOS drivers. 2D graphics drivers in general work exactly the same as on R5, as do network drivers. Moreover, Haiku offers a source-level FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

 network driver compatibility layer, which means that it can support any network hardware that will work on FreeBSD. Audio drivers using API versions prior to 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,...

 are as-yet unsupported, and unlikely to be so; however, R5-era drivers work.

Low-level device drivers, namely for storage devices and SCSI
SCSI
Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices. The SCSI standards define commands, protocols, and electrical and optical interfaces. SCSI is most commonly used for hard disks and tape drives, but it...

 adapters, will not be compatible. USB drivers for both the second- (BeOS 5) and third- (BeOS Dano) generation USB stacks will work, however.

In some other aspects, Haiku is already more advanced than BeOS. For example, the interface kit allows the use of a layout system to automatically place widgets in windows, while on BeOS the developer had to specify the exact position of each widget by hand. This allows for GUIs that will render correctly with any font size and makes localization of applications much easier, as a longer string in a translated language will make the widget grow, instead of being partly invisible if the widget size were fixed.

Beyond R1

Initial planning for R2 has started through the "Glass Elevator" project (a reference to the children's novel Charlie and the Great Glass Elevator
Charlie and the Great Glass Elevator
Charlie and the Great Glass Elevator is a children's book by British author Roald Dahl. It is the sequel to Charlie and the Chocolate Factory, continuing the story of young Charlie Bucket and eccentric candymaker Willy Wonka as they travel in the Great Glass Elevator.Charlie and the Great Glass...

). The only detail confirmed so far is that it will switch to a current GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

 release (namely v4.3.3).

A compatibility layer is planned that will allow applications developed for Haiku R1 to run on Haiku R2 and later. This was mentioned in a discussion on the Haiku mailing list
Mailing list
A mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. The term is often extended to include the people subscribed to such a list, so the group of subscribers is referred to as "the mailing list", or simply "the...

 by one of the lead developers, Axel Dörfler. Suggested new features include file indexing on par with Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

's Beagle
Beagle (software)
Beagle is a search system for Linux and other such modern Unix-like systems, enabling the user to search documents, chat logs, email and contact lists in a similar way to Spotlight in Mac OS X, and Windows Search or Google Desktop under Linux or Microsoft Windows...

, Google Desktop
Google Desktop
Google Desktop is desktop search software made by Google for Linux, Mac OS X, and Microsoft Windows. The program allows text searches of a user's e-mails, computer files, music, photos, chats, Web pages viewed, and other "Google Gadgets"....

 and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

's Spotlight
Spotlight (software)
Spotlight is a system-wide desktop search feature of Apple's Mac OS X operating system. Spotlight is a selection-based search system, which creates a virtual index of all items and files on the system. It is designed to allow the user to quickly locate a wide variety of items on the computer,...

, greater integration of scalable vector graphics
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...

 into the desktop, proper support for multiple users, and additional kits.

See also

  • Be File System
    Be File System
    The Be File System is the native file system for the BeOS....

  • Be Sample Code License
  • BeOS API
    BeOS API
    The BeOS API, often called the Be API after Be Inc., is the application programming interface required to write graphical native applications on BeOS, and hence its derivatives such as ZETA and Haiku....

  • Comparison of operating systems
    Comparison of operating systems
    These tables compare general and technical information for a number of widely used and currently available operating systems.Because of the large number and variety of available Linux distributions, they are all grouped under a single entry; see comparison of Linux distributions for a detailed...

  • Haiku Vector Icon Format
    Haiku Vector Icon Format
    Haiku Vector Icon Format is a vector storage format designed to store icons, specifically for Haiku.- History :Haiku developers commonly agreed that Haiku could not be released with original BeOS R5 icons. Since Haiku needed its own artwork anyway, it was thought that icons could switch to vectors...

  • KDL
    KDL
    A KDL is a term used on BeOS/Haiku and possibly other operating systems for a serious kernel error which causes the computer to drop into the kernel debugger...

  • List of BeOS programs
  • OpenTracker
    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...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK