A chronicle of cloud computing and virtualization technology

On February 14, 1946, ENIAC (Electronic Numerical Integrator And Computer), the world’s first universal Computer, was born in the University of Pennsylvania. The inventors were Americans JohnW.Mauchly and J. P. resperEckert. The ENIAC was the first generation of valve computers, compliant with Turing completeness, capable of being reprogrammed to solve a variety of computing problems. ENIAC is an absolute behemoth. It uses 18,000 tubes, covers an area of 150 square meters, weighs 30 tons, consumes about 150 kilowatts of power, and can perform 5,000 operations per second. Due to the large volume of the valve used, power consumption, easy to heat, so the ENIAC can not work for a long time. Originally used only to help the U.S. Army’s Ballistic Research Laboratory (BRL) calculate artillery fire tables.

  • ENIAC



    PS: Actually, it was women who made up the majority of the original programmers.

Turing completeness is also called Turing completeness, so we have to mention the Turing Machine. The Turing machine was mathematician Alan Turing’s seminal 1936 paper “On Computable Numbers and Its Application to deterministic Problems” (Alan Turing was then 24). With an Application to the Entscheidungsproblem “). This mathematical model deals with the solution of a finite and structural problem. Behind this lies the theory of computability, which tells us what kinds of problems computers can solve and what kinds of problems they cannot solve. In his paper Alan proved that Turing machines could be used to solve any computable problem if they could be implemented.

In computability theory, if a set of rules for manipulating data (such as instruction sets, programming languages, cellular automata) can be used to simulate a single-band Turing machine, then it is Turing complete. The term comes from mathematician Alan Turing, who introduced the concept of the Turing machine. Although Turing machines are physically limited in their storage capacity, Turing completeness usually refers to “a universal physical machine or programming language with unlimited storage capacity.”

The first computers were all serial, with only one program recorded and executed at a time, and the CPU had to idle while the program performed slow IO operations. This not only causes a waste of CPU, but also other computer hardware resources. Computer scientists were thinking about how to improve CPU utilization until someone came up with Multiprogramming (a precursor to multitasking).

Throughout the 1950s and 1960s, discussions of multiprogramming were popular. It makes the CPU read multiple programs into memory at once, running the first program until it performs an IO operation, at which point the CPU switches to running the second program. That is, the NTH +1 program can be executed only if the NTH program has performed an IO operation or has finished running. Visible, the characteristic of multi – channel program design is: multi – channel program, macro parallel, micro serial. Effectively improve the UTILIZATION rate of CPU, but also give full play to the parallelism of other computer system components. Even today the concept of multistage programming is the mainstay of operating systems in the field of concurrency.

The problem with multiprogramming, however, is that it does not consider whether the time allocated to each program is equal. It is likely that the first program will run for several hours without IO operations, so the second program will not run. At first, this problem was acceptable, when the order of execution between multiple programs was more concerned with the results of the program’s execution. Until someone came up with a new requirement: the simultaneous use of computers by multiple users. It is Time Sharing, or “Time Sharing,” that has been born of demand.

The meaning of “time-sharing” is to slice the CPU usage into extremely short (1/100sec) time slices, each of which performs a different task. In a time-sharing system, several, dozens or even hundreds of users are allowed to connect to the same host through a terminal, and the processor time and memory space are switched to each end user’s program at a certain time interval. Because of the short time interval, each user feels as if he owns the computer. The time-sharing system achieves the effect of multiple programs sharing computer hardware and software resources in time-sharing, and is essentially a multi-user interactive operating system.

It is worth noting that although time-sharing system is similar to multi-channel programming, it also has different details of the underlying implementation. The former is to provide programs for different users, while the latter is to run interspersing between different programs. In short, time-sharing systems are multi-user oriented, while multiprogramming is multi-program oriented. It’s a very confusing concept, both then and now.

