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
      • CodeWarrior Lite
      • Java
  • 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.

Copyright ©1997 Be, Inc. Be is a registered trademark, and BeOS, BeBox, BeWare, GeekPort, the Be logo and the BeOS logo are trademarks of Be, Inc. All other trademarks mentioned are the property of their respective owners.Icons used herein are the property of Be Inc. All rights reserved. Comments about this site? Please write us at webmaster@be.com.