First Impressions

Citrix's New Multiuser OS/2

From BYTE, January 1991

OS/2-based workgroup computing without a LAN

Jon Udell

Multiuser OS/2? It makes a lot of sense. Throughout its short life, OS/2 has been an operating system with an identity crisis. Billed originally as the heir apparent to DOS and then Windows, OS/2 has so far been unimpressive in that role. Mainstream PC users now stampeding to Windows 3.0 (and eagerly awaiting DOS 5.0) clearly prefer incremental change to the quantum leap that OS/2 represents.

More recently, the action has been shifting to the LAN arena. Here, OS/2 gets billed as a network operating system and as the platform for server-based applications with which DOS and Windows clients will communicate. In the long run, you'll likely see both kinds of OS/2 systems: high-end desktop workstations and network servers.

But there's a third way. Citrix Systems, a team of IBM refugees led by OS/2 guru Ed Iacobucci, has extended OS/2 into the multiuser territory occupied by Unix, Xenix, QNX, Theos, and a variety of DOS-based operating systems. And the fledgling company has taken the right approach. Citrix Multiuser starts with OS/2 1.21 sources licensed from Microsoft and weaves in a terminal subsystem, user-oriented security, resource auditing, and the ability to address up to 256 megabytes of memory.

Citrix comes on four disks--one less than OS/2 1.21 (and dozens fewer than SCO Unix). How can Citrix's beefed-up OS/2 be smaller than the standard IBM/Microsoft version? There is one conspicuous omission: Presentation Manager (PM). You won't be running WingZ, PageMaker, or Corel Draw under Citrix Multiuser. You'll have to stick with character-mode applications like WordPerfect, Lotus 1-2-3, Word, HyperAccess, Oracle, Paradox, and R:base.

Granted, these aren't the hottest programs available for OS/2. But, in combination with custom software, they're a good fit for the needs of small- and medium-size retail and service businesses. If that's your game, glamorous bit-mapped graphics may not be high on your list of priorities. You want low cost per seat, central control, simple installation and administration, and rock-solid stability. That's what Citrix has to offer.

Setting Up Shop

I installed Citrix Multiuser on a 12-MB Compaq Systempro equipped with an eight-port Digiboard PC/Xi multiport adapter. The system uses unmodified OS/2 device drivers and should therefore support any multiport board for which an OS/2 driver exists. Citrix doesn't introduce any special disk utilities: You use FDISK and FORMAT, just as you normally do under OS/2.

The boot partition does have to be a High Performance File System partition, since Citrix (like LAN Manager) uses extended attributes to track access rights on a per-file, per-user basis. Secondary partitions can be file allocation table or HPFS, but Citrix can secure only HPFS partitions.

Citrix supports a variety of PCTERM terminals (i.e., terminals with standard 84- or 101-key keyboards that transmit PC scan codes instead of ASCII characters). Terminals for which Citrix provides drivers include the ADDS 2025, the IBM Model 3151, the Kimtron KT-70, the Link Technologies MC2 and MC5, the TeleVideo Systems Models 950 and 965, and the Wyse WY-150.

The config terminal utility, a full-screen interactive program that works like all the Citrix configuration tools, makes quick work of tweaking RS-232C communications settings. When all goes well, the terminal you're configuring wakes up and presents a Login: prompt. When it does not--as happened to me once--you've got some detective work to do. In general, Citrix makes setting up terminals at least as easy as the multiuser DOS systems I've seen--and that is, in my opinion, far easier than with Unix.

On the other hand, all these systems depend on cables and connectors, just as LANs do. Tracking down a faulty component isn't necessarily any easier with a multiuser system than with today's modular LANs.

PCTERM isn't the only terminal option. Teco, a Taiwanese manufacturer, has developed a new species of terminal that implements some of the OS/2 video I/O functions in its ROM. Citrix provided me with an engineering prototype of this terminal, which should be available this quarter at a list price of about $800. The VIO protocol speeds operations like scrolling, since the host can simply send a VioScrollUp command to the terminal instead of a screen of data.

