The BeOS Application Server, usually referred to as the
app_server, is one of the most critical pieces of the
BeOS. The obvious reason is because it's the part of the BeOS that actually
draws things on the screen (setting aside a few exceptions like
BDirectWindow), so without the
app_server, you wouldn't
see anything on your monitor. That would make your system pretty
One of the interesting things about the
is that it's one of the strategic ways that we make the BeOS pervasively
multithreaded. When an application starts, it gets its own thread of
execution, which makes it a single-threaded app.
But as soon as it opens a window, another thread is started on the
app_server side to handle the drawing in that window.
This happens automatically, without the programmer having to do
anything. In other words, it's instant multithreading, for free!
Because of the
app_server, and other components of
the BeOS which are designed similarly, it's virtually impossible to
not write a multithreaded application on the BeOS. No other desktop
operating system makes this as easy or does this as thoroughly as the BeOS;
it is one of our greatest technical advantages.
app_server is important in other ways, though,
because it does more than just draw dots on the screen. The icon for the
BeOS Application Server is a generic application icon being "served up" by
a hand. And that's really what the
app_server does; it
handles a lot of things for each application, so the applications don't
Things like moving windows around on screen (which is related to
drawing), as well as managing events like key presses, mouse clicks, drags,
and the like. The
app_server determines what window, or
what part of that window, needs to be notified about each event, tells it,
and then the application can handle the event, knowing that the event
belongs to it.
You'll never double-click on the
you'll always know it's there!