hide random home http://www.be.com/developers/whybedev/index.html (Amiga Plus Extra No. 5/97, 05/1997)



Designed for the Next Decade

Be is delivering a new technology foundation, a new business model -- and a committed partner to developers.

 

 

 

Digital media. Interactive design. Media convergence. The World-Wide Web. Digital editing. You see the terms everywhere in the computer industry. Personal computers are at the focal point of a merging of video data streams, audio information, 3-D models and visualization, communications capabilities, and graphical data. From these ingredients will emerge new products that will integrate the features we see today in PCs, televisions, radios, telephones, and a host of other electronic devices.

Software developers understand what it will take to make this digital convergence a reality. They know it will take higher bandwidth communications and new software tools. They know that dealing with digital media will take much more processing power than they can get in today's personal computers. The industry is attempting to address these issues, with new companies going public every week on the promise. New software is bolted onto current operating systems; new tools that handle complex data are introduced. And users are being bombarded with new software packages, which present an unbelievable array of capabilities -- and complexity.

Complexity -- there's the hitch.

The very solutions that should enable media convergence are unapproachably complex. Complexity increases costs while customers expect falling prices. Complexity decreases a programmer's productivity and lengthens the time it takes to bring a product to market. Complexity increases software overhead and consumes processing power. And most of all, complexity drives end users crazy -- in purchase decisions and in product use -- making personal computers less approachable and, ironically, less useful.

 

Out-of-Date Assumptions


This growing complexity is a symptom of a larger problem. The decisions that the computer industry's main players make are based on several key assumptions that are well over two decades old:

 

The Uniprocessor Assumption

Today's PC architectures were designed over two decades ago, in an era when microprocessors were expensive. Today, microprocessors are commodities. Yet, we're still using operating systems that can only run on one processor. The question, "Which is better at solving problems, one 200 MHz chip or two 120 MHz chips?" can't be answered -- because you can't find a mainstream OS that knows how to take advantage of a second processor, even though such a configuration would deliver a new level of price-performance. As a result, products deliver less performance than is inherent in the hardware, at prices that are higher than they should be.

 

OS Assumptions: Aging DNA

Many of the capabilities required by digital media simply weren't conceived of when today's PC architectures were created. Place yourself in the role of a systems designer twenty years ago. Real-time, high-bandwidth media? Interactive manipulation of megabytes of data? The Internet? Theories, maybe. Reality, not. The result is a cost and performance drain created by the need to bolt, shove, and cram these new pieces of functionality into architectures that simply can't handle them. Programming models are so riddled with rules and exceptions that new applications take years to come to market and consume more and more memory and processing power. The industry is attempting to deliver the next decade's solutions using architectures designed to solve the last decades' problems.

 

The Compatibility Assumption

Each year, advances in hardware significantly improve the speed -- and cut the costs -- of computer processors and peripherals. But the end user sees only a small fraction of the increased power delivered by new hardware. Software programmers know what's happening: The power that's delivered by new, faster hardware is being lost in a morass of software overhead created by the "need" for backward binary compatibility.

Backward compatibility isn't a bad thing -- but are we getting our money's worth striving for binary compatibility when network and data compatibility are far more important? The standards that increasingly matter today -- HTML, VRML, Java, JPEG, MPEG, MIDI -- don't involve binary codes. These are the standards that determine interoperability in a net-connected world.

 

Increasing Demands for Power


The expectations of today's personal computer users are increasing rapidly. They demand the functionality and performance that they see on workstations, but their price expectations are driven by the high-volume PC market. Moving against these expectations is a rising tide of complexity, decreasing performance improvements, and increasing product delays.

The experience of the people at the heart of multimedia activity -- the digital designers who create CD-ROMs, DVDs, Web sites, and print ads -- is similar. They buy high-end personal computers, stuff them with expensive high-performance graphics cards, communications devices, and high-speed I/O options -- but they still can't get the performance they need. Digital designers are consuming processing power faster than it's being delivered to the market.

Their numbers are growing, increasing at a rate that's some three to four times the growth in the PC market overall. Their frustration is growing as current PC architectures fail to keep up with their needs. These users represent a shift in the personal computer market -- a set of consumers who are actively searching for new solutions. They don't need to be convinced that they need digital media capabilities; they already know it.

These new multimedia consumers present software developers with a major opportunity to build new business franchises and to be in at the ground floor of a transformation in the industry. But taking advantage of this shift means delivering products that meet these customers' needs. And doing so with today's personal computer architectures is increasingly complex and difficult.

 