Citrix says additional optimizations reduce the load on the host and lessen communications traffic. For example, if an application calls VioGetBuf to get the address of the logical video buffer, changes the contents of that buffer, and calls VioShowBuf to redisplay it, the terminal and host will conspire to exchange only the data needed for the update.

Teco terminals also support color text. Color is important, even in character mode. Color-coded data-entry screens can make life a lot easier for the folks who have to use them.

I'm willing to buy Citrix's argument that there's a sizable market for character-only multiuser systems, and I applaud the support for color text. I'm troubled, though, by the lack of mouse support. If you think that an effective graphical user interface (GUI) requires a bit-mapped screen, take a look at a program like FoxPro, which works just like FoxBase+ for the Macintosh.

Watching FoxPro users, I've noticed that those without mice seldom take advantage of one of the program's best features: the ability to interactively resize and reorder columns of data. A version of FoxPro for OS/2 (there isn't one yet, by the way) would lose much of its luster without mouse support. Some PCTERM terminals do come with extra serial ports that can drive mice, and Citrix agrees that it would be a good idea to put that capability to use in a future release.

Batten Down the Hatches

Citrix's security subsystem models itself loosely on that of LAN Manager: The same user, group, administrator, and guest categories apply. Tight security is the norm for users. The default group membership confers rights to a home directory (\usr\username) and to a minimal set of OS/2 and Citrix utilities. With config access, you can elaborate those rights as needed. It represents files and directories in outline form--like a character-mode version of OS/2's File Manager. As with LAN Manager, you can control rights to directories or to individual files.

Wild cards add a nice flexibility to the basic scheme. Suppose you've got the groups Accounting and Sales and a user called Joe. For a given directory or file, you can adjust rights for Joe.Accounting (Joe, when using his Accounting log-in), *.Accounting (everyone in Accounting), or Joe.* (Joe, regardless of how he logged in).

Names of directories and files with implicit (i.e., inherited) rights show up between curly brackets; names with explicitly assigned rights appear between square brackets. That's helpful when you're trying to sort out transitive relationships. Another convenience is that config access can always offer a pick list of user and group names, so you need never type the names.

Another tool, config profile, collects information about users and groups: passwords, resource limits, resource auditing, and log-in restrictions. As you'd expect, a user's profile inherits from a group profile and can then be customized. Adjustable limits include the number of log-ins, sessions, threads, file handles, and semaphores, and the amount of (virtual) memory. However, Citrix doesn't enable an administrator to limit the amount of disk space that a user or group can consume. A profile includes a "first program" field that defaults to a character-mode Program Selector (remember OS/2 1.0?).

If you want to create a single-purpose user account, you can substitute the name of an application. For example, when I specified Joe's first program as 123.exe, Joe could do nothing except run Lotus 1-2-3. When Joe quit 1-2-3, Citrix logged him off. Generally, you'll want to leave the Program Selector in place and use per-user start-up files to tailor users' environments.

Citrix adds an interesting wrinkle to system security. A number of OS/2 application programming interface functions are secure under Citrix Multiuser. That's because even with strict user-oriented security, a program could conceivably become a rogue. Using an OS/2 function like DosOpen with the right (or wrong!) arguments, a program could gain unrestricted access to the disk. Citrix therefore protects such entry points. If a program must legitimately use them, you can create a "user alias" for it and grant the necessary API access by way of that alias.

Pile On the Programs

I tested a number of programs, including Brief, Slick, WordPerfect, HyperAccess 5.0, Lotus 1-2-3, and Paradox. I also ran programs I compiled with the Microsoft C 6.0 and JPI Modula-2 compilers. Although everything ran without complaint, I did encounter a few quirks when transplanting single-user programs to the multiuser environment. It's sometimes necessary to distinguish between files that can be shared by all users and those that must be duplicated for each user. That's true when you run an application on a LAN, too; finding out what belongs where can involve a good bit of trial and error.

VIO can be an issue as well, depending on how a program handles the screen. When I compiled and ran a JPI demonstration program that uses character-mode graphics to simulate automobile traffic, Citrix slowed noticeably. Three concurrent instances of the simulator brought the system practically to its knees.

Inspecting the program, I found that it writes characters and attributes one at a time in a tight loop. That's not a problem for single-user OS/2 communicating with the video buffer at bus speed, but for Citrix, which talks to terminals at 38,400 bps or less, it's disastrous.

The solution is to use line- and screen-oriented update routines. Of course, the JPI demonstration is far from a typical Citrix application. Still, some commercial OS/2 applications do operate a character at a time, according to Citrix. Software vendors interested in the multiuser OS/2 market will certainly want to avoid that pitfall.

Hidden dependencies on PM can also cause problems. I had no trouble installing SQL Server and firing up a server process, but I couldn't get any of the associated tools to work with it from another session. Although saf (Server Administration Facility) and isql (the interactive Structured Query Language interpreter) operate in character mode, they failed to load under Citrix, complaining about a PM-related dynamic link library (DLL).

Apparently, the dependency extends to dblib, SQL Server's C library, since a bare-bones test program ran into the same wall. This surprised both me and Microsoft, but not Citrix. In beta testing, the company has come across several such PM dependencies, and it has even implemented PM stubs to enable programs to run in spite of them. As of this writing, Citrix had tested Oracle successfully but had not yet tried SQL Server. Presumably, it will be a candidate for the stub treatment. Again, software developers interested in Citrix should take note.

Off-the-shelf OS/2 programs also derive unique benefits from Citrix Multiuser. Most notably, they're far more efficient in their use of memory. Although shared DLLs can help conserve memory under single-user OS/2, they typically don't serve that purpose. How often does a user need two instances of Lotus 1-2-3 or Microsoft Word? Under Citrix, however, multiple instantiation of programs is the norm. And the memory saving that shared libraries can realize is dramatic.

Lotus 1-2-3 release 3.0, for instance, gobbles nearly a megabyte of RAM when you start it up. But each successive instance shares an 800K-byte chunk of common code and data, thus requiring only an additional 200K bytes of memory. To put it another way, five copies of 1-2-3 running on five separate single-user OS/2 machines will use 5 MB of RAM; five instances of 1-2-3 under Citrix will use less than 2 MB. That's an impressive feature that current incarnations of Unix and multiuser DOS can't match.

Why Citrix?

In an era dominated by networks and GUIs, Citrix Multiuser may seem like an anachronism. But value-added resellers and consultants who earn their keep delivering packaged business solutions will see it for what it is: a practical option. Clearly, Citrix faces stiff competition. If you require DOS applications, you'll go with a multiuser DOS system. When IBM finishes OS/2 2.0, a future release of Citrix built on top of it could become the multiuser DOS system of choice, but there's no DOS support now.

Likewise, if you're already a Unix expert, I doubt that Citrix will persuade you to switch. While simpler to install and manage, Citrix lacks Unix's rich assortment of tools and applications. Morever, until someone figures out how to make PM work with a remote display, OS/2 (and therefore Citrix) can't hope to compete with Unix's networkable GUI, X Window System.

Nevertheless, I suspect Citrix Multiuser will appeal widely enough to succeed. If you hired me to automate an opthalmologist's office or a small travel agency, I'd seriously consider using Citrix to do the job. Why? Because I'm just the sort of person who'd seek out a middle ground between DOS and Unix. OS/2 has so far proven to be more of an operating system than most individuals need or want. But, as Citrix ably demonstrates, that extra capacity can well serve the needs of a group.

    
The Facts: 

Citrix Multiuser 
$995 for five users; $495 for next five users; 
$495 for each additional 10 users 
  
Citrix Systems, Inc. 
210 University Dr., Suite 700 
Coral Springs, FL 33071 
(305) 755-0559 

Jon Udell is a BYTE senior editor at large. You can reach him on BIX as "judell."

Copyright © 1991 BYTE