Byte Article Page 6

Photo 6 (Click to Enlarge)

 


 

The Operating System

NeXT uses the Mach Unix kernel developed at Carnegie-Mellon University. The Mach kernel is compatible with BSD (Berkeley Standard Distribution) Unix version 4.3, but provides major enhancements such as shared memory, fast interprocess communication, and potential multiprocessing support through the use of threads. Shared memory allows multiple processes to share common segments of memory. IPC allows processes to communicate with other processes and to transmit messages and data between them. Threads are "lightweight processes" that have their own execution stack, but within the context of the task that created it (i.e., the thread has access to all the resources made available to the parent task such as memory, and opened files).

Multiprocessing support is possible by assigning threads to particular processors. However, multiprocessing is not supported in the initial release of the NeXT operating system. Since you can add multiple CPU boards to the cube backplane, we can expect to see multiprocessing support in later releases of the operating system.

In NeXT's first release, the operating system consists of a single kernel with the Mach implementation of IPC, scheduling, and virtual memory operating as a layer within the BSD Unix kernel. However, the ultimate goal of the Mach implementation is to provide a modular architecture for Unix that would allow for a much smaller kernel with separate processes dedicated to file handling, networking, and Transmission Control Protocol/Internet Protocol (TCP/IP).

Like most Unix-based systems, the cube implements virtual memory using a paged-memory system to allow applications to run even if their memory requirements exceed the available physical memory. Idle portions of a running application are "paged" (i.e., written to disk) in 8K-byte blocks, called pages. However, as in all virtual-memory systems, it is possible to overload the system with too many applications, causing excessive paging or "thrashing," which can bring the system to a crawl. While NeXT was not ready to provide numbers for the amount of memory consumed by the system software, the 8-megabyte based memory configuration is designed to allow "three or four" applications to run simultaneously in addition to the system software.

For networking, NeXT uses TCP/IP and Sun's Network File System, which has become the standard Unix file-sharing system. Since the cube comes with an Ethernet interface, it is "network-ready" for TCP/IP-based networks. The thin Ethernet cabling allows up to 600 feet of cabling and connection of up to 30 machines without gateways or repeaters. While NFS does not require one, a dedicated server is preferable in networks of more than a few machines, due to performance degradation. In other words, if you're planning to network a bunch of cubes, you'll need a dedicated NFS server, or a cube to serve that purpose.

User Interface and Window Server

NeXT provides a graphical windowing interface to Unix that hides the laborious Unix commands from the user. While veteran Unix users still have the option of issuing those intuitive commands (like grep and ls) within a Unix CLI window called the Console, most cube users should never have to deal with Unix. The windowing interface, called the Workspace Manager, provides all the necessary functions for file management, opening and closing applications, and communicating with other resources on the system such as peripherals or nodes on the network.

The main interface screen is called the Workspace (see photo 6). Noticeably absent from the screen is the ever-present menu bar found on the Macintosh screen, or on a PC running Windows. Unlike the Macintosh Desktop, menus can be moved anywhere on the Workspace and float above any open windows.

Menus are hierarchical, and you can split off subhierarchies from their parent menus. Windows have scroll bars located on the left and bottom, and there are small boxes on the window frame for resizing or closing the window. It also has a "miniworld" function that collapses the window and its menus into an icon while the process owned by the window continues to run.

Icons become transparent when they overlay other icons, allowing you to always see everything that's currently available on the Workspace. The icons of frequently used applications can be "docked" along the right side of the Workspace for easy recall.

The Workspace is similar to the Desktop metaphor on the Macintosh, and the Workspace Manager is analogous to the Mac's Finder. However, no one will accuse NeXT of copying Apple's look and feel.

File management operations are similar to those used by the Mac Finder. When you click on a directory in the Workspace, you can examine the directory in a number of ways. There is a "browser window," which displays the directory tree in a window with the directory hierarchy ordered from left to right on the screen. This browser window normally lets you see three levels deep, but you can position the point in the hierarchy where you want to view the files, or resize the window to examine additional levels.

You can also choose to view the directory as icons with subdirectories represented by folders, or as a conventional text-only Unix directory listing.

The version we saw was definitely beta, so the final word on the Workspace will have to wait. Nevertheless, it seems very intuitive and easy to learn. Its performance seems good, and the display quality is excellent.

Rather than use an existing Unix window server such as X-Windows, NeXT designed its own proprietary Window Server. The Window Server manages all interactions between the windows, keyboard, and mouse for all applications attached to it. The Window Server obtains events from the operating system and handles the ones it can (e.g., resizing a window or moving it to another part of the screen). If it's not an event that it can service, the Window Server determines which application can and dispatches it to that application.

Embedded inside the Window Server is the Display PostScript interpreter, which acts on the PostScript commands passed to it. This embedded interpreter execute the PostScript commands it receives and writes the results into the cube's video RAM, making it appear on the monitor. The Window Server supports Mach IPC connections as well as connections through TCP/IP, allowing other cubes on a network to access another machine's Workspace. The proprietary Window Server means that existing applications that run on other Unix windowing systems will have to be modified to run under the NeXT windowing system. However, a Unix application that uses conventional console I/O will run inside the Console window without modification.

 

 

 

NeXT Page