Pick operating system
The Pick operating system (often called just "the Pick system" or simply "Pick") is a demand-paged, multiuser, virtual memory, time-sharing computer operating system based around a unique MultiValue database. Pick is used primarily for business data processing. It is named after one of its developers, Dick Pick.
|Developer||Don Nelson, Dick Pick, TRW|
|Written in||Assembly language|
|Initial release||1965 (GIRLS), 1973 (Reality Operating System)|
|Marketing target||Business data processing|
|Platforms||Solaris, Linux, AIX, Windows Server (2000 and up)|
|Kernel type||Monolithic (or none for operating environment implementations)|
|Default user interface||Text-based|
The term "Pick system" has also come to be used as the general name of all operating environments which employ this multivalued database and have some implementation of Pick/BASIC and ENGLISH/Access queries. Although Pick started on a variety of minicomputers, the system and its various implementations eventually spread to a large assortment of microcomputers, personal computers and mainframe computers.
The database is a 'hash-file' data management system. A hash-file system is a collection of dynamic associative arrays which are organized altogether and linked and controlled using associative files as a database management system. Being hash-file oriented, Pick provides efficiency in data access time. Originally, all data structures in Pick were hash-files (at the lowest level) meaning records are stored as associated couplets of a primary key to a set of values. Today a Pick system can also natively access host files in Windows or Unix in any format.
A Pick database is divided into one or more accounts, master dictionaries, dictionaries, files and sub-files, each of which is a hash-table oriented file. These files contain records made up of fields, sub-fields and sub-sub-fields. In Pick, records are called items, fields are called attributes, and sub-fields are called values or sub-values (hence the present-day label "multivalued database"). All elements are variable-length, with field and values marked off by special delimiters, so that any file, record, or field may contain any number of entries of the lower level of entity. As a result, a Pick item (record) can be one complete entity (one entire invoice, purchase order, sales order, etc.), or is like a file on most conventional systems. Entities that are stored as 'files' in other common-place systems (e.g. source programs and text documents) must be stored as records within files on Pick.
The file hierarchy is roughly equivalent to the common Unix-like hierarchy of directories, sub-directories, and files. The master dictionary is similar to a directory in that it stores pointers to other dictionaries, files and executable programs. The master dictionary also contains the command-line language.
All files (accounts, dictionaries, files, sub-files) are organized identically, as are all records. This uniformity is exploited throughout the system, both by system functions, and by the system administration commands. For example, the 'find' command will find and report the occurrence of a word or phrase in a file, and can operate on any account, dictionary, file or sub-file.
Each record must have a unique, primary key which determines where in a file that record is stored. To retrieve a record, its key is hashed and the resultant value specifies which of a set of discrete "buckets" (called "groups") to look in for the record. (Within a bucket, records are scanned sequentially.) Therefore, most records (e.g. a complete document) can be read using one single disk-read operation. This same method is used to write the record back to its correct "bucket".
In its initial implementation, Pick records were limited to 32 KB in total (when a 10 MB hard disk cost US$5000), although this limit was removed in the 1980s. Files can contain an unlimited number of records, but retrieval efficiency is determined by the number of records relative to the number of buckets allocated to the file. Each file may be initially allocated as many buckets as required, although changing this extent later may (for some file types) require the file to be quiescent. All modern multi-value databases have a special file-type which changes extent dynamically as the file is used. These use a technique called linear hashing, whose cost is proportional to the change in file size, not (as in typical hashed files) the file size itself. All files start as a contiguous group of disk pages, and grow by linking additional "overflow" pages from unused disk space.
Initial Pick implementations had no index structures as they were not deemed necessary. Around 1990, a B-tree indexing feature was added. This feature makes secondary key look-ups operate much like keyed inquiries of any other database system: requiring at least two disk reads (a key read then a data-record read).
Pick data files are usually two levels. The first level is known as the "dictionary" level and is mandatory. It contains:
- Dictionary items – the optional items that serve as definitions for the names and structure of the items in the data fork, used in reporting
- The data-level identifier – a pointer to the second or "data" level of the file
Files created with only one level are, by default, dictionary files. Some versions of the Pick system allow multiple data levels to be linked to one dictionary level file, in which case there would be multiple data-level identifiers in the dictionary file.
A Pick database has no data typing, since all data is stored as characters, including numbers (which are stored as character decimal digits). Data integrity, rather than being controlled by the system, is controlled by the applications and the discipline of the programmers. Because a logical document in Pick is not fragmented (as it would be in SQL), intra-record integrity is automatic.
In contrast to many SQL database systems, Pick allows for multiple, pre-computed field aliases. For example, a date field may have an alias definition for the format "12 Oct 1999", and another alias formatting that same date field as "10/12/99". File cross-connects or joins are handled as a synonym definition of the foreign key. A customer's data, such as name and address, are "joined" from the customer file into the invoice file via a synonym definition of "customer number" in the "invoice" dictionary.
Pick record structure favors a non-first-normal-form composition, where all of the data for an entity is stored in a single record, obviating the need to perform joins. Managing large, sparse data sets in this way can result in efficient use of storage space. This is why these databases are sometimes called NF2 or NF-squared databases.
Pick was originally implemented as the Generalized Information Retrieval Language System (GIRLS) on an IBM System/360 in 1965 by Don Nelson and Richard (Dick) Pick at TRW, whose government contract for the Cheyenne Helicopter project required developing a database. It was supposed to be used by the U.S. Army to control the inventory of Cheyenne helicopter parts.
Pick was subsequently commercially released in 1973 by Microdata Corporation (and its British distributor CMC) as the Reality Operating System now supplied by Northgate Information Solutions. McDonnell Douglas bought Microdata in 1981.
Originally on the Microdata implementation, and subsequently implemented on all Pick systems, a BASIC language called Data/BASIC with numerous syntax extensions for smart terminal interface and database operations was the primary programming language for applications. A PROC procedure language was provided for executing scripts. A SQL-style language called ENGLISH allowed database retrieval and reporting, but not updates (although later, the ENGLISH command "REFORMAT" allowed updates on a batch basis). ENGLISH did not fully allow manipulating the 3-dimensional multivalued structure of data records. Nor did it directly provide common relational capabilities such as joins. This was because powerful data dictionary redefinitions for a field allowed joins via the execution of a calculated lookup in another file. The system included a spooler. A simple text editor for file-system records was provided, but the editor was only suitable for system maintenance, and could not lock records, so most applications were written with the other tools such as Batch, RPL, or the BASIC language so as to ensure data validation and allow record locking.
By the early 1980s observers saw the Pick operating system as a strong competitor to Unix. BYTE in 1984 stated that "Pick is simple and powerful, and it seems to be efficient and reliable, too ... because it works well as a multiuser system, it's probably the most cost-effective way to use an XT". Dick Pick founded Pick & Associates, later renamed Pick Systems, then Raining Data and as of 2011 TigerLogic and more recently Rocket Software. He licensed "Pick" to a large variety of manufacturers and vendors who have produced different "flavors" of Pick. The database flavors sold by TigerLogic were D3, mvBase, and mvEnterprise. Those previously sold by IBM under the "U2" umbrella are known as UniData and UniVerse. Rocket Software purchased IBM's U2 family of products in 2010 and TigerLogic's D3 and mvBase family of products in 2014.
Pick Systems often became tangled in licensing litigation, and devoted relatively little effort to marketing and improving its software. Subsequent ports of Pick to other platforms generally offered the same tools and capabilities for many years, usually with relatively minor improvements and simply renamed (for example, Data/BASIC became Pick/BASIC and ENGLISH became ACCESS). Licensees often developed proprietary variations and enhancements (for example, Microdata created their own input processor called ScreenPro).
Derivative and related products
What most characterizes Pick is the design and features of the database and the associated retrieval language. The Pick database was licensed to roughly three dozen licensees between 1978 and 1984, some of which are included in this list. Application-compatible implementations evolved into derivatives and also inspired similar systems.
These implementations are split up into three basic divisions:
- Hardware: The operating system and database were based in firmware. On the assembler level, all references were to addresses on the disk, rather than RAM.
- Software: Intermediate software translated the already existing programming into the native machine language, usually on microprocessors.
- Guest operating environments: The system and database were implemented in an application that simulated most of the Pick functions, like the Basic and retrieval languages. In general, they depended on their host operating systems for everything else, from disk mapping to security.
- The first implementation of the Pick database was on a Microdata platform using firmware and called Reality. The first commercial release was in 1973. Microdata acquired CMC Ltd. in the early 80s and were based in Hemel Hempstead, England. The Microdata implementations ran in firmware, so each upgrade had to be accompanied by a new configuration chip. Microdata itself was eventually bought by McDonnell-Douglas Information Systems. Pick and Microdata sued each other for the right to market the database, the final judgment being that they both had the right. In addition to the RealitySequoia and Pegasus] series of computers, Microdata and CMC Ltd. sold the Sequel(Sequoia) series which was a much larger class able to handle over 1000 simultaneous users. The earlier Reality minicomputers were known to handle well over 200 simultaneous users, although things got pretty slow and it was above the official limit. Pegasus systems superseded Sequoia and could handle even more simultaneous users than its predecessors. The modern version of this original Pick implementation is owned and distributed by Northgate Information Solutions Reality.
- The second implementation of the Pick database was developed in about 1978 by a New Jersey company called The Ultimate Corp, run by Ted Sabarese. Like the earlier Microdata port, this was a firmware implementation, with the Pick instruction set in firmware and the monitor in assembly code on a Honeywell Level 6 machine. The system had dual personalities in that the monitor/kernel functions (mostly hardware I/O and scheduling) were executed by the native Honeywell Level 6 instruction set. When the monitor "select next user" for activation control was passed to the Honeywell WCS (writable control store) to execute Pick assembler code (implemented in microcode) for the selected process. When the users time slice expired control was passed back to the kernel running the native Level 6 instruction set.
- Ultimate took this concept further with the DEC LSI/11 family of products by implementing a co-processor in hardware (bit-slice, firmware driven). Instead of a single processor with a WCS microcode enhanced instruction set, this configuration used two independent but cooperating CPUs. The LSI11 CPU executed the monitor functions and the co-processor executed the Pick assembler instruction set. The efficiencies of this approach resulted in a 2× performance improvement.
- The co-processor concept was used again to create a 5X, 7x and dual-7x versions for Honeywell Level 6 systems. Dual ported memory with private busses to the co-processors were used to increase performance of the LSI11 and Level 6 systems.
- Another version used a DEC LSI-11 for the IOP and a 7X board. Ultimate enjoyed moderate success during the 1980s, and even included an implementation running as a layer on top of DEC VAX systems, the 750, 780, 785 and later the MicroVAX. Ultimate also had versions of the Ultimate Operating System running on IBM 370 series systems (under VM and native) and also the 9370 series computers. Ultimate was renamed Allerion, Inc., before liquidation of its assets. Most assets were acquired by Groupe Bull, and consisted of mostly maintaining extant hardware. Bull had its own problems and in approximately 1994 the US maintenance operation was sold to Wang.
- Prime INFORMATION
- Devcom, a Microdata reseller, wrote a Pick-style database system called INFORMATION in FORTRAN and assembler in 1979 to run on Prime Computer 50-series systems. It was then sold to Prime Computer and renamed Prime INFORMATION. It was subsequently sold to Vmark Software. This was the first of the guest operating environment implementations. INFO/BASIC, a variant of Dartmouth BASIC, was used for database applications.
- Another implementation of the system called UniVerse was by VMark Software, which operated under Unix and Windows. This was the first one to incorporate the ability to emulate other implementations of the system, such as Microdata's Reality Operating System, and Prime INFORMATION. Originally running on Unix, it was later also made available for Windows. It now is owned by Rocket Software. (The systems developed by Prime Computer and VMark are now owned by Rocket Software and referred to as "U2".)
- Very similar to UniVerse but UniData had facilities to interact with other Windows applications. It is also owned and distributed by Rocket Software.
- Prime Computer rewrote Prime INFORMATION in C for the Unix-based systems it was selling, calling it PI+. It was then ported to other Unix systems offered by other hardware vendors and renamed PI/open.
- (Applied Digital Data Systems) This was the first implementation to be done in software only, so upgrades were accomplished by a tape load, rather than a new chip. The "Mentor" line was initially based on the Zilog Z-8000 chipset and this port set off a flurry of other "software implementations" across a wide array of processors with a large emphasis on the Motorola 68000.
- Fujitsu Microsystems of America
- Another software implementation, existing in the late 1980s. Fujitsu Microsystems of America was acquired by Alpha Microsystems on October 28, 1989.
- Another software implementation, existing in the 1980s
- General Automation "Zebra"
- Another software implementation, existing in the 1980s
- A software implementation on an 8086 chipset platform launched around 1983.
- Another software implementation, existing in the 1980s
- Another software implementation, existing from 1984. Sequoia was most well known for its fault-tolerant multi-processor model, which could be dialed into with the users permission and his switching terminal zero to remote with the key on the system consol. He could watch what was done by the support person who had dialed on his terminal 0, a printer with a keyboard. Pegasus came out in 1987. The Enterprise Systems business unit (which was the unit that sold Pick), was sold to General Automation in 1996/1997.
- In 1984, Cosmos released a Pick-style database called Revelation, later Advanced Revelation, for DOS on the IBM PC. Advanced Revelation is now owned by Revelation Technologies, which publishes a GUI-enabled version called OpenInsight.
- jBASE was released in 1991 by a small company of the same name located in Hemel Hempstead. Written by former Microdata engineers, jBASE emulates all implementations of the system to some degree. jBASE is unique in that it compiles applications to native machine code form, rather than to an intermediate byte code. In 2015, cloud solutions provider Zumasys in Irvine, California, acquired the jBASE distribution rights as well as the intellectual property from Temenos Group.
- UniVision was a Pick-style database, designed as a replacement for the Mentor version but with extended features, released in 1992 by EDP located in Sheffield.
- OpenQM is the only MultiValue database product available both as a fully supported non-open source commercial product and in open source form under the General Public Licence. OpenQM is available from its exclusive worldwide distributor, Zumasys.
- In 2005 InterSystems, the maker of Caché database, announced support for a broad set of MultiValue extensions in Caché. Caché for MultiValue.
- ONware equips MultiValue applications with the ability to use the common databases, such as Oracle and SQL Server. Using ONware, MultiValue applications can be integrated with Relational, Object and Object-Relational applications.
- Pick Systems ported the Pick operating system to run as a database product utilizing host operating systems such as Unix, Linux or Windows servers, with the data stored within the file system of the host operating system. Previous Unix or Windows versions had to run in a separate partition, which made interfacing with other applications difficult. The D3 releases opened the possibility of integrating internet access to the database or interfacing to popular word processing and spreadsheet applications, which has been successfully demonstrated by a number of users. The D3 family of databases and related tools is owned and distributed by Rocket Software.
Over the years, many important and widely used applications have been written using Pick or one of the derivative implementations. In general, the end users of these applications are unaware of the underlying Pick implementation.
Criticisms and comparisons
Native Pick did not need another underlying operating system to run. All of the early versions of Pick ran without another operating system. However modern implementations of the Pick operating system need a host OS (Windows, Linux, Unix, etc.) to exist. The host OS provides access to hardware resources (processor, memory, storage, etc.), but Pick also has its own process and memory management internal to itself. (Purportedly object-oriented solutions like Caché may address these problems.)
Modern networking in mvBase (one of the more popular implementations) is not possible without a side-car application running in the host OS that translates network connections (TCP ports) to Pick's native implementation of networking, serial connections.
Credentials and security
Individual user accounts must be created within the Pick OS, and cannot be tied to an external source (such as local accounts on the host OS, or LDAP).
User passwords are stored within the Pick OS as an encrypted value. The encrypted password can be "cracked" via brute force methods, but requires system access and Pick programming skills as part of the attack vector.
Expertise and support
Companies looking to hire developers and support personnel for MultiValue-based (Pick-based) systems recognize that although developers typically do not learn the environment in college and university courses, developers can be productive quickly with some mentoring and training. Due to the efficient design and nature of the programming language (a variant of BASIC), the learning curve is generally considered low. Pick products such as D3, UniVerse, UniData, jBASE, Revelation, MVON, Caché, OpenQM, and Reality are still supported globally via well established distribution channels and resellers. The mvdbms Google Group is a useful place to start when looking for resources.
- Pragma, a 1980s publication for Pick users
- Ramming, D; Bourdon, Roger J. (1989). "The pick operating system - a Practical Guide". Proceedings of the IEEE. 77 (2): 363. doi:10.1109/JPROC.1989.1203777.
- "PICK Operating System - brings Mainframe Power to your PC". InfoWorld. July 27, 1987. p. 80.
- it was actually developed on an IBM mainframe
- "General Overview of Classic Pick - a short history". 1995.
- "About PICK/BASIC".
- "Accounts and Files".
- "String-Handling Intrinsic Functions".
- Donald B. Nelson (March 19, 1965). "GENERALIZED INFORMATION RETRIEVAL LANGUAGE AND SYSTEM (GIRLS) USER REQUIREMENTS SPECIFICATION". Retrieved 6 February 2015.
- By law, this original work is public domain, unlike what was subsequently developed beyond the TRW contract.
Dick Elleray (16 July 1986). "Project Management Bulletin 1986/09 - "The Reality Operating System Revealed". 1986/09. Project Management Group, McDonnell Douglas Informations Systems Group. Cite journal requires
- "Jonathan E. Sisk's Pick/BASIC: A Programmer's Guide".
- Fiedler, Ryan (October 1983). "The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace". BYTE. p. 132. Retrieved 30 January 2015.
- Rochkind, Marc J. (Fall 1985). "Pick, Coherent, and THEOS". BYTE. p. 231. Retrieved 19 March 2016.
- "Richard A. "Dick" Pick (d. 19 Oct 1994)".
- Chris Woodyard (October 19, 1994). "Software Developer Dick Pick Died at 56". The Los Angeles Times.
- CARLA LAZZARESCHI (November 3, 1985). "Computer Wiz Tries Harder to Get Users to Pick His System". The Los Angeles Times.
- "Pick's lack of marketing"
- "Numeric Data Conversion and Output".
- "In Depth - Pick Operating System". Computerworld. March 24, 1986. p. 93.
- Alpha Micro Says It Will Purchase Fujitsu Company. L.A. Times October 28, 1989. Retrieved August 4, 2013.
- Alpha Micro Previews Apix Concurrent Pick+Unix V.4. Computer Business Review, March 11, 1990. Retrieved August 4, 2013.
- Mark, Peter B. (1985). "The Sequoia computer". ACM Sigarch Computer Architecture News. Portal.acm.org. 13 (3): 232. doi:10.1145/327070.327218.
- Simons, Barbara; Spector, Alfred Z. (1990-01-01). Fault-tolerant distributed computing - Google Boeken. ISBN 9783540973850. Retrieved 2012-01-21.
- "Sequoia Systems Reports Results for Second Quarter 1997. - Business Wire". Highbeam.com. Retrieved 2012-01-21.
- "Zumasys Acquires jBASE Database From Temenos Software -". www.zumasys.com. 2015-01-05.
- A 1980's "shootout" had Pick "still going after 30" minutes whereas MUMPS had finished sort 100,000 "in less than a minute.""BIG NEWS".
- The REALITY Pocket Guide ; Jonathan E. Sisk ; Irvine, CA ; JES & Associates, Inc. ; 1981 OCLC 216178915
- The PICK Pocket Guide; Jonathan E. Sisk ; Irvine, CA ; Pick Systems ; 1982
- Exploring The Pick Operating System ; Jonathan E. Sisk ; Steve VanArsdale ; Hasbrouck Heights, N.J. ; Hayden Book Co. 1985. OCLC 12967951
- Taylor, Martin (1985). Pick For Users. Blackwell Scientific Publications. ISBN 0-632-01492-X.
- The Pick Pocket Guide ; Jonathan E. Sisk ; Desk reference ed ; Hasbrouck Heights, N.J. ; Hayden Book Co. 1985. OCLC 18872552
- The Pick Perspective ; Ian Jeffrey Sandler ; Blue Ridge Summit, PA ; TAB Professional and Reference Books; 1989. OCLC 18521562
- Pick for professionals : advanced methods and techniques ; Harvey Rodstein ; Blue Ridge Summit, PA ; TAB Professional and Reference Books; 1990. OCLC 20452708
- Encyclopedia PICK (EPICK) ; Jonathan E. Sisk ; Irvine, CA ; Pick Systems ; 1992 OCLC 28725247
- Le Système d'exploitation PICK ; Malcolm Bull ; Paris: Masson, 1989. OCLC 21247561
- The Pick operating system ; Joseph St John Bate; Mike Wyatt; New York : Van Nostrand Reinhold, 1986. OCLC 14904780
- The Pick operating system ; Malcolm Bull ; London ; New York : Chapman and Hall, 1987. OCLC 13666782
- Systeme pick ; Patrick Roussel, Pierre Redoin, Michel Martin ; Paris: CEdi Test, 1988. OCLC 19546897
- Advanced PICK et UNIX : la nouvelle norme informatique ; Bruno Beninca; Aulnay-sous-Bois, Seine-Saint-Denis ; Relais Informatique International, 1990. OCLC 23242884
- Le systeme PICK : mode d'emploi d'un nouveau standard informatique ; Michel Lallement, Jeanne-Françoise Beltzer; Aulnay-sous-Bois, Seine-Saint-Denis ; Relais Informatique International, 1987. OCLC 20877971
- The Pick operating system : a practical guide ; Roger J Bourdon; Wokingham, England ; Reading, Mass. : Addison-Wesley, 1987. OCLC 13945808
- Le Système d'éxploitation : réalités et perspectives ; Bernard de Coux; Paris : Afnor, 1988. OCLC 20078135
- Pick BASIC : a programmer's guide ; Jonathan E Sisk;Blue Ridge Summit, PA : TAB Professional and Reference Books, 1987. OCLC 16355134
- Pick BASIC : a reference guide ; Linda Mui; Sebastopol, CA : O'Reilly & Associates, 1990. OCLC 22147353
- Programming with IBM PC Basic and the Pick database system ; Blue Ridge Summit, PA : TAB Books, 1990. OCLC 19723037
- An overview of PICK system ;Shailesh Kamat; 1993. OCLC 29287280
- Taylor, Martin; Rees, Stuart (1995). Unix and Unidata. Datamatters. ISBN 1-900176-00-9.
- Pick: A Multilingual Operating System ; Charles M. Somerville; Computer Language Magazine, May 1987, p. 34.
- Encyclopedia Pick; Jonathan E. Sisk; Pick Systems, June 1991
- Photo of Dick Pick in his anti-gravity boots on the cover of Computer Systems News, 1983.
- Pick/BASIC: A Programmer's Guide – the full text of the first and most widely read textbook by Pick educator and author Jonathan E. Sisk.
- A Short History of the Pick Operating System
- PICK Operating System - Implementation History
- PickWiki - Wiki about Pick database system and MultiValued Databases
- B-tree source code for the Pick operating system
- Life the Universe and Everything: introduction to and online training course in Universe developed by Pick software engineer Manny Neira.
- D3 Reference: PICK/BASIC and D3 Command Line help files built upon the original EPick database developed for Pick Systems by Jonathan E. Sisk.
- Video: "History of the PICK System" made in 1990
- Pick Publications Database