#01 From Punch Cards to Batch Systems – The Birth of Modern Operating Systems (1887–1958)
The first 70 years of computing history led from a punched hole in a card to the first real operating system.This chapter shows how, from a chaotic world of manually sorted cards, the concept of automated batch processing was born. Why these years? Between 1887 and 1958, four pillars of modern OS emerged: Punched Cards – The Prehistory of Data Storage Herman Hollerith reduced the U.S. census time from 10 years to 2.Since 1928, a standard IBM card held 80 characters – 80 bytes of data. At a production rate of 10 million cards per day, this generated 870 MB of data – the “cloud” of the Great Depression era.Punched cards became a common language between hardware and programmers, and the 80-column format survives in today’s terminal width limits. 80-column IBM punched card by Harke, license CC BY-SA 3.0. Computers Without OS – Manual Control of Giants ENIAC (1945)Weighed 27 tons, contained 18,000 vacuum tubes, consumed 150 kW. Reprogramming required manually rewiring – it took days. ENIAC console (U.S. Army Photo, public domain) UNIVAC I (1951)The first commercial computer, famously predicted the 1952 U.S. election result.Used magnetic tape for storage, reducing dependence on cards. IBM 650 (1954)The first mass-produced computer – 2,000 units sold at $150,000 each.Used a magnetic drum spinning at 12,500 RPM as RAM. IBM 650 panel by Mike Cowlishaw, GNU FDL/CC BY-SA 3.0. The Performance Problem: CPU vs Operator The IBM 704 could perform 4,000 floating-point operations per second, while an operator needed minutes to load another card deck.To eliminate idle time, developers introduced spooling: reading the card deck onto tape or drum so the CPU could run continuously. The Birth of the Resident Monitor GM-NAA I/O (1956)Developed by Robert Patrick (General Motors) and Owen Mock (North American Aviation), this was a set of I/O routines that automatically launched the next program after one finished – the first true batch processing system.Used in around 40 IBM 704 installations. EXEC I & II (1957–1962)UNIVAC’s systems for the 1107 introduced multiprogramming and parallel spooling with a single job stream. SHARE Operating System (1959)The SHARE user group enhanced GM-NAA I/O with better buffer management and ported it to IBM 709/7090. IBM 704 console loading GM-NAA I/O, Bitsavers.org, public domain license. FORTRAN Monitor System and Early JCL The monitor loaded the compiler, linked the program, and routed output automatically – these control cards were the prototype of the JCL language. Early Monitor Computer RAM Key Innovation GM-NAA I/O IBM 704 4,096 words Auto-start of next job EXEC I UNIVAC 1107 65,536 words Batch multiprogramming FMS IBM 709/7090 32,768 words Integrated compile-link-run chain Early Programming Languages Limitations and Challenges of the Batch Era Legacy of the 1950s Conclusion From Hollerith cards to GM-NAA I/O took less than 70 years.During this time, data formats, commercial computers, programming languages, and OS foundations emerged. These breakthroughs turned computers into general-purpose machines and paved the way for MULTICS, UNIX, and modern cloud systems.Without punched cards, ENIAC’s tubes, and IBM 704’s monitor, there would be no Linux servers or Android phones today.