Challenging the Assumptions


We're faced with a set of users who are demanding the interactive design capabilities and power available in workstations, but at prices similar to today's PCs. Given the architecture of today's personal computer, how can we reach this new level of price-performance quickly? And how can we solve the problems of increasing software overhead, time-to-market, and complexity?

Be, Inc. was formed to address these issues head-on -- to see what could be accomplished if you designed a new personal computer system using new assumptions based on cutting-edge software concepts. The result is a new level of price-performance, and a dramatic reduction in the complexity of software development. The assumptions on which Be's products are based include the following:

One Processor per Person is Not Enough. There are computer systems on the market today that use more than one microprocessor. But almost all of them are used as servers, or in expensive, turn-key installations. Be's focus is to bring the power of multiple processors to personal computing, and to apply that power so individuals can do things that are too difficult and time-consuming today. This certainly describes the demands of many applications in digital video, digital audio, image processing, 3-D, and communications. It's our belief that the multiprocessor approach is the most cost effective way to deliver this power at a low price point.

Build in the Future. Be's products are designed with the applications of the next ten years in mind. We build products that are focused on media and communications-based capabilities, while providing a fast, light-weight software foundation.

Learn from the Past, Don't Blindly Copy It. The industry has learned a great deal about building and improving software and hardware over the last twenty years -- experience that Be has taken advantage of. But while learning from the past, Be's products don't copy it. For example, data and Internet compatibility is of paramount importance within Be's products, enabling them to take advantage of a wealth of existing information. But we've intentionally avoided older software programming architectures that are ill-equipped for newer application areas, or that would interfere with the goal of increasing performance.

Ride with Industry Cost Curves. Each year personal computer users can purchase twice the hard drive capacity for the same dollar. New peripherals come to market; CD-ROM drives increase in performance and decrease in price. The personal computer industry is so large that it generates its own unique dynamic of increased capacity and lower prices. PC users want to be able to ride these curves -- and that's exactly what Be delivers. Be's products make use of industry-standard components that are readily available, constantly improving, and easily replaceable. This strategy means that Be's focus is not simply on performance, but on price-performance.

To achieve these goals, Be has abandoned old architectures and concepts. We're not backward compatible -- we don't support twenty-year-old ideas. But for users who are involved in digital design and who need more power than today's platforms can deliver -- and for developers who are building the tools these types of people use -- Be represents a new field in which to lay down fresh tracks.

 

Breaking Barriers: The Be Operating System


The heart of the Be product line is the Be Operating System (BeOS(tm)), a new software system designed for the media and communications-based applications of the next decade. While retaining compatibility with data and network standards in use today, the BeOS jettisons many of the assumptions inherent in older OS architectures to achieve a new level of performance, and a significantly simplified programming model. The BeOS features:

A Fully Threaded System. The BeOS is a heavily threaded system. The application model is designed to divide an application into multiple threads even if the programmer doesn't explicitly do so. For example, every window in the OS is controlled by its own thread, which is initiated automatically simply by creating a window object. Furthermore, the OS is reentrant: Any object can be used by any thread. Threading increases the efficiency and performance of applications. Reentrancy allows developers to structure their applications for simplicity and performance without worrying about architectural limits.

Symmetric Multiprocessing. Even a single-processor machine can take advantage of a threaded operating system. But the primary reason for designing software this way is to take advantage of multiple processors in a single personal computer. The most intelligent way to do this is to allow threads to move from one processor to another depending on system load -- a process called symmetric multiprocessing. This is exactly what the BeOS accomplishes, supporting one, two, four, or more processors. The result is significantly greater parallelism on multiprocessor systems, and significantly higher overall performance throughout the system.

Object-Oriented Design. The application programming interface (API) of the BeOS is object-oriented (written in C++). Creating a window within the BeOS, for example, involves simply creating a BWindow object rather than having to procedurally construct the data structures and call a myriad of other routines. Furthermore, the Be API is a full application framework. When new features are added to the BeOS, they're added to the framework, enabling them to be used immediately by programmers to enhance their applications. There is no delay waiting for a separate framework to "catch-up" to the new features of the OS. The result is faster time-to-market for new applications, and faster revisions to existing applications.

Designed for Real-Time Media and Communications. The structure of the BeOS is optimized for dealing with real-time, high-bandwidth data signals, such as audio and video, and for handling a wide array of communications capabilities. These capabilities can be found within the BeOS Media Kit, and within several of the built-in servers, such as the Audio Server.

