[comp.os.misc] PICK OS

gupta@uxe.cso.uiuc.edu (12/28/88)

A while back I posted a note asking for more info on the PICK Operating System.
I had a couple of responses and if those people who responded could send me
there email paths then I'd much appreciate it.

Also, I've heard rumors that PICK is becoming very popular (second to Unix?!)
and soon there will be UNION, a PICK - UNIX interface. I find it hard to
believe that it is so popular. Anyone else hearing similar things?

---
Rohit Gupta 	          Internet:   gupta%uxe.cso.uiuc.edu@uxc.cso.uiuc.edu
P. O. Box 2828 - Sta A    UUCP: uunet!uiucuxc!uxe!gupta
Champaign, IL 61820       Bitnet: gupta@vmd.cso.uiuc.edu  gupta@UIUCVMD

"K-Mart sucks!" - Rain Man

nick@aimed.UUCP (Nick Pemberton) (12/30/88)

In article <59000002@uxe.cso.uiuc.edu>, gupta@uxe.cso.uiuc.edu writes:
> 
> A while back I posted a note asking for more info on the PICK Operating System.
> I had a couple of responses and if those people who responded could send me
> there email paths then I'd much appreciate it.

I think I may have been one of them. See below for email path....

> 
> Also, I've heard rumors that PICK is becoming very popular (second to Unix?!)
> and soon there will be UNION, a PICK - UNIX interface. I find it hard to
> believe that it is so popular. Anyone else hearing similar things?
> 

PICK is very popular in a number of communities because of what it offers
to business users. I believe it is very popular in Europe, the UK and Australia
but I'll leave it up to those there to fill us in on that.

There are several different PICK/UNIX interfaces in place or being developed,
from the simple (I have implemented uucp, mail and news on PICK, which is
in Alpha test now on two ADDS Mentors and A HoneyWell Ultimate) to the
horrendously complex (ADDS is developing a machine that runs both unix and
pick on the same machine sharing a common kernal. Details are still sketchy
as ADDS has not released it - However I look forward to it). Another Product,
from VMARK I believe, is a PICK interpreter that runs under standard unix. I
haven't seen this running, but hear good things about it.

PICK is popular because it provides a good platform for database manipulations.
The OS is essentially a relational database (albeit a simple one), and is
very easy to develop business applications under. It is not by any means a
good OS for doing serious number crunching, because there is no true floating
point data type - everything is stored as a string. While it leads to high
overhead, no one cares when they're just adding dollars and cents. 

There are rumours floating about that C is going to be released for PICK, but
I'm not holding my breath: There are too many things about the OS that would
have to be restricted from C, particularly bitwise manipulation. The filesystem
itself cannot represent the full Ascii set (ASCII 255, 0xff, whatever... 
cannot be stored in a file because it is reserved by the system as a
delimiter of files and items - this restriction is carried over into
program variables). 

The Programming language at the moment is a hybrid of BASIC, but it has been
extended to meet PICK standards (if there are such beasts). It has one feature
that I would *love* in unix - dynamically linked functions. This allows
programs to place the name of a function in a variable and call that function,
providing the function has been 'cataloged'. Its amazing what you can do with
this ability - data driving programs gets one step better because such
programs can call custom code as required.

The filesytem, apart from the brain-damage I mentioned above is better then
that of unix because the contents of the 'directories' (actually called files
the equiv of unix files are called items, but those are just names) are
scatter storage. So on a well maintained system, one could have 40000 *items*
in a *file* (read files in a directory), and still do one disk access to find
that item.

Items are then further divided into attributes, which themselves are divided
into values, which in turn are divided into subvalues. This division is
all driven by a dictionary, which defines how the items are divided. Files
usually contain single records, similar records are stored in the same file.

The system is truely virtual, and unlike unix, one cannot run out of 'swap
space' - If more space is needed it is dynamically linked to what ever
entity needed it - a file, an item, a running process, whatever.

It has a built in ad hoc query language, that is quite powerfull for its age.
Any data on the system, given the appropriate dictionaries, can be
manipulated. This makes it very popular with business users, because the query
langauge is 'english' like, Lines like

SORT PAYROLL BY SALARY WITH SALARY > 10000 SHOWING NAME POSITION SALARY

are quite valid. The language can easily be extended, as it itself is data
driven.

It is a simple os. No fancy communications exist (believe me, just getting
uucp to work was a nightmare), and no decent security system exists. There
is a way of limiting read/write access, but it is not elegant at all, and it
is easy to crack. I'd be willing to wager that, *once logged on* to a PICK
system I could read any data on it, no matter what any one did to try and
protect it.  This is only a limitation if you have external connections and
don't protect yourselves. It is the reason the I severly (sp) restricted 
the abilities of the PICK uucp to allow remote requests.

Well, enough for now. I can be reached via email as given below, and will
respond to any other questions you may have...

Nick
-- 

Nick Pemberton                   UUCP: !{utzoo,utai}!lsuc!aimed!nick
AIM, Inc                          Bus: (416) 429-4913
                                 Home: (416) 690-0647