On June 15, 1959, a computer professor at Oxford University, Christopher Strachey at the International Conference on Information Processing published an academic paper entitled “Time Sharing in Large Fast Computers,” in which he first proposed the basic concept of “virtualization” and discussed what virtualization technology was. This article is considered to be the first discussion of virtualization technology, and has since kicked off the curtain on the development of virtualization. This article record the Reich’s life (history.computer.org/pioneers/st…

  • Christopher Strachey

  • Photocopy of Time Sharing in Large Fast Computers

Strachey begins his paper by saying:

Time sharing, in the sense of causing the main computer to interrupt its program to perform the arithmetic and control operations required by external or peripheral equipment, has been used on a limited scale for a long time. this paper explores the possibility of applying time sharing to a large fast computer on a very extensive scale.

“Time sharing, in which a computer interrupts a running program to perform arithmetic and control operations needed by peripheral devices, has long been used to a limited extent. This paper discusses the possibility of applying the concept of Time sharing to large, high-speed computers.

— Time Sharing in Large Fast Computers (archive.org/details/lar…

In essence, Strachey is talking about how to integrate the concept of time-sharing into multiprogramming to achieve a virtual system that can operate with multiple users (CPU execution time slicing) but also has multiple programming benefits (CPU voluntary ceding). It can be seen that the concept of virtualization was originally proposed to meet the needs of multiple users to operate the mainframe computer at the same time and make full use of the resources of various components of the mainframe computer. The realization and evolution of this requirement run through the development of the whole virtualization technology of mainframes and minicomputers.

In 1960, the Atlas supercomputer (Super Computer) project was started in the UK.

Super computers, also known as giant computers, have extremely high computational speed and are commonly used in scientific and engineering calculations, such as weather prediction, climate research, computational chemistry, molecular modeling, astrophysical simulation, automobile design simulation, cryptanalysis, etc. The innovative design of supercomputers is to subdivide complex tasks into tasks that can be handled simultaneously and distributed to different processors. They are good at performing certain operations, but not so good at general tasks. Their data structures are carefully designed to ensure that data and instructions arrive in a timely manner, and small differences in delivery speed can make a huge difference in computing power. Its I/O systems are also specially designed to provide high bandwidth, but the data transfer latency is not important here, and the supercomputer is not a data switch.

In November 1961, a team led by Professor Fernando Corbato of MIT began to develop CTSS (Compatible Time-sharing System) project, which was supported by hardware equipment and engineers provided by IBM. CTSS greatly influenced the design of later time-sharing systems, including IBM’s famous TSS (Time Sharing System).

On December 7, 1962, the first Atlas supercomputer, Atlas 1, was born. Atlas was the second generation of transistorized computers and was considered to be the most powerful computer in the world at the time. Atlas pioneered many software concepts that are still used today, including the first implementation of an underlying resource management component called Atlas Supervisor, which manages a host’s hardware resources through special instructions or code. Paging Techniques and Virtual Memory, then known as the one-level Store, were also implemented for the first time.

The software Program we now call “Operating System” is actually called Supervisor at the earliest, and then it was called Master Control Program for a period of time. However, Operating System won out in the end. You can understand why Hyper is collectively called a Hypervisor (Super, Hyper means Super, but Hyper is more advanced than Super).

  • Atlas 1 supercomputer

In the mid-1960s, IBM was working on the M44/44X computer project at the Thomas J. Watson Research Center (NY). The M44/44X project is based on the IBM 7044 (M44) mainframe and simulates multiple 7044 virtual machines (44X) through a combination of software and hardware. The M44/44X implements several groundbreaking virtualization concepts, including Partial Hardware Sharing, Time Sharing, Memory Paging, and Virtual Memory. The M44/44X project was the first to use the term “Virtual Machine”, so it is considered to be the first computer system in the world to support Virtual machines. While the M44/44X implements only partial virtualization, its biggest success is proving that virtual machines are not necessarily less efficient than traditional methods.

Since then, IBM has promoted research projects such as CP-40 and CP-67. Cp-40 is believed to be the first computer system to achieve full virtualization. It implements virtual machines by catching exceptions such as privileged commands (such as I/O operations), Page Faults, and then handing them over to Control programs to emulate. Users can install other S/360 operating systems on top of the virtual machine, and the operating systems are isolated from each other, as if running on a separate machine. The great achievement of CP-40 is to introduce And implement trap-and-emulate, a classic approach to virtual machine execution that was used by VMware VMS. Its basic architecture and user interface were carried over into IBM’s revolutionary CP/CMS System, which provided a solid foundation for the later System/360, which evolved into IBM’s VM product line.

In 1964, IBM introduced the famous System/360 (S/360 for short) mainframe computer System. System/360 is designed to meet the needs of each user. As you may have heard, the development of System/360 was the biggest gamble in the history of computing. To develop the System/360, IBM hired more than 60,000 new employees, built five new factories and invested $5 billion. Even so, the System/360 has been pushed back. Frederick P. Brooks, Jr., The project manager at The time, later wrote The equally famous “The Mythical Man-Month: Mythical Software Project Management” based on The development of The program. Essays on Software Engineering “), describing the development experience of a milestone large-scale complex Software system in the history of human Engineering. System/360 is the third generation of small and medium scale integrated circuit computer, but also the world’s first mainframe.

Note: the mainframe computer uses a dedicated processor instruction set, operating system and application software. It is a computer system integrating hardware and proprietary software. Different from supercomputers, mainframes have high Reliability, Availability, and Serviceability (RAS). Mainframe performance is not defined by a single parallel floating-point computation per second, but by data transfer and transfer, reliability, and concurrent processing performance. Mainframes tend to perform integer computation, such as order data and banking data, while supercomputers emphasize floating-point computing performance, such as weather forecast. When processing data, mainframes need to read, write or transmit a large amount of information, such as massive transaction information and flight information.

  • System/360 mainframe computer

  • The Myth of the Man-month: The Way to Manage Software Projects

We now know that the IBM System/360 proved to be a historic change that launched innovative business operations and was a huge commercial success. The System/360 not only offered a new operating System with up to 14 virtual machines, but also solved the problem that IBM’s low-end and high-end systems were not compatible at the time. One of the keys to the success of the System/360 series of mainframes was to make a single operating System work for an entire family of products. In addition, the System/360 also implements Full Hardware Virtualization solution and TSS (Time Sharing System), which is considered the most original CPU Virtualization technology. It allows low-end computers to connect to mainframes, upload and download programs or data, and link up “loose terminals” for electronic data processing.

To sum up, the application and development of virtualization technology stems from the demand of mainframe for time-sharing system. In this way, multiple virtual machine instances that can run independent operating system software can be generated by hardware, which solves the problem that the early large computer can only handle single task but not time sharing multi-task. Because this virtualization technology is based on Hardware devices to achieve, it is called Hardware virtualization. However, it should be noted that this definition was later further subdivided into a narrow definition of hardware virtualization technology. Today, the more commonly accepted definition of hardware virtualization is: a virtualization of computers or operating systems that hides real computer hardware from users and presents another abstract computing platform.

Also in 1960, DEC introduced the PDP (Programmed Data Processor) family of minicomputers, the PDP-1. The PDP-1 simplifies mainframe functions and is cheap.

On March 28, 1965, Digital introduced the world’s first truly minicomputer, the PDP-8. John Glenn, then digital’s head of overseas sales, shipped the PDP-8 to the UK and found a trend in London for “Mini skirts”, which were short above the knee and lively and feminine. He suddenly discovered the link between the PDP and the miniskirt, and the PDP minicomputer moniker disappeared. At $18,500, it was cheaper than any other company’s computer at the time, and it quickly became the dominant product for Digital and led to a revolution in the miniaturization of computing at the time. The PDP-8 is considered a precursor to personal computers.

Note: minicomputer is a high-performance computer between the personal server and the mainframe. Generally speaking, the traditional minicomputer refers to the use of RISC (simplified instruction set), MIPS and other special processors, mainly support the UNIX operating system of the closed, dedicated computer system, so also known as RISC server or UNIX server. The difference between mainframes and minicomputers is not obvious, and they differ from x86 servers mainly in RAS, I/O throughput, and ISA (instruction set architecture).

Note: As early as in the early 1970s, based on the invention of IBM scientist John Cocke, THE idea of RISC greatly simplified the computer operation instructions, accelerated the system running speed, and greatly improved the performance of the computer. Today, RISC architecture has been widely used in many workstations and UNIX server systems, and is regarded as the mainstream computing architecture of the future.

In 1965, the Multics Project, started by Bell Labs, MIT, and General Electric, Multics means multi-user, multi-task, multi-level (multi-user, multi-processor, multi-level), which enables a large computer to be used by more than 300 terminals at the same time. The Multics project was a precursor to the Unix operating system.

Also in 1965, Gordon Moore came up with his famous “Moore’s Law”, which states that the density of transistors on semiconductor chips (microprocessors) doubles on average every 18-24 months at constant cost. Gordon Moore went on to become chairman and CEO of Intel, and Moore’s Law has held true for nearly 30 years.

  • Moore’s law

After virtualization technology solved the production efficiency problem of a single computer, people began to consider the problem of production organization form, and the concept of network interconnection was gradually paid attention to.

In 1968, Larry Roberts presented his Research paper “Computer Networks for Resource Sharing”, which focused on connecting ARPA’s computers so that everyone could share their Research results. The defense Department advanced Research Projects Network (ARPA-NET), which was formed based on this report, is arPA-NET, the predecessor of the Internet. Larry Roberts is also known as the father of ARPANET.

In 1969, the first working prototype of ARPANET was produced. Four large computers of university of California, Los Angeles, University of California, Santa Barbara, Stanford University and University of Utah were connected.

Also in 1969, Bell LABS decided to quit the Multics project, and Ken Thompson wrote a set of kernel programs in assembly language, including some kernel tools, and a small file system, in a four-week struggle. This was the prototype of the great UNIX operating system.

In 1971, Intel company designed the world’s first microprocessor chip Intel 4004, and with it as the core formed the world’s first microcomputer McS-4, since then opened the prelude to the development of microcomputer. The microcomputer is the typical representative of the fourth generation computer with large scale integrated circuit.

In 1973, D.M.Ritchie of Bell LABS developed a programming language called C based on B. C is designed to be easy to use, very free and flexible. Thompson and Ritchie completely rewrote UNIX in C, and it became a truly portable operating system in 1977. In this way, UNIX and C language perfectly combined into a community of life, with the development of UNIX, C language has been constantly improved. Because C was the language in which UNIX was written, it has since become one of the most popular system programming languages.

To be honest, the combination of UNIX and C was a great moment. Before that, it was the industry consensus to use assembly language to write the operating system that would perform at its best on a computer. So when Thompson and Ritchie decided to write an operating system in a high-level programming language, it meant they had an advanced understanding of the organizational relationship between the hardware system, the operating system, and the compiled system. The portability that C brings to UNIX is so creative that programmers don’t have to reinvent the wheel when a new kind of computer comes along. In this way, UNIX is fundamentally different from the various operating systems that flourished in the 1970s. It is the perfect combination of creative development tools and operating systems that breeds a profound hacker culture. And it is hackers, the group of deviants, who drive the open-source movement that defends software freedom. Everything happens for a reason.

In 1974, Gerald J. Popek and Robert P. Goldberg wrote a joint paper, “Formal Requirements for Virtualizable Third-generation Architectures. Third Generation Architectures “) propose a set of sufficient conditions known as the Virtualization Criteria, also known as the Popek and Goldberg Virtualization Requirements, which are: Three basic conditions for virtualization system architecture. A control program that meets these conditions can be called a Virtual Machine Monitor (VMM) :

  1. Resource Control, the Control program must be able to manage all system resources.
  2. Equivalence, and the programs (including the operating system) running under the management of the control program, except the time sequence and resource availability, should be exactly the same as that without the control program, and the pre-written privileged instructions can be executed freely.
  3. Efficiency, the vast majority of client instructions should be executed directly by the host hardware without any control program involvement.

