TweetFollow Us on Twitter

Jan 97 Factory Floor

Volume Number: 13 (1997)
Issue Number: 1
Column Tag: From The Factory Floor

The Wizards of Be, Inc.

By Dave Mark, ©1996 by Metrowerks, Inc., all rights reserved.

The BeBox is a rare beast indeed. A very cool piece of hardware coupled with a brand new, "from the ground up" OS. This special Be-oriented issue of MacTech just wouldn't be complete without a chance to speak with two of the principals of Be, Inc. - Jean-Louis Gassée and Erich Ringewald.

Dave: Can you tell us a little about the birth of Be, Inc.?

Jean-Louis: While at Apple, I saw the problems arising from the growing complexity of the MacOS. At the same time, we envied some of the features of the Amiga - its support for audio and video applications and a truly multi-tasking OS, to name a few. We started Be with the idea we could free ourselves from the problems of the MacOS sausage factory, and build something like the Amiga - without Commodore.

Dave: How does the BeBox fit in with its peers - computers such as the Mac or WinNT box?

Jean-Louis: One of the things we've tried to emphasize is that we don't see the BeOS displacing Windows or the MacOS, or trying to slay any other Goliaths. There will be nearly 70 million PC's sold this year, many of them into office automation or home productivity and other non-performance oriented audiences.

However, part of the computing audience today, the "bit-flingers", are consuming processing power faster than it's coming to market. They've reached and passed the limits of today's OS architectures and need something more. This digital design crowd, the content creators for the rest of us, are handling digital audio, digital video, 3D, heavy image manipulation, and integrated web site design. They need something beyond the mainstream OS offerings they have today, and that's the center of our product focus. The BeOS may go other places, but the design point at the center is with this crowd.

Over the last year, we have focused on an even tighter segment - computer developers and "geeks." We're looking for the "guide geeks" in the market - those individuals who define new directions and new applications. We're not going to pretend that we are smart enough to predict the future all by ourselves, we need help. That's why our relationships with developers are placed at the center of what we are doing.

Dave: I know that CodeWarrior is the principal development environment for the BeBox. I've also heard of a tool called AppSketcher. Can you talk about your overall tools strategy, and describe the development cycle?

Erich: As a small company, we didn't set out to do a new OS and a new development environment. We couldn't help but notice that just about every PowerMac developer on the planet was using CodeWarrior from Metrowerks, so we decided to build our system around that. That meant adopting the Apple proprietary executable file format known as PEF, which is what CodeWarrior emits. It also meant supporting the Apple/IBM runtime environment for the PowerPC under the BeOS so that code generated by the compiler, and files emitted by the linker would be 100% compatible. Early developers did cross development with the standard issue CodeWarrior on the Mac, and when the native version of CodeWarrior became available, they could easily switch over to native development.

Developing a BeOS application under CodeWarrior is no different than developing one for the MacOS. The headers and libraries for MacOS are simply replaced with BeOS headers and libraries, and off you go.

AppSketcher is an "Interface Builder" like tool designed to work with the BeOS class library. It was developed by an enthusiastic Be developer called Lorienne International. It's really going to help with the busy work of designing UI's on the BeOS.

Dave: Let's talk about the BeOS API. When you say it is object-oriented, what does that really mean?

Erich: Essentially, the entire API of the system is presented to the application developer as a collection of C++ classes. With very few exceptions (no pun intended), these classes are organized into Software Kits, then segregated by function. For example, the Interface Kit contains all of the classes associated with UI and drawing on the screen, while the MIDI Kit contains classes encapsulating the MIDI functionality.

Of course the Mac has an API which is a flat collection of Pascal/C procedure calls. Any attempt at bringing object-oriented programming to the Mac have taken the form of class libraries "layered" on top of the native API. All the current frameworks (e.g. Power Plant, MacApp, TCL) are additional layers of code standing between the application programmer and the native OS implementation.

It is not hard to see the benefits of having an API that was conceived from the ground up as being object oriented; it is less a question of "lipstick on a chicken," and a much cleaner and more natural way to program.

Dave: The BeBox is said to be Multithreaded. What exactly does this mean on the BeBox?

Erich: Well, the underlying kernel provides the capability of running separate threads of execution with protected address spaces. However, when we say the entire OS is multithreaded, we mean that not only is this raw capability there, but the rest of the system (the UI implementation, the file system, the storage server) actually make heavy use of the multithreading and multiprocessing capabilities of the kernel. This ensures that all applications benefit from the MT/MP nature of the kernel and hardware without having to explicitly code for it.

