[ Be Logo ] [ Home ][ Site Map ][ Search ][ Contact ][ Be Europe ][ Developers Banner ]
About Be, Inc.Be ProductsThe World of BeDeveloper ServicesJobs @ Be[Bottom]

Be Developer Services

Free Resources

BeIA FAQ

BeIA Evaluation

Partner Program

Join

Partner Area

|

  The BMessage
Issue 7    August 2, 2000

News

Be In the News

July 27, 2000
Be Offers Free OS as it Re-routes to Internet Appliances, vnunet.com

Be Press Releases

July 31, 2000
Be Incorporated and M-Systems Collaborate to Provide Flash Disk Integration Within Internet Appliance Software Platform

July 26, 2000
Be Incorporated's BeIA Software Platform to Power New Internet Appliance from First International Computer, Inc.

return to top

JLG

Jean-Louis Gassée Column
by Jean-Louis Gassée

There is no column from Jean-Louis this week. You may peruse his past articles here.

return to top

The Be Line

BeOS vs BeIA
By Pierre Raynaud-Richard, VP Engineering

Since we changed our focus from the desktop to Internet appliances, we've been asked some skeptical questions, such as why the new name, BeIA? Isn't that just a marketing ploy, to ride the Internet wave by trying to sell the old BeOS in a different box? And other questions, different but equally skeptical -- why a new product? What was wrong with BeOS? What's going to happen to BeOS? Is there anything exciting in BeIA, or is it just another boring embedded OS?

There are many ways to answer these questions. Lamar Potts, our Vice-President for Marketing and Sales, has already given a response that focuses on marketing and business aspects. Now I'd like to answer from the engineering point of view.

Even if our founders didn't target IAs (Internet appliances) when they started developing BeOS in 1990, they designed it with the right priorities in mind; that is, modularity and performance. In time, BeOS evolved into a very modular, highly extensible architecture, well-suited for media streaming without compromising performance. It is also exceptionally responsive and has a small footprint. These qualities didn't come for free; they were the result of the care and thoughtfulness of a great engineering team. I'd like to take the opportunity to acknowledge a few of these engineers now.

Benoît Schillings, one of our founders, made performance an integral part of the team culture. Our dislike of bloated code and limited resources helped keep the footprint under control more than anything else. Finally, our extensive use of multithreading, combined with careful management of priorities, interrupts, and drivers helped make BeOS responsive. The primary leaders of these efforts, also responsible for our extensible modular architecture, are Benoît, and more recently George Hoffman on the application framework side, and Cyril Meurillon, on the kernel side.

Why is this relevant for BeIA? Because once someone figures out how to make Internet appliances simple enough to use, they will be targeted at almost every consumer, just as TVs or VCRs are today. As consumer devices, the hardware cost to build them, the bill of materials, will be absolutely critical. If you've never dealt with an ODM (original device manufacturer), take a trip to Taiwan, which is where most of them live today.

I remember wondering how far they would go to reduce cost. Would they cut the performance of the machine by half to reduce the price by 20%, or even by 10%? I was young and naive...They would gladly reduce the performance of the hardware by half to cut 0.5% off the price, or even 0.1%, as long as they believe that the product is still attractive enough to sell in adequate volume -- preferably millions of units. Ideas that are commonly accepted in the desktop world, such as the fact that slow, bloated software -- both operating systems and applications -- no longer matter as CPUs, memory and storage capabilities increase quickly and regularly, don't really apply to IAs. Suddenly, being able to offer an attractive user experience on cheaper hardware has become more important.

So what else is needed here? Thanks to the modularity of BeOS, it was easy to extract the relevant core technology. BeOS and BeIA use the same architecture, and are mostly API compatible, which allows us to use BeOS as the development platform for BeIA, for new technologies and applications both. On the core technology side, the challenges remain similar to the desktop, but with different priorities. Stronger support for a large range of USB devices, for both UHCI and OHCI, is more important than ever. Various types of flash storage (CompactFlash, disk on chip, disk on module, etc.) and a compressed file system has become critical. Wireless networking solutions, touch screen, host-controlled modems -- the list goes on.

And don't think we curtailed technological innovation to focus only on cheap, low-end hardware support (have you heard rumors about a high-performance networking stack or OpenGL hardware acceleration?): innovation and high performance are still an integral part of our strategy. So even if it's not our main business focus, BeOS is still very much alive, both on its own (with projects like OpenTracker and OpenDeskbar) and as the technology integration platform and development platform for our new flagship product, BeIA.

Furthermore, it would be a mistake to think that BeIA is just another boring embedded OS. For one thing, it shares the highly modular, multithreaded and high performance technologies, architecture and APIs of BeOS. Also, it's much more than just an operating system: on top of the kernel, servers, and C++ framework, we've added a new component-based, web-content-driven application framework, designed to serve the specific needs of IA developers with customization, easy remote maintenance, and web integration.