Simplicity. Throughout the BeOS, there has been a heavy emphasis on delivering simple, elegant solutions to programming problems. The API is simple because we started from scratch. We designed a new OS using everything learned over the past twenty years of software design, incorporating the good, ignoring the bad, and streamlining the result. For example, a single object, BMessage, is used for inter-application communication, cut-and-paste, drag-and-drop, client-server communication within the BeOS, and for distributed communication over networks. In current software architectures, you need a separate interface for each of these tasks. The attention to simplicity within the BeOS stems from an underlying belief that software programmers are most effective and efficient when the entire OS model can be understood by each programmer.

Considerably more can be said about the features of the BeOS, and the benefits obtained through its architecture. But overall, the end result of the structure -- the goal of the OS design -- is superior performance and reduced time-to-market.

Superior Performance. From uniprocessor systems up through four processor systems (and more), the BeOS makes optimal use of the underlying hardware, significantly reduces OS overhead, and increases parallelism compared with other mainstream OS architectures.

Reduced Time-to-Market. The Be API is extremely simple and compact. Developers working with the BeOS have already proven that they can be more efficient writing for the BeOS than for current mainstream architectures -- reducing development costs and speeding time-to-market.

Superior performance and reduced time-to-market go hand-in-hand -- in order to be fast, an OS must be compact; a compact OS is easier to learn and faster to program. These two goals will remain central to the design of the BeOS.

BeOS Structure


The BeOS can be divided into three layers. At the bottom, right above the hardware, is the microkernel. Above the microkernel is a wide array of servers, providing higher level services to application processes and to the OS itself. Finally, the object-oriented set of software kits is the programmer's interface to the operating system. In addition, the kits combine the functions of various servers into more complex capabilities.

Microkernel

The BeOS employs a microkernel to abstract the hardware and to provide basic OS services. As you might expect, the Be kernel is optimized to take advantage of multiple processors, and for handling large numbers of simultaneously executing threads. Programmers can access the kernel directly by making system calls (global C functions), or they can use the object "covers" (such as BLooper and BLocker) that encapsulate kernel functionality.

Kernel capabilities can be extended through software drivers, which are dynamically loaded and unloaded as needed by the system.

 

Servers

A wide array of software servers encapsulate key areas of functionality used by applications and by the OS itself. Examples of these servers are the Storage Server, which provides file system and database functionality, the Network Server, which provides TCP/IP capabilities, and the Audio Server, which handles real-time audio streams from a variety of sources. These servers are automatically started at system start-up, are designed around a client-server model, and are heavily threaded themselves.

 

Software Kits

The capabilities of the servers are accessed through the various software kits available in the BeOS. Each kit is made up of a set of C++ objects, which can be used and subclassed. (Exceptions to the C++ rule are the Network and Kernel Kits, which are C-based for simplicity and ease-of-use.) These objects in turn call the servers -- and each other -- to accomplish more complex tasks. Examples of the software kits are the Interface Kit, handling most window, view, and drawing functions, the Application Kit, handling application-level capabilities and communications, and the Media Kit, handling audio and video capabilities.

The array of BeOS software kits provide a wide range of classes and functions that applications use to build complex capabilities. These kits are constantly being extended and improved by Be through each release of the BeOS. A sampling of the core software kits includes:

Application Kit
Contains core application objects, such as BApplication, BMessage (for communications), and BLooper (for creating new threads).

Storage Kit
One of the key advantages of the BeOS is that is provides both file system capabilities and integrated database capabilities. The Storage Kit works with the Storage Server to provide objects such as BFile, BDirectory, and BDatabase.

Interface Kit
The largest of the kits, the Interface Kit works with the Application Server to provide objects such as BWindow and BView, which provide the basis for other interface objects such as BListView, BCheckBox, BTextView, and many others. The Interface Kit (through BView) also encapsulates all drawing capabilities.

Media Kit
The Media Kit handles real-time streams of data through the system - which means it's the kit that deals with audio and video streams. The kit employs a "subscriber" model, through objects such as BAudioSubscriber, which allows multiple processes to access and manipulate a single stream of data.

Midi Kit
This kit provides a set of classes that know how to decipher and construct MIDI messages and that can listen to and broadcast to the built-in MIDI ports.

Kernel Kit
This is a C-based kit, allowing application threads low-level access to kernel services.