Although the paper is based on simplified assumptions, the above conditions provide a convenient way to evaluate whether a computer architecture can effectively support virtualization and provide guidelines for designing virtualized computer architectures. At the same time, Gerald J. Popek and Robert P. Goldberg introduced two Hypervisor types.



Type I (bare-metal Hypervisor) : These virtual machine hypervisors run directly on the hardware of the Host to control the hardware and manage the virtual machines.

Features:

  • Requires hardware support
  • VMM as Host OS
  • High operating efficiency

Type II (Resident Hypervisor) : THE VMM runs on a traditional Host OS, just like any other application.

Features:

  • The VMM runs as an application on top of the host operating system
  • The operation efficiency is generally lower than that of type I

For technical reasons, early VMM products were mostly resident implementations, such as VMware versions prior to 5.5 and Xen versions prior to 3.0. As technology matures, mainly hardware virtualization, almost all VMM products move to bare-metal Hypervisor implementations. For example, VMware 5.5 and later, Xen 3.0 and later, and KVM. It’s all about efficiency!

IN 1977, IBM filed a patent FOR “SYSTEM FOR RECOVERING DATA STORED IN FAILED MEMORY UNIT,” In the following year, it obtained the patent of Redundant Arrays of Independent Disks (RAID). RAID groups physical disk devices into a virtual storage pool, divides the pool into Logical Unit numbers (luns), and supplies them to hosts. Although the first practical version of the concept wasn’t developed until 1988 by IBM in collaboration with California State University, Berkeley, RAID technology was the first to bring virtualization to storage.

