Version 7 Unix
Seventh Edition Unix, also called Version 7 Unix, Version 7 or just V7, was an important early release of the Unix operating system. V7, released in 1979, was the last Bell Laboratories release to see widespread distribution before the commercialization of Unix by AT&T Corporation in the early 1980s. V7 was originally developed for Digital Equipment Corporation's PDP-11 minicomputers and was later ported to other platforms.
Unix versions from Bell Labs were designated by the edition of the user's manual with which they were accompanied. Released in 1979, the Seventh Edition was preceded by Sixth Edition, which was the first version licensed to commercial users. Development of the Research Unix line continued with the Eighth Edition, which incorporated development from 4.1BSD, through the Tenth Edition, after which the Bell Labs researchers concentrated on developing Plan 9.
V7 was the first readily portable version of Unix. As this was the era of minicomputers, with their many architectural variations, and also the beginning of the market for 16-bit microprocessors, many ports were completed within the first few years of its release. The first Sun workstations (then based on the Motorola 68010) ran a V7 port by UniSoft; the first version of Xenix for the Intel 8086 was derived from V7 and Onyx Systems soon produced a Zilog Z8000 computer running V7. The VAX port of V7, called UNIX/32V, was the direct ancestor of the popular 4BSD family of Unix systems.
The group at University of Wollongong that had ported V6 to the Interdata 7/32 ported V7 to that machine as well. Interdata sold the port as Edition VII, making it the first commercial UNIX offering.
DEC distributed their own PDP-11 version of V7, called V7M (for modified). V7M, developed by DEC's original Unix Engineering Group (UEG), contained many enhancements to the kernel for the PDP-11 line of computers including significantly improved hardware error recovery and many additional device drivers. UEG evolved into the group that later developed Ultrix.
Due to its power yet elegant simplicity, many old-time Unix users remember V7 as the pinnacle of Unix development and have dubbed it "the last true Unix", an improvement over all preceding and following Unices. At the time of its release, though, its greatly extended feature set came at the expense of a decrease in performance compared to V6, which was to be corrected largely by the user community.
The number of system calls in Version 7 was only around 50, while later Unix and Unix-like systems continued to add many more:
Version 7 of the Research UNIX System provided about 50 system calls, 4.4BSD provided about 110, and SVR4 had around 120. The exact number of system calls varies depending on the operating system version. More recent systems have seen incredible growth in the number of supported system calls. Linux 3.2.0 has 380 system calls and FreeBSD 8.0 has over 450.
Released as free software
In 2002, Caldera International released V7 as FOSS under a permissive BSD-like software license.
Bootable images for V7 can still be downloaded today, and can be run on modern hosts using PDP-11 emulators such as SIMH.
An x86 port has been developed by Nordier & Associates.
Paul Allen maintained several publicly accessible historic computer systems, including a PDP-11/70 running Unix Version 7.
New features in Version 7
Many new features were introduced in Version 7.
The Portable C Compiler (pcc) was provided along with the earlier, PDP-11-specific, C compiler by Ritchie.
These first appeared in the Research Unix lineage in Version 7, although early versions of some of them had already been picked up by PWB/UNIX.
- New commands: the Bourne shell, at, awk, calendar, f77, fortune, tar (replacing the tp command), touch
- Networking support, in the form of uucp and Datakit
- New system calls: access, acct, alarm, chroot (originally used to test the V7 distribution during preparation), exece, ioctl, lseek (previously only 24-bit offsets were available), umask, utime
- New library calls: The new stdio routines, malloc, getenv, popen/system
- Environment variables
- A maximum file size of just over one gigabyte, through a system of indirect addressing
A feature that did not survive long was a second way (besides pipes) to do inter-process communication: multiplexed files. A process could create a special type of file with the
mpx system call; other processes could then open this file to get a "channel", denoted by a file descriptor, which could be used to communicate with the process that created the multiplexed file. Mpx files were considered experimental, not enabled in the default kernel, and disappeared from later versions, which offered sockets (BSD) or CB UNIX's IPC facilities (System V) instead (although mpx files were still present in 4.1BSD).
- Fiedler, David (October 1983). "The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace". BYTE. p. 132. ISSN 0360-5280. OCLC 854802500. Retrieved 2018-09-11.
- James W. Birdsall. "The Sun Hardware Reference, Part II".
Sun-1's were the very first models ever produced by Sun. The earliest ran Unisoft V7 UNIX; SunOS 1.x was introduced later.
- Canter, Fred. "V7M 2.1 SPD" (PDF). Digital Equipment Corp. Retrieved 7 January 2012.
- Salus, Peter H. (2005). The Daemon, the Gnu and the Penguin. Groklaw.
- Stevens, W Richard. Rago, Stephen A. Advanced Programming in the UNIX Environment, 3rd Edition. 2013. p. 21
- Caldera releases original unices under BSD license on slashdot.org (2002)
- "UNIX is free!". lemis.com. 2002-01-24.
- Broderick, Bill (January 23, 2002). "Dear Unix enthusiasts," (PDF). Caldera International. Archived from the original (PDF) on February 19, 2009.
- Darwin, Ian F. (2002-02-03). "Why Caldera Released Unix: A Brief History". Linuxdevcenter. O'Reilly Media. Retrieved 2016-01-19.
- http://www.nordier.com/v7x86/index.html main page for UNIX v7/x86
- McIlroy, M. Douglas (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). Bell Labs. CSTR 139. Retrieved 2018-07-22.
- Thompson, Ken (1978). "UNIX Implementation". Bell System Technical Journal. 57 (6): 1931–1946. doi:10.1002/j.1538-7305.1978.tb02137.x.
mpx(2)– Version 7 Unix Programmer's Manual
mkconf(1)– Version 7 Unix Programmer's Manual
- Leffler, Samuel J.; Fabry, Robert S.; Joy, William N.; Lapsley, Phil; Miller, Steve; Torek, Chris (1986). An Advanced 4.3 BSD Interprocess Communication Tutorial (Technical report). Computer Systems Research Group, University of California, Berkeley.
- Ritchie, Dennis M. (1984). "A Stream Input-Output System". AT&T Bell Laboratories Technical Journal. AT&T. 63 (8): 1897–1910. CiteSeerX 10.1.1.48.3730. doi:10.1002/j.1538-7305.1984.tb00071.x.