How Mainframe Time-Sharing Become Your VPS
Your VPS get roots for 1960s time-sharing. Follow the line from CTSS and Multics through Unix, IBM VM/370, Xen and KVM, plus wetin never change.
Wey your VPS come from
The history of computing from mainframe reach cloud na one idea wey dey become cheaper. That idea na time-sharing: make plenty people use one expensive machine for the same time, then give each person private view of am. Dem invent am around 1960 because computer cost pass the people wey dey use am. Every part of the VPS wey you rent today na for that problem dem build am: the isolation between users, the scheduler wey dey share CPU time, the hypervisor, and the bill wey dey count hours. The problem never go away. Hardware don cheap, so one slice wey once need research grant now cost few dollars every month.
1959 to 1961: why dem invent time-sharing
Computer for the 1950s dey run batch. You go punch your program for cards, give the deck to operator, then come back later to collect printout. One character wey you mistype fit cost you one day. The machine dey busy, and na the main point be that, because machine like IBM 7090 cost millions of dollars, while the time wey people dey wait for am no dey show for any invoice.
For January 1959, John McCarthy make the opposite argument for one memo wey e write for MIT. The machine suppose wait for the person. Christopher Strachey describe one form of time-sharing for UNESCO conference that same year, although wetin e mean na one programmer dey debug while other jobs dey run, no be many people dey type at the same time. When McCarthy speak for MIT centennial for 1961, e go further: dem fit sell computing like public utility, and charge am based on usage like electricity.
The objection that time na be say time-sharing dey waste the machine. Switching between users dey cost cycles, and cycles na the expensive thing. The objection correct, but e stop to matter because the price of one cycle fall for sixty years, while the price of one hour of human attention no fall.
Wetín CTSS need invent
Fernando Corbató group for MIT Computation Center build Compatible Time-Sharing System (CTSS) to settle the argument. Dem first demonstrate am for November 1961 on IBM 709, e dey serve four users, and e dey swap each user work go im own magnetic tape drive. “Compatible” mean say the machine still fit run the old batch system underneath, because nobody go buy computer wey only fit do the new thing.
Four users na small number. But the list of problems wey dem need solve to reach there no small, and na the same list your kernel dey work through right now. CTSS need scheduler, so one long job no go freeze every other terminal. E need memory protection, so if program crash, na one user e go affect instead of the whole system. E need storage wey go survive logout, na why CTSS get one of the first file systems wey modern user fit recognise. And e need passwords, so one user no fit read another user files.
Rename those parts and you don get Linux box. The scheduler na EEVDF, wey replace CFS for Linux 6.6. Memory protection na MMU (memory management unit), wey give each process im own virtual address space. Storage wey survive logout na your home directory. The password file still dey called /etc/passwd.
Multics and the computer utility
MIT next system na suppose be the utility wey McCarthy describe. Project MAC start for 1963, sign contract for General Electric GE-645 for August 1964, and publish the first Multics papers for 1965. The name explain the idea: Multiplexed Information and Computing Service. Service, as in something wey you go pay for by the hour.
Multics take much longer than dem plan. Prototype GE-645 machines reach MIT and Bell Labs for January 1967. Bell Labs comot from the project for April 1969. Multics open for MIT Information Processing Center customers on 1 October 1969, and e later run for production somewhere for thirty-one years. The last live Multics system, for Canadian Department of National Defence for Halifax, Nova Scotia, dem shut am down on 30 October 2000.
People often classify Multics as failure because e come late and run slowly. But the vocabulary show different story. E give us hierarchical file system wey get directories inside directories, access control list for each file, segmented virtual memory wey let program address file as if na memory, and protection rings wey rank code based on how much trust e get. Rings still dey inside the silicon wey dey in front of you. Ring 0 for kernel and ring 3 for user code na Multics vocabulary. Hardware virtualisation later add one mode under ring 0 for hypervisor, and people dey informally call am ring -1.
Unix: time-sharing for machine wey you fit afford
After Ken Thompson comot from Multics, e remain for Bell Labs without system wey e really wan use. For 1969, e start much smaller system for one discarded PDP-7. The first Unix Programmer's Manual get date for November 1971. By that time, the work don move go PDP-11. For 1973, Thompson and Dennis Ritchie rewrite the kernel for C, so the system fit move go new hardware without people writing am again by hand.
Na why you dey type inside descendant of Unix, no be descendant of Multics. Multics need hardware wey dem build specially for Multics. Unix run for anything wey cheap and dey available, and that one turn out to be the feature wey decide everything.
"The UNIX Time-Sharing System" by Ritchie and Thompson appear for Communications of the ACM for July 1974. The paper describe your VPS: processes, one hierarchical file system, files as plain byte streams, fork, users and groups with permission bits, and shell wey be ordinary program instead of part of the kernel. Fifty-two years later, dem don extend that interface, but dem never replace am.
Mainframe really run virtual machines for 1972?
Yes, and na this part of the story most people dey miss. While MIT dey build Multics, IBM's Cambridge Scientific Center attack the same goal from the other side. Instead make one operating system serve many users, Robert Creasy and Les Comeau build one control program wey give each user complete simulated computer. CP-40 enter production for January 1967. Every user get virtual System/360 and run small single-user operating system, CMS, inside am.
CP-40 become CP-67 for System/360-67 for 1968, and IBM announce VM/370 for 2 August 1972. Na commercial hypervisor be this, wey dem sell to customers wey pay, fifty-four years ago. One control program multiplex the real hardware, and guest operating systems run unmodified inside virtual machines wey believe say dem own the machine.
The theory come two years later, for the same July 1974 issue of Communications of the ACM wey carry the Unix paper. Gerald Popek and Robert Goldberg's "Formal Requirements for Virtualizable Third Generation Architectures" explain wetin processor must do before dem fit virtualise am. The main rule short. Every instruction wey fit read or change the machine state must trap when guest execute am outside kernel mode, so hypervisor fit take control and answer with that guest own private version of the state. Dem dey call this trap and emulate. IBM hardware follow the rule.
Why minicomputer scatter the model
DEC introduce PDP-8 on 22 March 1965 for about $18,000 in 1965 dollars. Na the first minicomputer wey dem price below $20,000, and e later sell pass 50,000 units. Microprocessor come push the price down again. Once department fit buy its own machine, and later one person fit buy one, sharing one central computer begin look like problem wey dem don solve and no longer need solve. Through the 1980s and 1990s, computing move go desks and racks of small x86 servers.
The waste come back in another form. One application per server dey simple to understand, but e leave most of the hardware idle while people still pay fully for power and rack space. Na the CTSS problem again, but for a new scale. This time, the expensive resource na the room and electricity, not the processor. The answer still be the old answer. Share the machine.
Why x86 hard to virtualise?
Because x86 break Popek and Goldberg rule. For the 9th USENIX Security Symposium for August 2000, John Scott Robin and Cynthia Irvine check the Pentium instruction set and find seventeen instructions wey dey read or change privileged state without fault when user-mode code run dem. popf na the standard example. If you run am for user mode, processor quietly ignore the bits wey program no get permission to set, instead of trapping. So, hypervisor wey depend on trap and emulate no go know say guest try am.
Two answers show before hardware fix. VMware, wey dem found for 1998 from Stanford's Disco research, inspect guest kernel code and rewrite the awkward instructions before dem execute. Dem call this technique binary translation. Xen, from University of Cambridge Computer Laboratory, change the guest instead. The paper "Xen and the Art of Virtualization", wey dem present for SOSP for October 2003, describe paravirtualisation: modified guest kernel call the hypervisor on purpose instead of running instructions wey hypervisor no fit intercept.
Then hardware fix, the same way IBM fix am for the 1960s. Intel release VT-x for two Pentium 4 models on 14 November 2005, and AMD release AMD-V for May 2006. Both add processor mode wey dey below the guest kernel mode. This one make guest run im own kernel at full speed while hypervisor still control the events wey e request. That make hypervisor small enough to run inside ordinary operating system. Avi Kivity's KVM for Qumranet do exactly that: e turn the Linux kernel itself into the hypervisor. Dem merge KVM into Linux 2.6.20, wey dem release for February 2007, and na wetin plenty VPS hosts dey run today.
How VPS take get im name
Two lines come together for early 2000s. One na full virtual machine for x86, where guest dey boot im own kernel. The other na operating-system-level virtualisation: one shared Linux kernel wey dem carve into separate environments, and each one get im own root user and im own process table. Linux-VServer and SWsoft's Virtuozzo both show for 2001, and SWsoft release part of Virtuozzo as the open-source OpenVZ for 2005. The phrase "virtual private server" come from that side of the family, formed by analogy with the virtual private network.
Amazon turn the rental into API call. S3 launch for 14 March 2006, and EC2 open as limited public beta for 25 August 2006 with one instance type, wey dey run on Xen. To buy compute stop to be contract with service bureau and become request wey go return answer within one minute.
Both lines still dey, and the split still decide wetin you fit do with the server wey you rent. KVM VPS dey boot im own kernel, so you fit load kernel modules and even run hypervisor inside your VPS. Container-based plan share the host kernel and e no fit do am. Sixty years of history dey behind that one line for pricing page, na why e good make you understand how VPS, VM and VPC dey differ before you choose one.
Wetin change from mainframe reach your VPS, and wetin no change
Four things change. The machine no dey your building again. The terminal na program instead of furniture. The unit wey you rent na complete computer with im own kernel, instead of account for another person operating system. And the price reduce reach point wey payment na card payment instead of procurement process.
The mechanism no change at all.
- Your ssh session na time-sharing terminal. You get login and shell, then scheduler decide when your process go run again.
- Hardware still dey enforce isolation. MMU and processor privilege levels still do the work, exactly as CP-40 need dem for 1967.
- Dem still bill you for share of machine based on elapsed time, like service bureaus bill for connect hours.
- You still dey feel the other tenants. When host get too many workloads, your guest go wait for physical CPU, and Linux report that wait as CPU steal time from noisy neighbour.
That last point na the honest summary of the whole history. Sharing machine na trade-off. Dem accept am for 1961 because computer cost pass the people, and dem accept am for 2026 because server wey dey run at ten percent of im capacity na money wey burn. If you prefer to dey for operator side of that trade-off, running Proxmox on hardware wey you own go give you the hypervisor and the operator problems together.
Keep the ratio for mind. CTSS serve four users for machine wey cost millions of 1961 dollars and fill one room. Your VPS, for few dollars every month for 2026, na much better computer pass the one wey Corbató team dey ration, and na only you get am. The reason you fit rent am at all na sixty-five-year-old idea wey finally meet cheap hardware. If you dey work out wetin to put for there, start with wetin VPS actually give you and then wetin people dey run for one.
FAQ
Wetin be the first time-sharing computer system?
CTSS, wey be Compatible Time-Sharing System, na Fernando Corbató group for MIT Computation Center build am. Dem first demonstrate am for November 1961 on IBM 709, and e serve four users. Each user dey swap go separate tape drive. The first time-sharing service for one whole community na Dartmouth Time-Sharing System. For 1 May 1964, John Kemeny and one student programmer run BASIC programs at the same time for two terminals, and both terminals receive correct answers.
Dem really invent virtual machines for the 1960s?
Yes. IBM Cambridge Scientific Center put CP-40 for production for January 1967. E give each user complete virtual System/360, with CMS operating system dey run inside am. CP-67 follow for 1968 on System/360-67, and IBM announce VM/370 on 2 August 1972. Those ones na real hypervisors wey dey run unmodified guest operating systems. Dem sell dem commercially, many decades before x86 hardware fit do the same thing.
Why x86 hard to virtualise when mainframes no hard like that?
Popek and Goldberg rule for 1974 talk say every instruction wey fit read or change machine state must trap when guest run am outside kernel mode. x86 break this rule. Robin and Irvine count seventeen Pentium instructions wey fail silently for user mode instead of trapping. Because of that, classic trap-and-emulate hypervisor no dey see dem, and popf na the usual example. VMware work around am with binary translation, while Xen use paravirtualisation. This continue until Intel VT-x for November 2005 and AMD-V for May 2006 add hardware mode for hypervisor.
Renting VPS na the same thing as having time-sharing account?
The billing model and the isolation problem na the same. But the unit no be the same. Time-sharing user get account for operating system wey share with everybody else, so administrator na person for computer centre. KVM VPS give you virtual machine with your own kernel and your own root account, so na you be the administrator. Container-based VPS dey between both options, because e share host kernel but still give you root inside your own environment.