In the late 1960s and 1970s, the medium and large computers and virtualization technology made each other, and for a long time virtualization technology was only applied to medium and large computers. In fact, it is understandable that the processing capacity of the microprocessor at that time was insufficient to deal with one or two applications, and there was really no more resources for virtual applications. But don’t forget, as long as Moore’s Law continues, the age of the microprocessor will come. Intel and x86 architectures seized the opportunity!

Virtualization for the x86 architecture

Since 1971, the microcomputer was born, people’s enthusiasm for microcomputer is almost crazy, the American press has conducted a questionnaire to the masses, asked people whether they hope to have a home computer in the near future, the result of more than 80% of people expressed this desire. In the next few years, faced with a huge market and business opportunities, directly reflected in the global computer output gradually from large, expensive medium-sized computers to small, cheap microcomputers. Desktop computers became the frontier of change, and various microprocessors and microcomputers flooded into the market, especially the PC (Personal Computer) launched by IBM, which almost formed a monopoly position in the early days. Had it not been for the Subsequent Wintel alliance.

On June 8, 1978, Intel released its new 16-bit microprocessor, the 8086, which ushered in a new era, the era of the x86 architecture, that continues to this day.

  • Intel 8086

Note: the x86 architecture is not a signal to a single chip, but rather a standard code abbreviation for the Intel family of general-purpose computers, as well as a common set of computer instructions.

In the early 1980s, Microsoft and Intel formed a business alliance called Wintel, hoping to displace the IBM PC’s dominance in the personal computer market. Relying on Intel’s Moore’s Law and Microsoft’s upgrading of its Windows Desktop operating system, the two companies reaped huge profits by jointly dominating downstream PC makers, so much so that they created a so-called “duopoly” in the global PC industry. It was not until 2016 that Microsoft announced in WinHEC that Windows 10 could run on the ARM architecture, marking the official rupture of the Wintel alliance that had monopolized the desktop for more than 20 years. But there is no denying that, thanks to Wintel’s strong alliance, the development of personal computers has changed rapidly.



In 1979, version 7 of Unix introduced chroot, which meant the first OS-level virtualization was born. Chroot is a system call we still use today. This system call tells a process to use the specified directory as its root directory, and all of its filesystem operations can be performed only in this directory, essentially a filesystem level isolation. The term operating system virtualization may be unfamiliar to you, but the term Container should be familiar to you.

In 1980, IBM released the first minicomputer based on RISC (Compact Instruction Set Computer) architecture.

In 1987, Insignia Solutions demonstrated a software simulator called SoftPC that allowed users to run DOS applications on Unix Workstations. At the time, a PC that could run Microsoft DOS cost $1,500. With SoftPC emulation, you could run Microsoft DOS directly on a large workstation.

In 1989, Insignia Solutions released a Mac version of SoftPC, enabling Apple users to run Windows as well as DOS.



In 1990, Keir Fraser and Ian Pratt created the initial code engineering for XenServer.

That same year, IBM introduced a new risC-based product line, the RS/6000 (now called the IBM eServer P Family), running AIX V3. The system architecture became known as POWER (POWER 1), which stands for RISC Performance Optimization With Enhanced RISC.

  • GNU/Linux: Open Source God.



    With the growth of x86 Server and Desktop deployments comes new challenges for enterprise IT infrastructure:
  • IT operation and maintenance costs are high
  • Infrastructure utilization is low
  • Inadequate failover and disaster protection

Solving these problems is the historical task of the new era for virtualization technology. Since the 1980s, virtualization technologies and companies have mushroomed, and they are the founders of the era of cloud computing.

In 1993, IBM introduced the scalable POWER Parallel System, the first microprocessor-based supercomputer using RS/6000 technology. In this system, IBM first applied multi-processor technology, can be complex and intensive tasks can be broken up, greatly speeding up the computing speed of the computer, an industry first.

In 1997, Apple released the Virtual PC, which was later sold to Connectix.

In 1997, IBM’s Deep Blue supercomputer defeated world chess champion Garry Kasparov in a series of matches. Deep Blue is a 32-node IBM RS/6000 SP computer with a 32-bit P2SC processor running AIX. During the competition, Deep Blue averaged 126 million steps per second. The supercomputer is currently housed at the Smithsonian National Museum in Washington, DC.

In 1998, Bochs, the famous x86 emulation simulator, was released.

On September 4, 1998, Google was founded, and in the second half of 1999, Google’s search site “Google” was officially launched.

VMware was founded in 1998. It pioneered VMaware Workstation, a smooth-running business virtualization software for x86, a year later. Since then virtualization technology has finally stepped down from the mainframe shrine.

Logical Partition (LPAR) virtualization, which divides a computer’s processor, memory, and storage into groups of resources, was first introduced by IBM on the AS/400 in 1999. So that each set of resources can run independently with its own operating system instances and applications. AS/400 leverages LPAR technology to virtualize a single server AS if it were 12 separate servers. This advantage has made the AS/400 one of the most popular small to medium sized, multi-user business computer systems in the world, and it remains the best seller in the multi-user server space.

In 1999, IEEE (Institute of Electrical and Electronics Engineers) issued a draft standard for the VLAN 802.1Q protocol, which can divide a large network into several small local area networks. Effectively avoid broadcast storm and improve network security.

Founded in 1999 by Marc Benioff, then a 37-year-old Senior vice president at Oracle and a Russian American, Salesforce was the first company to offer an enterprise application through a website, Software as a Service (SaaS) is the originator.