The Application Server that implements the UI is a good example of this. Every time an application creates a window, two threads are created by the system. One runs in the Application Server's address space, the other runs in the application client's address space, and both interact to maintain the contents of the window in a lively and resposive fashion, regardless of whatever else is going on in the system. This kind of re-entrant, multithreaded implementation of a basic system service makes sure that the fundamental advantages of an MP/MT system are consistently delivered to the user without requiring explicit programming from the application developer.

Dave: The other mainstream multithreaded OS on the market is NT4. Can you draw some differences between BeOS and NT4?

Erich: NT4 has a great OS kernel. It's fast, reliable, and feature rich. However, not all of what the user sees with NT4 is written this way. At the risk of repeating myself, although the NT4 kernel does provide MP/MT capabilities, the Win 32 API and UI implementation that sits atop the kernel is not written to take advantage of MP/MT features. So, even though it's sitting on top of a great kernel, you can still click in title bars, bring down menus, drag windows around, and cause other visual components of the system to lock up while the mouse is down, just like on a Macintosh. So, while I'd recommend that my grandmother use NT4 in a closet, for a high-performance, reliable file server with no user interface to speak of, I don't think it stacks up to the BeOS as a next generation platform for highly responsive graphics and multimedia where interactivity must be maintained despite a collection of real-time demanding interface intensive applications.

Dave: How much of the BeOS was written in C++?

Erich: Almost all of it. The kernel itself is in C, along with about 3000 lines of assembler to handle the very lowest, processor-dependent pieces. The Kernel Kit and Network Kit both have low level C interfaces along with higher-level C++ interfaces. The rest of the BeOS is C++.

Dave: How are you dealing with the fragile base class problem?

Erich: We've spent a lot of time looking at the problem from many different angles. Obviously, a solution has to be provided in order to allow us flexibility to change the system, while ensuring developers compatibility in the future.

We've looked at SOM for some time now. We're concerned with a couple of issues related to SOM. There are many (many, many) restrictions imposed on language features using SOM. No function overloading is permitted. This is a major issue since it is a key feature of object-oriented programming. No parameters can be passed to constructors. You can't have static data members, or public data members. The list goes on.

On top of this, our tests on SOM indicate that it would cause a large performance hit to the overall system, something that goes against the very grain of our company. Basically, SOM gives us much more than we want. It solves more problems than the fragile base class problem, and it tries to solve binary object compatibility between languages and distributed objects. At this point, we're mainly interested in solving the first problem, and delivering performance. While SOM would provide solutions to other problems as well, we're not sure how many applications would actually take advantage of this. Given that every app would experience the performance hit, SOM is probably a case of using an atom bomb to remove a wart.

We also considered the simple solution of padding our classes with extra data and extra virtual functions. This isn't very elegant of course, but has a number of positives. It doesn't impact performance at all, except for slightly more memory required within objects. It is a simple solution that allows us to transition to a better solution, should one become available - specifically one that has less of a performance hit.

Most of all, this solution places no burden on the developers. Unlike SOM, it does not impact the way they write code. They can exploit all of the features of C++, including overloading, static data, etc. This is extremely important to us. An OS shouldn't put up more hurdles than it has to in order to develop new code. Furthermore, it shouldn't needlessly suck down performance.

So, we're going for the simpler solution now. It's not perfect but we're not willing to take the performance and complexity hits within SOM. We'll also investigate a versioning system so that the BeOS supports multiple versions of the same library (transparently.) This will enable us to gracefully transition to an improved scheme down the road.