Device Kit
This kit provides a generalized interface for building drivers that extend the capabilities of the kernel - such as hardware drivers, graphics drivers and others. It also includes such objects as BSerialPort.

Network Kit
The Network Kit provides TCP/IP services based on the Berkeley Sockets (BSD) model. It also provides a class and functions that know how to send and receive e-mail.

3D Kit
The 3D Kit offers a 3-D rendering engine and classes with which a developer can easily construct and manipulate interactive 3-D graphics. This kit will be exapanded in the future to incorporate the OpenGL standard.

 

Software Development

Software designed for the BeOS is highly modular, and in most cases allows for the dynamic loading and unloading of modules as needed. Software designed for the BeOS generally falls into one of four categories:

 

Application Software. Application software can be graphically based or command-line based (as described below). All applications are multithreaded, a capability inherent through the use of the Be software kits. Most applications will also create threads of their own.

Shared Libraries. Executable code can be placed in shared libraries, allowing multiple applications and processes to share common code, and reducing overall memory footprint. The BeOS itself makes use of shared libraries, resulting in significantly smaller application sizes than in traditional OS architectures.

Add-On Components. Also known as "plug-ins," the BeOS provides a standard architecture for software add-ons that extend the functionality of an application or driver. Add-ons can be dynamically loaded and unloaded as needed.

Drivers. Usually associated with hardware, drivers extend the BeOS kernel and OS servers to enable access to new hardware, network, and graphics capabilities. Drivers are also dynamically loaded and unloaded as needed.

 

Development Environment

A fast, object-oriented operating system provides the foundation for building high-performance, highly interactive applications. But that foundation is wasted without the right software development tools to take advantage of the capabilities.

That's why Be partnered with Metrowerks early in the BeOS development process to deliver the CodeWarrior integrated development environment native for Be systems. The award-winning CodeWarrior environment complements the tools already built-in to Be systems, allowing programmers to build GUI and command-line applications, shared libraries, and add-on components of any size. The familiar CodeWarrior features are there -- and more. CodeWarrior for the BeOS includes a multithreaded IDE that supports concurrent compilation -- taking advantage of multiple processors to speed application building.

  • Other features of the CodeWarrior environment include;
  • Support for C++ templates and zero-overhead exception handling
  • Multiple inheritance and RTTI support
  • Global optimization for PowerPC C/C++ compilers
  • Instruction scheduling for PowerPC 601, 603, and 604 processors
  • Metrowerks Standard Library (MSL) for C, includes source code
  • Sample code
  • Command-line tools for generating resources

     

Command-Line Environment and Posix

Designed in from the start, the BeOS provides a command-line shell environment based on the UNIX Bourne-Again Shell (bash) -- in addition to the native graphical environment. Many programmers find that they can be more productive during the development process using a command-oriented environment -- and a wide variety of programming tasks can only be accomplished from a text-based shell. The command-line shell can be accessed at any time by launching the Terminal application, and multiple shells can be invoked simultaneously.

In addition, the BeOS goes a step further by providing a Posix-compliant layer within the operating system. This library allows a wide array of UNIX shell tools to be compiled and run on the BeOS without change. The BeOS comes with over one hundred of these tools already installed, and more are being ported by Be and by third parties every day.

 

Leveraging Standards

Although the BeOS represents a fresh start in OS design, we'd be foolish not to leverage many of the key standards the software industry has adopted for functionality, from typeface design, to networking software, to the latest in multimedia formats.

The BeOS incorporates standards such as TCP/IP networking and Internet protocols for a wide variety of network-based services, TrueType and PostScript font technology, Posix and standard UNIX tools, MIDI musical data formats, MPEG and QuickTime video format support, and many other standards from across the industry. In each of these examples, we've taken the best the industry has to offer and incorporated it cleanly and effectively into the BeOS environment.

Support for standards within the BeOS is being extended even further. We're working in partnership with Metrowerks to bring the Java language and run-time environment to the BeOS. And we're incorporating one of the key standards for 3-D graphics, OpenGL(r), into the BeOS as well.

 

Demand and Distribution


In delivering a product to market, software developers have to face the three "Ds" -- development, demand creation, and distribution. They must address all three for their products to succeed. Our goal at Be is to aid developers in maximizing the opportunity for software that uses the BeOS as a platform, while minimizing costs and speeding time-to-market. To that end, Be is putting into place a range of programs that will aid developers in each stage of bringing a product to market.

 

Be Developer Programs

