... with system messages—messages generated
and dispatched by the system. The Message Protocols appendix of the Be Book
defines all thesystem messages. In short, system messages fall into the following
categories:
Application ... posted message becomes the next in the queue, the looper invokes
DispatchMessage() to pass the message to the target handler. The effect is for
the posted message to reach the target handler’s ... sev-
eral examples of the creating of messages and the dispatching of these messages
both by the object that created them and by other objects.
Figure 9-1. The inheritance hierarchy for the Application...
... For the Save file panel, the display of the panel comes when the user
chooses the Save As item from the File menu. In response to the message issued
by thesystem to the appropriate MessageReceived() ... control is in the hands of
the user. Once the user confirms a choice (whether it’s a file selection in the Open
file panel, a click on the Save button in the Save file panel, or a click on the Can-
cel ... in either type of panel), a message is automatically sent by the system
to the panel’s target. By default the panel’s target is the application object, but this
can be changed (either in the BFilePanel...
... during the execution of a program. An
object can be added or deleted from the heap without regard for its
placement in the heap, or for the other contents of the heap. The
stack, on the other hand, ... such tasks. The zoom-
ing and moving of windows is handled by the system, not by the SimpleApp code.
This simple demonstration emphasizes the power of the BeOS system software—it
is thesystem software ... window’s tab)
• The type of the window (the look and feel of the window)
• The behavior of the window (whether it has a resize knob, and so forth)
Recall from your C++ background that when the definition...
... file with the same name as the project (and
thus the same name as the application that will be built from the project). The
header file holds the definition of the class derived from the BApplication ... any
resizing of the window. The final BView constructor parameter determines the
types of notifications the view is to receive from the system. The Be constant
B_WILL_DRAW means that the view should ... stated that the header file that bears the name of the project should hold
the declaration of the project’s application class the class derived from the
BApplication class. Here you see that the HelloWorld.h...
... to
another window.
Class Descriptions and the Be Book
The definitive source of information for the many classes that make up the BeOS
software kits is the Be class reference by the programmers of the ... to them, some of
their classes appear throughout the book. See the description of the Support Kit
below for a specific example concerning the BLocker class.
Application Kit
The classes of the ... created in the application constructor, the
MyHelloWindow constructor is responsible for creating a new view, adding the
view to the new window, and then displaying the new window.
The new MyHelloWorld...
... was clicked. The values of the point are in the view’s coor-
dinate system. For example, if the cursor was over the very top left corner of the
view at the time of the mouse click, the point’s ... If the point (100.1, 49.9) is used instead, the result is the same the win-
dow’s corner ends up 100 pixels from the left and 50 pixels from the top of the
screen.
The above scenario begs the ... the window (to the top view), rather than
to another view, so both views are on the same level in the window’s view hierar-
chy. The Draw() function of each view type includes code to frame the...
... done in the Draw() function, where
a call to MovePenTo() ensures that the drawing will start in the top left corner of
the view (and, because the view is the same size as the window, the top ... FillRegion(fThreeRectRegion);
}
Implementing the MouseDown() routine for the MyDrawView class is as easy as
comparing the cursor location (supplied by thesystem when it automatically
invokes MouseDown()) to the area of the region. The ... defines one of the four
edges of a rectangle. The values of the left and right members are relative to
the left edge of the view that is to hold the rectangle, while the values of the top
and bottom...
... the BWindow hook function Zoom() to shrink or
enlarge the window. To allocate the handling of a message to one of its views, the
window passes the message to the affected view, and the view then ... on it, as for a button), thesystem passes the applica-
tion-defined message to the window. How the window handles the message is
determined by the code you include in the BWindow member function
MessageReceived().
Control ... values to the variables to be used in the control’s con-
structor
• Create the control using new and the control’s constructor
• Attach the control to the window by adding it to one of the window’s...
... as the item’s label when the user pulls down the menu in which the item
appears.
The message parameter assigns a message of a particular type to the menu item.
When the user chooses the item, the ... given the variable used to represent the sub-
menu the name subMenu, it really is nothing more than a BMenu object. The items
in the Dogs submenu were added the same way as the items in the Animal
menu—by ... all of
these items need to be shifted within the window, it would make sense to have
all of the items attached to a view within the window rather than to the win-
dow itself. Then a call to the...
... When the contents of the view a scrollbar is
attached to exceed the size of the view, the scrollbar’s knob appears and the
scrollbar becomes enabled. As the content of the view increases, the ... the window, so the default state for the
BStringView text has the text starting 10 pixels from the left edge of the win-
dow. Figure 8-6 makes it clear that this isn’t the starting point of the ... snippet produces the text shown in the window in Figure 8-4:
BFont theFont(be_plain_font);
theFont.SetSize(24.0);
theFont.SetRotation(45.0);
theView->SetFont(&theFont);
theView->MovePenTo(70.0,...
... architectures.
Today, the concept of an extensible operatingsystem is once again gaining acceptance this time as the solution
to the unconstrained growth of UNIX. During the last 20 years operating systems and their ... tasks.
Many other operating systems have met with this problem. Often these systems solve the problem by using inside
knowledge of the algorithms used to manage secondary storage. Unfortunately, the Mach ... of the 8th Symposium on OperatingSystem Principles, pages 64-75. December, 1981.
[16] Rashid, R.F.
From RIG to Accent to Mach: The Evolution of a Network Operating System.
In Proceedings of the...
... command:
ls >there
creates a file called there and places the listing there. Thus the argument >there means ‘‘place output on
there.’’ On the other hand:
ed
ordinarily enters the editor, which ... into a system table (the i-list) stored in a known
part of the device on which the directory resides. The entry found thereby (the file’s i-node) contains the
description of the file:
i the user ... However, the structure of files is controlled by the programs that use them, not by the system.
3.2 Directories
Directories provide the mapping between the names of files and the files themselves,...
... 138
Chapter 8 - TheUNIXSystem Interface
The UNIXoperatingsystem provides its services through a set of system calls, which are in
effect functions within theoperatingsystem that may be ... is uniform across operating
systems. On any particular systemthe routines of the standard library have to be written in
terms of the facilities provided by the host system. In the next few sections ... we will describe the
UNIXsystem calls for input and output, and show how parts of the standard library can be
implemented with them.
8.1 File Descriptors
In theUNIXoperating system, all input...
... 0);
// Close the files
close(infd);
close(outfd);
Figure 6-36. A program fragment for copying a file using the
UNIX
system calls. This fragment is in C because Java hides
the low-level system calls ... hardware)
Context
Valid
Physical
page
Virtual
page
tag
Flags
(b)
(c)
Format is
entirely
defined by
the operating
system
Translation table
(Operating system)
TSB (MMU + sofware)
Context
Entry 0 is shared
by all virtual pages
ending ... process
Children of A
Grandchildren of A
A A A
A
A A
Figure 6-43. A process tree in
UNIX
.
6
THE OPERATING SYSTEM
MACHINE LEVEL
1
(b)
Time
Process 3
Process 2
Process 1
Process 3
Process 2
Process...
... several versions of Unix. Until a few years ago, there wer e two
main versions: the line of Unix releases that started at AT&T (the latest is
System V Release 4), and another from the University ... and
window systems. Our examples show the bash shell and the GNOME and
KDE window environments. We’ve chosen them because they’re popular
and make good examples, not because we think they’re always the ... face to Unix. Why?
• Every Unixsystem has a command-line interface. If you know how
to use the command line, you’ll always be able to use the system.
• If you become a more-advanced Unix user,...