In 2000, FreeBSD Jail was truly the first fully functional operating system virtualization technology. Using this technique, FreeBSD’s systems administrator can create several small software systems called Jails.

In 2000, IEEE issued the draft of the Virtual Private Network (VPN) standard. VPN technology enables Private networks to be accessed across the public Network.

In 2000, Citrix desktop virtualization products were released.

In 2001, VMware released ESX and GSX, the predecessor of ESXi.

In 2001, Fabrice Bellard released QEMU (Quick EMUlator), the most popular open source virtualization software using dynamic Binary Translation technology. Until QEMU 4.0.0 was released in 2019, it was announced that it could simulate almost any device. My God, this is a miracle piece of software. Fabrice Bellard is a genius.

In 2003, an open source virtualization project Xen 1.0 was released by a lecturer at the University of Cambridge in the UK, and XenSource was founded to provide virtualization support for x86-64 through paravirtualization technology. Over time, Xen-based virtualization solutions have been integrated with Linux distributions such as Redhat, Novell, and Sun as default virtualization solutions.

In 2003, storage equipment maker EMC announced its most successful acquisition to date, buying five-year-old virtual-technology company VMware for $635 million.

In 2003, Intel officially announced that it would support VT, a hardware virtualization technology, on x86 cpus.

In 2003, Microsoft entered the desktop virtualization space with the acquisition of Connectix for Virtual PC virtualization technology, which was soon followed by the release of Virtual Server for free.

In 2003, Google released “The Google File System”, one of The three papers that triggered The era of big data. It described an extensible distributed File System that ran on cheap common hardware and had good fault tolerance. It can be applied to large, distributed applications that access large amounts of data.

In 2004, Nutch founder Doug Cutting implemented a distributed file storage system called NDFS based on Google’s GFS paper.

In 2004, Microsoft released Virtual Server 2005 plan, the industry evaluation: “virtualization is changing from a small market to the mainstream market”.

In 2004, Google published MapReduce, the second of three papers that ignited the era of big data. Simplified Data Processing on Large Clusters describes the distributed computing method of big Data, that is, tasks are decomposed and processed simultaneously on multiple computing nodes with weak Processing capabilities, and results are then combined to complete big Data Processing.

In 2004, IBM released APV (Advanced Power Virtualization), which supports resource sharing. The solution was renamed PowerVM in 2008.

In 2004, Stanford University launched the Clean Slate project with the ultimate goal of reinventing the Internet. The goal was to change the existing network infrastructure, which had been designed to be anachronistic and difficult to evolve.

In 2005, OpenVZ was released, which is the container technology implementation of Linux operating system and the core implementation of LXC.

In 2005, Doug Cutting implemented this feature in Nutch based on MapReduce.

In August 2005, Intel first introduced technical details for Vanderpool (a predecessor of Intel VT virtualization technology) for hardware-assisted virtualization. Vanderpool technology enables Intel processors to support hardware virtualization by adding new instructions.

In November 2005, Intel released Xeon MP processor system 7000 series, and announced that virtualization Technology Vanderpool renamed VT (Vanderpool Technology, Later widely known as Virtual Technology). A month later, Xen 3.0.0 was released, running on 32-bit servers as the first Intel VT-X-enabled hypervisor. This allows the Xen VIRTUAL machine to run a completely unmodified version of the operating system, which is the true usable version of Xen.

In 2006, Intel and AMD and other manufacturers have added the support of virtualization technology to the x86 system structure of the central processor (AMD-V, Intel VT-X), so that the original pure software to achieve various functions can be achieved with the power of hardware speed.

In 2006, Red Hat made the Xen virtual machine a default feature of the Enterprise edition of RHEL.

In 2006, AMD announced that its SPECIFICATION for I/O virtualization was ready and that the technology was licensed for free.

In October 2006, Qumranet, an Israeli start-up company, officially announced KVM (kernel-based Virtual Machine) after completing the basic functions, dynamic migration and major performance optimization of Hypervisor. Kernel-based virtual machines).

2006-present Cloud computing and big data era

In 2006, Google released Bigtable, the third of the three papers that triggered the era of big data. A Distributed Storage System for Structured Data, based on GFS and MapReduce, describes A Distributed Storage System for storing and managing Structured Data. This paper inspired many NoSQL databases in the later period, including Cassandra, HBase, etc.

In 2006, Yahoo hired Doug Cutting to upgrade NDFS and MapReduce and call it Hadoop. Yahoo created an independent team for Doug Cutting to develop Hadoop.

Eric Schmidt, Google’s chief executive, first introduced the concept of “cloud computing” at a search engine conference in 2006.

In 2006, Amazon Web Services (AWS) began to provide IT infrastructure Services to enterprises in the form of Web Services, including Elastic Computing Network Cloud (EC2), Simple Storage Service (S3), simple database (SimpleDB), and so on, now commonly referred to as cloud computing.

In 2006 Martin Casado, a student at Stanford, published Ethane, a project about network security and management that has tried to use a centralized controller to make it easy for network administrators to define network flow-based security control policies and apply them to various network devices. So as to realize the security control of the whole network communication.

In January 2007, the German company InnoTek VirtualBox virtualization software is developed, and the Sun Microsystems company with the GNU general public license (GPL) product, provides the binary version and open source version of the code.

In February 2007, Linux Kernel 2.6.20 incorporated the KVM Kernel module. To use KVM, the CPU must support virtualization technology.

In June 2007, RedHat included Xen virtualization capabilities across all platforms and management tools.

In 2007, Novell added Xen virtualization software to its Enterprise SLES (Suse Linux Enterprise Server) 10 release.

In July 2007, Intel invested $218.5 million in VMware.

