What's New in the BeOS
Preview Release
This document provides a summary of the new and changed features that
can be found within the BeOS Preview Release. So many new features have
been added that it would be easier to state the few things that haven't
changed, but that would be boring. Some of the major areas affected include;
Foundation Services and Performance. The Be File System has been
rewritten from the ground up. It is now an attribute-based, 64-bit, journaling
file system that provides even higher performance than the DR8 file system.
In addition, it supports external file systems such as HFS. Extensive changes
have been made to the graphics system, including OpenGL. Unicode is now
supported within the system. And much, much more.
User Interface. Virtually the entire user interface has been
refined in this release. In addition, the BeOS Browser, now known as the
Tracker, provides a new core look to the system. There are a wide range
of new preferences and utilities as well as a variety of other enhancements.
Interapplication Services. The Be messaging architecture has
been reimplemented to increase performance, and now provides a unified
scripting architecture. The Preview release also introduces the Replicator
technology, allowing an application to merge parts of itself with documents
and other applications - even providing a "live" desktop.
Java and Programming Services. With Metrowerks CodeWarrior,
Java makes its first appearance within the BeOS. Included with CodeWarrior
Lite is the Java runtime and programming libraries, as well as a new improved
CodeWarrior IDE, and more. In addition, there are substantial improvements
to UNIX/POSIX capabilities.
Hardware Support. The Preview Release runs on a much wider variety
of PowerMacintosh compatible machines, including PowerBase, Performa 6400,
Motorola Starmax, multiprocessor machines from Apple, Power Computing,
and Daystar, and more. There is also support for new peripherals and other
devices.
Note that this document covers only the new features and changes in
the BeOS, not the entire BeOS functionality.
Document Overview
- Foundation Services
- Storage Services: Be File System
- Graphics Services
- Font Technology
- Graphics
- OpenGL and 3D Graphics
- Printing
- Game Kit
- Hardware Support
- UNIX/Posix
- Programming Support
- Application Services
- Messaging and Scripting
- Replicants
- Internet and Networking Services
- International Services
- Media Services
- User Interface Services
- User Services
- Tracker
- Internet Services
- Preferences
- Utilities
- Demo Applications
Foundation Services
Storage Services: Be File System
The entire file and database system of the BeOS has been replaced in
the Preview Release. Needless to say, the implications of the new Be File
System (BFS) cut across the entire BeOS system. The top level features
of the new file system are;
64-Bit File System. Supporting large files and volumes is critical
to digital content editing, especially in video. the Be File System is
now 64-bit capable, allowing it to handle, today, systems of up to 256
terabytes, and potentially more in the future. Files can be larger than
4 gigabytes (the limit of 32-bit file systems.).
Journaling. The Be File System is a journaling file system, which
means that it keeps constant track of disk operations throughout the file
system. By journaling operations, the BFS offers robustness in the case
of failures, such as power outages, and avoids disk corruption. It also
speeds disk booting, even after a case of system failure, since the BFS
merely has to "replay" its journal to set the system back into
a safe, consistent state.
Attributes. Both files and directories can be tagged with any
number of additional attributes - pieces of information of any size, such
as keywords, priorities, phone numbers, URLs, etc. These attributes become
the basis of a database system within the BFS.
Indexing. Attributes are combined into a database system by the
indexing capability. Attributes can be indexed for faster searching and
retrieval.
Fully Multithreaded. All operations to file systems can execute
in parallel. The protocols have been designed to be thread safe without
enforcing any kind of serialization of operations.
MIME-based Typing. Furthering the integration of the Internet
into the BeOS, file types and ownership are now described via the Internet's
MIME standard. This method is also used to "describe" the functionality
and scriptability of Replicants being shared.
User/Group Based Permissions Structure. (multi-user system support)
The BFS is based on a user and group based permission structure, similar
to that found in many UNIX systems. Permissions can be enforced to any
extent by foreign file systems as well.
SoftLink Support. The BFS has support for creating soft links
(aliases) for files and applications.
File System Independent Layer and Foreign File System Support.
The Be File System now has support for foreign (non-BFS) file systems to
co-exist with the native system. This allows the BeOS to handle industry
standard formats (such as DOS, HFS, and NFS) in a transparent manner. Foreign
file systems can also be "virtual", meaning they don't deal with
physical disks but can represent other APIs such as those associated with
drivers, pipes and network sockets.
Direct HFS Volume Support. The BeOS now supports the mounting
of and reading from HFS volumes. (Note that HFS is a subset of the functionality of the
Be File System, and retains 32-bit limits on those volumes.)
Drive Setup Utility. There is a new user utility, Drive Setup,
which allows the user to format, partition and initialize drives in any
of a number of formats (BFS, DOS, NFS and others.)
Direct Support for Partitioned Disks. The BeOS now supports partitioned
disks, as well as volumes with different formats. All are unified under
the BFS and foreign file system functionality.
Node Monitor API. Part of the new API allows for the monitoring
of directories within the BFS, and in fact any foreign file system
and notification when changes are made. This functionality is inexpensive
in terms of processing time, and is used extensively by the new Tracker.
These are simply the most visible changes in the Be File System. You'll
see the impact of the BFS throughout the new features of the BeOS Preview
Release. The API to the Storage Kit and low level APIs have also changed
to enable the handling of foreign files systems and new functionality.
Graphics Services
Font Technology. In Preview, the BeOS font system has been completely
replaced in order to provide better rendering and support for Unicode (see
Internationalization Services). The new features of the font system include;
Anti-aliased fonts. Anti Aliased Fonts are now standard in the
system. This functionality can be turned off in specialized cases.
User Controlled Standard Fonts. Standard system fonts are now
a user preference changed through the Fonts preferences panel. This allows
for setting of the fonts used by the BeOS, as well as default font settings
for applications
Font Metric Improvements. Coherency of font metrics have been
greatly improved. All parameters in font calculations are now done using
floating point calculations, improving positioning and scaling.
There are now several spacing models application developers can choose
from to handle various applications specific cases;
- Fixed Mode. This enhanced the appearance and metrics of monospaced
fonts when shown on screen.
- String mode. Optimized for situations when matching between print and
screen is important. This can be thought of as a "print-biased"
mode.
- Bitmap Spacing Mode. Optimized for situations when the text will appear
primarily on the screen. This can be thought of as a "screen-biased"
mode.
- The original Be spacing mode remains for compatibility.
Flexible Font Cache Support. The speed of text drawing in any
outline font system is dependent on the font cache. The Preview Release
now has two font caches for handling screen fonts (anti-aliased glyphs
headed for screen display) and for printing fonts (black and white glyphs
usually headed for a high-resolution device, such as a printer.) Parameters
for both caches can be controlled by the user via the Font preferences
panel, allowing the user to set larger cache sizes for faster performance.
Applications can programmatically influence how the font caches retain
or rebuild glyphs, also for performance reasons.
Font File Manager. The first version of the font file manager
appears in the Preview release, allowing applications to scan disks for
fonts (important given the permission structure of the new Be File System),
and caching of font lists for faster initialization.
BFont Object. The new BFont object makes its debut, encapsulating
font descriptions and allowing for access outside of a BView object.
Note that under the new BeOS font system, bitmapped fonts are no longer
supported.
Graphics
Full 24-bit Graphics Support. True color, 24-bit color is now
supported on both PowerMac and BeBox graphics architectures.
App Server Improvements. The update mechanism for views has been
rewritten, allowing for a large increase in performance for complex windows
and dialogs. The overall robustness of the App Server has also been improved.
Graphic Driver Improvements. There is now a public API for graphics
drivers, and graphics drivers have been moved from application space (as
App Server add-ons) to kernel space (as kernel add-ons.) This gives graphics
drivers full access to kernel capabilities, including interrupts and direct
memory access.
OpenGL and 3D Graphics
OpenGL Software Implementation. The first implementation of the
OpenGL library, currently software-based, makes its appearance in Preview.
OpenGL views can be created in windows, or using the full screen (via the
direct-access Game Kit.) Future versions will add hardware-assist support
to the OpenGL implementation
Printing
Print Architecture Improvements. There have been revisions to
the print architecture, and changes made in take advantage of the new Be
File System.
PostScript Printing. Integrated in the BeOS is a print driver
for output to PostScript devices.
New command line tools. There are new command line tools for
printing to AppleTalk-based laser printers (print), and for converting
ASCII files to PostScript for printing (a2ps.)
Game Kit (Direct Access Graphics)
On-the-fly Screen Parameter API. The Game Kit now has an API
allowing applications to set resolution and depth parameters for workspaces
within a BWindowScreen object. This allows for on-the-fly changes when
an application is taking full control of a screen.
Mouse Bug Fixes. The GetMouse bug within the Game Kit is now fixed
and reports the correct position and state.
Hardware Support
Extended Hardware System Support. Rather large additions to the
driver libraries and other changes have been made to greatly extend the
number of systems capable of running the BeOS. Included are new models
from Power Computing, Apple, Motorola and others. For a complete list,
see the BeOS Compatible System List.
Multiprocessor Support for PowerMac. Support for multiple processors
on PowerMac hardware is fully integrated, unifying PowerPC MP support .
Daystar and Power Computing hardware is supported, as well as the BeBox
hardware.
IDE Master/Slave Drives. Master and slave IDE drives are now
supported (even on PowerMac hardware. Note that the MacOS does not support
master/slave configurations and will only recognize the first drive.)
IDE DMA Support. IDE drives now have DMA support, increasing
the performance on these drives significantly. (Note: SCSI drives already
have DMA support.)
PCI Card Support Improvements. A bug in the mapping of PCI space
has been corrected, enhancing compatibility with a wider range of cards.
System Time. System time is now reported as a 64-bit long long,
rather than as a double.
UNIX/Posix
Support for fork(), exec(), waitpid() and POSIX improvements. fork,
exec, and waitpid are now fully supported by the BeOS Kernel. This allows
the execution of more complex GNU shell scripts and improves overall POSIX
compliance.
POSIX File System API Reimplementation. The POSIX file APIs have
been reimplemented in conjunction with the new Be File System, and to produce
more correct behavior. Renaming and deleting of open files is now permitted,
and the system is more stable when accessed through these APIs.
Terminal Improvements. Terminal has been improved to provide
better ANSI emulation capabilities.
Improved PTY/TTY Services. This library now provides uniform
Posix TTY services, and is available to other applications. It is used
by Terminal and the Telnet services within the BeOS.
Programming Support
C++ Support Improvements. There is now support for full C++ exceptions,
I/O streams, and the Standard Template Library (STL.)
CodeWarrior Lite. The new versions of the CodeWarrior IDE and
development tools are on the Preview CD. (Note: the Lite version builds
objects up to 64k in size. CodeWarrior for BeOS is available from Metrowerks
or Be, and provides the full tool set, sample code, documentation and more.)
Java. Shipping with CodeWarrior Lite is the first implementation
of the Java runtime and development tools for the BeOS.
Application Services
Messaging and Scripting
Scripting Architecture. The BeOS now has a unified scripting
architecture which allows a wide variety of BeOS objects to become scriptable
(basically any object that inherits from BHandler.) There are uniform ways
of discovering scriptable objects, and for passing messages between these
objects. This capability is useful in itself, and provides a basis for
any scripting language.
New Typing and Ownership. The Internet's MIME typing system is
now used to describe file types and ownership, and this information is
fully accessible via the Be File System. This information is also used
to describe the functionality and scriptability of Active Elements within
the system. Type and ownership settings can now be controlled via the MIME
Types preferences panel.
Messaging Architecture. The BeOS messaging architecture has been
redesigned to be more robust. In a client/server relationship, server code
can now protect itself against bugs in a client-side application, making
communications more robust.
Support for Multiple Clipboards. The BClipboard object is no
longer global, and thus multiple clipboards can exist in the system for
data transfer between processes.
BeOS Replicator
Introduction of Replicator. The BeOS kits have been rewritten
to provide support for the new BeOS Replicator technology. This technology
allows objects (called Replicants) to be "dehydrated" into a
storage container, and then "rehydrated" later within any context.
This means that objects, views and other elements of one application can
be shared with another application - code and all. In many ways, Replicants
appears similar to various component technologies, however it takes a vastly
different, and simplified, approach to the functionality.
U/I Support for Replicants. The DeskBar allows the user to show/hide
drag indicators and Replicants.
Desktop Replicants. The desktop is a persistent container for
Replicants, allowing you to install any live application part, such as
a NetPositive web viewer page, onto the desktop.
BArchivable. The "dehydration" and "rehydration"
capability of Replicants is contained in the BArchivable class. All appropriate
interface and application kit objects are now archivable, and can be written
to a backing store (of any type) and recreated at a later time. Developer
objects can be made archivable by inheriting from this class.
BShelf. The other side of the Replicator equation, BShelf contains
the basic methods to contain Replicator objects. Views and container objects
inherit from BShelf to enable this capability. The interface for this is
extremely lightweight.
Stream Classes. Associated with BArchivable, there is now a set
of stream classes within the BeOS.
Networking Services
Modular Network and Protocol Drivers. Preview introduces a new
public API for adding network and protocol drivers - allowing for a wider
variety of networking devices and new non-TCP/IP (and new TCP/IP) protocols
to be integrated into the BeOS.
Multiple Configurations. You can now store multiple network configurations
so that you can easily switch between, for example, a workplace Ethernet
configuration and a home PPP-based configuration. Configurations can be
saved and restored from the Network preferences panel.
TCP/IP Improvements
Performance. TCP performance has been improved over both local
and wide area networks.
Ping O' Death. The network server in Preview can't be crashed
by the "ping o' death".
Non-blocking Send. Non-thread-blocking sends are now supported,
adding to the non-blocking receive capability already in the BeOS.
Select() Improvements. The 32 socket limit in select() has been
removed. Using a 32-bit identifier, select() is now essentially unlimited.
PPP Improvements
Configuration Improvements. Configuration has been simplified.
You now select modem scripts from a large list of known modems (editing
scripts is also supported for new or unknown modem types.) Internet Service
Provider (ISP) type selection is also supported (standard, UNIX, and manual
logins.)
Automatic Reconnection. After a time-out disconnection has occurred,
PPP will automatically reconnect when another Internet request is made.
This connection can be cancelled if desired.
Manual Login. You can manually log into your ISP, for both problem
connections and debugging new scripts.
Alternate Phone Number. When connecting via PPP, you have an
opportunity to use an alternate phone number for that connection by typing
it into the connection dialog.
PPP Autoscripts. PPP can be instructed to execute a script whenever
a successful connection is made. This can be used to keep track of ISP
time usage and other network parameters and statistics.
Reporting. PPP now reports the IP address used for the connection,
the total time on-line, and the connection speed.
Serial Port Freeing. PPP no longer "owns" a serial
port. When not connected, other processes can use the port for other operations.
Operational Improvements. PPP now respects the ISP's requested
packet size. This allows for smooth connections with ISPs that do not use
the default 1500 byte packet size.
Telnet Improvements. The Telnet functionality, allowing you to
remotely log into your BeOS machine from anywhere on the Internet, has
been rewritten, and supports telnet sessions from more types of machines.
AppleTalk Printing Support. AppleTalk support is now enabled
from within the BeOS, allowing you to print to AppleTalk-based printers.
(Note that Internet networking remains the preferred networking method
for all other network services.)
Command Line Tools. There is a new netstat command, providing
information on the entire BeOS networking system. Shell escapes and piping
now works in the ftp command.
International Services
Introduction of Unicode UTF-8. The entire BeOS API is transitioning
to use Unicode's UTF-8 Transformation Format. UTF-8 is 100% compatible
with 7-bit ASCII and has a variable character size, from 1 to 4 bytes long.
(Plain Unicode is not compatible with ASCII as characters are always 2
bytes long.) UTF-8 is also the format used within Java, making future integration
a bit easier.
Support for Unicode Fonts. Text services have been upgraded to
support Unicode-based fonts using UTF-8 encoding.
Rewrite of API for Unicode Support. Be APIs making use of text
are being rewritten to accomodate Unicode. New versions of objects, including
BTextView, and other utilities make their first appearance in Preview.
(Note: Look for future international resource formats to be based around
BArchivable.)
New FontDisplay Utility. A new version of the FontDisplay utility
allows the user to examine all the characters in a Unicode font, including
the Kanji character block.
New Keymap Utility. This new utility allows the user to place
a number of Unicode characters onto a single key, thus a single keypress
can generate a glyph with multiple character parts.
Media Services
A great many of the changes to the foundation services within the BeOS
have been made to better support current and planned media services. For
example, the 64-bit file system design was driven by the need to deal with
very large files and volumes. Below are some more specific changes made
in media services.
Media Format Translation Services. The Datatypes library is now
integrated into the BeOS. This library provides an architecture which allows
any data format (media, files, etc.) to be translated to any other appropriate
format. For example, a JPEG image can be converted to a native BBitmap,
and then to a GIF image. The same types of translations can be done with
sound file formats, or even with video file formats.
This translation is done by Datatype "handlers" which are
loaded and unloaded by the BeOS (and by applications) as needed. Many handlers
are available from Be and from software developers over the net (in commercial,
shareware and freeware forms.)
MIDI Software Synthesis. MIDI software synthesis library has
now been integrated into the BeOS, and includes the SoundMusicSys software
synthesizer and samples from Headspace, Inc. Also included are SimpleMIDI
and MIDI Player, user applications that play back MIDI tracks.
Driver API Improvements. An interface to the low level buffering
mechanisms of the Media kit is now available. This low level access will
aid in the creation of drivers for audio and video PCI cards and other
devices. Also the Digital-Analog and Analog-Digital stream buffers now
include timing estimates.
User Interface Services
Visual Redesign. Most default U/I elements have been redesigned
for cleaner appearance, and to make focus/selection indications more attractive
and coordinated.
Keyboard Navigation Improvements. There is now support for navigating
between groups of controls, as well as individual controls.
Improved Multithreading in U/I. There are improvements in various
multithreaded elements of the U/I. For example, alerts windows and popup
menus no longer block their parent threads when they are activated.
Floating Windows. Floating windows (sometimes referred to as
palettes) are now supported natively within the BeOS. This is implemented
via a new selector of BWindow.
Complete Rewrite of BTextView. The entire BTextView has been
completely rewritten. Based on the Styled Edit code base, BTextView now
handles multiple fonts and styles,automatic word wrap, and a host of other
features. In addition, BTextView is now multibyte capable (see Internationalization
Services) and can handle multiple languages in a single view.
User Services
Tracker
The personality of the BeOS, the Tracker (formerly the BeOS Browser)
has been completely redesigned, sports a new look, and has been made modular.
The top level features;
TrackBar. The old BeOS dock has been replaces by the TrackBar.
This gives you access to the windows of currently running applications,
the ability to show/hide applications, direct access to most often used
applications and documents, ability to show/hide draggers for Replicants,
and more. The TrackBar can be repositioned vertically and attached to either
upper corner of the screen, or horizontally at the top or bottom of the
screen (and can be repositioned on the fly.)
Fully Functional Desktop. Icons (mini or large) can now be placed
on the desktop (rather than just in windows.) In addition, the desktop
is a persistent container for Replicants, allowing you to install any live
application part, such as a NetPositive web viewer page, onto the desktop.
New Tracker Windows. The Tracker directory windows have been
redesigned. You can now re-size and reorder list view columns by dragging.
You can sort by any one or two columns in list views. The user can now
specify how file names should be truncated to fit views (from end, middle
or beginning of name.) Selections within windows are now preserved as the
window is activated and deactivated (until another selection is made.)
You can now sort and view by any attribute while in icon view mode.
Support for soft links. The Tracker fully supports the soft link
capability of the BFS, including soft link creation.
Manipulation of Foreign File Systems. The Tracker can now handle
operations involving foreign file systems (like the MacOS's HFS) as well
as from the BFS.
MIME Type Support. The tracker now uses the BFS MIME type support
for tracking applications and the documents they create. The Tracker will
display the "friendly" MIME description in windows and get-info
dialogs, and will use the default/preferred handler settings from the MIME
preferences panel. There is also an "Open With" menu that allows
you to open a document with any application that handles that MIME type.
Improved File Panel. The file panel (used by all applications
in open and save operations) is now fully customizable by applications.
There is a "go to" menu for frequently visited folders. The file
panel reacts to dropped icons by automatically switching to the directory
of the dropped item.
Improved Status Dialogs. Status dialogs for in-progress processes
(such as file copying, moving, etc.) now support pausing as well as stopping
operations. The dialogs allow for direct manipulation of the controls, rather than
the select-operated double-click from DR8. This dialog also shows the
"From:" and "To:" information of the file currently
being operated on.
Selection Sensitive Add-Ons. The context sensitive add-on menu
is now selection sensitive - only those add-ons which can operate on the
item selected will appear in the menu. This will help keep the add-on menu
shorter.
Custom Icons. The Tracker now supports custom icons (overriding
application specific and default icons) for documents and folders.
Other U/I Changes. There is now live dragging of selected icons
(rather than outlines.) Context sensitive menus are now "sticky".
Folder and query windows now open asynchronously - the windows open immediately
and then gets filled as the BFS provides information. The trash icon will
reflect changes even if another application moves items into the trash.
In addition to the above changes, portions of the Tracker object libraries
are being made available to applications, so that developers don't have
to reinvent Tracker U/I elements. Look for these objects to appear in the
Storage Kit API.
Internet Services
NetPositive. Extensive changes have occurred in the BeOS's integrated
web browser. The interface has been streamlined, with additional capabilities
added across the top of the browser window. NetPositive views use the BeOS
Replicator technology to allow live web pages to be dragged to any Replicant
container. And more....
Integrated Internet Services. The following services have been updated
to take advantage of new capabilities within the BeOS and the new be File
System;
- FTP Server
- Telnet Server
- E-Mail Server
- BeMail Client Application
- PoorMan Web Server
Preferences & Utilities
Printers Preferences. This preferences panel allows you to add
printers and select the default printer for the system.
Drive Setup. A new utility which allows you to format, partition,
initialize and mount drives in Be format, HFS, and DOS.
Font Panel Preferences. Provides selections for the fonts the
BeOS uses throughout the interface, as well as the default fonts for applications.
Also allows you to fine tune font caches for performance and memory use.
File Types. This allows you to edit various MIME types
recognized by the BeOS, and associate preferred applications with key types.
Virtual Memory Preferences. Provides a quick way to check for
the amount of memory installed, as well as setting the maximum swap file
size (on hard disk) used by the virtual memory system.
Edit. Edit has been upgraded to take advantage of the new font
and styled text capabilities of the Preview Release.
Simple MIDI. A new utility which allows for playback of any MIDI
track, using the capabilities of the Media Kit.
All specifications subject to change without
notice. |