Beyond the client software, we've begun to provide a wide range of server side facilities to allow easy management and services from a remote server (which doesn't have to be a BeOS server). Last but not least, BeIA is definitely not boring embedded technology. This is a fundamental part of the case for IAs that is often ignored. Everybody says they need to be cheap (but that won't really happen until they achieve volume sales). Most people also realize that they need to be easy to use and maintain, but many seem to forget that they need to be attractive and fun to play with. And this is where the well-known ability of BeOS to handle interactive streaming media on cheap hardware will allow us to make the difference.

return to top

Engineering Insights

Name That Tune!
By Marco Nelissen, Developer Technical Support Engineer

One of the new filesystem drivers included in BeOS 5 is the cdda-fs driver, which allows easy access to audio CDs. In this article I'll present a way to look up the CD and track names on the Internet, giving you the names as the artists intended them to be.

First, let's take a closer look at the wonderful world of simulated writeable filesystems on read-only media. When you rename a CD or a CD track manually, either from a Terminal window, or by using Tracker or any other application, cdda-fs stores these names in files located in ~/config/settings/cdda. It does this when the filesystem is unmounted. The files are plain ascii files: the first line of the file is the name of the CD and subsequent lines are the track names. The name of the file is the hexadecimal cddb-identifier code.

You'll also find some (lots!) of other files in this folder. These files have long cryptic names and are used to store attributes for the faked files on a cdda-fs volume. This allows attributes on a cdda-fs volume to be writeable (even though the CD itself is not), which in turn allows you to customize the way the volume appears in the Tracker, or even add your own custom attributes to the files.

When you mount a CD for which there is no corresponding track listing in ~/config/settings/cdda, the filesystem driver writes a file to ~/config/settings/cdda/TODO that contains all the information it has about the CD. This file contains a flattened t_CDFS_TOC structure, which is defined as:

typedef struct CDFS_TOC
{
    long numtracks;
    t_CDFS_TOC_Entry tocentry[100];
    ulong CDDBid;
    ulong CDPlayerkey;
} t_CDFS_TOC;
This structure lists all the information about the CD:
  • number of tracks
  • an array of structures describing each track
  • the 32-bit CDDB identifier
  • the 32-bit key that CDPlayer uses
CDDBid and CDPlayerkey can be calculated from the track info and are included for your convenience.

The structure that describes a single track on the CD looks like this:

typedef struct CDFS_TOC_Entry
{
    ulong startaddress;
    ulong length;
    ulong realtracknumber;
    char  *name;
} t_CDFS_TOC_Entry;
The members of this structure are pretty much self-explanatory. Startaddress and length are the offset and length of the track, and are given in sectors. In "cdda mode" CD sectors are 2352 bytes long, or 588 audio frames. Realtracknumber is the number of the track on the CD, which may differ from the tracknumber as it appears in cdda-fs, since cdda-fs will filter out any datatracks. This will only interfere with name lookups if there are audio tracks after a datatrack, as is the case for some game CDs that use Redbook audio for in-game music. Since these game CDs are generally not listed in any CD database on the Internet, this is of little consequence to us. Finally, the "name" member has no meaning in user space, and you should ignore it.

With all this information, we now know enough to contact our friendly server at freedb.freedb.org and ask it what CD this is. I won't go into the details of the required protocol here, but will instead point you to a very basic sample implementation: ftp://ftp.be.com/pub/samples/network_kit/cddblinkd.zip. This is a commandline app that does lookups only. Adding a graphical user interface or making it upload new data to the database is left as an exercise for the reader. Note that the supplied sample application will connect to freedb.freedb.org, a royalty-free service with a database accessible to anyone. While it is possible to modify the application to use other services, you should realize that if you do so it is up to you to make sure that you comply with any licensing restrictions set forth by the owner of that service.

Since this is a DTS article, I would also like to take this opportunity to answer a question that is often asked regarding cdda-fs: "Can you put the tracknumber in the filename, so the files appear in track order instead of alphabetical order"? The answer is that we could, but we won't (but now that you have the source code, you could do it yourself if you think it's absolutely necessary). The reason for this is that there is a better way: open the 'wav' folder in the Tracker, go to the "attribute" menu of the Tracker window, enable the "Track" attribute, then sort the list on the new column. Tracker will remember this setting, so you only need to do it once.

return to top


Statements contained in this Newsletter that are not historical facts are "forward-looking statements" including without limitation statements regarding the demand for, future market penetration and market acceptance of BeIA and BeOS, the shipment dates of Be's products, and the future operating results of Be Incorporated. Actual events or results may differ materially as a result of risks facing Be Incorporated or actual results differing from the assumptions underlying such statements. Such risks and assumptions include, but are not limited to, risks related to competition, market acceptance and market penetration of Be's products, ability to establish and maintain strategic relationships, the benefit of Be's products to OEM and Internet appliance manufacturers. the continued availability of third party BeOS applications and drivers, and the ability to establish and maintain strategic publishing relationships. All forward-looking statements are expressly qualified in their entirety by the "Risk Factors" and other cautionary statements included in Be Incorporated's Annual Report on Form 10-K for the year ended December 31, 1999, and other public filings with the Securities and Exchange Commission.

The BMessage
Copyright (c) 2001 by Be, Inc.
All rights reserved.

Be, Inc.
800 El Camino Real, Suite 400
Menlo Park, CA 94025
Tel: (650) 462-4100
Fax: (650) 462-4129
Web: http://www.be.com/

Be, BeOS and BeIA are trademarks or registered trademarks of Be Incorporated in the United States and other countries. Other brand product names are registered trademarks or trademarks of their respective holders. All rights reserved.

The BMessage is sent to subscribers of one or more of the Be mailing lists. For more information about subscribing/unsubscribing, see the Be web site: http://www.be.com/world/mailinglists.html. The Be web site also offers a complete set of current and back issues of Be Newsletters: If you have any comments about The BMessage, please e-mail them to:newsletter@be.com.



.
About Be, Inc. | Be Products | World of Be | BeOS Support | Jobs | Developers | Press | Partners | Investors
.
Copyright © 2001 by Be, Inc. All rights reserved. (Legal Info)
Comments, questions, or confessions about our site? Please write the Webmaster!