In August 2007, Cisco invested $150 million in VMware.

In October 2007, Citrix acquired XenSource for $500 million and became the owner of the Xen virtual machine project. Then came the Citrix Delivery Center, a virtualization product.

In November 2007, IBM released its Cloud computing business solution, the Blue Cloud Initiative.

In November 2007, Oracle announced the launch of Oracle VM. Unlike VMware, which provides a single virtual machine solution, Oracle VM virtualization is fully integrated into the entire application architecture, which provides a complete solution from application to disk stack.

In January 2008, Salesforce launched DevForce, which enables developers to use the Apex programming language.

In February 2008, InnoTek software was acquired by Sun.

In April 2008, Google App Engine was released as a platform for the development and hosting of WEB applications in Google-managed data centers.

In the first quarter of 2008, Microsoft released Both Windows Server 2008 R2 and hyper-V, a virtualization product.

In June 2008, Linux Container (LXC) released version 0.1.0, which provides lightweight virtualization for isolating processes and resources. Docker was originally used to support container technology.

On September 4, 2008, RedHat acquired Qumranet, an Israeli company, and began to use KVM to replace Xen in RedHat.

In September 2008, Google released Google Chrome, a browser-based application software represented by Google Apps, bringing the browser into the cloud computing era.

In September 2008, Cisco and VMware announced the joint launch of the next generation software switch Nexus 1000V at VMworld. Nexus 1000V is a software package installed in VMware vSphere. It replaces vSphere’s own vSwitch software switch and manages the traffic of the virtualization platform through vSphere’s open API. The Nexus 1000V is almost a one-to-one copy of OpenFlow, and in some ways very similar to Nicira’s core product, the Network Virtualization Platform.

In October 2008, Microsoft released Windows Azure Platform, a public cloud computing Platform. The main goal is to provide a platform for developers to develop applications that can run on cloud servers, data centers, the Web, and PCS.

In 2008, the open source cloud computing platform OpenNebula was released with version 1.0. Later, I was selected as the cloud architecture foundation of China Mobile BigCloud.

In 2008, Martin and his mentor, Professor Nick McKeown, were inspired by Ethane’s project and found that if Ethane’s design were generalized, The two functional modules of Data Plane and Control Plane of traditional network devices are separated, and various network devices are managed and configured by standardized interfaces through centralized controllers. This will provide more possibilities for the design, management and use of network resources, thus facilitating the innovation and development of the network. In ACM SIGCOMM, they published a paper titled “OpenFlow: Enabling Innovation in Campus Networks,” which for the first time introduces the concept of OpenFlow in detail. This paper is regarded by most people as the starting point for the birth of SDN (Software Defined Networking/Networks).

In September 2009, Red Hat released RHEL 5.4, which added KVM to the original Xen virtualization mechanism. That same year, Aliyun wrote its first line of code.

In 2009, Cisco released UCS (Unified Computing System) as a cloud Computing service platform, with stateless Computing, Unified device management, low latency and other features. At the same time, Cisco established virtual computing environment alliance with EMC and VMware.

In April 2009, VMware launched the industry’s first cloud operating system, VMware vSphere.

In July 2009, Google announced that Chrome OS would be released.

In September 2009, VMware launched the vCloud project to build a new cloud service.

In September 2009, the United States GSA (General Services Administration) created apps.gov to provide a simple way to purchase commercial cloud products and Services.

In 2009, the Cloud Security Alliance (CSA) released the Version of Security Guidance for Critical Areas of Focus in Cloud Computing V1.0.

In November 2009, China Mobile Cloud computing platform Big Cloud was launched.

In November 2009, Eucalyptus, an open source cloud computing platform, launched version 1.6.

In January 2010, Microsoft officially released Microsoft Azure cloud Platform services.

VirtualBox changed its name to Oracle VM in January 2010 when Oracle completed its acquisition of Sun.

Cloud Control Matrix V1.0 was released by CSA in 2010.

In 2010, The German government published Security Recommendations Cloud Computing Providers, which constructs the Cloud Computing Security architecture based on a series of achievements of NIST. It covers the security capabilities required for data centers, servers, networks, applications and platforms, data, encryption, and key management.

In May 2010, China Telecom launched the Nebula Project.

In 2010, Linus Torvalds incorporated the Ceph Client into kernel 2.6.34.

In June 2010, the state proposed that “the rapid development of the Internet, cloud computing, Internet of Things, knowledge services and intelligent services provide a powerful tool and environment for personalized manufacturing and service innovation”, raising the application of cloud computing to the height of innovative production methods.

In July 2010, NASA contributed the cloud computing management platform Nova code, Rackspace cloud storage (object storage) code, and launched the OpenStack cloud operating system open source project. The first version, Austin, was released on October 21. The slogan of OpenStack linking hands and being independent and controllable has promoted the comprehensive outbreak of cloud computing in China.

In October 2010, the National Development and Reform Commission and the Ministry of Industry and Information Technology jointly issued the Notice on The Pilot and Demonstration work of Cloud Computing Service Innovation and Development, and carried out pilot and demonstration work of cloud computing innovation and development in five cities including Beijing, Shanghai, Shenzhen, Hangzhou and Wuxi.

In November 2010, Red Hat released RHEL 6.0, which removes the Xen virtualization mechanism installed by default and provides only KVM virtualization.

At the time, Xen, a virtualization technology widely used in Linux distributions, was not integrated into the Linux kernel. Red Hat, perhaps frustrated by the out-of-kernel maintenance, and citrix’s close relationship with Microsoft at the time, decided to abandon Xen. A year after the official adoption of KVM, Xen was announced for good. With the advent of hardware-assisted virtualization, Xen’s vaunted paravirtualization technology has declined among major Linux distributors.

