Issue 7 August 2, 2000
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
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
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
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.