BeBox Zone Logo
 
About
Home
News
Forums
Registry
Tech Info
History
Be Inc Media Releases
1990
1991
1992-93
1994
1995
1996
1997
Opinions
Images
Articles
FAQs
Links
Operating Systems
Software
Contact Us





















BeBox History

Be Newsletter Issue 3

December 20, 1995

BE ENGINEERING INSIGHTS: "Our" Toy Story

By Steve Horowitz

The BeBox you see today is actually quite a bit different than the one that existed four years ago. Both the hardware and software have come quite far since the version we had running in our old offices, in an industrial park in San Jose in 1991.

The original design of the BeBox was actually implemented as a dual-Hobbit processor machine, with three digital signal processing (DSP) chips on the motherboard. The bus architecture was proprietary, but memory, hard disks, mice, and keyboards were all borrowed from what Jean-Louis likes to call the "PC clone organ bank."

The software at that time consisted of just a multiprocessing, multitasking kernel and a command-line shell for launching applications. There were no graphics, no windowing system, and no integrated database -- although all of these items were planned.

The first attempt at bringing some graphics capabilities to the machine came in the form of an evaluation of the NeWS windowing system from Sun Microsystems. My first job at Be was to learn PostScript to see what it was like to program in the NeWS environment. While NeWS did offer us a client-server approach to graphics and PostScript as a graphics model, it was rather large and the programming model, as well as the port to the BeBox, seemed complex.

While this evaluation was taking place and while we continued to evaluate other user-interface tool kits and graphics systems, an engineer named Benoit Schillings was quietly developing his own graphical windowing system. Using his intimate knowledge of the Be kernel, he optimized his graphics system to run extremely fast on the BeBox. To this day, Benoit remains our primary resident "speed freak."

The decision at that point became obvious. Although writing the entire graphics system from scratch was never our intent, we could see that it was the only way to achieve the kind of responsiveness and usability that we wanted for the BeBox. I abandoned the evaluation process and set out to help Benoit write the first version of the Be class library, which would interact with his speedy graphics server. Using the initial classes we developed (including windows, views, scroll bars, buttons, and menus), we set out to write a number of applications, including the file system Browser, to demonstrate and test the system. We were later joined by Eric Knight, who worked on the class libraries as well as several key demo applications, such as MIDI, MessageCenter, and FontDemo.

While all of this "high-level" work went on, the kernel, file system, I/O system, and device drivers continued to evolve and improve under Erich Ringewald, Bob Herold, and Cyril Meurillon, who had all been with the company since its inception.

In early 1994, Peter Potrebic joined the Be team and was given the responsibility of maintaining and enhancing the class libraries. Under Peter, the application framework saw a number of significant enhancements, including an improved application messaging system and the addition of threading classes. During release 2 of the software he was absolutely zealous in tracking down a number of extremely difficult bugs, which resulted in the system reaching a level of stability that we had never seen before. Our technical writers, Don Larkin and Doug Fulton also helped tremendously to make sure that the design of the class libraries and APIs were coherent and consistent.

Shortly after Peter joined the team, we hired another engineer named Robert Polic. Robert started out by helping Benoit with the graphics server and then showed tremendous versatility as he went on to work on many different levels of the system, from the SCSI and video drivers to many of our utility applications, such as IconWorld, CDPlayer, Keyboard, and all of our preferences applications.

By this time the team had grown large enough that certain development tools, such as source control and a bug-tracking system, became essential. Ming Low, who had been in charge of all of our builds, developed both of these tools and many others to keep the development effort running smoothly as the team grew. As the team grew, so did Ming's responsibilities, which included system configuration, network debugging, testing, and helping with each release of the software.

All of our software, of course, was still running on the dual-Hobbit, 3-DSP machine. While we were questioning the wisdom of having specialized DSP chips on the motherboard, we saw the entire future of the hardware cast in doubt when AT&T canceled the Hobbit processor line. It was decision-making time at Be again, and this time we saw the opportunity to make improvements in several areas. We needed a new processor and the PowerPC line seemed appealing on a number of fronts. First, it offered pretty good performance for the price. Second, it had the backing of a number of industry leaders (Apple, IBM, and Motorola) who assured its existence and design evolution. Last, but not insignificant from our perspective, was that unlike the Hobbit, the PowerPC chips had the ability to handle floating-point math very quickly. We saw this as our opportunity to abandon the specialized DSP chips and gain a much simpler system design. This new design retained the ability to process floating-point numbers very quickly, and was also able to throw both PowerPC chips at general system tasks if needed.

The entire PowerPC motherboard design, including the use of industry-standard ISA and PCI buses, was accomplished by a single hardware engineer, Joe Palmer. The port of our software to the PowerPC processor was basically the work of two engineers, Bob and Cyril. Bob worked magic as he single-handedly brought up each revision of the new hardware and debugged impossibly complex interactions between the lowest levels of our software and the new hardware. Cyril, meanwhile, rewrote a number of speed-critical, machine-dependant pieces of the kernel, including the interface to the memory management unit. The rest of us "high-level" guys basically just continued our work on the Hobbit boxes until the day Joe showed up in our offices with new PowerPC machines. With a new compiler and literally a simple recompile we had all of the applications, including the Browser, running on the new PowerPC boxes.

There was another benefit from the switch to the PowerPC, which we came to appreciate a great deal. Having designed all of our software for the Hobbit we were forced to spend a lot of time looking at performance issues, which we might have ignored had we started with the faster PowerPC. This resulted in a system that ran very well on the Hobbit processors, but was noticeably snappier on the PowerPCs.

As the PowerPC design took hold we added another key engineer, Brad Taylor, who quickly became the most popular guy on engineering row when he implemented the TCP/IP networking stack on the BeBox and ported the ftp tool for us to use for file transfers. Before Brad ported ftp, we had agonizingly used the tar tool to transfer files on floppies from our UNIX development machines to our BeBoxes. With ftp, Brad turned my transfer time for the Browser from one minute to three seconds. Since most of you reading this are developers, you know what a tremendous difference this makes in the development process.

The team itself was run by our VP of engineering, Erich Ringewald. Erich's contributions to the BeBox are considerable. Along with writing kernel code, keyboard drivers, and porting UNIX tools he has kept the team on track throughout its existence. He has refereed fierce battles in the engineering team and has made critical decisions throughout the design process. Without actually micromanaging any individual, Erich has managed to keep a team with extremely diverse skills and personalities all focused on the same goal.

Some of the other later additions to the Be product team have been Melissa Rogers, Rico Tudor, Roy West, and Guillaume Desmarets. Melissa is the self-described "chief pitbull." She keeps the engineering team in line and is responsible for the project schedule and about fifty other things at Be. Rico was given the task of porting the bash shell to the Be environment and writing a new ansi terminal application to host bash. Roy thought he was just going to write user documentation, but has ended up becoming our webmaster, writing and editing marketing materials, and proofing this newsletter. And he's even managed to write some user documentation. Guillaume has joined us to help Joe with future versions of Be hardware.

I hope this article has given you a feel for the evolution of the BeBox hardware and software and for some of the major milestones along the way. Even though we've worked on the BeBox for a number of years there's still a great deal left to do. With your help and feedback we'll continue to improve the Be hardware and operating system to give your software a solid base to run on. I hope to write a similar article in the coming years that will continue the story, with all of the incredible innovations you'll bring to the BeBox in the form of enhancements, utilities, and ground-breaking applications.





 Questions? Comments? Contact Andrew Lampert (webmaster at bebox dot nu).


BeUnited
BeBits
LeBuzz Blog
BeOS Radio
BeDope

© 1998-2009 Andrew Lampert