Immediately after the original BeBox was announced, the Be Developer Program was established. The Developer Program is designed to give programmers access to the tools and information they need to get new software up and running. Benefits of the program include:

  • Immediate notice of the latest Be product and technology announcements through electronic mail and through the Be Internet site.
  • Fast delivery of new versions of the Be Operating System for development purposes, and early notice of the features planned for future releases.
  • Access to Be developer support resources to answer technical questions and connections to others in the Be development community. Through developer support, developers have access to the Be engineering team to solve OS problems and suggest changes for future versions of Be products.
  • Access to Be developer purchase programs -- allowing participants to get access to the latest in Be hardware for development purposes, at discount prices.

The Be Developer Program has no complex qualification process. The Be developer profile is simple; members must be experienced programmers who have shipped products (shareware or commercial), have experience in C and C++, and have a good idea that they want to bring to the BeOS and Be-compatible hardware. (If you match this profile and want to develop BeOS-compatible hardware and/or software, a visit to the Be Web site is all you need to submit an application for the Developer Program.)

 

Distribution

Traditional distribution models, which carry significant risk and require considerable up-front capital for catalog advertising and for building retail infrastructure, have long been recognized as a factor in limiting the introduction of new technologies and ideas.

But the world of software distribution is changing, and, in the process, is opening horizons of opportunity for developers. How? The Internet enables delivery of detailed information about products, downloading of demo versions of software, and can provide extensive support for customers. It can even deliver products directly to the customer's personal computer. And the Internet can provide support for hybrid distribution programs that include traditional distribution channels.

From its inception, Be has leveraged the Internet for communication with developers and customers, for developer support, and for developer and customer sales and distribution. Be is building on this initial Web site foundation with the goal of providing a single location where all Be customers can turn for support, for information about the latest from Be, and for the latest information about third-party products. We'll be providing a range of options developers can choose from -- from simple hyperlink connections to Web-site hosting and purchase transaction completion. Through the Be site, developers will have regular access to Be customers, and customers will have a central place to turn for information and support for total solutions -- a win-win situation overall.

Be will also provide developers with access to Be value-added resellers and dealers. This aids not only the developer, who gets access to potential physical distribution, but also the reseller, who gets access to the latest product information and new solutions.

 

Comarketing

In addition to the programs described above, Be will be presenting a range of comarketing opportunities to developers -- from access to the Be Internet site, to demo placement on software CDs, to joint efforts targeting vertical markets. The core of the identity campaign for Be-compatible software will revolve around the Be Internet site, and the BeWare software mark, which any developer who produces Be-compatible software can use.

 

Why Develop for Be?


The decision to develop software or hardware for any platform involves evaluating a wide range of factors, including the ability to reach potential customers, the complexity of development, the cost of distribution, and possibly the most important factor: The ability to bring to market new, innovative ideas that would not otherwise be possible. As developers make plans for their next cutting-edge applications, Be offers a number of things to consider:

A New Technology Base. The BeOS provides a cutting-edge foundation for designing software that will fulfill the needs of the next decade's applications -- applications that involve extensive real-time media, complex graphics, and intensive communication capabilities. It jettisons much of the baggage associated with other mainstream operating systems, while retaining compatibility with key data and networking standards such as MPEG, TCP/IP, and MIDI. The BeOS delivers workstation-level performance at mainstream PC price points and provides an object-oriented environment compact enough for developers to be highly efficient, reducing time-to-market.

A New Business Model. The Be system presents a new business model for developers -- a model that delivers wider and more direct exposure to customers than traditional models. A model that eliminates distribution overhead and focuses on electronic delivery for wide reach, aided by informed, knowledgeable resellers focused on vertical markets. A model that delivers wide customer reach while reducing overall costs of distribution.

A Dedicated Partner. Since day one, Be has recognized that our success depends upon the success of our developers. It's the development community that will translate the power inherent in the BeOS into power usable by individual customers. For this reason, we have focused on making the BeOS environment as productive as possible for developers, and we're working to provide a complete, cost-effective business model for Be-compatible products. We're committed to continuing this dedication -- and partnership -- in the future

We're confident that the Be architecture delivers a fresh and exciting alternative for developers who are frustrated by the limitations of today's computing architectures. We invite developers to take the next step by contacting us to find out more about Be products, and about becoming an official Be developer. We can be reached directly through the Internet at our World-Wide Web site at http://www.be.com or via any of the avenues listed on the back cover of this document.

 


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.
Comments about this site? Please write us at webmaster@be.com.
Icons used herein are the property of Be Inc. All rights reserved.