In January 2011, The National Institute of Standards and Technology (NIST) of the United States publishes Guidelines on Security and Privacy in Public Cloud Computing Outlines security and privacy challenges in public cloud Computing environments, and analyzes the benefits and downsides of cloud Computing.

In January 2011, NIST released “The NIST Definition of Cloud Computing”, giving a reference Definition of Cloud Computing.

In February 2011, the CIO of the Federal Government of the United States released the “Federal Cloud Computing Strategy”, which clearly proposed that the United States government information technology to Cloud Computing mode of migration, and the implementation of Cloud First plan.

In early 2011, IBM approached its old partner, Red Hat, and said KVM was something worth doing more. So in May, IBM and Red Hat, along with HP and Intel, formed the Open Virtualization Alliance to speed KVM to market and avoid a VMware monopoly. When the alliance was formed, a Red Hat spokesman said: “Everyone wants an open source alternative to VMware. The cloud infrastructure of the future will be based on open source. We want to create an environment where small players can easily join.”

Ps: Now that I look back, long-term insight is crucial to a company’s longevity.

In 2011, Apple released iCloud, which lets people store and share content anywhere, anytime.

In March 2011, Deutsche Telekom, Facebook, Google, Microsoft, NTT Communication, Verizon, and Yahoo joined forces to form the Open Networking Foundation, Open Network Foundation), which is a milestone in the development history of OpenFlow. The establishment of ONF marks OpenFlow’s formal transition from the barbaric growth state of scattered soldiers to the track of industrial development.

In May 2011, NEC launched the first commercially available OpenFlow switch for the virtualized data center and cloud services markets.

In May 2011, NIST released Cloud Computing Synopsis and Recommendations, which explained the working mechanism of Cloud Computing technology and pointed out unresolved issues in the Cloud, including Cloud reliability and information security. It also advises information technology decision makers on cloud computing adoption.

In July 2011, Citrix acquired Cloud.com, which owns the CloudStack open source project under the GPLv3 license.

In July 2011, NIST released the NIST Cloud Computing Standards Roadmap to prioritize Cloud Computing standardization issues to make it easier to communicate, exchange data, and secure Cloud Computing and its applications.

In August 2011, THE IETF released RFC 7348: Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks Over Layer 3 Networks was drafted by VMware and Cisco. This technology uses the L2 over UDP mechanism to transmit original packets and uses the 24bits VNI information in the VxLAN header to expand the traditional VLAN tag to 16MB.

In September 2011, THE IETF published a draft of RFC 7637: NVGRE: Network Virtualization Using Generic Routing Encapsulation, mainly drafted by Microsoft. This technology uses the L2 Over GRE mechanism to transmit original packets and uses the higher 24bits in the GRE Key field to expand VLAN data to 16MB.

In September 2011, NIST released the NIST Cloud Computing Reference Architecture, which gives the Reference Architecture of Cloud Computing and points out the various main roles, activities and functions involved in Cloud Computing.

In October 2011, Cisco announced on its data center blog that OpenFlow support would be available on Nexus switches.

In October 2011, Juniper began adding OpenFlow code to the Junos OPERATING system SDK.

In November 2011, NIST released US Government Cloud Computing Technology Roadmap Vol I, II, III. Volume I is used to describe the security, interoperability, and portability requirements that the federal government must meet in future cloud computing adoption. Volume II provides information on cloud computing strategies and strategies; Volume III serves as a guide for planning and implementing cloud computing solutions.

In December 2011, OMB issued a FedRAMP memorandum to formally establish the FedRAMP Cloud Computing Risk Management and Authorization Project, which aims to provide a standardized approach to the security assessment, authorization and monitoring of cloud computing products and services.

In February 2012, IETF released A Stateless Transport Tunneling Protocol for Network Virtualization (STT) draft, mainly drafted by Nicira. This technology uses L2 Over Stateless TCP mechanism to transmit original packets and uses 64bits Context ID in STT header to identify layer 2 network segments.

In April 2012, Citrix donated CloudStack to the Apache Foundation.

In April 2012, OpenStack released version Essex, which offers Quantum networking components as part of a trial component, Used to implement Network Virtualization functions similar to VMware NSX (formerly Nicira Network Virtualization Platform). This component was officially released in OpenStack Folsom 2012.10. Later, Openstack changed the name of Quantum to Neutron in Havana version due to trademark infringement.

In July 2012, Sage released Argonaut, the first LTS version of distributed storage system Ceph.

In 2012, VMware acquired Nicira, a startup founded by Martin Casado, Nick McKeown, and Scott Shenker, for $1.26 billion, Launched NSX, a VMware network virtualization solution. Combined with storage virtualization solution VSAN, the concept of software defined data center (SDDC) is proposed.

In 2012, Ceph embraced OpenStack and entered Cinder as an important storage driver.

In 2012, The Telecommunication Research Institute of the Ministry of Industry and Information Technology published the White Paper on Cloud Computing.

In 2013, IBM acquired SoftLayer to provide industry-leading private cloud solutions.

In 2013, The Australian government issued The National Cloud Computing Strategy to lay out The overall development of Cloud Computing.

DotCloud founder and CEO Solomon Hvkes first introduced the concept of Docker in a five-minute micro-talk at the Python Developers Conference in Santa Clara, California, on March 15, 2013. After the conference, it opened source and hosted on Github. The original Docker used LXC to encapsulate other functions. It can be seen that the success of Docker is not so much a technological innovation as a combinational innovation.

In 2014, Australia released the latest Australian Government Cloud Computing Policy to further promote the development of the Cloud Computing industry

In March 2014, Microsoft officially announced that Microsoft Azure was officially commercially available in China, operated by 21Vianet and named Windows Azure. In April of the same year, Microsoft Office 365 was officially launched in China.