Dave: Since many of our readers have not yet gotten their hands on a BeBox, can you tell me about the box itself? Why did you do the BeBox hardware implementation (rather than using other vendor's boxes)?

Erich: We're producing the BeBox for two key reasons. First, from a purely tactical perspective, we needed low-cost multiprocessor hardware in order to build the BeOS itself, and to prove out the MT/MP architecture. Second, we're committed to the idea that multiprocessing hardware should not be expensive - it should be a mainstream solution anyone can take advantage of. So, from Be itself, you'll see only multiprocessor, media feature-rich BeBox designs, since that is where we see the future of personal computing centered.

The BeBox Dual 603 that we sell today is a machine that mixes multiple processors with mainstream, low-cost, standard PC components. Two PowerPC microprocessors power the motherboard, which also features 3 PCI slots, 5 ISA slots, standard 72-pin DRAM SIMMS, and IDE and SCSI drive connectors. There are no "custom" components on the board, we've intentionally stayed away from that resource-sink.

On the back of the BeBox, you'll find SCSI, parallel, keyboard and mouse ports, along with a 16-bit stereo sound system (RCA and mini jacks provided), 4 serial ports, 2 joystick ports, 2 sets of MIDI ports for dual-channel MIDI, and 3 IR control ports. In addition, there's the GeekPort, which gives hardware specialists access to D/A and A/D convertors on the motherboard, as well as power. The GeekPort is protected by a set of fuses to prevent you from accidentally frying your motherboard.

The BeBox uses standard IDE and SCSI drives, standard floppy drives, and standard SCSI CD-ROM drives. In addition, graphics are supported by standard PCI graphic cards, and network connectivity by standard PCI or ISA cards. We have really tried to make a system that is as configurable and inexpensive as possible for a multiprocessor system.

Dave: Will I be able to build a MacOS app on the BeOS? Will I be able to run a Mac app on the BeOS?

Erich: Your first question, building MacOS apps on the BeOS, is really a question for tools vendors like Metrowerks. There is no reason this can't be done. We're using PEF, PowerPC, other standards so an application can be built. As we know from our early-days experience with creating BeOS applications on MacOS (which you can still do), cross platform development usually requires a few more tools to support debugging, etc. However, there is no reason this couldn't be done.

The second question, MacOS compatibility with the BeOS, can probably be broken into two parts. The first is data, hardware and network compatibility. We are intensely interested in this area. With the BeOS for PowerMac product, we are supporting standard PowerMac hardware. Why didn't we wait for CHRP? Because we are impatient. CHRP wasn't coming fast enough for us, and we decided it wasn't that hard to get the software running on current Apple hardware designs. So, you'll be able to set up both the MacOS and the BeOS on a PowerMac, in a dual boot setup, just as you would be able to do with CHRP. Basically, we're delivering CHRP today.

The BeOS is TCP/IP native, which is proving to be the single protocol that all platforms can agree upon (mainly due to the Internet.) We're also going to be looking at AppleTalk in the future, but first we'll see what initial customers tell us. Obviously, we want to support the printers and other devices currently available. Data compatibility, both standard data and the ability to read common application formats, is at the top of the list for us, and for most of our developers. In addition, the BeOS in the Q1 release will be able to support the MacOS HFS disk format as an external file system. This will allow you to see all of your Mac files and data from within the BeOS, and make use of it in BeOS applications.

The issue of MacOS application binary compatibility is more complex. Based on the discussions within the development community over the last few months, it is accepted that it is possible to provide this capability. One approach is similar to MAE, Apple's product for UNIX systems where the MacOS runs in a window. It may be somewhat simpler because you know you are running on a PowerPC, and you have the ROMs in the hardware! Another approach is to do what Windows NT does with DOS applications - build each old binary a "virtual Mac." The advantage of this approach is that you get some of the benefits of memory protection, even with older applications. However, there are other issues to this approach that might make it more difficult to deliver.

Be is committed to delivering the first hardware, network and data compatibility. We're looking at MacOS binary compatibility, as are a number of our developers, but we haven't made any decisions in that area yet.

Dave: How do you feel about Apple's recent troubles and their future?

Jean-Louis: I signed up with Apple in December of 1980, the day of the IPO. Doomsayers were already predicting Apple's demise for failing to support standards such as CP/M and 8 in. floppies. In 1982, there was the Apple /// fiasco, then the Lisa in 1983. In 1985, common wisdom declared the Macintosh stillborn - yet each time it managed to rebound. Apple enjoys a strong following in the developer community, as well as with users. With a new management team and healthier finances, I see every reason for Apple to come back.

Dave: Where do you see the computer industry going from here? Are there still frontiers to be explored? Still money to be made for the small developer?

Jean-Louis: The computer industry keeps renewing itself for simple, well-known reasons - there's never enough computing power, never enough bandwidth, never enough storage, and fortunately, semiconductor and other material technologies keep providing more capacity that software is only too happy to fill. As for new frontiers, three years ago the Web wasn't visible, and there is plenty to do in digital media simulations of all sorts that will keep the industry humming for a long time. Then we will have to expend all sorts of creative, technical and financial resources to make machines simpler. This will continuously create new opportunities for software developers, especially with new Web-based distribution channels.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Dropbox 193.4.5594 - Cloud backup and sy...
Dropbox is a file hosting service that provides cloud storage, file synchronization, personal cloud, and client software. It is a modern workspace that allows you to get to all of your files, manage... Read more
Google Chrome 122.0.6261.57 - Modern and...
Google Chrome is a Web browser by Google, created to be a modern platform for Web pages and applications. It utilizes very fast loading of Web pages and has a V8 engine, which is a custom built... Read more
Skype 8.113.0.210 - Voice-over-internet...
Skype is a telecommunications app that provides HD video calls, instant messaging, calling to any phone number or landline, and Skype for Business for productive cooperation on the projects. This... Read more
Tor Browser 13.0.10 - Anonymize Web brow...
Using Tor Browser you can protect yourself against tracking, surveillance, and censorship. Tor was originally designed, implemented, and deployed as a third-generation onion-routing project of the U.... Read more
Deeper 3.0.4 - Enable hidden features in...
Deeper is a personalization utility for macOS which allows you to enable and disable the hidden functions of the Finder, Dock, QuickTime, Safari, iTunes, login window, Spotlight, and many of Apple's... Read more
OnyX 4.5.5 - Maintenance and optimizatio...
OnyX is a multifunction utility that you can use to verify the startup disk and the structure of its system files, to run miscellaneous maintenance and cleaning tasks, to configure parameters in the... Read more
Hopper Disassembler 5.14.1 - Binary disa...
Hopper Disassembler is a binary disassembler, decompiler, and debugger for 32- and 64-bit executables. It will let you disassemble any binary you want, and provide you all the information about its... Read more
WhatsApp 24.3.78 - Desktop client for Wh...
WhatsApp is the desktop client for WhatsApp Messenger, a cross-platform mobile messaging app which allows you to exchange messages without having to pay for SMS. WhatsApp Messenger is available for... Read more
War Thunder 2.33.0.135 - Multiplayer war...
In War Thunder, aircraft, attack helicopters, ground forces and naval ships collaborate in realistic competitive battles. You can choose from over 1,500 vehicles and an extensive variety of combat... Read more
Iridient Developer 4.2 - Powerful image-...
Iridient Developer (was RAW Developer) is a powerful image-conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more

Latest Forum Discussions

See All

Best iPhone Game Updates: ‘Shoot the Moo...
Hello everyone, and welcome to the week! It’s time once again for our look back at the noteworthy updates of the last seven days. It feels like a bit of a dry spell this week, at least in terms of really interesting updates. I mean, I found some... | Read more »
Celebrate Phobies spooky second annivers...
Get ready to have that classic song stuck in your head, as Phobies celebrates its second anniversary with the release of its latest update; Birthday Bash, Monster Mash. Starting March 5th and lasting for four weeks, it will be a month of... | Read more »
‘Dissidia Final Fantasy Opera Omnia’ Sto...
Square Enix finally shut down Dissidia Final Fantasy Opera Omnia (Free) on iOS and Android last week following the end of service announcement back in November last year. Following the game shutting down, Square Enix | Read more »
‘Monster Hunter Now’ Is Celebrating the...
Niantic and Capcom have begun celebrating the 20th anniversary of Capcom’s best franchise from today inside Monster Hunter Now (Free) on iOS and Android for a limited time. | Read more »
New ‘Warframe Mobile’ Update Adds 60fps...
Warframe Mobile (Free) launched worldwide on iOS just under two weeks ago. I’ve been playing it for review across multiple iOS devices, but have also been picking it up on Steam Deck and Switch to compare. Right from launch, I was impressed with... | Read more »
Passionate About Fidget Toys – The Touch...
In this week’s episode of The TouchArcade Show we kick things off with some passionate discussion about… fidget toys? For some reason? We quickly change gears to talk about the card-based rogulike Balatro, which we’ve both been playing and enjoying... | Read more »
TouchArcade Game of the Week: ‘Flying Ta...
For me Hexage is one of those developers that harkens back to the early days of the App Store and really the beginnings of iPhone gaming. I have spent many collective hours playing the likes of Totemo, Radiant, Radiant Defense, EVAC, Reaper… the... | Read more »
SwitchArcade Round-Up: ‘Ufouria 2: The S...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for March 1st, 2024. In today’s article, we’re looking at the remaining releases of the week. There are a few really good ones today, but the bin bunch certainly isn’t going home hungry... | Read more »
Steam Deck Weekly: Reviews of PowerWash...
Welcome to the first Steam Deck Weekly of March and this week’s edition is bigger than usual. I was a bit unwell last week and had to push some reviews to this week. Alongside that, there have been many notable announcements, releases, and new Steam... | Read more »
10 Under $10: Ten Cheap, Good Nintendo S...
Hello, friends. It’s time yet again for a list of good Nintendo Switch games for reasonable prices. This time around, we’re wading into the extremely crowded waters of the shoot-em-up genre. Per the usual rules, the regular price of the game has to... | Read more »

Price Scanner via MacPrices.net

Apple discontinues 15-inch M2 MacBook Airs, d...
With today’s introduction of new M3-powered 15″ MacBook Airs, Apple has dropped prices on clearance, Certified Refurbished, 15″ M2 MacBook Airs to a new low of $1019. These are the cheapest 15″... Read more
Price Drop! 13-inch M2 MacBook Airs at Apple...
Apple has dropped prices on Certified Refurbished 13″ M2 MacBook Airs to a new low of $849. These are the cheapest M2-powered MacBooks for sale at Apple. Apple’s one-year warranty is included,... Read more
Apple finally discontinues the 13-inch M1 Mac...
With the introduction of M3-powered 13″ MacBook Airs today, Apple has dropped prices on clearance 13″ M1 MacBook Airs, Certified Refurbished, to $759 for 8-Core CPU/7-Core GPU/256GB models and $929... Read more
Updated Apple iPad Price Trackers
Our Apple award-winning iPad Price Trackers are the best place to find the latest information on iPad sales and deals. We track prices from 20+ Apple retailers, including Apple, Amazon, Best Buy,... Read more
Updated Apple MacBook Price Trackers
Our Apple award-winning MacBook Price Trackers are continually updated with the latest information on prices, bundles, and availability for 16″, 14″, and (recently-discontinued) 13″ MacBook Pros... Read more
Mac Studios with Apple M2 Max and M2 Ultra CP...
B&H Photo has the standard-configuration Mac Studio model with Apple’s M2 Ultra CPU in stock today and on sale for $300 off MSRP, now $3699 (24-Core CPU and 64GB RAM/1TB SSD). B&H Photo has... Read more
Extended: Switch to Verizon and get the Apple...
Verizon has the iPhone 15 on sale for $0 per month when you add a new line if service. Discount is applied to your account monthly over a 36 month term and is valid for the 128GB model. For the first... Read more
Select 16-inch M3 Pro and M3 Max MacBook Pros...
B&H Photo has select 16-inch M3 Pro and M3 Max MacBook Pros on sale for $250 off MSRP. Their prices are the lowest currently available for these configurations. Free 1-2 day shipping is available... Read more
27-inch Apple Studio Displays on sale for $10...
B&H Photo has 27″ Apple Studio Displays on sale for $100 off MSRP today. Free 1-2 day shipping is available to most US addresses: – Studio Display (Standard glass, Tilt stand): $1499 $100 off... Read more
iPad Airs return to their all-time lowest pri...
Best Buy has 10.9″ M1 WiFi iPad Airs on record-low sale prices again for $150 off Apple’s MSRP, starting at $449. Sale prices for online orders only, in-store price may vary. Order online, and choose... Read more

Jobs Board

Teller Part Time *Apple* Valley MN *Apple*...
…is not eligible for Visa sponsorship **Posting Location:** + 15574 Pilot Knod Road Apple Valley, MN 55124 @RWF22 **Posting End Date:** Job posting may come down Read more
*Apple* End User Support Specialist - North...
…that they are performed. + Responsible for support of all College owned Apple computers, mobile ios devices, and peripherals, and for diagnosing and resolving Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Teller Part Time *Apple* Valley MN *Apple*...
…is not eligible for Visa sponsorship **Posting Location:** + 15574 Pilot Knod Road Apple Valley, MN 55124 @RWF22 **Posting End Date:** Job posting may come down Read more
Nurse Anesthetist - *Apple* Hill Surgery Ce...
Nurse Anesthetist - Apple Hill Surgery Center WellSpan Medical Group, York, PA | Advanced Practice Providers | Certified Registered Nurse Anesthetists | FTE: 1 | Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.