In 2014, the British Government officially announced the adoption of “government Cloud service G-Cloud”.

In July 2014, China Institute of Standardization of Electronic Technology issued white Paper on Cloud Computing Standards.

In 2014, The General Administration of Quality Supervision, Inspection and Quarantine of the People’s Republic of China and the Standardization Administration of China jointly issued the GB/T 31167-2014 “Information Security Cloud Computing Service Security Guide” and GB/T 31168-2014 “Information Security Technology Cloud Computing Service Security Capability Requirements”.

In 2014, NIST published Security Recommendations for Hypervisor Deployment and Secure Virtual Network Configuration for Virtual Machine (VM) Protection Cloud security guide.

Docker released its first official version, V1.0, in June 2014. That same year, Redhat and AWS announced official support for Docker.

In April 2015, Citrix announced it was joining the OpenStack Foundation as a corporate sponsor, and Google joined shortly after that in July.

July 21, 2015: Kubernetes V1.0 release! Enter the cloud native era.

In October 2015, Dell announced it would buy EMC for $67 billion, making it the largest m&a deal in the global technology market.

In December 2015, in the third batch of national standard revision plans issued by Standardization Administration of China in 2015, 17 cloud computing national standard revision plans were officially issued.

In 2015, General Administration of Quality Supervision, Inspection and Quarantine of the People’s Republic of China and Standardization Administration of The People’s Republic of China jointly issued GB/T 32399-2015 Information Technology Cloud Computing Reference Framework and GB/T 32400-2015 Information Technology Cloud Computing Overview and Vocabulary standards.

In January 2016, Microsoft CEO Satya Nadella announced a new initiative, Microsoft Philanthropies, at davos. As part of the plan, Microsoft will provide $1 billion worth of Microsoft Cloud computing services over the next three years to 70,000 nonprofits and university research institutions to help build long-term capacity for the public good with data storage, analytics and forecasting.

In October 2016, VMware and Amazon Web Services entered into a strategic alliance to bring VMware Software-defined Data Center (SDDC) to AWS Cloud. Enable customers to run applications based on VMware vSphere private cloud, public cloud and hybrid cloud environments and get the best access to AWS services.

In April 2017, the Department of Information Technology and Software Services of the Ministry of Industry and Information Technology of China released the Three-year Action Plan for the Development of Cloud Computing (2017-2019), which aims to promote the rapid application of cloud computing in various industries and greatly improve the level of informatization in various fields.

From May to July 2017, General Administration of Quality Supervision, Inspection and Quarantine of the People’s Republic of China and Standardization Administration of The People’s Republic of China jointly issued GB/T 33780-2017 Technical Specification for Public Platform of E-Government Based on Cloud Computing, GB/T 34080-2017 Security Specification for Public Platform of E-Government Based on Cloud Computing, GB/T 34078-2017 General Specification for E-government Public Platform Based on Cloud Computing, GB/T 34077-2017 Management Specification for E-Government Public Platform Based on Cloud Computing

In August 2017, at VMworld 2017, VMware and Amazon Web Services jointly announced the initial availability of VMware Cloud on AWS.

In October 2017, AWS announced that it had created a new KVM-based virtualization engine, that new C5 instances and future virtual machines would not use XEN, but the core KVM technology.

In October 2017, China Information Security Standardization Technical Committee on the “Information security Technology network security level protection basic Requirements” (GB/T 22239-XXXX replaced GB/T 22239-2008) were discussed and interpreted. The level of protection in the five basic requirements of the sub-volume standards were combined to form the “network security level protection basic requirements” a standard. The content of basic requirements is changed from a basic requirement to a general security requirement and an extended security requirement (including cloud computing, mobile Internet, Internet of Things, and industrial control).

From November to December 2017, General Administration of Quality Supervision, Inspection and Quarantine of the People’s Republic of China and Standardization Administration of The People’s Republic of China jointly issued GB/T 34982-2017 Basic Requirements for Cloud Computing Data Centers, GB/T 34942-2017 Assessment Methods for Security Capabilities of Information Security Technology Cloud Computing Services, GB/T 35301-2017 Information Technology Cloud Computing Platform as a Service (PaaS) Reference Architecture, GB/T 35293-2017 Information Technology Cloud Computing VM Management General Requirements, GB/T 35279-2017 Information Security Technology Cloud Computing Security Reference Architecture.

In January 2018, Redhat announced the acquisition of Kubernetes and CoreOS, an innovator and leader in container native solutions, for $250 million. Redhat said: “this acquisition will further enhance our vision of leveraging the flexibility of open source to enable enterprise users to build and deploy any application in any environment. “This transaction reinforces Red Hat’s position as a cornerstone of hybrid cloud and modern application development.”

In 2018,IBM officially acquired Redhat to make up for its strategic failure in the cloud computing market.



In 2018,Microsoft acquired Github. The history of open source will remember this day.



In 2019,12 national standards in the field of cloud computing were approved and officially released.



In 2019,, the world’s largest Open Source event KubeCon + CloudNativeCon + Open Source Summit and Open Infrastructure Summit were successively held in Shanghai. China’s open source will remember this day.

Note: This article will be updated all the time!

The last

For long articles, I used to summarize them in three sentences:

  1. The development of virtualization: Throughout the development history of virtualization technology, IT can be seen that its consistent goal is to achieve full utilization of IT resources.
  2. Virtualization and cloud computing: Virtualization is an abstraction of IT resources, while cloud computing is a higher level abstraction of enterprise business capabilities based on virtualization.
  3. Cloud computing and open source: Open source is the Apple that seduces developers, and developers are the core assets of the enterprise. Cloud world, get developers, get the world.

Reference documentation

www.ibm.com/developerwo… https://zhuanlan.zhihu.com/p/33608591