Multics

63 results back to index


The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal by M. Mitchell Waldrop

Ada Lovelace, air freight, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, anti-communist, Apple II, battle of ideas, Berlin Wall, Bill Atkinson, Bill Duvall, Bill Gates: Altair 8800, Bletchley Park, Boeing 747, Byte Shop, Charles Babbage, Claude Shannon: information theory, Compatible Time-Sharing System, computer age, Computing Machinery and Intelligence, conceptual framework, cuban missile crisis, Dennis Ritchie, do well by doing good, Donald Davies, double helix, Douglas Engelbart, Douglas Engelbart, Dynabook, experimental subject, Fairchild Semiconductor, fault tolerance, Frederick Winslow Taylor, friendly fire, From Mathematics to the Technologies of Life and Death, functional programming, Gary Kildall, Haight Ashbury, Howard Rheingold, information retrieval, invisible hand, Isaac Newton, Ivan Sutherland, James Watt: steam engine, Jeff Rulifson, John von Neumann, Ken Thompson, Leonard Kleinrock, machine translation, Marc Andreessen, Menlo Park, Multics, New Journalism, Norbert Wiener, packet switching, pink-collar, pneumatic tube, popular electronics, RAND corporation, RFC: Request For Comment, Robert Metcalfe, Silicon Valley, Skinner box, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, The Soul of a New Machine, Turing machine, Turing test, Vannevar Bush, Von Neumann architecture, Wiener process, zero-sum game

And it would have built-in security: firewalls, passwords, private directories-the works. Planning for Multics had begun right after the 1963 summer study, with a for- mer Burroughs engineer named Ted Glaser as chief designer. "He was blind, but an amazing systems architect," says Corbato. "We worked together hand and glove." However, the actual programming of Multics wouldn't get under way until 1965. In the interim, the group was absorbed by a much more urgent task: finding a computer for Multics to run on. The 7094 was out of the question; it had never been anything more than a stopgap machine to begin with.

And in the meantime, iron- ically, Lick hadn't been doing any better with the Multics crowd. In truth, Multics had been Lick's chief concern from the day he became di- rector. Originally planned for completion in 1966, the second-generation time- sharing system was already more than two years late. Indeed, as Fernando Corbato himself had to admit, it was beginning to take on a distressing resem- blance to the Vietnam involvement. There always seemed to be light at the end of the tunnel, yet somehow the end never came. Fundamentally, says Corbato, Multics was just too complicated. In their na.ivete, he says, he and his colleagues had drawn up specifications that called for everything an information utility might conceivably need, from elaborate security schemes to an ability to coordinate multiple processors and multiple memory modules.

And if those systems were available now, one had to wonder, was there any real point in waiting for Multics? Was this just another case of "perfect" being the f " d ""\ enemy 0 goo !' Lick thought it was high time for Project MAC to get some answers. But that, alas, was where his maladroitness came into play. His way of dealing with the problem was to have ARPA call for a full-scale, outside review of Multics to de- termine if the time had come to terminate it. Opinions differ as to whether Lick was genuinely trying to kill Multics or just attempting to save it with a swift kick in the backside to focus people's minds.


pages: 523 words: 154,042

Fancy Bear Goes Phishing: The Dark History of the Information Age, in Five Extraordinary Hacks by Scott J. Shapiro

3D printing, 4chan, active measures, address space layout randomization, air gap, Airbnb, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, availability heuristic, Bernie Sanders, bitcoin, blockchain, borderless world, Brian Krebs, business logic, call centre, carbon tax, Cass Sunstein, cellular automata, cloud computing, cognitive dissonance, commoditize, Compatible Time-Sharing System, Computing Machinery and Intelligence, coronavirus, COVID-19, CRISPR, cryptocurrency, cyber-physical system, Daniel Kahneman / Amos Tversky, Debian, Dennis Ritchie, disinformation, Donald Trump, double helix, Dr. Strangelove, dumpster diving, Edward Snowden, en.wikipedia.org, Evgeny Morozov, evil maid attack, facts on the ground, false flag, feminist movement, Gabriella Coleman, gig economy, Hacker News, independent contractor, information security, Internet Archive, Internet of things, invisible hand, John Markoff, John von Neumann, Julian Assange, Ken Thompson, Larry Ellison, Laura Poitras, Linda problem, loss aversion, macro virus, Marc Andreessen, Mark Zuckerberg, Menlo Park, meta-analysis, Minecraft, Morris worm, Multics, PalmPilot, Paul Graham, pirate software, pre–internet, QWERTY keyboard, Ralph Nader, RAND corporation, ransomware, Reflections on Trusting Trust, Richard Stallman, Richard Thaler, Ronald Reagan, Satoshi Nakamoto, security theater, Shoshana Zuboff, side hustle, Silicon Valley, Skype, SoftBank, SQL injection, Steve Ballmer, Steve Jobs, Steven Levy, Stuxnet, supply-chain attack, surveillance capitalism, systems thinking, TaskRabbit, tech billionaire, tech worker, technological solutionism, the Cathedral and the Bazaar, the new new thing, the payments system, Turing machine, Turing test, Unsafe at Any Speed, vertical integration, Von Neumann architecture, Wargames Reagan, WarGames: Global Thermonuclear War, Wayback Machine, web application, WikiLeaks, winner-take-all economy, young professional, zero day, éminence grise

Users were forced to change their passwords. From Multics to UNIX Though limited in functionality, CTSS demonstrated that time-sharing was not only technologically possible, but also wildly popular. Programmers liked the immediate feedback and the ability to interact with the computer in real time. A large team from MIT, Bell Labs, and General Electric, therefore, decided to develop a complete multiuser operating system as a replacement for batch processing. They called it Multics, for Multiplexed Information and Computing Service. The Multics team designed its time-sharing with security in mind. Multics pioneered many security controls still in use today—one of which was storing passwords in garbled form so that users couldn’t repeat Allan Scherr’s simple trick.

After six years of development, Multics was released in 1969. The military saw potential in Multics. Instead of buying separate computers to handle unclassified, classified, secret, and top-secret information, the Pentagon could buy one and configure the operating system so that users could access only information for which they had clearance. The military estimated that it would save $100 million by switching to time-sharing. Before the air force purchased Multics, they tested it. The test was a disaster. It took thirty minutes to figure out how to hack into Multics, and another two hours to write a program to do it.

“A malicious user can penetrate the system at will with relatively minimal effort,” the evaluation concluded. The research community did not love Multics either. Less concerned with its bad security, computer scientists were unhappy with its design. Multics was complicated and bloated—a typical result of decision by committee. In 1969, part of the Multics group broke away and started over. This new team, led by Dennis Ritchie and Ken Thompson, operated out of an attic at Bell Labs using a spare PDP-7, a “minicomputer” built by the Digital Equipment Corporation (DEC) that cost ten times less than an IBM mainframe. The Bell Labs team had learned the lesson of Multics’ failure: Keep it simple, stupid. Their philosophy was to build a new multiuser system based on the concept of modularity: every program should do one thing well, and, instead of adding features to existing programs, developers should string together simple programs to form “scripts” that can perform more complex tasks.


A People’s History of Computing in the United States by Joy Lisi Rankin

activist fund / activist shareholder / activist investor, Albert Einstein, Apple II, Bill Gates: Altair 8800, Charles Babbage, Compatible Time-Sharing System, computer age, Computer Lib, corporate social responsibility, digital divide, Douglas Engelbart, Douglas Engelbart, Grace Hopper, Hacker Ethic, Howard Rheingold, Howard Zinn, it's over 9,000, Jeff Bezos, John Markoff, John von Neumann, language acquisition, Mark Zuckerberg, Menlo Park, military-industrial complex, Mother of all demos, Multics, Network effects, Norbert Wiener, pink-collar, profit motive, public intellectual, punch-card reader, RAND corporation, Silicon Valley, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, the market place, urban planning, Whole Earth Catalog, wikimedia commons

Meanwhile, ­because of its relationship with Dartmouth, GE appeared more responsive to academia’s time-­sharing dreams. MIT opted to build Multics with GE computers. MIT’s choice of GE over IBM for its Multics machines stunned the business community, and MIT’s partnership with Bell Labs for Multics programming amplified the symbolic significance of the proj­ect. MIT, GE , and Bell Labs became the polestars for the promise of time-­sharing and computing utilities; at the time and since, the ways in which journalists and historians alike focused on the strug­gles of MIT’s prominent Multics proj­ect masked the growth of the computing utilities business and GE’s success in that realm.

Moreover, the Dartmouth system served only about thirty simultaneous users at the outset. Thus, GE employees strug­gled to create the computing infrastructure to meet the Multics goal of hundreds of simultaneous users. In contrast, while MIT and GE grappled with Multics, Dartmouth students and GE employees successfully collaborated to expand the college’s time-­ sharing network. The Bell Labs employees tasked with programming Multics w ­ ere, like their GE colleagues on the MIT proj­ect, overwhelmed. Bell withdrew from Multics in 1969, and a year l­ater GE withdrew from the mainframe business. IBM had belatedly jumped on the time-­sharing bandwagon and then lost an estimated $50 million on the venture. ­

Indeed, Greenberger concluded, “By 2000 AD man should have a much better comprehension of himself and his system . . . ​­because he ­w ill have learned to use imaginatively the most power­ful amplifier of intelligence yet devised.”19 The year 1965 marked a turning point for transforming the vision of a community computing utility into real­ity for two reasons: ARPA awarded MIT a contract to expand Proj­ect MAC, and American cap­i­tal­ists increasingly viewed computing utility businesses as v­ iable and attractive opportunities. ARPA invested millions of dollars in the new MIT time-­sharing system, known as Multics (Multiplexed Information and Computing Ser­vice). The Multics team anticipated a system with one thousand terminals, of which three hundred could be used si­mul­ta­neously. Fano and Corbató publicized the developing system in a 1966 article for the wide readership of Scientific American, “Time-­Sharing on Computers.”20 They described the “dialogue between user and machine” and “communication among users.”21 The opening page of the article showcased thirty photos of ­people—­mostly men—­using teletypes, and the authors explained that ­those individuals used teletypes for computing in offices and laboratories, “in large ‘pool’ rooms,” and “a few in private homes.”22 Fano and Corbató notably explained the relationship between community and computing utility as a symbiosis.


pages: 259 words: 67,456

The Mythical Man-Month by Brooks, Jr. Frederick P.

Boeing 747, Conway's law, finite state, HyperCard, Ken Thompson, machine readable, Menlo Park, Multics, no silver bullet, seminal paper, sorting algorithm, speech recognition, Steve Jobs, Strategic Defense Initiative, Tacoma Narrows Bridge, Turing machine, work culture

Interactive programming. One of the justifications for MIT's Multics project was its usefulness for building programming systems. Multics (and following it, IBM's TSS) differs in concept from other interactive computing systems in exactly those respects necessary for systems programming: many levels of sharing and protection for data and programs, extensive library management, and facilities for cooperative work among terminal users. I am convinced that interactive systems will never displace batch systems for many applications. But I think the Multics team has made its most convincing case in the system-programming application.

My guideline in the morass of estimating complexity is that compilers are three times as bad as normal batch application programs, and operating systems are three times as bad as compilers.9 Corbato's Data Both Hair's data and OS/360 data are for assembly language programming. Little data seem to have been published on system programming productivity using higher-level languages. Corbato of MIT's Project MAC reports, however, a mean productivity of 1200 lines of debugged PL/I statements per man-year on the MULTICS system (between 1 and 2 million words).10 This number is very exciting. Like the other projects, MULTICS includes control programs and language translators. Like the others, it is producing a system programming product, tested and documented. The data seem to be comparable in terms of kind of effort included. And the productivity number is a good average between the control program and translator productivities of other projects.

., The Art of Computer Programming, Vols. 1-3. Reading, Mass.: Addison-Wesley, 1968, ff. Chapter 10 Conway, M. E., "How do committees invent?" Datamation, 14, 4 (April, 1968), pp. 28-31. Chapter 11 Speech at Oglethorpe University, May 22, 1932. An illuminating account of Multics experience on two successive systems is in F. J. Corbatd, J. H. Saltzer, and C. T. Clingen, "Multics—the first seven years," AFIPS Proc S/CC, 40 (1972), pp. 571-583. Cosgrove, J., "Needed: a new planning framework," Datamation, 17, 23 (Dec., 1971), pp. 37-39. The matter of design change is complex, and I oversimplify here. See J. H. Saltzer, "Evolutionary design of complex systems," in D.


pages: 612 words: 187,431

The Art of UNIX Programming by Eric S. Raymond

A Pattern Language, Albert Einstein, Apple Newton, barriers to entry, bioinformatics, Boeing 747, Clayton Christensen, combinatorial explosion, commoditize, Compatible Time-Sharing System, correlation coefficient, David Brooks, Debian, Dennis Ritchie, domain-specific language, don't repeat yourself, Donald Knuth, end-to-end encryption, Everything should be made as simple as possible, facts on the ground, finite state, Free Software Foundation, general-purpose programming language, George Santayana, history of Unix, Innovator's Dilemma, job automation, Ken Thompson, Larry Wall, level 1 cache, machine readable, macro virus, Multics, MVC pattern, Neal Stephenson, no silver bullet, OSI model, pattern recognition, Paul Graham, peer-to-peer, premature optimization, pre–internet, publish or perish, revision control, RFC: Request For Comment, Richard Stallman, Robert Metcalfe, Steven Levy, the Cathedral and the Bazaar, transaction costs, Turing complete, Valgrind, wage slave, web application

Its grandfather was the small and simple Compatible Time-Sharing System (CTSS), either the first or second timesharing system ever deployed (depending on some definitional questions we are going to determinedly ignore). Its father was the pioneering Multics project, an attempt to create a feature-packed ‘information utility’ that would gracefully support interactive timesharing of mainframe computers by large communities of users. Multics, alas, did collapse of its own weight. But Unix was born from that collapse. Genesis: 1969–1971 Unix was born in 1969 out of the mind of a computer scientist at Bell Laboratories, Ken Thompson. Thompson had been a researcher on the Multics project, an experience which spoiled him for the primitive batch computing that was the rule almost everywhere else.

The standard interactive device on the earliest timesharing systems was the ASR-33 teletype — a slow, noisy device that printed upper-case-only on big rolls of yellow paper. The ASR-33 was the natural parent of the Unix tradition of terse commands and sparse responses. When Bell Labs withdrew from the Multics research consortium, Ken Thompson was left with some Multics-inspired ideas about how to build a file system. He was also left without a machine on which to play a game he had written called Space Travel, a science-fiction simulation that involved navigating a rocket through the solar system. Unix began its life on a scavenged PDP-7 minicomputer[14] like the one shown in Figure 2.1, as a platform for the Space Travel game and a testbed for Thompson's ideas about operating system design.

Historically speaking, it is Unix's uncle: the common ancestor is the CTSS system, developed at MIT around 1963 and running on the IBM 7094 mainframe. The group that developed CTSS then went on to write Multics, the immediate ancestor of Unix. IBM established a group in Cambridge to write a timesharing system for the IBM 360/40, a modified 360 with (for the first time on an IBM system) a paging MMU.[39] The MIT and IBM programmers continued to interact for many years thereafter, and the new system got a user interface that was very CTSS-like, complete with a shell named EXEC and a large supply of utilities analogous to those used on Multics and later on Unix. In another sense, VM/CMS and Unix are funhouse mirror images of one another.


pages: 598 words: 183,531

Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition by Steven Levy

"Margaret Hamilton" Apollo, air freight, Apple II, Bill Gates: Altair 8800, Buckminster Fuller, Byte Shop, Compatible Time-Sharing System, computer age, Computer Lib, computer vision, corporate governance, Donald Knuth, El Camino Real, Fairchild Semiconductor, Free Software Foundation, game design, Gary Kildall, Hacker Ethic, hacker house, Haight Ashbury, John Conway, John Markoff, Mark Zuckerberg, Menlo Park, Mondo 2000, Multics, non-fiction novel, Norman Mailer, Paul Graham, popular electronics, RAND corporation, reversible computing, Richard Stallman, Silicon Valley, software patent, speech recognition, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, The Hackers Conference, value engineering, Whole Earth Catalog, Y Combinator

Tom Knight got inside the system and changed the heading of that memo from MAC to HAC. But as bad as CTSS was, the hackers thought Multics was worse. Multics was the name of the hugely expensive time-sharing system for the masses being built and debugged on the ninth floor. Though it was designed for general users, the hackers evaluated the structure of any system in a very personal light, especially a system created on the very floor of the building in which they hacked. So MULTICS was a big topic of hacker conversation. Originally, Multics was done in conjunction with General Electric; then Honeywell stepped in. There were all sorts of problems with it.

When the system first ran, it was incredibly sluggish. It was so slow that the hackers concluded the whole system must be brain-damaged, a term used so often to describe Multics that “brain-damaged” became a standard hackerese pejorative. But the worst thing about Multics was the heavy security and the system of charging the user for the time. Multics took the attitude that the user paid down to the last nickel; it charged some for the memory you used, some more for the disk space, more for the time. Meanwhile the Multics planners, in the hacker view, were making proclamations about how this was the only way that utilities could work. The system totally turned the Hacker Ethic around—instead of encouraging more time on the computer (the only good thing about time sharing as far as most hackers were concerned), it urged you to spend less time—and to use less of the computer’s facilities once you were on!

The system totally turned the Hacker Ethic around—instead of encouraging more time on the computer (the only good thing about time sharing as far as most hackers were concerned), it urged you to spend less time—and to use less of the computer’s facilities once you were on! The Multics philosophy was a disaster. The hackers plagued the Multics system with tricks and crashes. It was almost a duty to do it. As Minsky would later say, “There were people doing projects that some other people didn’t like and they would play all sorts of jokes on them so that it was impossible to work with them . . . I think [the hackers] helped progress by undermining professors with stupid plans.”


pages: 1,201 words: 233,519

Coders at Work by Peter Seibel

Ada Lovelace, Bill Atkinson, bioinformatics, Bletchley Park, Charles Babbage, cloud computing, Compatible Time-Sharing System, Conway's Game of Life, Dennis Ritchie, domain-specific language, don't repeat yourself, Donald Knuth, fallacies of distributed computing, fault tolerance, Fermat's Last Theorem, Firefox, Free Software Foundation, functional programming, George Gilder, glass ceiling, Guido van Rossum, history of Unix, HyperCard, industrial research laboratory, information retrieval, Ken Thompson, L Peter Deutsch, Larry Wall, loose coupling, Marc Andreessen, Menlo Park, Metcalfe's law, Multics, no silver bullet, Perl 6, premature optimization, publish or perish, random walk, revision control, Richard Stallman, rolodex, Ruby on Rails, Saturday Night Live, side project, slashdot, speech recognition, systems thinking, the scientific method, Therac-25, Turing complete, Turing machine, Turing test, type inference, Valgrind, web application

To me, work was work and these guys weren't working. They were having a good time. Just like school. Seibel: And so what kind of things did you do when you first arrived there? Thompson: Bell Labs was in the MULTICS project and I was hired in to work on MULTICS. And I did. I played with the machines, booted up MULTICS, and did my little piece of it. At some point, Bell Labs decided that MULTICS wasn't for them, and they backed out of the project. But they had these MULTICS machines which were special-purpose machines that were just sitting around idle until someone could cart them away. So for approximately a year I had this machine that was monstrous.

Not in my mind at that point. We did Unix and they did MULTICS, which was this monster. This was just clearly the second-system syndrome. Seibel: Where MULTICS was the second system after the MIT's Compatible Time-Sharing System? Thompson: Yes. So overdesigned and overbuilt and over everything. It was close to unusable. They still claim it's a monstrous success, but it just clearly wasn't. Seibel: My understanding was that a lot of the MIT hackers viewed MULTICS that same way. They preferred ITS and the Lisp-based systems that they built. It seems there was a real fork post-MULTICS. Unix came out, as you well know, and at MIT these Lisp guys went off and did their things on PDP-10s and built Lisp-based systems which, eventually I guess, begat the Lisp machines.

We've seen lots of improvements going into the PC operating systems, but we're still not at the point where some of the more forward-looking timesharing systems were way, way back. Seibel: Which ones are you thinking of? Crockford: MULTICS was doing some really interesting stuff in cooperative processes, and having multiple address spaces which were able to communicate with each other but couldn't get into each other's stuff. That's the basic baseline you need in order to start doing cooperative computing. And we're now trying to figure out how to get that into the browser. It's a long time between MULTICS and here. We're starting now to catch up to insights that were being acted on way back then. Seibel: I've noticed a similar thing with languages—PCs were programmed in assembly because even C was too high-level and only now are we getting back to languages with some of the power of languages like Smalltalk and Lisp that existed when PCs came out.


pages: 528 words: 146,459

Computer: A History of the Information Machine by Martin Campbell-Kelly, William Aspray, Nathan L. Ensmenger, Jeffrey R. Yost

Ada Lovelace, air freight, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Apple's 1984 Super Bowl advert, barriers to entry, Bill Gates: Altair 8800, Bletchley Park, borderless world, Buckminster Fuller, Build a better mousetrap, Byte Shop, card file, cashless society, Charles Babbage, cloud computing, combinatorial explosion, Compatible Time-Sharing System, computer age, Computer Lib, deskilling, don't be evil, Donald Davies, Douglas Engelbart, Douglas Engelbart, Dynabook, Edward Jenner, Evgeny Morozov, Fairchild Semiconductor, fault tolerance, Fellow of the Royal Society, financial independence, Frederick Winslow Taylor, game design, garden city movement, Gary Kildall, Grace Hopper, Herman Kahn, hockey-stick growth, Ian Bogost, industrial research laboratory, informal economy, interchangeable parts, invention of the wheel, Ivan Sutherland, Jacquard loom, Jeff Bezos, jimmy wales, John Markoff, John Perry Barlow, John von Neumann, Ken Thompson, Kickstarter, light touch regulation, linked data, machine readable, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, Menlo Park, Mitch Kapor, Multics, natural language processing, Network effects, New Journalism, Norbert Wiener, Occupy movement, optical character recognition, packet switching, PageRank, PalmPilot, pattern recognition, Pierre-Simon Laplace, pirate software, popular electronics, prediction markets, pre–internet, QWERTY keyboard, RAND corporation, Robert X Cringely, Salesforce, scientific management, Silicon Valley, Silicon Valley startup, Steve Jobs, Steven Levy, Stewart Brand, Ted Nelson, the market place, Turing machine, Twitter Arab Spring, Vannevar Bush, vertical integration, Von Neumann architecture, Whole Earth Catalog, William Shockley: the traitorous eight, women in the workforce, young professional

It was an opportunity for GE to make a last effort to establish a profitable mainframe operation by attacking a market where IBM was particularly weak. Multics was to be the most ambitious time-sharing system yet; costing up to $7 million, it would support up to a thousand terminals, with three hundred in use at any one time. To develop the operating software for the new system, MIT and General Electric were joined by Bell Labs. Bell Labs became the software contractor because the company was rich in computing talent but was not permitted, as a government-regulated monopoly, to operate as an independent computer-services company. The Multics contract enabled Bell Labs to find an outlet for its computing expertise and to continue building up its software-writing capabilities.

Nonetheless, despite the failure of the computer utility, there remained a latent desire for communal computing that would surface again with the Internet in the 1990s. UNIX There was, however, one very beneficial spin-off of the Multics imbroglio: the Unix operating system, developed at Bell Labs during 1969–1974. The software disasters epitomized by OS/360 and Multics occurred because they were too baroque. This led a number of systems designers to explore a small-is-beautiful approach to software that tried to avoid complexity through a clear minimalist design. The Unix operating system was the outstanding example of this approach.

It was the software equivalent of the Bauhaus chair. Unix was developed by two of Bell Labs’ programmers, Ken Thompson and Dennis M. Ritchie, both of whom—bearded, long-haired, and portly—conformed to the stereotype of the 1960s computer guru. When Bell Labs pulled out of the Multics project in 1969, Thompson and Ritchie were left frustrated because working on Multics had provided them with a rather attractive programming environment: We didn’t want to lose the pleasant niche we occupied, because no similar ones were available; even the time-sharing service that would later be offered under GE’s operating system did not exist.


pages: 352 words: 96,532

Where Wizards Stay Up Late: The Origins of the Internet by Katie Hafner, Matthew Lyon

air freight, Bill Duvall, Charles Babbage, Compatible Time-Sharing System, computer age, conceptual framework, Donald Davies, Douglas Engelbart, Douglas Engelbart, fault tolerance, Hush-A-Phone, information retrieval, Ivan Sutherland, John Markoff, Kevin Kelly, Leonard Kleinrock, Marc Andreessen, Menlo Park, military-industrial complex, Multics, natural language processing, OSI model, packet switching, RAND corporation, RFC: Request For Comment, Robert Metcalfe, Ronald Reagan, seminal paper, Silicon Valley, Skinner box, speech recognition, Steve Crocker, Steven Levy, The Soul of a New Machine

But before that, there was the debate over whether it should even be used at all as the delimiter between the user and host names in the address. The Multics folks objected vehemently when it was first used, understandably so. Tomlinson, a Tenex hacker, had chosen the @ sign without realizing, perhaps, that in the Multics system it was the character used to send a “line kill” command. Any Multics user who tried to send mail to “Tomlinson@bbn-tenex” would quickly get into trouble. Multics would start reading the address, encounter the @ sign, and throw away everything on the line that had been typed previously. Ted Myer and Austin Henderson, from the BBN Tenex group, decided to try their hand at solving one of these compatibility issues, the header problem.

FTP was the first application to permit two machines to cooperate as peers instead of treating one as a terminal to the other. Bringing this functionality to the network depended on the FTP working group coming up with a working final product. The chairman of the group, Abhay Bhushan, an MIT graduate student and systems architect, was an expert in Multics, an ambitious and complex operating system. Bhushan had studied problems of multitasking in a single computer. The next step was to eventually transfer blocks of data in a multicomputer system like the ARPA network. In the six months it spent working on the file-transfer protocol, the team usually met face to face in regular sessions of the Network Working Group.

Many users of early fax machines went through the same kind of rigmarole making sure the sender’s machine could communicate with the recipient’s fax machine. The problem occurred on a massive scale between Tenex and non-Tenex machines. Programmers at a few non-Tenex sites, like those working with machines based on the Multics operating system, continued introducing e-mail programs and features in the syntax of their own operating systems, and continued sending their messages out over the Net. Tenex machines, however, couldn’t handle the syntax of other formats used at some sites, so again, conflict and confusion would result.


pages: 398 words: 107,788

Coding Freedom: The Ethics and Aesthetics of Hacking by E. Gabriella Coleman

activist lawyer, Benjamin Mako Hill, commoditize, Computer Lib, crowdsourcing, Debian, disinformation, Donald Knuth, dumpster diving, Eben Moglen, en.wikipedia.org, financial independence, Free Software Foundation, Gabriella Coleman, ghettoisation, GnuPG, Hacker Conference 1984, Hacker Ethic, Hacker News, Herbert Marcuse, informal economy, information security, Jacob Appelbaum, Jaron Lanier, Jason Scott: textfiles.com, Jean Tirole, knowledge economy, laissez-faire capitalism, Larry Wall, Louis Pasteur, machine readable, means of production, Multics, Neal Stephenson, Paul Graham, peer-to-peer, pirate software, popular electronics, RFC: Request For Comment, Richard Stallman, rolodex, Ronald Reagan, Silicon Valley, Silicon Valley startup, slashdot, software patent, software studies, Steve Ballmer, Steven Levy, tacit knowledge, technological determinism, Ted Nelson, the Cathedral and the Bazaar, The Hackers Conference, the scientific method, The Soul of a New Machine, The Structural Transformation of the Public Sphere, web application, web of trust, Yochai Benkler

Indeed, like so many hacker naming conventions, the name Unix is a clever historical referent—in this case, indexing its conditions of birth. Unix derives from another related OS, the much larger Multics, originally developed in AT&T’s Bell Labs. In 1969 Bell Labs canceled funding for Multics; its authors, Ken Thomson and Denis Ritchie, salvaged (and many would say improved) Multics by parsing it down to a much smaller system, which they renamed Unix. Once Unix was “cut down,” its creators renamed Multics to “eunuchs” to capture the idea that some really significant “things” had been cut from its body, but what was created was something forever eternally beautiful.

—Joanna Russ, How to Suppress Woman’s Writing CONTENTS ACKNOWLEDGMENTS INTRODUCTION: A TALE OF TWO WORLDS PART I: HISTORIES CHAPTER 1: THE LIFE OF A FREE SOFTWARE HACKER CHAPTER 2: A TALE OF TWO LEGAL REGIMES PART II: CODES OF VALUE CHAPTER 3: THE CRAFT AND CRAFTINESS OF HACKING CHAPTER 4: TWO ETHICAL MOMENTS IN DEBIAN PART III: THE POLITICS OF AVOWAL AND DISAVOWAL CHAPTER 5: CODE IS SPEECH CONCLUSION: THE CULTURAL CRITIQUE OF INTELLECTUAL PROPERTY LAW EPILOGUE: HOW TO PROLIFERATE DISTINCTIONS, NOT DESTROY THEM NOTES REFERENCES INDEX ACKNOWLEDGMENTS This project marks the culmination of a multiyear, multicity endeavor that commenced in earnest during graduate school, found its first stable expression in a dissertation, and has, over a decade later, fully realized itself with this book. During this long period, over the various stages of this project, many people have left their mark in so many countless ways.

Once Unix was “cut down,” its creators renamed Multics to “eunuchs” to capture the idea that some really significant “things” had been cut from its body, but what was created was something forever eternally beautiful. Eventually, its creators kept the phonetic instantiation of eunuchs (Unix) to commemorate and signal its conditions of birth as an essentially castrated version of Multics. The cultural depth of Unix far exceeds naming conventions. Unix has been described as “our Gilgamesh epic” (Stephenson 1999), and its status is that of a living, adored, and complex artifact. Its epic nature is an outgrowth of its morphing flavors, always under development, that nevertheless adhere to a set of well-articulated standards and protocols: flexibility, design simplicity, clean interfaces, openness, communicability, transparency, and efficiency (Gancarz 1995; Stephenson 1999).


Bootstrapping: Douglas Engelbart, Coevolution, and the Origins of Personal Computing (Writing Science) by Thierry Bardini

Apple II, augmented reality, Bill Duvall, Charles Babbage, classic study, Compatible Time-Sharing System, Computing Machinery and Intelligence, conceptual framework, Donald Davies, Douglas Engelbart, Douglas Engelbart, Dynabook, experimental subject, Grace Hopper, hiring and firing, hypertext link, index card, information retrieval, invention of hypertext, Ivan Sutherland, Jaron Lanier, Jeff Rulifson, John von Neumann, knowledge worker, Leonard Kleinrock, Menlo Park, military-industrial complex, Mother of all demos, Multics, new economy, Norbert Wiener, Norman Mailer, packet switching, Project Xanadu, QWERTY keyboard, Ralph Waldo Emerson, RAND corporation, RFC: Request For Comment, Sapir-Whorf hypothesis, Silicon Valley, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, stochastic process, Ted Nelson, the medium is the message, theory of mind, Turing test, unbiased observer, Vannevar Bush, Whole Earth Catalog, work culture

The association between a block and a specific base address can be dynamically changed by program during the executIon of appropriate parts of the executIve routIne." However, by March 1966, the system was well behInd schedule. MULTICS even- tually got running in 1969, four years late, and General Electnc and Bell wIthdrew from the proJect. Norberg and O'NeIll report that Bell Laboratories wIthdrew from the MAC MULTICS project in early I969 and went on developing UNIX, which was Notes to Chapter 5 253 named as a play on MULTICS (1996, 110). Licklider's original planning to fund Project GENIE as a counterpart to proJect MAC thus was justified by events. More- over, the fact that GE withdrew its model 645 from the market a year after Its an- nouncement, statIng that "what we had in our hands was a research project and not a product," gave him more reason retrospectively for having given project GENIE a mandate in tune with IPTO's second objective, industnal development.

Its InstructIon execution was pipelined, and it contaIned separate fixed-point and floatIng-poInt anthmetic unIts capable of approximately 200 Kflops [thousands of floating-point operatIons per sec- onds] (Fotheringham 1961; Sumner 1962). The knowledge of the paging technique had already well diffused in the U.S. computIng community by the time ProJect GE- NIE got started. The Project MAC effort in time-sharing announced its intentions when It described MULTICS (for Multiplexed Information and ComputIng SerVIce) in a set of SIX papers presented at the 1965 Fall Joint Computer Conference. These papers are currently available at http://www.best.com/thvv/papers.html. In "System Design of a Computer for Time Sharing ApplicatIons," E. L. Glaser from MIT and J.

See also under Interface: modal, modeless Moran, Thomas, 175-76, 256nII Morse code, 60, 63-70 Morton, Paul, 12, 3 ° Mott, Timothy, 161-62, 166, 171, 257 nI 4 Mouse, I; genesis of, 86,94-95,98- " b " 99,120,17 2 -73; as ug, 95, 98; operating prIncIple of, 96-102, 250n5; testing, 1°9- 1 4, 174-81, 250n6; and the NLS Interface, 114- 19, 130, 137, 166, 227; and the 1968 demo, 140-41; and the graphic interface, 166-67 MultIple Access Xerox Computer (MAXC),255-5 6n 7 Multiplex, 65-66 MULTiplexed Information and Comput- Ing Services (MULTICS), 252-53n6 Murray, Donald, 67-70 National Aerospace AdmInIstration (NASA), 21, 23, 86, 98,110,120, 140, 15 6 , 237 nI6 , 25 InI Nelson, Theodore Holm, 38 - 40, 220, 223, 24 0n 4 Network Information Center (NIC), see under Advanced Research Project Agency (ARPA) Network Measurement Center (NMC), see under Advanced Research Proj- ect Agency (ARPA) Network WorkIng Group (NWG), see under Advanced Research Project Agency (ARPA) Newell, Allen, 22, 30, 175 - 80 passIm, 218, 238n27, 239nI Newman, William, 13°-3 1 , 254nl4 Newton, Isaac, 48 - 5 I passim NIC, see under Advanced Research ProJ- ect Agency (ARPA): Network Infor- mation Center Ninke, William, 24 7 n 5 NLS, see oN-Line System NMC, see under Advanced Research ProJect Agency (ARPA): Network Measurement Center Index 281 Norman, Donald A., 107, 167, 225, 26In2 Norton, James, 254 - 5 5 n I Nova, 152-56 passIm, 256n8 NWG, see under Advanced Research Project Agency (ARPA): Network WorkIng Group) Office for SCIentific Research and Devel- opment (OSRD), 24In6 Office of Naval Research (ONR), 6, 60 OlIver, G.


From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry by Martin Campbell-Kelly

Apple II, Apple's 1984 Super Bowl advert, barriers to entry, Bill Gates: Altair 8800, business process, card file, Charles Babbage, computer age, computer vision, continuous integration, Dennis Ritchie, deskilling, Donald Knuth, Gary Kildall, Grace Hopper, history of Unix, hockey-stick growth, independent contractor, industrial research laboratory, information asymmetry, inventory management, John Markoff, John von Neumann, Larry Ellison, linear programming, longitudinal study, machine readable, Menlo Park, Mitch Kapor, Multics, Network effects, popular electronics, proprietary trading, RAND corporation, Robert X Cringely, Ronald Reagan, seminal paper, Silicon Valley, SimCity, software patent, Steve Jobs, Steve Wozniak, Steven Levy, Thomas Kuhn: the structure of scientific revolutions, vertical integration

The history of Unix is well documented.29 Like the origins of the Internet (with which it is closely associated), it has entered the folklore 144 Chapter 5 of post-mainframe computing. The Unix project was initiated in 1969 by two researchers at Bell Labs, Ken Thomson and Dennis Ritchie. “Unix” was a pun on “MULTICS,” the name of a multi-access time-sharing system then being developed by a consortium of Bell Labs, General Electric, and MIT. MULTICS was a classic software disaster. It was path-breaking in concept, but to get it working with tolerable efficiency and reliability took a decade.30 In reaction to MULTICS, Unix was designed as a simple, reliable system for a single user, initially on a DEC minicomputer. Ritchie and Thomson, who existed in a research culture somewhere between industry and academe, made the code of Unix freely available.

Mancke, IBM and the US Data Processing Industry: An Economic History (Praeger, 1983), pp. 415–417. 28. Cusumano, Japan’s Software Factories. 29. Peter H. Salus, A Quarter Century of Unix (Addison-Wesley, 1994); D. M. Ritchie, “The Evolution of the Unix Time-Sharing System,” AT&T Bell Laboratories Technical Journal 63 (October 1984): 1577–1593. 30. Elliot I. Organic, The MULTICS System: An Examination of Its Structure (MIT Press, 1980). 31. Mark Hall and John Barry, Sunburst: The Ascent of Sun Microsystems (Contemprary Books, 1990). 32. Ed Dunphy, The Unix Industry, second edition (Wiley, 1994). 33. W. C. McGee, “Database Technology,” IBM Journal of Research and Development 25 (September 1981): 505–519. 34.

Wiley, 1998. OECD. Gaps in Technology: Electronic Computers. Paris: OECD, 1969. OECD. Software, an Emerging Industry. Paris: OECD, 1985. Oldfield, Homer R. King of the Seven Dwarfs: General Electric’s Ambiguous Challenge to the Computer Industry. IEEE Computer Society Press, 1996. Organic, Elliot I. The MULTICS System: An Examination of Its Structure. MIT Press, 1980. Palmer, Ian. Database Systems: A Practical Reference. London: CACI, 1975. Parker, R. W. The SABRE System. Datamation, September 1965: 49–52. Parkhill, D. F. The Challenge of the Computer Utility. Addison-Wesley, 1966. Petersen, W. E. AlmostPerfect: How a Bunch of Regular Guys Built WordPerfect Corporation.


pages: 1,202 words: 144,667

The Linux kernel primer: a top-down approach for x86 and PowerPC architectures by Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski

Debian, Dennis Ritchie, domain-specific language, en.wikipedia.org, Free Software Foundation, G4S, history of Unix, Ken Thompson, level 1 cache, Multics, recommendation engine, Richard Stallman

At the time of this joint venture in 1965, operating systems, although capable of multiprogramming (timesharing between jobs), were batch systems that supported only a single user. The response time between a user submitting a job and getting back the output was in the order of hours. The goal behind MULTICS was to create an operating system that allowed multiuser timesharing that provided each user access to his own terminal. Although Bell Labs and General Electric eventually abandoned the project, MULTICS eventually ran in production settings in numerous places. UNIX development began with the porting of a stripped-down version of MULTICS in an effort to develop an operating system to run in the PDP-7 minicomputer that would support a new filesystem. The new filesystem was the first version of the UNIX filesystem.

Although Linux did not develop directly from an existing UNIX, the fact that it implements common UNIX standards makes the history of UNIX relevant to our discussion. MULTiplexed Information and Computing Service (MULTICS), which is considered the precursor of the UNIX operating systems, came about from a joint venture between MIT, Bell Laboratories, and the General Electric Company (GEC), which was involved in the computer-manufacturing business at that time. The development of MULTICS was born of the desire to introduce a machine to support numerous timesharing users. At the time of this joint venture in 1965, operating systems, although capable of multiprogramming (timesharing between jobs), were batch systems that supported only a single user.

Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] $(Q) variable /dev directory /etc/fstab files _ _volatile__modifer 2nd 3rd 4th 5th 6th __builtin_expect() function __free_page() function __get_dma_pages() function __get_free_page() function __init macro 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] ABI (Application Binary Interface) absolute pathnames 2nd Accelerated Graphics Port (AGP) access devices 2nd DMA 2nd rights 2nd 3rd 4th 5th actiev_mm field (task_struct structure) activated field (task_struct structure) active_list field (memory zones) add_wait_queue() function add_wait_queue_exclusive() function adding caches 2nd 3rd 4th 5th 6th 7th 8th 9th code for system calls 2nd 3rd to wait queues address space fields task_struct structure 2nd address_space structure 2nd 3rd addresses intervals linear linear spaces memory management 2nd 3rd logical memory mm_struct 2nd 3rd 4th physical translation 2nd i386 Intel-based memory management virtual vm_area_struct 2nd 3rd 4th addressing devices Advanced Programmable Interrupt Controller (APIC) agetty programs AGP (Accelerated Graphics Port) algorithms big-o notations elevator aligning caches all_unreclaimable field (memory zones) alloc_page() function alloc_pages() function allocating memory kmalloc() function 2nd kmem_cache_alloc() function allocators slabs global variables 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th anticipatory I/O schedulers anticipatory I/O scheduling APIC (Advanced Programmable Interrupt Controller) Application Binary Interface (ABI) Application Specific Integrated Circuit (ASIC) applications distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th parallel ports ar command 2nd arch/ppc/ source code listings architecture assembly language example PowerPC 2nd 3rd 4th x86 2nd 3rd Big Endian/Little Endian CISC IHA inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 PowerPC Linux Power UMA architetcure dependence RISC architetcure-dependent source code 2nd architetcure-independent source code 2nd areas memory 2nd arithmetic instructions (x86) array field (task_struct structure) arrays priority ASIC (Application Specific Integrated Circuit) asm keyword asmlinkage assemblers assembly asm keyword inline 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th clobbered registers constraints input operands output operands parameter numbering assembly languages example of PowerPC 2nd 3rd 4th x86 2nd 3rd PowerPC 2nd 3rd 4th x86 2nd 3rd 4th asynchronous events asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th asynchronous I/O operations atomic flags [See also flags] attributes fields task_struct structure 2nd files Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Basic Input Output System (BIOS) BAT (Block Address Translation) Bell Laboratories Big Kernel Lock (BKL) Big-Endian big-o notations binary trees 2nd binfmt field (task_struct structure) BIOS (Basic Input Output System) BKL (Big Kernel Lock) Block Address Translation Block Address Translation (BAT) block devices block_device_operations structure blocked state blocked to ready transition state blocks devices 2nd disks blr (Branch to Link Register) boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd bottom-half interrupt handler methods bouncing Bourne shells branch instructions (PowerPC) Branch to Link Register (blr) bridges I/O 2nd 3rd buddy systems (memory management) 2nd 3rd 4th 5th buffer_head structure buffer_init() function calling 2nd buffers caches TLBs build_all_zonelists() function calling 2nd building kernels compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers source build systems_ 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th toolchains 2nd parallel port drivers 2nd 3rd 4th 5th 6th 7th 8th busses I/O 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] C language usage asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd cache_cache global variable cache_chain global variable cache_chain_sem global variable cache_grow() function 2nd 3rd cache_sizes descriptors caches aligning creating 2nd 3rd 4th 5th 6th 7th 8th 9th descriptors 2nd 3rd 4th destroying 2nd kmem_cache page pages address_space structures 2nd 3rd filesystems 2nd 3rd 4th tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th types of cahces buffers calaculations dynamic priority calibrate_delay() function calling 2nd 3rd call system VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th calling buffer_init() function 2nd build_all_zonelists() function 2nd calibrate_delay() function 2nd 3rd console_init() function 2nd init_IRQ() function 2nd 3rd late_time_init() function local_irq_enable() function lock_kernel() function 2nd mem_init() function 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function 2nd 3rd 4th page_alloc_init() function 2nd page_writeback_init() function 2nd 3rd parse_args() function 2nd 3rd pgtable_cache_init() function 2nd printk() function proc_root_init() function 2nd 3rd profile_init() function radix_tree_init() function rcu_init() function rest_init() function 2nd sched_init() function 2nd 3rd security_scaffolding_startup() function setup_arch() function 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function 2nd 3rd signals_init() function 2nd smp_prepare_boot_cpu() function 2nd softirq_init() function time_init() function 2nd trap_init() function vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th calls [See system calls] process creation system 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd capabilties fields task_struct structure 2nd characters devices 2nd 3rd 4th child processes 2nd children field (task_struct structure) chipsets CHRP (Common Hardware Reference Platform) CISC (Complex Instruction Set Computing) architecture clobbered registers 2nd clocks devices real-time 2nd 3rd 4th 5th 6th 7th 8th 9th clone() function 2nd 3rd close() function 2nd 3rd 4th 5th 6th 7th CML2 code inline assembly 2nd _ _volatile__ modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constriants input operands output operands parameter numbering code generation phases coloring (slabs) comm field (task_struct structure) commands ar 2nd hexdump objcopy Common Hardware Reference Platform (CHRP) compilers 2nd asmlinkage cross 2nd Complex Instruction Set Computing (CISC) architecture components MBR compound pages computer programs [See also applications] condition register (CR) configuration kernel configuration tool configuring caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th initrd console_init() function calling 2nd const keyword 2nd constants UL marking constraints context context of execution context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th control of files control bits control information, transmitting controllers DMA 2nd interrupts controlling terminal count field (flags) count register (CTR) CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th cpus_allowed field (task_struct structure) CR (condition register) create_process program 2nd 3rd credentials fields task_struct structure 2nd cross compilers 2nd cs_cachep field (cache descriptors) cs_dmacachep field (cache descriptors) cs_size field (cache desciptors) ctor field (cache descriptors) CTR (count register) current task structures current variable current working directories Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Data BAT (DBAT) data instructions (x86) data relocate (DR) data segments data structures VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd DBAT (Data BAT) deactivating tasks dead processes deadline I/O schedulers deadlock Debian debugging device drivers 2nd DECLARE_WORK() macro declaring IOCTL numbers 2nd 3rd 4th decrementers defining execution contexts defunct processes dentry structures 2nd 3rd 4th 5th dependence architecture descriptors cache_sizes caches 2nd 3rd 4th files kmem_cache memory zones 2nd 3rd processes 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th descriptors (files) destroying caches 2nd devfs (Linux Device Filesystem) devices access 2nd addressing block characters 2nd drivers 2nd creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd types of 2nd 3rd 4th files 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals models sysfs 2nd 3rd 4th pseudo Direct Memory Access (DMA) 2nd direct store segments directories 2nd /dev current working files 2nd 3rd fs/ home init/ kernel/ mm/ Page Global Directory working dirty pages, flushing 2nd disks blocks formatting initrd 2nd partitions 2nd distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog DMA (Direct Memory Access) 2nd dmesg tool do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th do_page_fault() function DR (data relocate) driver tables drivers cource code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd devices 2nd parallel ports building 2nd 3rd 4th 5th 6th 7th 8th types of 2nd 3rd 4th wait queues 2nd 3rd 4th 5th work queues 2nd 3rd dtor field (cache descriptors) dumb terminals dynamic libraries dynamic priority calculations Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] EA (effective address) effective address (EA) effective group IDs effective user IDs elevator algorithms ELF (Executable and Linking Format) object files 2nd 3rd 4th 5th 6th 7th 8th 9th euid field (task_struct structure) events wait_event*() interfaces 2nd EXCEPTION() macro exceptions asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th page faults PowerPC page faults exec() system calls Executable and Linking Format (ELF) object files 2nd 3rd 4th 5th 6th 7th 8th 9th executing processes adding to wait queues asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th clone() function 2nd 3rd creating 2nd do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd lifespans 2nd 3rd 4th 5th 6th 7th sys_exit() function 2nd termination tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th vfork() funciton 2nd wait queues 2nd wait() function 2nd 3rd 4th 5th 6th wait_event*() interfaces 2nd waking up 2nd 3rd 4th schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th execution context of processes create_process program 2nd 3rd execution contexts, defining exit_code field (task_struct structure) exit_signal field (task_struct structure) exploration tools (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd EXPORT_SYMBOL macro exporting symbols extensions filenames external fragmentation external interrupts Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] faults (pages) 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th fdatasync system calls Fedora 2nd field handlers fields flags 2nd memory zones 2nd 3rd process descriptor address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th superblock structures 2nd 3rd operations 2nd 3rd task_struct structure address space 2nd attribute 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th file descriptors file structures VFS 2nd 3rd filenames extensions files 2nd /etc/fstab attributes control descriptors devices 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals directories 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th filenames kernels 2nd protection 2nd 3rd 4th 5th metadata modes operations parameters offsetting pathnames 2nd processes close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th regular 2nd types 2nd types of files field (task_struct structure) files_struct structure 2nd 3rd 4th filesystems 2nd devfs fields task_struct structure 2nd handlers hierarchies implementing kernels 2nd layers 2nd 3rd 4th 5th 6th 7th navigating 2nd overview 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th performance types of VFS VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th first_time_slice field (task_struct structure) fixed-point instructions (PowerPC) flags memory management 2nd flags field flags field (cache descriptors) flags field (task_struct structure) Flash flips 2nd 3rd floating-point instructions (PowerPC) flops 2nd 3rd flushing dirty pages 2nd for_each_zone() function fork() function 2nd fork() system calls forked processes formatting caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th disks fragmentation external frames pages memory management 2nd 3rd 4th 5th 6th 7th 8th free field (slab descriptors) free software 2nd Free Software Foundation (FSF) free_area field ( memory zones) free_page() function free_pages field (memory zones) front-side busses fs field (task_struct structure) fs/ directory fs_struct structure FSF (Free Software Foundation) fsgid field (task_struct structure) fsuid field (task_struct structure) fsync system calls funcitons nice() function is_highmem() kmalloc() 2nd kmem_cache_alloc() functions __builtin_expect() __free_page() __get_dma_pages() __get_free_page() add_wait_queue() add_wait_queue_exclusive() alloc_page() alloc_pages() cache_grow() 2nd 3rd close() 2nd 3rd 4th 5th 6th 7th context_switch() 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th do_exit() 2nd 3rd 4th do_page_fault() for_each_zone() free_page() helper memory zones 2nd is_normal() kmem_cache_destroy() 2nd likely() 2nd 3rd list_del() nice() open() 2nd 3rd 4th 5th 6th printk() process creation 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd releases page frames requests page frames 2nd 3rd sched_fork() 2nd 3rd 4th 5th 6th 7th 8th scheduler_tick() start_kernel() 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th switch() switch_to() 2nd synchronous sys_exit() 2nd unlikely() 2nd 3rd wait() 2nd 3rd 4th 5th 6th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] GEC (General Electric Company) General Electric Company (GEC) general purpose caches general-purpose registers (GPRs) generic block device layers 2nd generic block driver layers 2nd 3rd Gentoo 2nd geometry of hard drives gfp_mask integer value gfpflags field (cache descriptors) gfporder field (cache descriptors) GID (group ID) 2nd global variables local list references 2nd slab allocators 2nd 3rd GMCH (Graphics and Memory Controller Hub) GNU General Public License (GPL) GPL (GNU General Public License) GPRs (general-purpose registers) Grand Unified Bootleader (GRUB) 2nd 3rd 4th Graphics and Memory Controller Hub (GMCH) group ID (GID) 2nd group_info field (task_struct structure) 2nd group_leader field (task_struct structure) GRUB (Grand Unified Botloader) 2nd 3rd 4th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] handlers filesystems page faults 2nd 3rd 4th 5th 6th 7th hard drives geometry of hard links hardware I/O 2nd 3rd parallel ports headers ELF 2nd tables programs 2nd sections 2nd heads heaps helper functions memory zones 2nd Hertz (HZ) Hertz, Heinrich hexdump command hierarchies filesystems High Performance Event Timer (HPET) history of UNIX 2nd home directories host systems HPET (High Performance Event Timer) hubs hw_interrupt_type structure hw_irq_controller structure HyperTransport technology HZ (Hertz) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] I/O asynchronous operations devices block devices 2nd characters 2nd clocks DMA 2nd files 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals hardware 2nd 3rd I/O (input/output) I/O Controller Hub (ICH) i386 Intel-based memeory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th IBAT (Instruction BAT) ICH (I/O Controller Hub) IDT (Interrupt Descriptor Table) 2nd IHA (Intel Hub Architecture) images kernels building 2nd 3rd implementing filesystems implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd inactive_list field (emory zones) inb (read in a byte) index nodes init process 2nd 3rd init threads (Process 1) 2nd 3rd 4th 5th 6th init/ directory init_IRQ() function calling 2nd 3rd initial RAM disk (initrd) 2nd initializing architecture-dependent memory i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 irqaction struct kernels systems initrd configuring initrd (initial RAM disk) 2nd inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering inline keyword inode strcutures inode structures 2nd 3rd 4th inodes input operands input/output [See I/O] Instruction BAT (IBAT) instruction relocate (IR) Intel Hub Architecture (IHA) interactive processes interactive tasks interactive_credit field (task_struct structure) interfaces ABI I/O 2nd 3rd users wait_event*() 2nd Interrupt Descriptor Table (IDT) 2nd interrupt-acknowledge cycle interrupts 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th context controllers polling and 2nd 3rd 4th 5th intervals addresses inuse field (slab descriptors) IOCTL numbers, declaring 2nd 3rd 4th IPC (Interprocess Communication) IR (instruction relocate) IRQ structures irq_desc_t structure irqaction struct irqaction structs, initializing IS_ERR macro is_highmem() function is_normal() function Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] jiffies 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] kernel messages /var/log/messages dmesg printk() function kernel configuration tool kernel mode kernel/ directory kernels architecture-dependent memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd create_process program 2nd 3rd datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees 2nd 3rd 4th 5th distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog explicit kernel preemption exploration tools ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd implicit kernel preemption 2nd 3rd 4th init threads (Process 1) 2nd 3rd 4th 5th 6th initialization memory 2nd organization overview of access rights 2nd 3rd 4th 5th device drivers 2nd files/filesystems 2nd processes 2nd 3rd schedulers system calls 2nd UID 2nd user interfaces release information 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd space start_kernel() function 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th toolchains 2nd compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers keywords asm const 2nd inline volatile 2nd kmalloc() function 2nd kmem_cache descriptors kmem_cache_alloc() function kmem_cache_destroy() function 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] languages assembly example of 2nd 3rd 4th 5th 6th 7th 8th PowerPC 2nd 3rd 4th x86 2nd 3rd 4th C asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd late_time_init() function calling latency layers filesystems 2nd 3rd 4th 5th 6th 7th generic block device 2nd generic block drivers 2nd 3rd layouts source code li RT, RS, SI (Load Immediate) libraries licenses GPL lifecycles slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th lifespans of process descriptors 2nd 3rd processes states 2nd transitions (states) 2nd 3rd 4th 5th 6th likely() function 2nd 3rd LILO (LInux LOader) 2nd limitations fields task_struct structure 2nd 3rd linear address spaces memory management 2nd 3rd linear addresses link editors link register (LR) linked lists 2nd 3rd 4th linkers links 2nd 3rd 4th Linux filesystems [See filesystems] makefiles 2nd 3rd process structures linear address spaces 2nd 3rd memory management 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page tables 2nd Linux Device Filesystem (devfs) LInux LOader (LILO) 2nd Linux Power list field (flags) list field (slab descriptors) list_del() function lists clobber linked 2nd 3rd 4th local references (global variables and) 2nd searching 2nd 3rd slab descriptors work queues lists field (cache descriptors) lists,next_reap lists.slabs_free lists.slabs_full lists.slabs_partial Little Endian Load Immediate (li_RT,_RS,_SI) Load Word and Zero (lwz_RT,_D(RA)) local list references 2nd local stacks asmlinkage local_irq_enable() function calling lock field (memory zones) lock_kernel() function calling 2nd locking spinlocks 2nd 3rd 4th 5th logical addresses logical disks login programs LR (link register) lru field (flags) lru_lock field (memory zones) ls /usr/src/linux/arch lwz RT, D(RA) (Load Word and Zero) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Machine State Register (MSR) macros __init 2nd DECLARE_WORK() EXCEPTION() EXPORT_SYMBOL IS_ERR PTR_ERR makefiles Linux 2nd 3rd sub-makefiles 2nd 3rd malloc_sizes[] global variable management memory 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd Mandriva mapping memory processes 2nd mappng field (flags) marking constants UL Master Boot Record (MBR) MBR (Master Boot Record) MCH (Memory Controller Hub) mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th memory addresses mm_struct 2nd 3rd 4th vm_area_struct 2nd 3rd 4th addressing architecture-dependent initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 areas 2nd buffer_head structures DMA 2nd initrd 2nd kernels 2nd kmalloc() function 2nd kmem_cache_alloc() function management 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd manager processes mapping 2nd regions users 2nd 3rd 4th virtual Memory Controller Hub (MCH) Memory Management Unit (MMU) memory-mapped I/O messages kernels /var/log/messages dmesg printk() function metadata files mingetty programs Minix MIT mm field (task_struct structure) mm utility mm/ directory mm_struct structure 2nd 3rd 4th MMU (Memory Management Unit) models devices sysfs and 2nd 3rd 4th modes files kernel sgid sticky suid user modifiers _ _volatile__ 2nd 3rd 4th 5th 6th modules source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th monolithic systems mount points mount systems MSR (Machine State Register) Multiboot Specification (GRUB) MULTiplexed Information and Computing Service (MULTICS) multiprogramming multiuser timesharing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] name field (cache descriptors) named pipes navigating filesystems 2nd networks devices next field (cache descriptors) nice() funciton nice() function nivcsw field (task_struct structure) no-op no-op I/O schedulers nodes index non-executable ELF file sections 2nd non-volatile storage Northbridge 2nd notations big-o notification parents 2nd 3rd 4th 5th 6th notifier chains num field (cache descriptors) numbering parameters numbers IOCTL delcaring 2nd 3rd 4th nvcsw field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] O(1) schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th tasks selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th objcopy command objdump utility 2nd object languages objects create_process program 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th file formats linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd objsize field (cache descriptors) OF (Open Firmware) 2nd offsetting descriptors offsetting file parameters Open Firmware (OF) 2nd Open Programmable Interrupt Controller (OpenPIC) open source software 2nd open() function 2nd 3rd 4th 5th 6th OpenPIC (Open Programmable Interrupt Controller) operating systems create_process program 2nd 3rd overview of 2nd operations asynchronous I/O devices 2nd files superblock structures 2nd 3rd optimizers optimizing filesystems organization of kernels outb (write out a byte) output operands overview of Linux Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] padding zones page caches address_space structures 2nd 3rd tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th Page Directory Entry (PDE) page faults page frames Page Global Directory Page Table Entry (PTE) 2nd page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd pages caches filesystems 2nd 3rd 4th compound dirty flushing 2nd faults memory management 2nd 3rd 4th 5th 6th 7th 8th 9th flags fields 2nd frames memory management 2nd 3rd 4th 5th 6th 7th 8th memory management 2nd 3rd tables memory management 2nd pages_high field (memory zones) pages_min, pages_low field (memory zones) pages_scanned, temp_priority field (memory zones) paging parallel port drivers, building 2nd 3rd 4th 5th 6th 7th 8th parameters asmlinkage files offsetting numbering parent field (task_struct structure) parent processes 2nd parents notification 2nd 3rd 4th 5th 6th parse_args() function calling 2nd 3rd partitions 2nd disks pathnames 2nd files 2nd paths requests memory management 2nd PCI busses PDE (Page Directory Entry) pdeath field (task_struct structure) performance filesystems pgtable_cache_init() function calling 2nd phases of compiling physical addresses PIC (Programmable Interrupt Controller) pid field (task_struct structure) PID process ID) pipes named PIT (Programmable Interval Time) pivoting the root plugging policy field (task_struct structure) polling and interrupts 2nd 3rd 4th 5th portability ports I/O 2nd 3rd parallel drivers building 2nd 3rd 4th 5th 6th 7th 8th PowerPC architecture-dependent memory intialization 2nd 3rd 4th 5th 6th 7th 8th 9th 10th assembly languages 2nd 3rd 4th example 2nd 3rd 4th bootloaders 2nd page fault exceptions x86 code convergence PowerPC architecture Linux Power PowerPC Reference Platform (PreP) PPC real-time clocks reading preemption tasks explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd PreP (PowerPC Reference Platform) prev_priority field (memory zones) principle of locality printk() function calling prio field (task_struct structure) priority dynamic calaculations processes priority arrays proc_root_init() function calling 2nd 3rd process 0 Process 0 process 1 Process 1 Process 1 (init threads) 2nd 3rd 4th 5th 6th process ID (PID) process status (ps) processes 2nd 3rd 4th asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th clone() function 2nd 3rd context create_process program 2nd 3rd creating 2nd 3rd dead descriptors 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th files close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th fork() function 2nd init interactive lifespans states 2nd Linux memory management 2nd 3rd 4th 5th 6th memory mapping 2nd priority running schedulers selecting tasks sleeping spawning termination do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th transitions states 2nd 3rd 4th 5th 6th types of vfork() function 2nd wait queues 2nd adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th zombie profile_init() function calling program header tables 2nd Programmable Interrupt Controller (PIC) Programmable Interval Time (PIT) programming filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th programs create_process 2nd 3rd protected mode (memory management) 2nd protection files 2nd 3rd 4th 5th ps (process status) pseudo devices PTE (Page Table Entry) 2nd PTR_ERR macro ptrace field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] queues request utilities requests 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th run system requests wait 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th work 2nd 3rd lists tasklets 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] radix_tree_init() function calling RAM initrd 2nd rcu_init() function calling readelf utility 2nd reading PPC real-time clocks real-time clocks x86 ready state ready to running state transition real addressing real group IDs real mode real user IDs real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th real_parent field (task_struct structure) receiving data from devices red black trees 2nd Red Hat 2nd Reduced Instruction Set Computing (RISC) architecture references local lists (global variables and) 2nd regions memory registers clobbered PowerPC segment SPRs regular files 2nd relationships fields task_struct structure 2nd makefiles 2nd 3rd relative pathnames 2nd release information (kernels) 2nd releases functions page frames relocatable object code relocation requests functions page frames 2nd 3rd paths memory management 2nd queue utilities queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system queues respawning programs rest_init() function calling 2nd rights access 2nd 3rd 4th 5th RISC (Reduced Instruction Set Computing) architecture Ritchie, Dennis rlim field (task_struct structure) root of users root threads rt_priority field (task_struct structure) rules schedulers run queues 2nd run_list field (task_struct structure) runnable states (processes) running processes running to blocked state transition running to ready state transition Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] s_mem field (slab descriptors) scanner phases sched_fork() function 2nd 3rd 4th 5th 6th 7th 8th sched_init() function calling 2nd 3rd scheduler_tick() function schedulers 2nd anticipatory creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th deadline I/O no-op I/O O(1) context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th rules scheduling fields task_struct structure 2nd 3rd 4th I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scripts SDR1 (Storage Description Register 1) searching datatypes 2nd 3rd sections header tables 2nd non-executable ELF files 2nd security_scaffolding_startup() function calling Segment Registers Segmented Address Translation segments data text selecting tasks schedulers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th semantic attributes semaphores 2nd 3rd 4th 5th setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd sgid field (task_struct structure) sgid mode shared libraries sibling field (task_struct structure) sibling processes signals_init() function calling 2nd SIGSTOP slabp_cache field (cache descriptors) slabs allocators global variables 2nd 3rd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th coloring sleep_avg field (task_struct structure) sleeping processes smp_prepare_boot_cpu() function calling 2nd sockets 2nd soft links softirq_init() function calling software [See applications] free/open source 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd source code system calls adding 2nd 3rd traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th writing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Southbridge 2nd space kernels users spaces addresses memory management 2nd 3rd virtual addresses spawning processes special purpose registers (SPRs) specialized caches spinlocks 2nd 3rd 4th 5th SPRs (special purpose registers) stacks asmlinkage standards start_kernel() function 2nd buffer_init() function calling 2nd build_all_zonelists() function calling 2nd calibrate_delay() function calling 2nd 3rd console_init() function calling 2nd init_IRQ() function calling 2nd 3rd late_time_init() function calling local_irq_enable() function calling lock_kernel() function calling 2nd mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd parse_args() function calling 2nd 3rd pgtable_cache_init() function calling 2nd printk() function calling proc_root_init() function calling 2nd 3rd profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function calling 2nd sched_init() function calling 2nd 3rd security_scaffolding_startup() function calling setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd signals_init() function calling 2nd smp_prepare_boot_cpu() function calling 2nd softirq_init() function calling time_init() function calling 2nd trap_init() function calling vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th state processes lifespans 2nd 3rd transitions 2nd 3rd 4th 5th 6th state field (task_struct structure) states ready static libraries static_prio field (task_struct structure) statically allocated major devices status processes sticky mode Storage Description Register 1 (SDR1) Store Word with Update (stwu_RS,_D(RA)) structures address_space 2nd 3rd block_device_operations buffer_head current task dentry 2nd 3rd 4th file VFS 2nd 3rd files_struct 2nd 3rd 4th fs_struct hw_interrupt_type hw_irq_controller inode 2nd 3rd 4th IRQ irq_desc_t mm_struct 2nd 3rd 4th processes (Linux) memory management 2nd 3rd 4th 5th 6th superblock 2nd 3rd operations 2nd 3rd task_struct 2nd 3rd address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th VFS 2nd 3rd 4th 5th 6th vm_area_struct 2nd 3rd 4th wait queues 2nd adding to struuctures data VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th stwu RS, D(RA) (Store Word with Update) sub-makefiles 2nd 3rd subdirectories architecture-independent suid field (task_struct structure) suid mode super_operations structure superblock structures 2nd 3rd 4th operations 2nd 3rd Superio chips superusers SUSE switch() function switch_to() function 2nd switching tasks explicit kernel preemption implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd symbol resolution symbolic links symbols exporting sync system calls synchronous functions synchronous interrupts syntactical rules sys_exit() function 2nd sysfs device models and 2nd 3rd 4th system calls 2nd 3rd 4th 5th 6th 7th clone() function 2nd 3rd code adding 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th vfork() function 2nd VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th system request queues system timers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th systems initializing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] tables drivers headers programs 2nd sections 2nd pages memory management 2nd Tanenbaum, Andrew target system TASK_INTERRUPTIBLE state task_list TASK_RUNNING state TASK_STOPPED state task_struct structure 2nd 3rd fields address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th TASK_UNINTERRUPTIBLE state TASK_ZOMBIE state tasklets work queues and 2nd 3rd tasks current task structure deactivating interactive preemption explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th terminals devices termination processes do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th text segments the contextual analysis phases Thompson, Ken threads init (Process 1) 2nd 3rd 4th 5th 6th time_init() function calling 2nd time_slice field (task_struct structure) timers real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th timers (system) 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th timesharing users timeslices 2nd 3rd timestamp field (task_struct structure) timestamsps schedulers TLBs (Translation Lookaside Buffers) toolchains 2nd compilers cross 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers tools distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog dmesg exploration (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd kernel configuration top-half interrupt handler methods Torvalds, Linus tracing page caches 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th tracking processes 2nd 3rd 4th 5th 6th 7th 8th 9th 10th tracks 2nd transitions prcess state process state 2nd 3rd 4th 5th 6th translation addresses i386 Intel-based PPC Translation Lookaside Buffers (TLBs) transmitting control information trap_init() function calling traps traversing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th trees binary 2nd red black 2nd troubleshooting device drivers debugging 2nd filesystems optimizing types of drivers 2nd 3rd 4th of files 2nd 3rd of filesystems of interrupt handlers Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] UID (user ID) 2nd UL (unsigned long) UMA (Universal Motherboard Architecture) Universal Motherboard Architecture (UMA) UNIX history of 2nd unlikely() function 2nd 3rd unlpugging unsigned long (UL) user ID (UID) 2nd user mode users implicit user preemption 2nd interfaces space superusers utilities request queues Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] VA (virtual address) values flags variables $(Q) variable current global local list references 2nd slab allocators 2nd 3rd HZ vectors versions kernels release information 2nd vfork() function 2nd VFS structures 2nd 3rd 4th 5th 6th system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th VFS (virtual filesystem) vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th virtual address (VA) virtual addresses virtual addressing virtual field (flags) virtual filesystem (VFS) virtual filesystems 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th virtual memory virtual page number (VPN) virtual segment ID (VSID) virtual terminals vm_area_struct structure 2nd 3rd 4th volatile keyword 2nd VPN (virtual page number) VSID (virtual segment ID) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] wait queues 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th wait() function 2nd 3rd 4th 5th 6th wait() system calls wait_event*() interfaces 2nd wait_table, wait_table_size field (memory zones) wait_table_bits field (memory zones) waking up wait queues 2nd 3rd 4th window managers distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog wireless LAN [See WLAN] WLAN (wireless LAN) work queues 2nd 3rd lists tasklets 2nd 3rd working directories writing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] x86 assembly languages 2nd 3rd 4th example 2nd 3rd PowerPC code convergence real-time clocks reading x86 interrupt flow x86 interrupt vector tables Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Yaboot bootloaders 2nd Yellow Dog yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] zombie processes 2nd zombies zones memory management 2nd 3rd padding Table of Contents Chapter 1.


pages: 470 words: 144,455

Secrets and Lies: Digital Security in a Networked World by Bruce Schneier

Ayatollah Khomeini, barriers to entry, Bletchley Park, business process, butterfly effect, cashless society, Columbine, defense in depth, double entry bookkeeping, drop ship, fault tolerance, game design, IFF: identification friend or foe, information security, John Gilmore, John von Neumann, knapsack problem, macro virus, Mary Meeker, MITM: man-in-the-middle, moral panic, Morris worm, Multics, multilevel marketing, mutually assured destruction, PalmPilot, pez dispenser, pirate software, profit motive, Richard Feynman, risk tolerance, Russell Brand, Silicon Valley, Simon Singh, slashdot, statistical model, Steve Ballmer, Steven Levy, systems thinking, the payments system, Timothy McVeigh, Y2K, Yogi Berra

The historical example that got this the most nearly correct is an operating system called Multics, developed in the late 1960s by MIT, Bell Labs, and Honeywell. Multics implemented the Bell-LaPadula model from the ground up. (In fact, the Multics project was the impetus for the Bell-LaPadula model.) The designers used the mathematical formalism of the model to show the security of the system, and then mapped the concepts of the model into the operating system. No code was ever written until specifications had been approved. Multics worked, although the security was way too cumbersome. By now, almost everyone has forgotten Multics and the lessons learned from that project.

By now, almost everyone has forgotten Multics and the lessons learned from that project. One of the lessons people have forgotten is that the kernel needs to be simple. (Even the Multics kernel, with only 56,000 lines of code, was felt to be too complex.) The kernel is defined as the software that is trusted. Chapter 13 talks about software reliability, the moral being that it is unreasonable to expect software not to have security bugs. The simpler the software is, the fewer bugs it will have. Unfortunately, modern operating systems are infected with a disease known as “kernel bloat.” This means that a lot of code is inside the kernel instead of outside. When UNIX was first written, it made a point of pushing nonessential code outside the kernel.


pages: 218 words: 63,471

How We Got Here: A Slightly Irreverent History of Technology and Markets by Andy Kessler

Albert Einstein, Andy Kessler, animal electricity, automated trading system, bank run, Big bang: deregulation of the City of London, Black Monday: stock market crash in 1987, Bletchley Park, Bob Noyce, Bretton Woods, British Empire, buttonwood tree, Charles Babbage, Claude Shannon: information theory, Corn Laws, cotton gin, Dennis Ritchie, Douglas Engelbart, Edward Lloyd's coffeehouse, Fairchild Semiconductor, fiat currency, fixed income, floating exchange rates, flying shuttle, Fractional reserve banking, full employment, GPS: selective availability, Grace Hopper, invention of the steam engine, invention of the telephone, invisible hand, Isaac Newton, Jacquard loom, James Hargreaves, James Watt: steam engine, John von Neumann, joint-stock company, joint-stock limited liability company, Joseph-Marie Jacquard, Ken Thompson, Kickstarter, Leonard Kleinrock, Marc Andreessen, Mary Meeker, Maui Hawaii, Menlo Park, Metcalfe's law, Metcalfe’s law, military-industrial complex, Mitch Kapor, Multics, packet switching, pneumatic tube, price mechanism, probability theory / Blaise Pascal / Pierre de Fermat, profit motive, proprietary trading, railway mania, RAND corporation, Robert Metcalfe, Silicon Valley, Small Order Execution System, South Sea Bubble, spice trade, spinning jenny, Steve Jobs, Suez canal 1869, supply-chain management, supply-chain management software, systems thinking, three-martini lunch, trade route, transatlantic slave trade, tulip mania, Turing machine, Turing test, undersea cable, UUNET, Wayback Machine, William Shockley: the traitorous eight

Software and Networks In 1964, a consortium of MIT, Bell Labs and General Electric (which made computers for a while) announced a system called Multics, which was a time-sharing computer with users connected via a video display terminal and an electric typewriter. A green screen beat punched cards, but computers were still mainly used for number crunching tasks. In 1969, Bell Labbers Ken Thompson and Dennis Ritchie, with beards a la ZZ Top, fixed the then dead Multics software. They wrote a simpler version for Digital Equipment Corporation’s PDP mini-computers and named it UNICS, which stood for “castrated Multics.” This is the type of joke that programmers live for at 4 AM while waiting for their programs to compile.


pages: 559 words: 157,112

Dealers of Lightning by Michael A. Hiltzik

Apple II, Apple's 1984 Super Bowl advert, beat the dealer, Bill Atkinson, Bill Duvall, Bill Gates: Altair 8800, Boeing 747, business cycle, Charles Babbage, computer age, creative destruction, Douglas Engelbart, Dynabook, Edward Thorp, El Camino Real, Fairchild Semiconductor, financial engineering, index card, Ivan Sutherland, Jeff Rulifson, John Markoff, Joseph Schumpeter, L Peter Deutsch, luminiferous ether, Marshall McLuhan, Menlo Park, military-industrial complex, Multics, oil shock, popular electronics, reality distortion field, Robert Metcalfe, Ronald Reagan, Silicon Valley, speech recognition, Steve Ballmer, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, the medium is the message, The Soul of a New Machine, Vannevar Bush, Whole Earth Catalog, zero-sum game

During his tenure Licklider had steered most ARPA funding to time-sharing projects of a certain majestic scale, such as MIT’s vast Multics program, whose aim was to design a system capable of supporting 300 users at once. Taylor encouraged his contractors to embrace smaller-scale projects as well. One of these, an effort at the University of California at Berkeley called Project Genie, was based on the principle that not every university could afford the multimillion-dollar General Electric 645 mainframe Multics required. Instead Genie aimed to design a system for no more than ten or twenty users. If such a small machine could be widely distributed, Taylor reasoned, time-sharing might actually reach many more users than Multics could ever deliver.

If such a small machine could be widely distributed, Taylor reasoned, time-sharing might actually reach many more users than Multics could ever deliver. Genie’s host machine was the SDS 930, which was made by an entrepreneurial three-year-old company in Southern California named Scientific Data Systems and sold for only about $73,000. The 930 was a popular entry in the commercial market, where it was widely admired for its exceptional speed, excellent reliability, and large storage capacity. The Genie team demonstrated that with a nominal amount of new hardware and clever reprogramming the versatile 930 could be turned into a small-scale time-sharing machine.

., 107, 115, 170, 172, 221, 279, 280, 282, 377, 401 Alto and, 141, 169, 176–77 MAXC and, 112–13 McGurk, Dan, 99, 102, 255 Macintosh (Apple), xvi, xvii, xviii, xxiv, 329, 340, 341–42, 343, 344, 370, 389, 391, 395–96 McLuhan, Marshall, 83, 317 Magic squares, 196 Maiman, Theodore, 128–29 Mainframe computers, xxv, 71–72 Mansfield Amendment, 47–48, 60 Mantissa, 113 Markup, 212 Martin Aircraft, 10 Massachusetts Institute of Technology (MIT), 43, 180 ARPANET and, 180 LINC and, 41–43 Multics and, 18time-sharing and, 18, 41 Massaro, Don, 363–64, 370 MAXC (Multiple Access Xerox Computer), 6–7, 106–16, 117, 151, 153, 161, 169, 170, 172, 232, 303, 321 Alto and, 175, 176 ARPANET and, 183–84 Fiala and, 110, 113–14 McCreight and, 112–13 “Munger” and, 182–84 Thacker and, 107, 110, 114–15, 183–84 Mead, Carver A., 80, 82, 83, 302–3, 307–8, 401intrapreneuring and, 311–13 LSI and, 303silicon-based integrated circuits and, 305 VLSI and, xvi, 303–5, 308, 309, 310, 311 Medium-scale integration.


Shady Characters: The Secret Life of Punctuation, Symbols, and Other Typographical Marks by Keith Houston

Albert Einstein, anti-communist, Boeing 747, Charles Babbage, classic study, computer age, cuban missile crisis, Donald Knuth, en.wikipedia.org, Eratosthenes, invention of movable type, invention of the printing press, Isaac Newton, John Markoff, Joseph-Marie Jacquard, Kickstarter, means of production, Multics, packet switching, pre–internet, QWERTY keyboard, trade route, wikimedia commons

* This kind of combined keyboard/printer terminal device is more correctly called a “teleprinter” or “teletypewriter.”6 “Teletype” is an example of synecdoche, named for a prominent teleprinter manufacturer of the time. * The @ symbol did have some unfortunately incompatible uses for other operating systems. Perhaps the most infamous was its use on Multics, the predecessor to UNIX, as a signal to “erase all preceding characters on this line.” The problem was only resolved a decade later with a modification to Multics.19 * See chapter 3, “The Octothorpe (#),” for another application of this practice. * The Spanish and Portuguese units of weight are actually slightly different: the Spanish arroba was around twenty-five pounds, while the Portuguese unit was thirty-two pounds.36 * Giorgio Stabile’s discovery was corroborated by Jorge Romance, who in 2009 uncovered an even earlier use of the @ symbol in a Castilian document from 1445.41 * Ironically, the @ symbol was only inducted into Morse code—the granddaddy of encoding schemes—as recently as 2004.57 Chapter 6 The Asterisk and Dagger The asterisk (*) and dagger (†) have performed a punctuational double-act for millennia.

., 90 Milwaukee Brewers, 116 minuscule, 195 Carolingian, 12, 13, 44–45, 69, 71, 86 insular, 192, 193 minus sign (−), 93, 121, 145 Mirour for Magistrates, The, 201–2 missal, Catholic, 127 MLA Handbook, The, 113 Modernism, 67 Moll Flanders (Defoe), 46, 155–56, 203 monasteries, scriptoria of, 13, 14, 170 Monmouth Rebellion (1685), 154 Monophoto, 34 Monotype Baskerville (typeface), 70 Monotype machine, 34, 134, 135–36, 137, 138 Morse code, 94n Mouseion, 98, 100 movable type, 105n, 124, 127, 129, 178, 197 Multics operating system, 84n Murphy, David, 125 Museo Slab (typeface), 21, 106 Museum of Modern Art, 94–95 “mutton” (em quad), 150n My Own Primer, or First Lessons in Spelling and Reading (Carter), 77 Nabokov, Vladimir, 113, 237 National Museums Scotland, 39, 39n natural philosophers, 213–14 Navy, US, 207 Nazis, 67 Neue Typographie, Die (Tschichold), 67 New Scientist, 49 Newspeak, 207n New Statesman, 226n Newsweek, 32 Newton, Isaac, 42, 43 New York Daily News, 115, 244 New York Herald Tribune, 27 New York Review of Books, 151 New York Times, 117, 118n, 234–35, 237 Niccoli, Niccolò, 69–70, 174n Nicholas of Kues (Cusanus), 127 Nietzsche, Friedrich, 161 Nimble Books, 56 Nineteen Eighty-Four (Orwell), 169n, 207n Ninety-Five Theses (Luther), 105 notae Tironianae (Tironian shorthand), 62–64, 63, 72–74 “Notes Towards a Mental Breakdown” (Ballard), 113–14 Nouveau Larousse Illustré, 219 novel, see fiction NRC Handelsblad, 222 number sign, see octothorpe “nut” (en quad), 150n Oakley, Don, 32 Obama, Barack, 22 Obelisci (Eck), 105–6 obelos, 99 obelus, 99–100, 101–2, 104, 107, 122, 188 see also lemniscus octatherp, 54 octothorpe (#), xi, 41–57, 93, 145n in chess notation, 47 etymology of, 48–56 names for, 47 as number sign, 41 origin of, 41–44, 172 as pound sign, 41, 42–43, 43 in press releases, 47 in programming languages, 47 as proofreading mark, 47 as substitute for sharp symbol, 47 on telephone keypads, 53–56 Twitter and, 56, 57, 229 Ogden, C.


pages: 604 words: 161,455

The Moral Animal: Evolutionary Psychology and Everyday Life by Robert Wright

agricultural Revolution, Andrei Shleifer, Apollo 13, Asian financial crisis, British Empire, centre right, cognitive dissonance, cotton gin, double entry bookkeeping, double helix, Easter island, fault tolerance, Francis Fukuyama: the end of history, Garrett Hardin, George Gilder, global village, Great Leap Forward, invention of gunpowder, invention of movable type, invention of the telegraph, invention of writing, invisible hand, John Nash: game theory, John von Neumann, Marshall McLuhan, Multics, Norbert Wiener, planetary scale, planned obsolescence, pre–internet, profit motive, Ralph Waldo Emerson, random walk, Richard Thaler, rising living standards, Robert Solow, Silicon Valley, social intelligence, social web, Steven Pinker, talking drums, technological determinism, the medium is the message, The Wealth of Nations by Adam Smith, trade route, Tragedy of the Commons, your tax dollars at work, zero-sum game

The basic idea—creating large zones for the free play of non-zero-sumness—is akin to Elman Service’s notion of “waging peace.” But peace was often not waged peacefully. Though municipal ruler might agree on the virtues of a multicity mega-state, they rarely agreed on who the mega-ruler should be. Like chiefdoms, multicity mega-states tended to get formed with the help of aggression, or at least the threat of it. The first large multicity state in Mesopotamia was the Akkadian empire, formed around 2350 B.C., when Sargon of Akkade conquered Sumerian cities in southern Mesopotamia. Sargon’s conquests came with a divine seal of approval; having toppled a city, he asked local priests to declare his victory the will of the Mesopotamian god Enlil.

In all three regions, loosely defined city-states—urban cores surrounded by farmlands and villages and towns—seem to have evolved (though in some places, such as Egypt and the Andes, the “city” part of the state may have been so small as to stretch the definition of the term). And these city-states merged, forming multicity states, and these multicity states grew into empires. Sure, there were setbacks aplenty—droughts, barbarian hordes, and other catalysts of epic collapse—but in the long run the setbacks proved temporary. (Indeed, the setbacks attest to ongoing progress; their increasing vastness charts the growing magnitude of the systems that are being set back.)


pages: 299 words: 99,080

The Soul of a New Machine by Tracy Kidder

carbon-based life, Jarndyce and Jarndyce, Mason jar, military-industrial complex, Multics, Norbert Wiener, pattern recognition, post-industrial society, silicon-based life

Inadvertently, users of a time-sharing system could alter the contents of the host computer's memory and in this way destroy valuable data and foul up system software. Plans such as MULTICS were workable solutions to this problem. Wallach was proceeding almost on instinct now. In his two years of work on FHP, he believed, he had read every published description of every system for protection that had ever been devised. In the ordinary case, an architect might linger over the various possibilities for months. Wallach didn't have time for that, and he really didn't need it. Very quickly, he chose what he believed to be the simplest and best general solution, the general idea that came out of MULTICS — which DEC, as it happened, had used in the VAX.

Publicized cases of thievery and espionage by computer were legion at this time; experts generally agreed that most electronic criminals were never caught and that many who were never got prosecuted, because an organization that had been successfully attacked either didn't want the embarrassing publicity or feared that the news would encourage other raids. Many people had taken a crack at solving such problems, notably a group of engineers and computer scientists at MIT who worked with money from the Department of Defense on a project called MULTICS. In the late sixties, they produced a complex plan for making time-sharing systems secure. It was a clever plan. But many experts believed that no system of protection yet devised could withstand the efforts of smart.pranksters or thieves bent on foiling it. One organization had purchased a very fine system for protecting its computerized data banks, but a determined group had cracked it.


pages: 468 words: 233,091

Founders at Work: Stories of Startups' Early Days by Jessica Livingston

"World Economic Forum" Davos, 8-hour work day, Aaron Swartz, affirmative action, AltaVista, Apple II, Apple Newton, Bear Stearns, Boeing 747, Brewster Kahle, business cycle, business process, Byte Shop, Compatible Time-Sharing System, Danny Hillis, David Heinemeier Hansson, digital rights, don't be evil, eat what you kill, fake news, fear of failure, financial independence, Firefox, full text search, game design, General Magic , Googley, Hacker News, HyperCard, illegal immigration, Internet Archive, Jeff Bezos, Joi Ito, Justin.tv, Larry Wall, Maui Hawaii, Max Levchin, Menlo Park, Mitch Kapor, Multics, nuclear winter, PalmPilot, Paul Buchheit, Paul Graham, Peter Thiel, proprietary trading, Richard Feynman, Robert Metcalfe, Ruby on Rails, Sam Altman, Sand Hill Road, side project, Silicon Valley, slashdot, social software, software patent, South of Market, San Francisco, Startup school, stealth mode startup, Steve Ballmer, Steve Jobs, Steve Jurvetson, Steve Wozniak, The Soul of a New Machine, web application, Y Combinator

Livingston: That was at MIT, right? Bricklin: We used MIT’s Multics system, the one we worked on. Livingston: Did they mind? Bricklin: No. We paid for it. Luckily it took a few months to be billed. So money went into that, and Bob had some money and was able to pay for it. Eventually we borrowed some money from relatives, because we wanted to buy our own computer. We borrowed money from a bank and from relatives, and we bought a Prime minicomputer, which had an operating system based on the ideas of Multics, done by people who used to work at Multics. We bought one of those of our own, and we sublet space through some other friends who had a business, and that’s how we started our business—in a basement.

Bricklin and Frankston’s ideas live on in all the software we use today. Livingston: How did you know Bob? Bricklin: I met Bob when I was a freshman at MIT. I was working in the labs as my student job—because a really good way to learn an area in college is to work on a real project in one of the labs. I worked at the Multics project, which was a major project in the history of operating systems. Out of it came the Unix system and the 386-style chipset and a whole lot of things about how we do software and operating systems today. The first job I was given was to make some modifications and finish the work of this other guy, who had just graduated, in his bachelor’s thesis.

In fact, some of them had things like platens to turn to make the paper go up and down, and you set the margins with something you slid back and forth. That was the Lexitron. But some of them, like NBI’s (Nothing But Initials) system, were document-oriented. This was before Wang did their first screen-based word processor. I came out of the Multics project, which used the Runoff system, which Jerry Saltzer had developed for the CTSS (the Compatible Time Sharing System), which was one of the first time-sharing systems. To write his thesis, Professor Saltzer invented this thing called Runoff, which was used basically to do the word processing for it.


Smart Mobs: The Next Social Revolution by Howard Rheingold

"hyperreality Baudrillard"~20 OR "Baudrillard hyperreality", A Pattern Language, Alvin Toffler, AOL-Time Warner, augmented reality, barriers to entry, battle of ideas, Brewster Kahle, Burning Man, business climate, citizen journalism, computer vision, conceptual framework, creative destruction, Dennis Ritchie, digital divide, disinformation, Douglas Engelbart, Douglas Engelbart, experimental economics, experimental subject, Extropian, Free Software Foundation, Garrett Hardin, Hacker Ethic, Hedy Lamarr / George Antheil, Herman Kahn, history of Unix, hockey-stick growth, Howard Rheingold, invention of the telephone, inventory management, Ivan Sutherland, John Markoff, John von Neumann, Joi Ito, Joseph Schumpeter, Ken Thompson, Kevin Kelly, Lewis Mumford, Metcalfe's law, Metcalfe’s law, more computing power than Apollo, move 37, Multics, New Urbanism, Norbert Wiener, packet switching, PalmPilot, Panopticon Jeremy Bentham, pattern recognition, peer-to-peer, peer-to-peer model, pez dispenser, planetary scale, pre–internet, prisoner's dilemma, radical decentralization, RAND corporation, recommendation engine, Renaissance Technologies, RFID, Richard Stallman, Robert Metcalfe, Robert X Cringely, Ronald Coase, Search for Extraterrestrial Intelligence, seminal paper, SETI@home, sharing economy, Silicon Valley, skunkworks, slashdot, social intelligence, spectrum auction, Steven Levy, Stewart Brand, the Cathedral and the Bazaar, the scientific method, Tragedy of the Commons, transaction costs, ultimatum game, urban planning, web of trust, Whole Earth Review, Yochai Benkler, zero-sum game

Bill Gates stuck by his declaration, and by the 1990s he had become the world’s richest man by selling the operating system used by 90 percent of the desktop computers in the world. In 1969, AT&T Bell Labs pulled out of ARPA’s Multics operating system project, and several Bell Labs programmers who missed the sense of community started working on their own unofficial OS project. Programmer Ken Thompson created a game on a small computer that had come into his hands, in the process writing a “kernel” that would end up growing into the OS that collaborator Brian Kernighan named Unix in 1970. The name was a pun on the abandoned Multics project.53 The Unix creators made their source code publicly available to other programmers and invited collaboration in creating software that could make Unix more useful, a decision that gave birth to a whole new way of developing software.

Mnet project MobileStar Modernism Mojo Nation Mongolia Moore, Gordon Moore's Law and cooperation amplification and wireless networks Morgenstern, Oskar Mosaic browser Moslem culture Motion Picture Association of America Motorola and Bluetooth and the Symbian Alliance MP3 format Mu-chip Multics operating system Mumford, Lewis Mutual aid Mutual Aid: A Factor of Evolution (Kropotkin) Myth of the Machine, The (Mumford) Napster Doctorow on founding of NASA (National Aeronautics and Space Administration) See also Space exploration Nass, Clifford National Foundation for Cancer Research National Science Foundation (NSF) National Security Agency (NSA) Native Americans Natsuno, Takeshi NaviCam Navy (United States) Nazism NCSA (National Center for Supercomputer Applications) Neighborhood Area Networks Netcafés Netscape browser Netwars Neumann, John von Newscorp Newsgroups New Technology Policy New York Times, The, New York University NeXT computers Nextel system Next: The Future Just Happened (Lewis) NMPA (National Music Publishers' Association) Nobel Prize NoCat Community Wireless Network Project Nokia and Bluetooth and GSM networks and the Symbian Alliance wireless routers marketed by "Nonzero: The Logic of Human Destiny" (Wright) Non-zero-sum games Northeastern University Norway "Notes on the 'Worm' Programs - Some Early Experience with a Distributed Computation" (Shoch and Hupp) Nowak, Martin A.


pages: 232 words: 71,237

Kill It With Fire: Manage Aging Computer Systems by Marianne Bellotti

anti-pattern, barriers to entry, business logic, cloud computing, cognitive bias, computer age, continuous integration, create, read, update, delete, Daniel Kahneman / Amos Tversky, data science, database schema, Dennis Ritchie, DevOps, fault tolerance, fear of failure, Google Chrome, Hans Moravec, iterative process, Ken Thompson, loose coupling, microservices, minimum viable product, Multics, no silver bullet, off-by-one error, platform as a service, pull request, QWERTY keyboard, Richard Stallman, risk tolerance, Schrödinger's Cat, side project, software as a service, Steven Levy, systems thinking, web application, Y Combinator, Y2K

Fast-forward to the early computer age when people were developing massive room-sized machines that also were using binary systems. They needed a way to input data and instructions, but they had no visual interface. Computers wouldn’t be developed to work with monitors until 1964 when Bell Labs incorporated the first primitive visual interface into the Multics time-sharing system. We had no way of seeing the input the computer was receiving, so we borrowed an interface from the telegraph, which, in turn, was borrowing one from 18th-century French weavers. Technology is like that. It progresses in cycles, but those cycles occasionally collide, intersect, or conflate.

See baudot code internet service providers (ISPs), 13 internet, the home vs. work access, 12 pricing, 12–13 iPhones, 10 iteration in place, 55–56 J just culture, 166–168 K Kafka, 7 keyboards, 19 Kohn, Alfie, 164 Kruchten, Philippe, 173 L leap second, 203–205 Legacy Code Rocks, 199 Linux, 22–25, 32, 65 Lipmanowicz, Henri, 135 logical view, 173 looms, weaving, 20 Loopy, 212 Lotus 1-2-3, 61 M magnetic tape, 23 mainframes, 1, 12, 40, 66, 157, 198 comparison to cloud computing 2, 9–11, 17 punch cards, 18 Unisys ClearPath Dorados, 2 maintenance mode, 54 McCandless, Keith, 135 mean time to recovery (MTTR), 113, 220 memory leaks, 196 mere-exposure effect, 22, 34 message queues, 208–209 microservices, 101, 148 Microsoft, 33 Excel, 61 Exchange Server, 67 Internet Explorer, 67 microswitch, 26 middleware, 143 migrations, 65–69, 87, 104 minimum viable product (MVP), 32, 39, 76, 79 mobile phones. See cellphones momentum, 75–90, 117, 122, 130 monoliths, 50–51, 56, 85–87, 101–108, 148 Moravec, Hans, 63 morse code, 20 Mozilla, 204 MTTR (mean time to recovery), 113, 220 Multics, 21 murder boards, 125–127 MVP (minimum viable product), 32, 39, 76, 79 Mythical Man-Month, The, 140, 213 N NASA, 198 NASA’s Ames Research Center, 125 National Science Foundation Network, 10 Netflix, 204 networks, 13 nationalization, 11 nines of availability, 113 normal accidents, 46 O Obama administration, the, 79 objectives and key results (OKRs), 182 object-oriented, 70 object relational mapping (ORM), 105 observability, 52 on-call rotations, 109, 208 Operation Aurora, 119 opportunity costs, 90–94 optimizing, 83, 105 ORM (object relational mapping), 105 overgrowth, 64 P performance, 42–44, 52, 92, 113, 144 Perrow, Charles, 46 personal computer (PC), 10 Pew Research, 5 physical view, 173 Pinterest, 204 platform as a service (PaaS), 69 POSIX, 27 postmortem, 100, 167–168, 187–190 probabilistic outcome-based decision-making, 138 problem setting, 129–130, 159 processing power, 13 process view, 173 programming languages, 36 ALGOL60, 28–31 Assembly, 29, 40, 66 bash, 65 BASIC, 30 BCPL, 28 C, 28, 31 COBOL, 28–31, 39–41, 61, 70 CoffeeScript, 70 CPL, 31 CSS, 150 FORTRAN, 30 HTML, 150 Java, 30, 68, 70 JavaScript, 36, 67, 70, 150 JCL, 65 Lisps, 31 Python, 30, 69 SQL, 65, 105 Typescript, 70 protocols, 67 FTP, 67 HTTP, 209 NTP, 197 SMTP, 67 TCP/IP, 67 TLS/SSL, 206 pull requests, 23 Q Qantas Airways, 204 QWERTY, 27 R railroad tickets, 18 Reddit, 204 refactoring, 51–52, 71, 103 reorgs, 141, 151–152, 156 research institutions, 11 resilience, 112, 169 resilience engineering, 172 responsibility gaps, 99, 207 resulting, 60 retrospectives, 188 reverse engineering, 71 rewrites, 34, 54–55, 145–147 risk, 34, 88, 146, 162–171 Ritchie, Dennis, 23 Robert’s Rules of Order, 193 Rumelt, Richard, 184 S SaaS (software as a service), 95 Salus, Peter, 23 sandbox, 174–175 scaling, 62–63, 78, 110, 149, 195 Schrödinger’s cat, 124 SDK (software development kits), 67 second system syndrome, 33 security, 89 Selectric, 27 Service Dominate Logic (S-D Logic), 8 service level agreements (SLAs), 94 service level objectives (SLOs), 94, 106, 113, 144, 149, 169, 220 service-oriented architecture (SOA), 101, 148 service recovery paradox, 170 shell scripts, 65 Sholes, Christopher Latham, 19 site reliability engineering (SRE), 99, 113, 150, 157, 218 Slack, 102 SLAs (service level agreements), 94 SLOs (service level objectives), 94, 106, 113, 144, 149, 169, 220 SOA (service-oriented architecture), 101, 148 software as a service (SaaS), 95 software development kits (SDK), 67 software renovation, 71 Soule, Samuel W., 19 source code, 23 split in place, 56 Spolsky, Joel, 33, 145 SRE (site reliability engineering), 218 Stack Overflow, 33 Stallman, Richard, 25–26 standards, 11, 66, 77, 103, 107 static analysis, 69, 71–72 stocks, 210 storage capacity, 13 stored procedures, 65 Stricker, Gabriel, 119 success criteria, 83, 182–185 supercomputers, 10 Surprising Power of Liberating Structures, 135 system stability, 89, 169 T tabulating machines, 18–20 technical debt, 38–40, 55, 79, 106, 210–215 telegraphs, 19–21 testing, 51, 55, 57, 70, 85, 109, 124 Texas Instruments, 198 Thompson, Ken, 23 TOPS-10, 197 Torvalds, Linus, 25 trade-offs, 42, 83 transpilers, 69–71 true but irrelevant, 82 trust, 54, 100, 108, 123, 168–170, 219 Twitter, 62, 204 typewriters, 19 U United Nations (UN), 181 United Parcel Service (UPS), 203 University of Cambridge, 31 University of North Carolina at Chapel Hill, 140 Unix, 21–27, 197 UNIX-HATERS Handbook, The, 26 US Army/Marine Corps Counterinsurgency Field Manual, The, 129 US Digital Service (USDS), 68, 144, 164–165 V virtual machines (VM), 49–50, 85–87, 111, 176 W Working Effectively with Legacy Code, 55 working groups, 191–193 World Computer Corporation, 197 Y Y2K, 196, 200 yak shaving, 153 YouTube, 102 Z Zajonc, Robert, 22, 34


pages: 52 words: 14,333

Growth Hacker Marketing: A Primer on the Future of PR, Marketing, and Advertising by Ryan Holiday

Aaron Swartz, Airbnb, data science, growth hacking, Hacker News, iterative process, Kickstarter, Lean Startup, Marc Andreessen, market design, minimum viable product, Multics, Paul Graham, pets.com, post-work, Silicon Valley, slashdot, Steve Wozniak, Travis Kalanick

Each user meant new users; each e-mail meant more e-mails and more happy customers. And most crucially, all this could be tracked and tweaked and improved to drive as many users as possible into the service. You have to understand how revolutionary this was at the time. Consider that just a few years later, Pets.com would try to launch with a multicity television and outdoor advertising campaign that culminated in a $1.2 million Super Bowl commercial and an appearance at the Macy’s Thanksgiving Day Parade. Or that Kozmo.com would blow through literally hundreds of millions with advertising campaigns featuring the Six Million Dollar Man before collapsing like Pets.com in the burst dot-com bubble.


pages: 2,054 words: 359,149

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities by Justin Schuh

address space layout randomization, Albert Einstein, Any sufficiently advanced technology is indistinguishable from magic, bash_history, business logic, business process, database schema, Debian, defense in depth, en.wikipedia.org, Firefox, information retrieval, information security, iterative process, Ken Thompson, loose coupling, MITM: man-in-the-middle, Multics, MVC pattern, off-by-one error, operational security, OSI model, RFC: Request For Comment, slashdot, SQL injection, web application

Over time, he would periodically implement a new tool or new subsystem and synthesize it into the existing code. Eventually, it shaped up to form a real operating system, and UNIX was born. * * * Note The name UNIX is actually a play on the name Multics. There are a few funny explanations of the genesis of the name. One amusing quote is “UNIX is just one of whatever it was that Multics had lots of.” There’s the obligatory “UNIX is Multics without balls.” There’s also a commonly repeated anecdote that UNIX was originally spelled Unics, which stood for the slightly non sequitur Uniplexed Information and Computing Service. Comedy gold. * * * UNIX systems generally feature simple and straightforward interfaces between small, concise modules.

See IPSs (intrusion prevention systems) INVALID_HANDLE_VALUE, NULL, compared, 632-633 invocation DCOM objects, 735-736 UNIX programs, 565-572 direct invocation, 565-570 indirect invocation, 570-572 IP (Internet Protocol), 831-832 addresses, 832-833 maintaining state with, 1029-1030 addressing, 833-834 checksum, 843 fragmentation, 853-863 overlapping fragments, 858-862 pathological fragment sets, 855-858 processing, 854-855 header validation, 836-844 IP packets, 834-836 options, 844-851 source routing, 851-853 subnet, 832 IPC (interprocess communications), Windows NT, 685 COM (Component Object Model), 725-754 DDE (Dynamic Data Exchange), 697 desktop object, 690-691 impersonation, 688-689 mailslots, 705-706 messaging, 689-698 pipes, 698-705 redirector, 686-688 RPCs (Remote Procedure Calls), 706-724 security, 686-689 shatter attacks, 694-697 window station, 690 WTS (Windows Terminal Services), 697-698 IPSs (intrusion prevention systems), 88 host-based IPSs (intrusion prevention systems), 83 IRIX, 460 ISAKMP (Internet Security Association and Key Management Protocol), 948 encryption vunerabilities, 971-972 headers, 949-952 payloads, 952-956 certificate payloads, 963-964 certificate request payloads, 964 delete payloads, 969-971 hash payloads, 964-965 identification payloads, 961-963 key exchange payloads, 959, 961 nonce payloads, 965-966 notification payloads, 966-968 proposal payloads, 956-958 SA (security association) payloads, 956 signature payloads, 965 transform payloads, 959 vendor ID payloads, 971 ISAPI (Internet Server Application Programming Interface), 1010 ISAPI filters, 71 IsDBCSLeadByte( ) function, 454 iterative process, application review, 98-99 J Jaa, Tony, 685 Java Database Connectivity (JDBC), 1106 Java servlets, 1014, 1105-1106 configuration settings, 1112-1113 cross-site scripting, 1110-1111 file access, 1107-1108 file inclusion, 1108-1109 inline evaluation, 1110 JSP file inclusion, 1109-1110 shell invocation, 1108 SQL injection queries, 1106-1107 threading, 1111-1112 Web server APIs versus, 1106 Java Virtual Machine (JVM), 6 JavaScript Object Notation (JSON), 1085 JavaServer Pages (JSP), 1013-1014, 1106 file inclusion, 1109-1110 JDBC (Java Database Connectivity), 1106 Johanson, Eric, 1060 Johnson, Nick, 459 JSON (JavaScript Object Notation), 1085 JSP (JavaServer Pages), 1013, 1106 file inclusion, 1109-1110 jump locations, signals, 788-791 junction points, Windows NT files, 676-680 arbitrary file accesses, 678-680 race conditions, 680 TOCTTOU (time of check to time of use), 680 JVM (Java Virtual Machine), 6 K kernel Linux, probing, 569 UNIX, 461 kernel files, UNIX, 511 Kernel Object Manager (KOM), 627 Kernel Probe Vulnerability in Linux 2.2 listing (10-1), 569 key exchange payloads, ISAKMP (Internet Security Association and Key Management Protocol), 959, 961 keys, Windows NT registry key squatting, 682-684 permissions, 681-682 predefined keys, 681 kill bit, Active X controls, 752 kill( ) function, 786 Kirch, Olaf, 545 Klima, Vlastimil, 48 KOM (Kernel Object Manager), 627 Koziol, Jack, 168 Krahmer, Sebastian, 606, 877 Kuhn, Juan Pablo Martinez, 885 L Lai, Xuejia, 48 languages (programming), C, 203-204 arithmetic boundary conditions, 211-223 binary encoding, 207-208 bit fields, 205 bitwise shift operators, 236-237 byte order, 209 character types, 205 data storage, 204-211 floating types, 205 function invocations, 237-238 implementation defined behavior, 204 integer types, 205-206 macros, 288-289 objects, 205 operators, 271-277 order of evaluation, 282-283 pointers, 277-282 precedence, 287-288 preprocessor, 288-289 signed integer boundaries, 220-223 standards, 204 structure padding, 284-287 switch statements, 237 type conversion vunerabilities, 246-270 type conversions, 223-246 types, 204-207 typos, 289-296 unary operator, 236 unary + operator, 235 unary - operator, 235 undefined behavior, 204 unsigned integer boundaries, 213-218, 220 Last Stage of Delirium (LSD), 188 Last-Modified header field (HTTP), 1019 layer 1 (physical), network segmentation, 84 layer 2 (data link), network segmentation, 84-85 layer 3 (network), network segmentation, 85 layer 4 (transport), network segmentation, 85-87 layer 5 (session), network segmentation, 87 layer 6 (presentation), network segmentation, 87 layer 7 (application) enterprise firewalls, 894 network segmentation, 87-88 layering, stateful inspection firewalls, 911-913 layers multiple encoding layers, 444-445 network segmentation, 84-87 LD_LIBRARY_PATH environment variable (UNIX), 607 LD_PRELOAD environment variable (UNIX), 607 Le Blanc, David, 50 leaks, file descriptors, UNIX, 582-587 Leblanc, David, 235, 647-648, 736 Lebras, Gregory, 1100 Leidl, Bruce, 885 length calculations, multiple calculations on same input, 367-369 Length Miscalculation Example for Constructing an ACC log listing (7-33), 362 length variables, DNS (Domain Name System), 996, 998-1000, 1002 Lenstra, Arjen, 48 levels, impersonation, IPC (interprocess communications, 688-689 libraries, 499-500 UNIX, 510 Lincoln, Abraham, 167 linked lists auditing, 321-326 circular linked lists, 322 doubly linked lists, 322 singly linked lists, 322 linking objects, vunerabilities, 607-608 links UNIX files, 515-525 hard links, 515, 522-525 soft links, 515-522 Windows NT files, 676-680 hard links, 676 junction points, 676-680 Linux, 459-460 capabilities, 492-494 do_mremap( ) function, vunerabilities, 342-343 environment strings, 594 file system IDs, 491 kernel probes, vunerabilities, 569 teardrop vunerability, 325 Linux do_mremap( ) Vulnerability listing (7-26), 342 Linux Teardrop Vulnerability listing (7-14), 325 List Pointer Update Error listing (7-13), 324 listings 5-1 (Function Prologue), 174 5-2 (Off-by-One Length Miscalculation), 175 5-3 (Off-by-One Length Miscalculation), 181 5-4 (Overflowing into Local Variables), 197 5-5 (Indirect Memory Corruption), 199 5-6 (Off-by-One Overwrite), 200 6-1 (Twos Complement Representation of -15), 209 6-2 (Integer Overflow Example), 215 6-3 (Challenge-Response Integer Overflow Example in OpenSSH 3.1), 216 6-4 (Unsigned Integer Underflow Example), 217 6-5 (Signed Integer Vulnerability Example), 221 6-6 (Integer Sign Boundary Vulnerability Example in OpenSSL 0.9.6l), 222 6-7 (Signed Comparison Vulnerability Example), 247 6-8 (Antisniff v1.0 Vulnerability), 250 6-9 (Antisniff v1.1 Vulnerability), 251 6-10 (Antisniff v1.1.1 Vulnerability), 252 6-11 (Antisniff v1.1.2 Vulnerability), 253 6-12 (Sign Extension Vulnerability Example), 254 6-13 (Prescan Sign Extension Vulnerability in Sendmail), 256 6-14 (Sign-Extension Example), 258 6-15 (Zero-Extension Example), 258 6-16 (Truncation Vulnerability Example in NFS), 260 6-17 (Truncation Vulnerabilty Example), 260 6-18 (Detect_attack Small Packet Algorithm in SSH), 261 6-19 (Detect_attack Truncation Vulnerability in SSH), 262 6-20 (Comparison Vulnerability Example), 266 6-21 (Signed Comparison Vulnerability), 267 6-22 (Unsigned Comparison Vulnerability), 267 6-23 (Signed Comparison Example in PHP), 269 6-24 (Sizeof Misuse Vulnerability Example), 271 6-25 (Sign-Preserving Right Shift), 273 6-26 (Right Shift Vulnerability Example), 273 6-27 (Division Vulnerability Example), 274 6-28 (Modulus Vulnerability Example), 275 6-29 (Pointer Arithmetic Vulnerability Example), 281 6-30 (Order of Evaluation Logic Vulnerability), 283 6-31 (Order of Evaluation Macro Vulnerability), 283 6-32 (Structure Padding in a Network Protocol), 284 6-33 (Example of Structure Padding Double Free), 286 6-34 (Example of Bad Counting with Structure Padding), 286 7-1 (Apache mod_dav CDATA Parsing Vulnerability), 298 7-2 (Bind 9.2.1 Resolver Code gethostans( ) Vulnerability), 300 7-3 (Sendmail crackaddr( ) Related Variables Vulnerability), 304 7-4 (OpenSSH Buffer Corruption Vulnerability), 307 7-5 (OpenSSL BUF_MEM_grow( ) Signed Variable Desynchronization), 311 7-6 (Uninitialized Variable Usage), 313 7-7 (Uninitialized Memory Buffer), 314 7-8 (Uninitialized Object Attributes), 314 7-9 (Arithmetic Vulnerability Example), 317 7-10 (Arithmetic Vulnerability Example in the Parent Function), 318 7-11 (Type Confusion), 320 7-12 (Empty List Vulnerabilities), 322 7-13 (List Pointer Update Error), 324 7-14 (Linux Teardrop Vulnerability), 325 7-15 (Simple Nonterminating Buffer Overflow Loop), 328 7-16 (MS-RPC DCOM Buffer Overflow Listing), 329 7-17 (NTPD Buffer Overflow Example), 329 7-18 (Apache mod_php Nonterminating Buffer Vulnerability), 331 7-19 (Apache 1.3.29/2.X mod_rewrite Off-by-one Vulnerability), 332 7-20 (OpenBSD ftp Off-by-one Vulnerability), 333 7-21 (Postincrement Loop Vulnerability), 334 7-22 (Pretest Loop Vulnerability), 335 7-23 (Break Statement Omission Vulnerability), 337 7-24 (Default Switch Case Omission Vulnerability), 338 7-25 (Ignoring realloc( ) Return Value), 341 7-26 (Linux do_mremap( ) Vulnerability), 342 7-27 (Finding Return Values), 344 7-28 (Ignoring Return Values), 345 7-29 (Unexpected Return Values), 347 7-30 (Outdated Pointer Vulnerability), 351 7-31 (Outdated Pointer Use in ProFTPD), 354 7-32 (Sendmail Return Value Update Vulnerability), 356 7-33 (Length Miscalculation Example for Constructing an ACC log), 362 7-34 (Buffer Overflow in NSS Library’s ssl2_HandleClientHelloMessage), 365 7-35 (Out-of-Order Statements), 366 7-36 (Netscape NSS Library UCS2 Length Miscalculation), 367 7-37 (Integer Overflow with 0-Byte Allocation Check), 370 7-38 (Allocator-Rounding Vulnerability), 372 7-39 (Allocator with Header Data Structure), 372 7-40 (Reallocation Integer Overflow), 373 7-41 (Dangerous Data Type Use), 374 7-42 (Problems with 64-bit Systems), 375 7-43 (Maximum Limit on Memory Allocation), 376 7-44 (Maximum Memory Allocation Limit Vulnerability), 377 7-45 (Double-Free Vulnerability), 379 7-46 (Double-Free Vulnerability in OpenSSL), 380 7-47 (Reallocation Double-Free Vulnerability), 383 8-1 (Different Behavior of vsnprintf( ) on Windows and UNIX), 394 8-2 (Dangerous Use of strncpy( )), 396 8-3 (Strcpy( )-like Loop), 400 8-4 (Character Expansion Buffer Overflow), 401 8-5 (Vulnerable Hex-Decoding Routine for URIs), 404 8-6 (If Header Processing Vulnerability in Apache’s mod_dav Module), 404 8-7 (Text-Processing Error in Apache mod_mime), 406 8-8 (Embedded Delimiter Example), 409 8-9 (Multiple Embedded Delimiters), 410 8-10 (NUL-Byte Injection with Memory Corruption), 413 8-11 (Data Truncation Vulnerability), 415 8-12 (Data Truncation Vulnerability 2), 415 8-13 (Correct Use of GetFullPathName( )), 416 8-14 (GetFullPathName( ) Call in Apache 2.2.0), 417 8-15 (Directory Traversal Vulnerability), 420 8-16 (Format String Vulnerability in WU-FTPD), 423 8-17 (Format String Vulnerability in a Logging Routine), 424 8-18 (Shell Metacharacter Injection Vulnerability), 426 8-19 (Example of Dangerous Program Use), 428 8-20 (SQL Injection Vulnerability), 431 8-21 (SQL Truncation Vulnerability), 433 8-22 (Character Black-List Filter), 435 8-23 (Character White-List Filter), 436 8-24 (Metacharacter Vulnerability in PCNFSD), 437 8-25 (Vulnerability in Filtering a Character Sequence), 437 8-26 (Vulnerability in Filtering a Character Sequence #2), 438 8-27 (Hex-encoded Pathname Vulnerability), 441 8-28 (Decoding Incorrect Byte Values), 443 8-29 (Return Value Checking of MultiByteToWideChar( )), 452 8-30 (Dangerous Use of IsDBCSLeadByte( )), 454 8-31 (Code Page Mismatch Example), 455 8-32 (NUL Bytes in Multibyte Code Pages), 456 9-1 (Privilege Misuse in XFree86 SVGA Server), 478 9-2 (Incorrect Temporary Privilege Relinquishment in FreeBSD Inetd), 487 9-3 (Race Condition in access( ) and open( )), 526 9-4 (Race Condition from Kerberos 4 in lstat( ) and open( )), 529 9-5 (Race Condition in open( ) and lstat( )), 529 9-6 (Reopening a Temporary File), 542 10-1 (Kernel Probe Vulnerability in Linux 2.2), 569 10-2 (Setenv( ) Vulnerabilty in BSD), 576 10-3 (Misuse of putenv( ) in Solaris Telnetd), 597 13-1 (Signal Interruption), 791 13-2 (Signal Race Vulnerability in WU-FTPD), 802 13-3 (Race Condition in the Linux Kernel’s Uselib( )), 821 16-1 (Name Validation Denial of Service), 931 16-2 (Certificate Payload Integer Underflow in CheckPoint ISAKMP), 954 lists auditing, 321-324, 326 data ranges, 324, 326 duplicate elements, 323 empty lists, vunerabilities, 322-323 linked lists, 322 pointer updates, errors, 323-324 list_add( ) function, 757 list_init( ) function, 757 little-endian architecture, bytes, ordering, 209 loading DLLs, 656-658 Processes, Windows NT, 654-655 local namespaces, Windows NT, 629 local privilege separation socket, OpenSSH, 161 Location header field (HTTP), 1019 lock matching, synchronization objects, 781-783 LOCK method, 1022 log files, UNIX, 510 logic business logic, 1041 presentation logic, 1040-1041 login groups, UNIX, 461 logon rights, Windows NT sessions, 638 longjmp( ) function, 788-791 looping constructs, auditing, 327-336 loops data copy, 330 posttest loops, 334-335 pretest loops, 334-335 terminating conditions, 327-334 typos, 335-336 loose coupling, software design, 33 loosely coupled modules, 33 Lopatic, Thomas, 895, 903, 907-911 lreply( ) function, 423 LSD (Last Stage of Delirium), 188 lstat( ) function, 528-531 M %m format specifier, 423 MAC (Media Address Control), 84 Macros, C programming language, 288-289 magic_quotes option (PHP), 1105 mail spools, UNIX, 509 mailslot squatting, 706 mailslots, Windows NT, IPC (interprocess communications), 705-706 Maimon, Uriel, 897 maintaining state, 1027-1029 client IP addresses, 1029-1030 cookies, 1036-1038 embedding state in HTML and URLs, 1032-1033 HTTP authentication, 1033-1036, 1056-1057 Referer request header, 1030-1031 sessions, 1038-1039, 1049-1052 security vulnerabilities, 1051-1052 session management, 1052-1053 session tokens, 1053-1056 stateful versus stateless systems, 1027 maintenance, SDLC (Systems Development Life Cycle), 13 major components, 50 make_table( ) function, 216 malicious input, tracing, 113-114 malloc( ) function, 341, 371 man-in-the-middle attacks, 162 management, sessions, 1052-1053 mapping CLSIDs to applications, 728 Max-Forwards header field (HTTP), 1019 Maximum Limit on Memory Allocation listing (7-43), 376 Maximum Memory Allocation Limit Vulnerability listing (7-44), 377 McDonald, John, 571, 903, 907, 911 McGraw, Gary, 168 Media Address Control (MAC), 84 Mehta, Neel, 203, 895, 967 memory, 0 bytes, allocating, 370-371 memory blocks, shared memory blocks, 201-202 memory buffers, unitialized memory buffers, 314 memory corruption, 167 assessing, 196-202 buffer overflows, 168-169 global overflows, 186 heap overflows, 183-186 off-by-one errors, 180-183 process memory layout, 169 SHE (structured exception handling) attacks, 178-180 stack overflows, 169-178 static overflows, 186 protection mechanisms, 189-190 ASLR (address space layout randomization), 194 function pointer obfuscation, 195-196 heap hardening, 191-193 nonexecutable stack, 193 SafeSEH, 194-195 stack cookies, 190-191 shellcode, 187-189 memory management, auditing, 362 ACC (allocation-check-copy) logs, 362-369 allocation functions, 369-377 allocator scorecards, 377-379 double-frees, 379-385 error domains, 378-379 memory pages, nonexecutable memory pages, 193 memset( ) function, 199 message queues, 614 Message-Id header field (HTTP), 1019 messaging, Windows NT, IPC (interprocess communications), 689-698 metacharacter evasion, 441-445 Metacharacter Vulnerability in PCNFSD listing (8-24), 437 metacharacters, 387, 407-408 embedded delimiters, 408-411 filtering, 434-445 character stripping vunerabilities, 437-439 escaping metacharacters, 439-440 insufficient filtering, 436-437 metacharacter evasion, 441-445 format strings, 422-425 formats, 418 NUL-byte injection, 411-414 path metacharacters, 418-422 file canonicalization, 419-420 Windows registry, 420-422 Perl open( ) function, 429-431 shell metacharacters, 425-429 SQL queries, 431-434 truncation, 414-418 UNIX programs, indirect invocation, 570-571 metadata, 407 methods CONNECT, 1021 COPY, 1022 DELETE, 1020 GET, 1023, 1026 LOCK, 1022 MKCOL, 1022 MOVE, 1022 OPTIONS, 1021 POST, 1025-1026 PROPFIND, 1022 PROPPATCH, 1022 PUT, 1020 SEARCH, 1022 SPACEJUMP, 1021 TEXTSEARCH, 1021 TRACE, 1021 UNLOCK, 1022 Microsoft Developer Network (MSDN), 626 Microsoft Windows Internals, 4th Edition, 654 MIDL (Microsoft Interface Definition Language) DCOM (Distributed Component Object Model), 738-740 RPCs (Remote Procedure Calls), 708 misinpreterpeting return values, 346-350 Misuse of putenv( ) in Solaris Telnetd listing (10-3), 597 mitigating factors, operational vunerabilities, 76 mitigation, threats, 61 MKCOL method, 1022 mkdtemp( ) function, 543 mkstemp( ) function, 542-543 mktemp( ) function, 539, 541 Model component (MVC), 1045 Model-View-Controller (MVC), 1044-1045 modular artihmetic, 214 modules analyzing, CC (code comprehension), 114-116 loosely coupled modules, 33 strongly coupled modules, 33 Modulus Vulnerability Example listing (6-28), 275 mount points, UNIX, 463 MOVE method, 1022 MS-RPC DCOM Buffer Overflow Listing listing (7-16), 329 MSDN (Microsoft Developer Network), 626 MTA (mulitthreaded apartment), COM (Component Object Model), 729 multibyte character sequences, interpretation, 455 MultiByteToWideChar( ) function, 451-452, 456-457 Multics (Multiplexed Information and Computing Service), 460 Multiple Embedded Delimiters listing (8-9), 410 multiple encoding layers, 444-445 multiple-input test cases, code audits, 143 Multiplexed Information and Computing Service (Multics), 460 multiplication overflows, Intel architectures, 218, 220 multiplicative operators, 243 multithreaded apartment (MTA), COM (Component Object Model), 729 multithreaded programs, synchronization, 810-825 deadlocks, 823-825 PThreads API, 811-813 race conditions, 816-823 starvation, 823-825 Windows API, 813-815 Murray, Bill, 25 mutex, 756 mutex objects, Windows NT, 766 mutexes, PThreads API, 811-812 MVC (Model-View-Controller), 1044-1045 my_malloc( ) function, 371 N N-tier architectures, 1041, 1043 business tier, 1042-1044 client tier, 1042 data tier, 1042-1043 MVC (Model-View-Controller), 1044-1045 Web tier, 1042-1045 name servers, DNS (Domain Name System), 986-987 name squatting, 630 Name Validation Denial of Service listing (16-1), 931 named pipes UNIX, 511 Windows NT, 698-699 names, DNS (Domain Name System), 993-996 namespaces (Windows NT) global namespaces, 629 local namespaces, 629 objects, 629-632 collisions, 630-631 Vista object namespaces, 631 narrowing integer types, 227-228 NAT (Network Address Translation), 88 National Institute for Standards and Technology (NIST), 44 navigating code, 109 external flow sensitivity, 109-110 tracing, 111 NCACN (network computing architecture connection-oriented protocol), RPCs (Remote Procedure Calls), 707 NCALRPC (network computing architecture local remote procedure call protocol), RPCs (Remote Procedure Calls), 708 NCDAG (network computing architecture datagram protocol), RPCs (Remote Procedure Calls), 707 .NET Common Language Runtime (CLR), 6 .NET Developer’s Guide to Windows Security, The, 637 NetBSD, 460 netmasks, 833 Netscape NSS Library UCS2 Length Miscalculation listing (7-36), 367 Netscape Server Application Programming Interface (NSAPI), 1010 Network Address Translation (NAT).

UNIX 101 The UNIX family of operating systems has been around for a long time (in computing terms) and undergone many variations and changes. Ken Thompson developed the first incarnation of UNIX in 1969. His employer, Bell Labs, had just withdrawn from a joint venture to develop the Multiplexed Information and Computing Service (Multics) system: a large-scale, ambitious project to create a time-sharing system. The design turned out to be unwieldy and mired in complexity, however. Bell Labs worked on the project for four years but then withdrew, as it was still far from completion with no end in sight. Ken Thompson then decided to write his own operating system, and he took a completely different approach.


pages: 497 words: 144,283

Connectography: Mapping the Future of Global Civilization by Parag Khanna

"World Economic Forum" Davos, 1919 Motor Transport Corps convoy, 2013 Report for America's Infrastructure - American Society of Civil Engineers - 19 March 2013, 9 dash line, additive manufacturing, Admiral Zheng, affirmative action, agricultural Revolution, Airbnb, Albert Einstein, amateurs talk tactics, professionals talk logistics, Amazon Mechanical Turk, Anthropocene, Asian financial crisis, asset allocation, autonomous vehicles, banking crisis, Basel III, Berlin Wall, bitcoin, Black Swan, blockchain, borderless world, Boycotts of Israel, Branko Milanovic, BRICs, British Empire, business intelligence, call centre, capital controls, Carl Icahn, charter city, circular economy, clean water, cloud computing, collateralized debt obligation, commoditize, complexity theory, continuation of politics by other means, corporate governance, corporate social responsibility, credit crunch, crony capitalism, crowdsourcing, cryptocurrency, cuban missile crisis, data is the new oil, David Ricardo: comparative advantage, deglobalization, deindustrialization, dematerialisation, Deng Xiaoping, Detroit bankruptcy, digital capitalism, digital divide, digital map, disruptive innovation, diversification, Doha Development Round, driverless car, Easter island, edge city, Edward Snowden, Elon Musk, energy security, Ethereum, ethereum blockchain, European colonialism, eurozone crisis, export processing zone, failed state, Fairphone, Fall of the Berlin Wall, family office, Ferguson, Missouri, financial innovation, financial repression, fixed income, forward guidance, gentrification, geopolitical risk, global supply chain, global value chain, global village, Google Earth, Great Leap Forward, Hernando de Soto, high net worth, high-speed rail, Hyperloop, ice-free Arctic, if you build it, they will come, illegal immigration, income inequality, income per capita, industrial cluster, industrial robot, informal economy, Infrastructure as a Service, interest rate swap, Intergovernmental Panel on Climate Change (IPCC), Internet of things, Isaac Newton, Jane Jacobs, Jaron Lanier, John von Neumann, Julian Assange, Just-in-time delivery, Kevin Kelly, Khyber Pass, Kibera, Kickstarter, LNG terminal, low cost airline, low earth orbit, low interest rates, manufacturing employment, mass affluent, mass immigration, megacity, Mercator projection, Metcalfe’s law, microcredit, middle-income trap, mittelstand, Monroe Doctrine, Multics, mutually assured destruction, Neal Stephenson, New Economic Geography, new economy, New Urbanism, off grid, offshore financial centre, oil rush, oil shale / tar sands, oil shock, openstreetmap, out of africa, Panamax, Parag Khanna, Peace of Westphalia, peak oil, Pearl River Delta, Peter Thiel, Philip Mirowski, Planet Labs, plutocrats, post-oil, post-Panamax, precautionary principle, private military company, purchasing power parity, quantum entanglement, Quicken Loans, QWERTY keyboard, race to the bottom, Rana Plaza, rent-seeking, reserve currency, Robert Gordon, Robert Shiller, Robert Solow, rolling blackouts, Ronald Coase, Scramble for Africa, Second Machine Age, sharing economy, Shenzhen special economic zone , Shenzhen was a fishing village, Silicon Valley, Silicon Valley startup, six sigma, Skype, smart cities, Smart Cities: Big Data, Civic Hackers, and the Quest for a New Utopia, South China Sea, South Sea Bubble, sovereign wealth fund, special economic zone, spice trade, Stuxnet, supply-chain management, sustainable-tourism, systems thinking, TaskRabbit, tech worker, TED Talk, telepresence, the built environment, The inhabitant of London could order by telephone, sipping his morning tea in bed, the various products of the whole earth, Tim Cook: Apple, trade route, Tragedy of the Commons, transaction costs, Tyler Cowen, UNCLOS, uranium enrichment, urban planning, urban sprawl, vertical integration, WikiLeaks, Yochai Benkler, young professional, zero day

At least a dozen such megacity corridors have emerged already. China is in the process of reorganizing itself around two dozen giant megacity clusters of up to 100 million citizens each.*3 And yet by 2030, the second-largest city in the world behind Tokyo is expected not to be in China but to be Manila. America’s rising multi-city clusters are as significant as any of these, even if their populations are smaller. Three in particular stand out. The East Coast corridor from Boston through New York to Washington, D.C., contains America’s academic brain, financial center, and political capital. (The only thing missing is a high-speed railway to serve as the regional spine.)

Importantly, ASEAN countries are also integrating their capital markets to deepen the liquidity needed for long-term investments and avoid the whiplash that occurs when Western portfolio capital flows out as quickly as it flows in. Asians no longer need to make “round-trips”—investing in American money managers who then reinvest back in their economies. As their stock exchanges move toward multi-city listings, Ho Chi Minh City, Manila, Kuala Lumpur, and Jakarta—to say nothing of Singapore—have all built up central business districts that increasingly resemble Frankfurt, funneling capital into companies and projects across the region. Infrastructure, finance, and supply chains are the drivers of Pax Aseana.


pages: 525 words: 142,027

CIOs at Work by Ed Yourdon

8-hour work day, Apple's 1984 Super Bowl advert, business intelligence, business process, call centre, cloud computing, crowdsourcing, distributed generation, Donald Knuth, fail fast, Flash crash, Free Software Foundation, Googley, Grace Hopper, information security, Infrastructure as a Service, Innovator's Dilemma, inventory management, Julian Assange, knowledge worker, Mark Zuckerberg, Multics, Nicholas Carr, One Laptop per Child (OLPC), rolodex, Salesforce, shareholder value, Silicon Valley, six sigma, Skype, smart grid, smart meter, software as a service, Steve Ballmer, Steve Jobs, Steven Levy, the new new thing, the scientific method, WikiLeaks, Y2K, Zipcar

So, there have been these major junctures in the road, right? Timesharing, the personal computer, computer connectivity, inter-computer connectivity, Multics led to UNIX led to Linux—we’re incredibly lucky that that happened. We’re incredibly lucky that Steve Jobs visited PARC. Yourdon: Mm-hmm. [laughter] Fried: And, you know, they thought they were onto something there. Yourdon: Now there’s one last aspect of that, which occurred to me just a minute ago and I’d like your take on it. Arguably, one of the next steps along the way of from Multics to UNIX to Linux to whatever is epitomized by Wikipedia, is described by a couple of books that you’ve probably heard of.


pages: 483 words: 145,225

Rebel Code: Linux and the Open Source Revolution by Glyn Moody

barriers to entry, business logic, commoditize, Compatible Time-Sharing System, Debian, Dennis Ritchie, Donald Knuth, Eben Moglen, Free Software Foundation, ghettoisation, Guido van Rossum, history of Unix, hypertext link, Johann Wolfgang von Goethe, John Gilmore, Ken Thompson, Kickstarter, Larry Ellison, Larry Wall, Marc Andreessen, MITM: man-in-the-middle, Multics, Network effects, new economy, packet switching, RFC: Request For Comment, Richard Stallman, Silicon Valley, skunkworks, slashdot, SoftBank, Steve Ballmer, Steve Jobs, Steven Levy, the Cathedral and the Bazaar, thinkpad, VA Linux

Peter Salus, author of A Quarter Century of Unix, generally regarded as the standard history of the operating system, explains how Unix came about: “At the beginning of 1969, there was a group of people working on a project that was MIT, AT&T Bell Labs and General Electric. The project was called Multics. In February 1969, they were several millions behind budget, they were months and months behind schedule, and the powers that be at Bell Labs decided this is never going to go anywhere, and they pulled out of the arrangement. “And that left the not-quite half-dozen Bell employees who had been involved in the project without anything to do,” Salus continues, “but with a large number of ideas they had picked up from the cross-fertilization with GE and with MIT.”

This haven of playful cleverness lasted nearly ten years after Stallman took his summer job at the AI Lab. His work consisted of adding capabilities to the operating system for the AI Lab’s Digital PDP-10 minicomputer. The software was called ITS, the Incompatible Time-Sharing System–a conscious dig at the earlier Compatible Time-Sharing System, CTSS, which had been used to develop Multics, the progenitor of Unix. Although there was no real plan to his work–“I was just going along doing my usual ‘think up a feature and add it’ type stuff,” Stallman says–the result was one of the most famous and powerful pieces of software ever written, even if today it is little known outside programming circles.


pages: 2,020 words: 267,411

Lonely Planet Morocco (Travel Guide) by Lonely Planet, Paul Clammer, Paula Hardy

air freight, Airbnb, call centre, car-free, carbon footprint, clean water, Day of the Dead, Dr. Strangelove, illegal immigration, low cost airline, Multics, Nelson Mandela, Norman Mailer, off-the-grid, place-making, Skype, spice trade, sustainable-tourism, trade route, urban planning, urban sprawl, women in the workforce, working poor, young professional

Tours Guided tours of the medina will help you cover specific landmarks in an hour or two. Just don’t expect sweet souq deals: guides get commissions on whatever you buy. Hotels, riads and travel agencies can arrange guides, or you can book official guides directly via the tourist office for Dh250/400 for a half/full day. Many travel agencies have offices in Guéliz and arrange multi-city, mountain and desert tours. Other specialist desert tour operators can be found in Ouarzazate, Zagora and M’Hamid. For a good, safe time had by all, request licenced, insured guides and specify English-speaking guides as needed. Inside Morocco Travel TOURS OFFLINE MAP ( 0524 43 00 20; www.insidemoroccotravel.com; 4th fl, 29 Rue de Yougoslavie, Guéliz; 9am-noon & 3-7pm Mon-Sat) Get to know Morocco inside-out on bespoke adventures designed for you by ecotourism expert Mohamed Nour and his multilingual team – sunset tea for two in the Sahara, hikes off-the-beaten track in the Zat and Ouirgane Valleys, home cooking in pristine Berber mountain villages and crafts workshops with inspiring women’s cooperatives.

Ksour Voyages TOUR OFFLINE MAP GOOGLE MAP ( 0524 88 28 40; www.ksour-voyages.com; 11 Place du 3 Mars) Books flights and organises trips from mountain hikes to 4WD desert excursions with English-speaking drivers; also rents mountain bikes. Ouarzazate Unlimited TOURS OFFLINE MAP GOOGLE MAP ( 0524 89 06 41; www.ouarzazate-unlimited.com; 6 Rue Du Marché) A reader-recommended provider delivering well-organised camel treks, 4WD desert tours and multi-city itineraries. Select accommodation includes midrange to top-end riads, kasbahs and camps. Festivals & Events The moussem of Sidi Daoud is held in Ouarzazate each August. Marathon des Sables SPORTS (www.marathondessables.co.uk) This gruelling six-day, 250km desert ultramarathon is held in March/April.

The old medina is a delight of Moroccan and Andalucian influence with red-tiled roofs, bright-blue buildings and narrow lanes converging on busy Plaza Uta el-Hammam and its restored kasbah. Long known to backpackers for the easy availability of kif (marijuana), the town has rapidly gentrified and offers a range of quality accommodation, good food, lots to do and no hassles to speak of, making it a strong alternative to a hectic multicity tour. This is a great place to relax, explore and take day trips to the cool green hills. Families take note. Chefchaouen is split into an eastern half (the medina), and a western half (the ciudad nueva, or new city). The heart of the medina is Plaza Uta el-Hammam, with its unmistakable kasbah.


pages: 225 words: 61,388

Dead Aid: Why Aid Is Not Working and How There Is a Better Way for Africa by Dambisa Moyo

affirmative action, Asian financial crisis, belling the cat, Bob Geldof, Bretton Woods, business cycle, buy and hold, colonial rule, correlation does not imply causation, credit crunch, diversification, diversified portfolio, en.wikipedia.org, European colonialism, failed state, financial engineering, financial innovation, financial intermediation, Hernando de Soto, income inequality, information asymmetry, invisible hand, Live Aid, low interest rates, M-Pesa, market fundamentalism, Mexican peso crisis / tequila crisis, microcredit, moral hazard, Multics, Ponzi scheme, rent-seeking, risk free rate, Ronald Reagan, seminal paper, sovereign wealth fund, The Chicago School, trade liberalization, transaction costs, trickle-down economics, Washington Consensus, Yom Kippur War

The country’s railway system had been brought close to disuse as a result of bad management; after extensive negotiations, the World Bank and Nigerian government agreed on a US$5 million project that would allow private companies to help clean up the mess. On the point of signature, however, the Chinese stepped in with an offer of US$9 billion to rebuild the entire rail network. Nine billion dollars, no strings attached, and thus no reform required. The fiasco of the 2008 Olympic torch multi-city stopover (London, Paris, Buenos Aires, New Delhi, St Petersburg, San Francisco and Dar-es-Salaam, to name a few) en route to Beijing serves as a reminder that China’s human rights record is less than stellar, and in Africa most pointedly in Sudan. China’s insatiable appetite for oil has led it into partnership with a country where in the region of Darfur more than 200,000 people have been killed.


pages: 144 words: 55,142

Interlibrary Loan Practices Handbook by Cherie L. Weible, Karen L. Janke

Firefox, information retrieval, Internet Archive, late fees, machine readable, Multics, optical character recognition, pull request, QR code, transaction costs, Wayback Machine, Works Progress Administration

The IBM Selectric electronic typewriter appeared in 1961, featuring several programmable keys. These keys enabled ILL offices to reduce the number of keystrokes needed to complete the four-part paper ILL request forms. Bell System–approved modems came into use in the 1960s to connect computers by phone lines. In the late 1960s, e-mail was developed for the Multics mainframe operating system, and the U.S. Department of Defense began test operations using ARPANET (the Advanced Research Projects Agency Network), forerunner to the Internet. These two developments eventually made e-mail between any two computers possible. Much as before, people generally regarded these innovations as interesting curiosities, having nothing to do with daily life in the United States.


pages: 214 words: 71,585

Selfish, Shallow, and Self-Absorbed: Sixteen Writers on the Decision Not to Have Kids by Meghan Daum

delayed gratification, demographic transition, Donald Trump, financial independence, happiness index / gross national happiness, index card, Joan Didion, Mason jar, Multics, peak oil, Ponzi scheme, risk tolerance, Skype, women in the workforce

To cope with her life’s disappointments, she drank three fifths of vodka per week and took a mountain of daily Vioxx, the combination of which would kill her within that year. When I called my editor to tell her the news, she said something much less pointed, though along the same lines and undeniably true. The publisher was behind my book of short stories in a way that was not so common—they were sending me on a multicity book tour—and it would be in the book’s best interest if I was able to go. Contrary to the belief of some outspoken congressmen, no woman ever wants to have an abortion. I have never met one who takes it lightly, who hasn’t thought about the abortion with if not some version of regret, at least with some sadness for the rest of her life.


pages: 408 words: 63,990

Build Awesome Command-Line Applications in Ruby: Control Your Computer, Simplify Your Life by David B. Copeland

business logic, Chris Wanstrath, Compatible Time-Sharing System, database schema, en.wikipedia.org, full stack developer, machine readable, Multics, Ruby on Rails, systems thinking, web application

Hence, I wrote “RUNCOM”, a sort of shell driving the execution of command scripts, with argument substitution. The tool became instantly most popular [sic], as it became possible to go home in the evening while leaving behind long runcoms executing overnight. … Without being invited on the subject, I wrote a paper explaining how the Multics command language could be designed with [the] objective [of using commands somehow like a programming language]. And I coined the word “shell” to name it. Although RUNCOM (and CTSS) has long-been retired from regular use, its legacy lives on both as the name for user-specific configuration files and as the basis for the UNIX start-up scripts, typically located in /etc/rc.d.


pages: 288 words: 66,996

Travel While You Work: The Ultimate Guide to Running a Business From Anywhere by Mish Slade

Airbnb, Atul Gawande, business process, Checklist Manifesto, cloud computing, content marketing, crowdsourcing, digital nomad, Firefox, Google Chrome, Google Hangouts, Inbox Zero, independent contractor, job automation, Kickstarter, low cost airline, Lyft, Multics, remote work: asynchronous communication, remote working, Salesforce, side project, Skype, speech recognition, turn-by-turn navigation, uber lyft, WeWork

If the price is right but you're not quite ready to book: use Options Away (www.worktravel.co/optionsaway) to hold today's price for up to 14 days (for a small fee). If the airfare drops, you pay the lower price. If you decide not to travel, do nothing and let your hold expire. (At the moment, Options Away covers US domestic flights only.) If you have a complex, multi-leg route: Orbitz (www.worktravel.co/orbitz) is the most user-friendly when it comes to "multi-city" trips. Extra tips A few more tidbits of advice: Try buying flights as if you're from another country. For example, if you're American and you're flying from Sydney to Bangkok, search for prices on the Australian and Thai versions of the airline's site, rather than the US one: you can sometimes get better prices this way (but ensure that the charges levied on foreign currency transactions by your bank/credit card company doesn't screw up any savings).


pages: 226 words: 65,516

Kings of Crypto: One Startup's Quest to Take Cryptocurrency Out of Silicon Valley and Onto Wall Street by Jeff John Roberts

4chan, Airbnb, Alan Greenspan, altcoin, Apple II, Bernie Sanders, Bertram Gilfoyle, Big Tech, bitcoin, blockchain, Blythe Masters, Bonfire of the Vanities, Burning Man, buttonwood tree, cloud computing, coronavirus, COVID-19, creative destruction, Credit Default Swap, cryptocurrency, democratizing finance, Dogecoin, Donald Trump, double helix, driverless car, Elliott wave, Elon Musk, Ethereum, ethereum blockchain, family office, financial engineering, Flash crash, forensic accounting, hacker house, Hacker News, hockey-stick growth, index fund, information security, initial coin offering, Jeff Bezos, John Gilmore, Joseph Schumpeter, litecoin, Marc Andreessen, Mark Zuckerberg, Masayoshi Son, Menlo Park, move fast and break things, Multics, Network effects, offshore financial centre, open borders, Paul Graham, Peter Thiel, Ponzi scheme, prediction markets, proprietary trading, radical decentralization, ransomware, regulatory arbitrage, reserve currency, ride hailing / ride sharing, Robert Shiller, rolodex, Ross Ulbricht, Sam Altman, Sand Hill Road, Satoshi Nakamoto, sharing economy, side hustle, Silicon Valley, Silicon Valley ideology, Silicon Valley startup, smart contracts, SoftBank, software is eating the world, Startup school, Steve Ballmer, Steve Jobs, Steve Wozniak, transaction costs, Vitalik Buterin, WeWork, work culture , Y Combinator, zero-sum game

In response to a standard question from a customs agent about whether he was entering the US with more than $10,000 in cash or cash equiv-alents, Brian decided to say no. Better not to tell the agent about the USB stick on his key ring holding millions of dollars in bitcoin. As Coinbase grew, it quickly added other layers to its cold storage, including a multicity system where private keys were broken into different segments and scattered across the country. Similar to the Horcrux puzzle in the Harry Potter series, the system relied on different people finding and reassembling the different pieces in order to re-create a private key that held a store of bitcoin.


Free as in Freedom by Sam Williams

Asperger Syndrome, cognitive dissonance, commoditize, Compatible Time-Sharing System, Debian, Douglas Engelbart, East Village, Eben Moglen, Free Software Foundation, Guido van Rossum, Hacker Ethic, informal economy, Isaac Newton, John Conway, John Gilmore, John Markoff, Ken Thompson, Larry Wall, machine readable, Marc Andreessen, Maui Hawaii, Multics, Murray Gell-Mann, PalmPilot, profit motive, Project Xanadu, Richard Stallman, Silicon Valley, slashdot, software patent, Steven Levy, Ted Nelson, the Cathedral and the Bazaar, urban renewal, VA Linux, Y2K

Through this simple system of intellectual accretion, hackers at the AI Lab and other places built up robust creations. On the west coast, computer scientists at UC Berkeley, working in cooperation with a few lowlevel engineers at AT&T, had built up an entire operating system using this system. Dubbed Unix, a play on an older, more academically respectable operating system called Multics, the software system was available to any programmer willing to pay for the cost of copying the program onto a new magnetic tape and shipping it. Not every programmer participating in this culture described himself as a hacker, but most shared the sentiments of Richard M. Stallman. If a program or software fix was good enough to solve your problems, it was good enough to solve somebody else's problems.


pages: 263 words: 78,433

What Doctors Feel: How Emotions Affect the Practice of Medicine by Danielle Ofri

affirmative action, classic study, delayed gratification, facts on the ground, job satisfaction, lateral thinking, longitudinal study, medical malpractice, medical residency, Multics, RAND corporation

It’s not hard to see why otherwise conscientious and empathic young doctors behave this way. The ETOH-WD patients are typically surly, smelly, and demanding. Nearly all of them march right out of the hospital to their next drink and then get readmitted two weeks later. Many of these patients sport records of multi-city tours of rehabs, all of which seem to have amounted to nothing. Quite a few are skilled manipulators for oxycodone and Valium. Many have managed to obtain public assistance or disability but appear to do nothing but drink or take drugs. It is easy for doctors—who usually approach life with a pull-yourself-up-by-your-own-bootstraps attitude—to become resentful and disgusted by these seemingly parasitic, self-serving moochers.


pages: 893 words: 199,542

Structure and interpretation of computer programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman

Andrew Wiles, conceptual framework, Donald Knuth, Douglas Hofstadter, Eratosthenes, Fermat's Last Theorem, functional programming, Gödel, Escher, Bach, higher-order functions, industrial robot, information retrieval, iterative process, Ivan Sutherland, Johannes Kepler, loose coupling, machine translation, Multics, probability theory / Blaise Pascal / Pierre de Fermat, Richard Stallman, Turing machine

On the other hand, processors are getting faster and a future computer may have large numbers of processors operating in parallel on a single memory, so it may be possible to use up memory much faster than we have postulated. 14 We assume here that the stack is represented as a list as described in section 5.3.1, so that items on the stack are accessible via the pointer in the stack register. 15 This idea was invented and first implemented by Minsky, as part of the implementation of Lisp for the PDP-1 at the MIT Research Laboratory of Electronics. It was further developed by Fenichel and Yochelson (1969) for use in the Lisp implementation for the Multics time-sharing system. Later, Baker (1978) developed a “real-time” version of the method, which does not require the computation to stop during garbage collection. Baker's idea was extended by Hewitt, Lieberman, and Moon (see Lieberman and Hewitt 1983) to take advantage of the fact that some structure is more volatile and other structure is more permanent.

modularity, [2] along object boundaries functional programs vs. objects hiding principle streams and through dispatching on type through infinite streams through modeling with objects modulo n modus ponens money, changing, see counting change monitored procedure Monte Carlo integration stream formulation Monte Carlo simulation stream formulation monte-carlo infinite stream Moon, David A., [2] morning star, see evening star Morris, J. H. Morse code Mouse, Minnie and Mickey mul (generic) used for polynomial coefficients mul-complex mul-interval more efficient version mul-poly mul-rat mul-series mul-streams mul-terms Multics time-sharing system multiple-dwelling multiplicand multiplication by Russian peasant method multiplier primitive constraint selector Munro, Ian mutable data objects, see also queue; table implemented with assignment list structure pairs procedural representation of shared data mutator mutex mutual exclusion mystery name, see also local name; variable; local variable encapsulated of a formal parameter of a procedure named let (special form) naming of computational objects of procedures naming conventions !


pages: 250 words: 83,367

Methland: The Death and Life of an American Small Town by Nick Reding

Alfred Russel Wallace, call centre, crack epidemic, illegal immigration, invisible hand, Isaac Newton, Kickstarter, Multics, trade route, union organizing

In Dexamyl ads in Life magazine throughout the 1970s, a woman wearing an apron could be seen ecstatically vacuuming her living room carpet. How much legal pharmaceutical methamphetamine was being sold illegally, or without a prescription, during the period from 1945 to 1975 is hard to imagine. Headlines from the New York Times circa 1959 give some indication, however, citing multicity FBI stings in Los Angeles, San Francisco, Portland, Phoenix, Denver, Indianapolis, Chicago, Philadelphia, Brooklyn, and Manhattan. Curiously, the fate of towns like Oelwein, which for one hundred years had been places of great prosperity, began to change at just about the time that meth’s reputation began to disintegrate.


pages: 627 words: 89,295

The Politics Industry: How Political Innovation Can Break Partisan Gridlock and Save Our Democracy by Katherine M. Gehl, Michael E. Porter

Affordable Care Act / Obamacare, barriers to entry, business cycle, capital controls, carbon footprint, collective bargaining, coronavirus, COVID-19, David Brooks, deindustrialization, disintermediation, Donald Trump, first-past-the-post, future of work, guest worker program, hiring and firing, Ida Tarbell, illegal immigration, immigration reform, Joseph Schumpeter, Kickstarter, labor-force participation, Menlo Park, military-industrial complex, Multics, new economy, obamacare, pension reform, Ronald Reagan, Silicon Valley, stem cell, Steve Jobs, Upton Sinclair, zero-sum game

In August, eighty House members signed a letter urging Speaker of the House John Boehner to use the budget appropriations process to defund the ACA.31 A legion of industry interest groups fell into line. Heritage Action, the political arm of the conservative Heritage Foundation think tank, launched a multicity campaign to rally support. The political-industrial complex was activated, and forcefully. With battle lines drawn and the deadline approaching, a back-and-forth ensued between the Republican-controlled House and the Democrat-controlled Senate—which refused to accept a budget that nullified the ACA—until the clock ran out.32 On October 1, the government shut down.


Microserfs by Douglas Coupland

Apple Newton, Big Tech, Biosphere 2, car-free, computer age, El Camino Real, Future Shock, game design, General Magic , guns versus butter model, hive mind, Kevin Kelly, Maui Hawaii, means of production, Menlo Park, military-industrial complex, Multics, postindustrial economy, RAND corporation, Ronald Reagan, Sand Hill Road, Silicon Valley, Stephen Hawking, Steve Ballmer, Steve Jobs, telemarketer, Watson beat the top human players on Jeopardy!, white picket fence

Anatole is useless in this regard. We think he burned some bridges before he left - expense report fudging? * * * And of course Anatole is a genius. In the Silicon Valley the IQ baseline (as at Microsoft) starts at 130, and bell-curves quickly, plateauing near 155, and only then does it decrease. But the Valley is a whole multi-city complex of persnickety eggheads, not just one single Orwellian technoplex, like Microsoft. As I said - it's sci-fi. * * * Bug accidentally used the term information superhighway, and so we were able to administer a beating. TUESDAY Our money situation is tight. Trying to find money through venture capital is a long, evil, conflictual process full of hype and hope.


Gang Leader for a Day by Sudhir Venkatesh

"RICO laws" OR "Racketeer Influenced and Corrupt Organizations", crack epidemic, desegregation, Multics, Ronald Reagan, Steven Levy, the scientific method, urban planning, urban renewal, W. E. B. Du Bois

You remember how we talked about how gangs are different across the country?” I had once told J.T. that gangs in New York and Boston were said to be much smaller than Chicago’s gangs, rooted in local neighborhoods as opposed to being part of a citywide wheel. But no one, I told him, had managed to write an in-depth, multi-city study of street gangs. “I could help you meet people all over the place!” he continued. He stood up to get a beer from the fridge. “We got people we know in L.A., in Las Vegas, St. Louis. Black Kings are nationwide! I mean, you and I could figure out how the whole thing works.” “So you’ll be my research assistant!”


Engineering Security by Peter Gutmann

active measures, address space layout randomization, air gap, algorithmic trading, Amazon Web Services, Asperger Syndrome, bank run, barriers to entry, bitcoin, Brian Krebs, business process, call centre, card file, cloud computing, cognitive bias, cognitive dissonance, cognitive load, combinatorial explosion, Credit Default Swap, crowdsourcing, cryptocurrency, Daniel Kahneman / Amos Tversky, Debian, domain-specific language, Donald Davies, Donald Knuth, double helix, Dr. Strangelove, Dunning–Kruger effect, en.wikipedia.org, endowment effect, false flag, fault tolerance, Firefox, fundamental attribution error, George Akerlof, glass ceiling, GnuPG, Google Chrome, Hacker News, information security, iterative process, Jacob Appelbaum, Jane Jacobs, Jeff Bezos, John Conway, John Gilmore, John Markoff, John von Neumann, Ken Thompson, Kickstarter, lake wobegon effect, Laplace demon, linear programming, litecoin, load shedding, MITM: man-in-the-middle, Multics, Network effects, nocebo, operational security, Paradox of Choice, Parkinson's law, pattern recognition, peer-to-peer, Pierre-Simon Laplace, place-making, post-materialism, QR code, quantum cryptography, race to the bottom, random walk, recommendation engine, RFID, risk tolerance, Robert Metcalfe, rolling blackouts, Ruby on Rails, Sapir-Whorf hypothesis, Satoshi Nakamoto, security theater, semantic web, seminal paper, Skype, slashdot, smart meter, social intelligence, speech recognition, SQL injection, statistical model, Steve Jobs, Steven Pinker, Stuxnet, sunk-cost fallacy, supply-chain attack, telemarketer, text mining, the built environment, The Death and Life of Great American Cities, The Market for Lemons, the payments system, Therac-25, too big to fail, Tragedy of the Commons, Turing complete, Turing machine, Turing test, Wayback Machine, web application, web of trust, x509 certificate, Y2K, zero day, Zimmermann PGP

The solution was to encrypt the passwords with a one- 600 Passwords way cipher (nowadays called “password hashing”), a procedure introduced in Cambridge University’s Titan timesharing system in 1967 [256]. This concept spread to many other timesharing systems including CTSS’ successor Multics in the early 1970s [257][258], and from there to a Multics-inspired system called Unix. Unix had originally stored account information in the clear but after it escaped from the labs and started seeing more widespread use the designers decided that it’d be a good idea to protect the password data in some way. Adding password protection addressed problems such as inadvertent disclosure of the passwords when the file containing them was being edited with an editor that saved temporary files to disk and similar problems [259][260][261].

On most systems today account management is done through special applications that use locking to control access rather than by firing up a text editor on the raw password file (if the system even has such a thing) and editors don’t use hardcoded temporary filenames, so such editor-induced failure modes are less likely to occur. The solution to the inadvertent password-disclosure problem was to encrypt the passwords as Multics had done. Since the encrypted form of the password was world-readable though an attacker could try encrypting every possible password and checking whether the encrypted form matched any of the stored encrypted passwords. In an attempt to defeat this attack the password-encryption process was iterated in order to slow it down to the point where this was no longer feasible.

, Daniele Perito, Claude Castelluccia, Mohamed Ali Kaafar and Pere Manils, to appear. [255] “Identity Management’s Misaligned Incentives”, Jean Camp, IEEE Security and Privacy, Vol.8, No.6 (November/December 2010), p.90. [256] “Time-Sharing Computer Systems”, Maurice Wilkes, Macdonald & Co, 1968. [257] “Easy Entry: The Password Encryption Problem”, Jason Gait, Operating Systems Review, Vol.12, No.3 (July 1978), p.54. [258] “Multics Security”, Tom Van Vleck, http://www.multicians.org/security.html. [259] “Password Security: A Case History”, Robert Morris and Ken Thompson, Communications of the ACM, Vol.22, No.11 (November 1979), p.594. [260] “A Study of Password Security”, Michael Luby and Charles Rackoff, Journal of Cryptology, Vol.1, No.3 (1989), p.151. [261] “A Survey of Password Mechanisms: Weaknesses and Potential Improvements.


pages: 1,014 words: 237,531

Escape From Rome: The Failure of Empire and the Road to Prosperity by Walter Scheidel

agricultural Revolution, barriers to entry, British Empire, classic study, colonial rule, conceptual framework, creative destruction, currency manipulation / currency intervention, dark matter, disruptive innovation, Easter island, Eratosthenes, European colonialism, financial innovation, financial intermediation, flying shuttle, Intergovernmental Panel on Climate Change (IPCC), invisible hand, Isaac Newton, Johann Wolfgang von Goethe, Johannes Kepler, joint-stock company, Joseph Schumpeter, knowledge economy, low interest rates, mandelbrot fractal, means of production, Multics, Network effects, out of africa, Peace of Westphalia, peer-to-peer lending, plutocrats, principal–agent problem, purchasing power parity, rent-seeking, Republic of Letters, secular stagnation, South China Sea, spinning jenny, The Rise and Fall of American Growth, The Wealth of Nations by Adam Smith, trade route, transaction costs, vertical integration, zero-sum game

Despite long-standing economic and cultural contacts with the outside world, in terms of state formation the Italian peninsula in the first half of the first millennium BCE remained a world apart, characterized by city-states and similarly small-scale communities. Even Greek state-building along its southern fringe had not yet produced larger multicity states of the kind that first formed in the Aegean and in Sicily in the fifth century BCE (figure 2.1). Rome was located on the river Tiber, the largest Italian river south of the Po, at the interstices of two emergent city-state cultures, the Latins to the south and the Etruscans to the north.

Oxford: Oxford University Press. Morris, Ian. 2009. “The greater Athenian state.” In Morris and Scheidel 2009, 99–177. Morris, Ian. 2010. Why the West rules—for now: The patterns of history, and what they reveal about the future. New York: Farrar, Straus and Giroux. Morris, Ian. 2013a. “Greek multicity states.” In Bang and Scheidel 2013, 279–303. Morris, Ian 2013b. The measure of civilization: How social development decides the fate of nations. Princeton, NJ: Princeton University Press. Morris, Ian. 2014. War! What is it good for? Conflict and the progress of civilization from primates to robots.


pages: 260 words: 40,943

Hacking Exposed: Network Security Secrets and Solutions by Stuart McClure, Joel Scambray, George Kurtz

AltaVista, bash_history, Dennis Ritchie, end-to-end encryption, information security, Ken Thompson, Larry Wall, MITM: man-in-the-middle, Morris worm, Multics, peer-to-peer, remote working, systems thinking, web application

P:\010Comp\Hacking\381-6\ch01.vp Friday, September 07, 2001 10:37:39 AM Color profile: Generic CMYK printer profile Composite Default screen Hacking / Hacking Exposed: Network Security / McClure/Scambray / 2748-1 / Chapter 8 CHAPTER 8 X I N U g n i k Hac 305 P:\010Comp\Hacking\748-1\ch08.vp Wednesday, September 20, 2000 10:21:26 AM Color profile: Generic CMYK printer profile Composite Default screen 306 Hacking / Hacking Exposed: Network Security / McClure/Scambray / 2748-1 / Chapter 8 Hacking Exposed: Network Security Secrets and Solutions S ome feel drugs are about the only thing more addicting than obtaining root access on a UNIX system. The pursuit of root access dates back to the early days of UNIX, so we need to provide some historical background on its evolution. THE QUEST FOR ROOT In 1969, Ken Thompson, and later Dennis Ritchie, of AT&T decided that the MULTICS (Multiplexed Information and Computing System) project wasn’t progressing as fast as they would have liked. Their decision to “hack up” a new operating system called UNIX forever changed the landscape of computing. UNIX was intended to be a powerful, robust, multiuser operating system that excelled at running programs, specifically, small programs called tools.


Rockonomics: A Backstage Tour of What the Music Industry Can Teach Us About Economics and Life by Alan B. Krueger

"Friedman doctrine" OR "shareholder theory", accounting loophole / creative accounting, Affordable Care Act / Obamacare, Airbnb, Alan Greenspan, autonomous vehicles, bank run, behavioural economics, Berlin Wall, bitcoin, Bob Geldof, butterfly effect, buy and hold, congestion pricing, creative destruction, crowdsourcing, digital rights, disintermediation, diversified portfolio, Donald Trump, endogenous growth, Gary Kildall, George Akerlof, gig economy, income inequality, independent contractor, index fund, invisible hand, Jeff Bezos, John Maynard Keynes: Economic Possibilities for our Grandchildren, Kenneth Arrow, Kickstarter, Larry Ellison, Live Aid, Mark Zuckerberg, Moneyball by Michael Lewis explains big data, moral hazard, Multics, Network effects, obamacare, offshore financial centre, opioid epidemic / opioid crisis, Paul Samuelson, personalized medicine, power law, pre–internet, price discrimination, profit maximization, random walk, recommendation engine, rent-seeking, Richard Thaler, ride hailing / ride sharing, Saturday Night Live, Skype, Steve Jobs, the long tail, The Wealth of Nations by Adam Smith, TikTok, too big to fail, transaction costs, traumatic brain injury, Tyler Cowen, ultimatum game, winner-take-all economy, women in the workforce, Y Combinator, zero-sum game

“The Mercedes-Benz Arena in Shanghai and the Wukesong Arena [now called the Cadillac Arena] in Beijing are world-class facilities, on par with the Staples Center in LA.” The market in China is also becoming more consolidated and commercialized. When Jacky Cheung toured mainland China in the past, he required dozens of promoters, one for each market. That is no longer the case. Multi-city tours organized by the same promoter are now common. Live Nation and AEG operate in China. CMC Live Entertainment, in a joint venture with Creative Artists Agency, is trying to build a nationwide music conglomerate, encompassing both a horizontal monopoly that promotes shows across China and throughout Asia and a vertical monopoly that develops and manages talent.16 In 2018, CMC Live promoted Jacky Cheung and Mayday tours in cities both large and small, as well as hundreds of other shows.


pages: 329 words: 100,162

Hype: How Scammers, Grifters, and Con Artists Are Taking Over the Internet―and Why We're Following by Gabrielle Bluestone

Adam Neumann (WeWork), Airbnb, Bellingcat, Bernie Madoff, Bernie Sanders, Big Tech, bitcoin, Black Lives Matter, Burning Man, cashless society, coronavirus, COVID-19, Donald Trump, driverless car, Elon Musk, fake it until you make it, financial thriller, forensic accounting, gig economy, global pandemic, growth hacking, high net worth, hockey-stick growth, hype cycle, Hyperloop, Kevin Roose, lock screen, lockdown, Lyft, Mark Zuckerberg, Masayoshi Son, Mason jar, Menlo Park, Multics, Naomi Klein, Netflix Prize, NetJets, Peter Thiel, placebo effect, post-truth, RFID, ride hailing / ride sharing, Russell Brand, Sand Hill Road, self-driving car, Silicon Valley, Snapchat, social distancing, SoftBank, Steve Jobs, tech billionaire, tech bro, TikTok, Tim Cook: Apple, Travis Kalanick, Uber and Lyft, uber lyft, unpaid internship, upwardly mobile, Vision Fund, WeWork

Nowadays, of course, social media influencers are much more transparent about what they’re selling, but their audience is just as rapt as the Joneses’ neighbors. Which is what’s so insane about today’s landscape. What was, in 2009, intentionally surreal, now seems almost banal, what with the former Goop employee who staged a sponsored multi-city engagement extravaganza for a live audience of about 5,000 emotionally invested strangers (and lost her day job not long after it went viral for all the wrong reasons),14 or the TikTok users who caught coronavirus after participating in a viral toilet-seat-licking challenge for clout.15 “I think now, with influencer marketing, what was covert has now become overt,” Borte said.


Hormone Repair Manual by Lara Briden

Columbine, crowdsourcing, meta-analysis, microbiome, mouse model, Multics, placebo effect, randomized controlled trial, selective serotonin reuptake inhibitor (SSRI), stem cell, traumatic brain injury, ultra-processed food

.: J Viljoen, T Crymble & C Christie, ‘Changes in morphology and strength following an eight-week resistance training programme in post-menopausal women: a pilot investigation’, Ergonomics South Africa, 25(2), 2013, pp35–49; E Berin, M Hammar, H Lindblom et al, ‘Resistance training for hot flushes in postmenopausal women: a randomised controlled trial’, Maturitas, 126, August 2019, pp55–60; F Herold, A Törpel, L Schega & NG Müller, ‘Functional and/or structural brain changes in response to resistance exercises and resistance training lead to cognitive improvements – a systematic review’, European Review of Aging and Physical Activity, 16, 2019, article 10. 138: If you prefer other styles of movement . . .: SP Pandya, ‘Yoga education program for older women diagnosed with sarcopenia: a multicity 10-year follow-up experiment’, Journal of Women and Aging, 31(5), September–October 2019, pp446–69; M Yamada, S Nishiguchi, N Fukutani et al, ‘Mail-based intervention for sarcopenia prevention increased anabolic hormone and skeletal muscle mass in community-dwelling Japanese older adults: the INE (Intervention by Nutrition and Exercise) Study’, JAMDA, 16(8), August 2015, pp654–60. 140: ‘Something that is a normal part of the life cycle . . .’: JC Prior 2006, op. cit. 141: In general, estrogen is associated with . . .: RJ Baber, N Panay & A Fenton, ‘IMS recommendations on women’s midlife health and menopause hormone therapy’, Climacteric, 19(2), April 2016, pp109–50. 142: Premarin also increases the risk of blood clots . . .: PY Scarabin, ‘Hormones and venous thromboembolism among postmenopausal women’, Climacteric, 17(Suppl 2), December 2014, pp34–7. 142: That’s according to the American College of Obstetricians . . .: Committee on Gynecologic Practice, American College of Obstetricians and Gynecologists, ‘Committee Opinion No. 659: the use of vaginal estrogen in women with a history of estrogen-dependent breast cancer’, Obstetrics and Gynecology, 127(3), March 2016, pp93–6. 143: New research has identified progestins . . .: I Manyonda, VS Talaulikar, R Pirhadi & J Onwude, ‘Progestogens are the problem in hormone replacement therapy: time to reappraise their use’, Post Reproductive Health, 26(1), March 2020, pp26–31. 144: In fact, according to Professor Prior . . .: H Mohammed, IA Russell, R Stark, OM Rueda, TE Hickey, GA Tarulli et al 2015, op. cit. 144: Fortunately, modern Australian and New Zealand guidelines . . .: J Eden, ‘Body-identical hormone replacement therapy: micronised progesterone is finally available in Australia’, Healthed, Expert monograph no. 11, 2017, whria.com.au/wp-content/uploads/2017/02/John-Eden-Monograph-FINAL.pdf; LR Newson & A Lass, ‘Effectiveness of transdermal oestradiol and natural micronised progesterone for menopausal symptoms’, British Journal of General Practice, 68(675), October 2018, pp499–500. 144: Professor Prior’s progesterone protocols are based on . . .: JC Prior, A Cameron, CL Hitchcock et al, ‘Oral micronized progesterone beneficial for perimenopausal hot flushes/flashes and night sweats’, Abstract OR25–7, ENDO 2018: the Endocrine Society Annual Meeting, Chicago, 17–20 March 2018; CL Hitchcock & JC Prior, ‘Oral micronized progesterone for vasomotor symptoms – a placebo-controlled randomized trial in healthy postmenopausal women’, Menopause, 19(8), August 2012, pp886–93. 145: The other claims for testosterone are . . .: RE Nappi, ‘Testosterone for women: green light for sex, amber light for health?’


pages: 398 words: 108,889

The Paypal Wars: Battles With Ebay, the Media, the Mafia, and the Rest of Planet Earth by Eric M. Jackson

bank run, business process, call centre, creative destruction, disintermediation, Elon Musk, index fund, Internet Archive, iterative process, Joseph Schumpeter, market design, Max Levchin, Menlo Park, Metcalfe’s law, money market fund, moral hazard, Multics, Neal Stephenson, Network effects, new economy, offshore financial centre, PalmPilot, Peter Thiel, Robert Metcalfe, Sand Hill Road, shareholder value, Silicon Valley, Silicon Valley startup, telemarketer, The Chicago School, the new new thing, Turing test

While perhaps more cost effective, outsourcing had not produced high quality results; it was rumored that many of our contractors in Burbank had never opened their own PayPal account. Facing these constraints, Elon Musk tasked Julie Anderson, one of his first hires at X.com, with finding a quick way to increase the size of our customer service department. Realizing that local expansion and outsourcing were out of the question, Julie set out on a multi-city tour across the country to find a location for a new customer service center. In addition to Julie, other members of the company sought ways to help alleviate the crisis. David Sacks emerged from a month of near-exile with a proposal he contended would address the customer service dilemma—adding message boards to PayPal’s site.


pages: 370 words: 105,085

Joel on Software by Joel Spolsky

AltaVista, AOL-Time Warner, Apple Newton, barriers to entry, Beos Apple "Steve Jobs" next macos , business logic, c2.com, commoditize, Dennis Ritchie, General Magic , George Gilder, index card, Jeff Bezos, knowledge worker, machine readable, Metcalfe's law, Mitch Kapor, Multics, Network effects, new economy, off-by-one error, PageRank, PalmPilot, Paul Graham, pneumatic tube, profit motive, reality distortion field, Robert X Cringely, shareholder value, Silicon Valley, Silicon Valley startup, SimCity, six sigma, slashdot, Steve Ballmer, Steve Jobs, the scientific method, thinkpad, VA Linux, web application

Or, more commonly, I write some code, and then it's not right, but it's too late, and my product is inferior and I spend until the end of time making up excuses for why it "has to be that way." It's just sloppy and unprofessional. When Linus Torvalds bashed design,2 he was talking about huge systems, which have to evolve, or they become Multics. He's not talking about your File Copy code. And when you consider that he had a pretty clear road map of exactly where he was going, it's no wonder Linus doesn't see much value in design. Don't fall for it. Chances are it doesn't apply to you. And anyway, Linus is much smarter than we are, so things that work for him don't work for us normal people.


pages: 353 words: 104,146

European Founders at Work by Pedro Gairifo Santos

business intelligence, clean tech, cloud computing, crowdsourcing, deal flow, do what you love, fail fast, fear of failure, full text search, Hacker News, hockey-stick growth, information retrieval, inventory management, iterative process, Jeff Bezos, Joi Ito, Lean Startup, Mark Zuckerberg, Multics, natural language processing, pattern recognition, pre–internet, recommendation engine, Richard Stallman, Salesforce, Silicon Valley, Skype, slashdot, SoftBank, Steve Jobs, Steve Wozniak, subscription business, technology bubble, TED Talk, web application, Y Combinator

You're really selling yourself and you're selling your ability to put together a great program. We did it but it was not easy. So I certainly have the fund raising scars to show the teams we work with. We're changing our funding model now that we've expanded in a number of cities. We're going for slightly larger investors and corporate partners to fund a multi-city multi-year program so we get more runway and don't have to be fund raising full time. Santos: And the mentors, why did they join the program? How did you convince them? Farcet: The first twenty or so are the most important. They're lending their good name and get the snowball rolling. So I was very focused on getting the right names on board and they understood that.


pages: 566 words: 122,184

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

Bill Gates: Altair 8800, Charles Babbage, Claude Shannon: information theory, computer age, Dennis Ritchie, digital divide, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Dynabook, Eratosthenes, Fairchild Semiconductor, Free Software Foundation, Gary Kildall, Grace Hopper, invention of the telegraph, Isaac Newton, Ivan Sutherland, Jacquard loom, James Watt: steam engine, John von Neumann, Joseph-Marie Jacquard, Ken Thompson, Louis Daguerre, millennium bug, Multics, Norbert Wiener, optical character recognition, popular electronics, Richard Feynman, Richard Stallman, Silicon Valley, Steve Jobs, Turing machine, Turing test, Vannevar Bush, Von Neumann architecture

The hierarchical file system—and some other features of MS-DOS 2.0—were borrowed from an operating system named UNIX, which was developed in the early 1970s at Bell Telephone Laboratories largely by Ken Thompson (born 1943) and Dennis Ritchie (born 1941). The funny name of the operating system is a play on words: UNIX was originally written as a less hardy version of an earlier operating system named Multics (which stands for Multiplexed Information and Computing Services) that Bell Labs had been codeveloping with MIT and GE. Among hard-core computer programmers, UNIX is the most beloved operating system of all time. While most operating systems are written for specific computers, UNIX was designed to be portable, which means that it can be adapted to run on a variety of computers.


pages: 423 words: 126,096

Our Own Devices: How Technology Remakes Humanity by Edward Tenner

A. Roger Ekirch, Apple Newton, Bonfire of the Vanities, card file, Douglas Engelbart, Douglas Engelbart, Frederick Winslow Taylor, future of work, indoor plumbing, informal economy, invention of the telephone, invisible hand, Johannes Kepler, John Markoff, Joseph-Marie Jacquard, Lewis Mumford, Multics, multilevel marketing, Network effects, optical character recognition, PalmPilot, QWERTY keyboard, safety bicycle, scientific management, Shoshana Zuboff, Stewart Brand, tacit knowledge, women in the workforce

Early World War II and postwar digital machines used keyboard-encoded punch cards and tape, first paper and then magnetic, and teletype-style printers. More and more computer functions could be managed by typing rather than by rearranging plugged wires and setting dials. Academic scientists began to use time-sharing systems controlled entirely by teletype. The crucial date for the keyboard, though, came in the later 1960s, when the Multics time-sharing system developed by MIT, Bell Laboratories, and General Electric replaced the clacking teletype with a video display terminal. In 1972 the addressable cursor appeared, and keyboard control sequences were standardized. In the late 1970s, when microchip costs had dropped low enough to make hobbyist microcomputers possible, the obvious control hardware was the keyboard plus monitor.


pages: 570 words: 115,722

The Tangled Web: A Guide to Securing Modern Web Applications by Michal Zalewski

barriers to entry, business process, defense in depth, easy for humans, difficult for computers, fault tolerance, finite state, Firefox, Google Chrome, information retrieval, information security, machine readable, Multics, RFC: Request For Comment, semantic web, Steve Jobs, telemarketer, Tragedy of the Commons, Turing test, Vannevar Bush, web application, WebRTC, WebSocket

Notes Chapter 1 [86] [87] [88] [89] [90] [91] [92] Page 19 [93] Chapter 2 [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] Chapter 3 [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] Chapter 4 [136] [137] [138] [139] [140] [141] Chapter 5 [142] [143] [144] [145] Chapter 6 [146] [147] [148] [149] [150] [151] [152] [153] [154] Chapter 7 [155] [156] [157] [158] [159] [160] Chapter 8 [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] Chapter 9 [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] Chapter 10 [196] [197] Chapter 11 [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] Chapter 12 [216] [217] [218] [219] [220] Chapter 13 [221] [222] [223] [224] [225] Chapter 14 [226] [227] [228] [229] [230] [231] Chapter 15 [232] [233] [234] [235] [236] [237] [238] [239] Chapter 16 [240] [241] [242] [243] [244] [245] [246] [247] [248] [249] [250] [251] [252] [253] [254] [255] Chapter 17 [256] [257] [258] [259] [260] [261] [262] [263] [264] [265] [266] [267] [268] [269] [270] [271] [272] * * * [86] D.E. Bell and L.J. La Padula, Secure Computer System: Unified Exposition and Multics Interpretation (ESD-TR-75-306), Bedford, MA: MITRE Corporation for US Air Force (1976), http://csrc.nist.gov/publications/history/bell76.pdf. [87] C.E. Landwehr, C.L. Heitmeyer, and J.D. McLean, “A Security Model for Military Message Systems: Retrospective,” paper presented at the 17th Annual Computer Security Applications Conference, New Orleans, LA (2001), http://www.acsa-admin.org/2001/papers/141.pdf


pages: 677 words: 121,255

Giving the Devil His Due: Reflections of a Scientific Humanist by Michael Shermer

Alfred Russel Wallace, anthropic principle, anti-communist, anti-fragile, barriers to entry, Berlin Wall, Black Lives Matter, Boycotts of Israel, Chelsea Manning, clean water, clockwork universe, cognitive dissonance, Colonization of Mars, Columbine, cosmological constant, cosmological principle, creative destruction, dark matter, deplatforming, Donald Trump, Edward Snowden, Elon Musk, fake news, Flynn Effect, germ theory of disease, Great Leap Forward, gun show loophole, Hans Rosling, heat death of the universe, hedonic treadmill, helicopter parent, Higgs boson, hindsight bias, illegal immigration, income inequality, intentional community, invisible hand, Johannes Kepler, Joseph Schumpeter, Kim Stanley Robinson, laissez-faire capitalism, Laplace demon, luminiferous ether, Mars Society, McMansion, means of production, mega-rich, Menlo Park, microaggression, military-industrial complex, moral hazard, moral panic, More Guns, Less Crime, Multics, Oklahoma City bombing, Peter Singer: altruism, phenotype, positional goods, power law, public intellectual, race to the bottom, Richard Feynman, Ronald Coase, Silicon Valley, Skype, social intelligence, Social Justice Warrior, stem cell, Stephen Hawking, Steve Jobs, Steven Pinker, Suez crisis 1956, TED Talk, the scientific method, The Wealth of Nations by Adam Smith, Timothy McVeigh, transaction costs, WikiLeaks, working poor, Yogi Berra

There were a few voices of support but, surprisingly (given our readers’ purported critical thinking skills), most people seemed to pre-judge Peterson based on a handful of snippets from his writings and, especially, video clips taken out of context (that when looked at in a fuller picture rarely reveal what the critics think they do). Peterson seems to engender passionate emotions (both for and against) his ideas presented in YouTube videos, podcasts, books, and his multicity lecture tour routinely selling out large theaters. At a November 2018 public event I did with Richard Dawkins in Berlin, an “in conversation” in which we said nothing about Jordan Peterson, during the Q&A we received no fewer than four questions as to our opinions of the man and his ideas. To the first questioner, I briefly summarized my own (as articulated more fully in this chapter), and Richard simply said he didn’t have an opinion because he hadn’t studied Peterson.


pages: 503 words: 131,064

Liars and Outliers: How Security Holds Society Together by Bruce Schneier

Abraham Maslow, airport security, Alvin Toffler, barriers to entry, behavioural economics, benefit corporation, Berlin Wall, Bernie Madoff, Bernie Sanders, Brian Krebs, Broken windows theory, carried interest, Cass Sunstein, Chelsea Manning, commoditize, corporate governance, crack epidemic, credit crunch, CRISPR, crowdsourcing, cuban missile crisis, Daniel Kahneman / Amos Tversky, David Graeber, desegregation, don't be evil, Double Irish / Dutch Sandwich, Douglas Hofstadter, Dunbar number, experimental economics, Fall of the Berlin Wall, financial deregulation, Future Shock, Garrett Hardin, George Akerlof, hydraulic fracturing, impulse control, income inequality, information security, invention of agriculture, invention of gunpowder, iterative process, Jean Tirole, John Bogle, John Nash: game theory, joint-stock company, Julian Assange, language acquisition, longitudinal study, mass incarceration, meta-analysis, microcredit, mirror neurons, moral hazard, Multics, mutually assured destruction, Nate Silver, Network effects, Nick Leeson, off-the-grid, offshore financial centre, Oklahoma City bombing, patent troll, phenotype, pre–internet, principal–agent problem, prisoner's dilemma, profit maximization, profit motive, race to the bottom, Ralph Waldo Emerson, RAND corporation, Recombinant DNA, rent-seeking, RFID, Richard Thaler, risk tolerance, Ronald Coase, security theater, shareholder value, slashdot, statistical model, Steven Pinker, Stuxnet, technological singularity, The Market for Lemons, The Nature of the Firm, The Spirit Level, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, theory of mind, Timothy McVeigh, too big to fail, traffic fines, Tragedy of the Commons, transaction costs, ultimatum game, UNCLOS, union organizing, Vernor Vinge, WikiLeaks, World Values Survey, Y2K, Yochai Benkler, zero-sum game

The idea, of course, was that cost minimization at the smaller level would translate to cost minimization across the entire company. But sometimes it didn't work that way. I remember several instances where I had a choice between an action that would cost my department more, and an action that would cost my department less but would—because of costs to other departments—cost the company more. For example, I could fly a multi-city itinerary on several more expensive tickets, each allocated to the department that was responsible for that particular city. Or I could fly on a single cheaper ticket. Of course, my boss told me to choose the option that cost our department less, because that's how he was rewarded. There are other competing interests within organizations: profits, perks (use of the corporate jet, for example), the corporate brand, an alternate idea of what the corporate brand should be, and so on.


pages: 689 words: 134,457

When McKinsey Comes to Town: The Hidden Influence of the World's Most Powerful Consulting Firm by Walt Bogdanich, Michael Forsythe

"RICO laws" OR "Racketeer Influenced and Corrupt Organizations", "World Economic Forum" Davos, activist fund / activist shareholder / activist investor, Affordable Care Act / Obamacare, Alistair Cooke, Amazon Web Services, An Inconvenient Truth, asset light, asset-backed security, Atul Gawande, Bear Stearns, Boris Johnson, British Empire, call centre, Cambridge Analytica, carbon footprint, Citizen Lab, cognitive dissonance, collective bargaining, compensation consultant, coronavirus, corporate governance, corporate social responsibility, Corrections Corporation of America, COVID-19, creative destruction, Credit Default Swap, crony capitalism, data science, David Attenborough, decarbonisation, deindustrialization, disinformation, disruptive innovation, do well by doing good, don't be evil, Donald Trump, double entry bookkeeping, facts on the ground, failed state, financial engineering, full employment, future of work, George Floyd, Gini coefficient, Glass-Steagall Act, global pandemic, illegal immigration, income inequality, information security, interchangeable parts, Intergovernmental Panel on Climate Change (IPCC), invisible hand, job satisfaction, job-hopping, junk bonds, Kenneth Arrow, Kickstarter, load shedding, Mark Zuckerberg, megaproject, Moneyball by Michael Lewis explains big data, mortgage debt, Multics, Nelson Mandela, obamacare, offshore financial centre, old-boy network, opioid epidemic / opioid crisis, profit maximization, public intellectual, RAND corporation, Rutger Bregman, scientific management, sentiment analysis, shareholder value, Sheryl Sandberg, Silicon Valley, smart cities, smart meter, South China Sea, sovereign wealth fund, tech worker, The future is already here, The Nature of the Firm, too big to fail, urban planning, WikiLeaks, working poor, Yogi Berra, zero-sum game

One consultant helped people who were blind and led a movement for prison reform—all while in high school. Another took part in the anti-Trump Women’s March the day after the inauguration. Sensing there might be trouble brewing belowdecks, the project leader, Richard Elder, scheduled an 8:00 a.m. multi-city conference call with members of the ICE team, including senior managers. Elder allowed listeners to voice their concerns. But he also wanted to deliver a message: McKinsey was not going to shy away from this work. “ICE is changing direction,” he announced. “And it’s McKinsey’s job to change with it.”


pages: 661 words: 156,009

Your Computer Is on Fire by Thomas S. Mullaney, Benjamin Peters, Mar Hicks, Kavita Philip

"Susan Fowler" uber, 2013 Report for America's Infrastructure - American Society of Civil Engineers - 19 March 2013, A Declaration of the Independence of Cyberspace, affirmative action, Airbnb, algorithmic bias, AlphaGo, AltaVista, Amazon Mechanical Turk, Amazon Web Services, American Society of Civil Engineers: Report Card, An Inconvenient Truth, Asilomar, autonomous vehicles, Big Tech, bitcoin, Bletchley Park, blockchain, Boeing 737 MAX, book value, British Empire, business cycle, business process, Californian Ideology, call centre, Cambridge Analytica, carbon footprint, Charles Babbage, cloud computing, collective bargaining, computer age, computer vision, connected car, corporate governance, corporate social responsibility, COVID-19, creative destruction, cryptocurrency, dark matter, data science, Dennis Ritchie, deskilling, digital divide, digital map, don't be evil, Donald Davies, Donald Trump, Edward Snowden, en.wikipedia.org, European colonialism, fake news, financial innovation, Ford Model T, fulfillment center, game design, gentrification, George Floyd, glass ceiling, global pandemic, global supply chain, Grace Hopper, hiring and firing, IBM and the Holocaust, industrial robot, informal economy, Internet Archive, Internet of things, Jeff Bezos, job automation, John Perry Barlow, Julian Assange, Ken Thompson, Kevin Kelly, Kickstarter, knowledge economy, Landlord’s Game, Lewis Mumford, low-wage service sector, M-Pesa, Mark Zuckerberg, mass incarceration, Menlo Park, meta-analysis, mobile money, moral panic, move fast and break things, Multics, mutually assured destruction, natural language processing, Neal Stephenson, new economy, Norbert Wiener, off-the-grid, old-boy network, On the Economy of Machinery and Manufactures, One Laptop per Child (OLPC), packet switching, pattern recognition, Paul Graham, pink-collar, pneumatic tube, postindustrial economy, profit motive, public intellectual, QWERTY keyboard, Ray Kurzweil, Reflections on Trusting Trust, Report Card for America’s Infrastructure, Salesforce, sentiment analysis, Sheryl Sandberg, Silicon Valley, Silicon Valley ideology, smart cities, Snapchat, speech recognition, SQL injection, statistical model, Steve Jobs, Stewart Brand, tacit knowledge, tech worker, techlash, technoutopianism, telepresence, the built environment, the map is not the territory, Thomas L Friedman, TikTok, Triangle Shirtwaist Factory, undersea cable, union organizing, vertical integration, warehouse robotics, WikiLeaks, wikimedia commons, women in the workforce, Y2K

In his recent book Bits to Bitcoin, Mark Stuart Day briefly discusses this attack under the name Thompson’s Hack. Mark Stuart Day, Al Sweigart, Tony Veale, and Karen Brown, “Thompson’s Hack,” in Bits to Bitcoin (Cambridge, MA: MIT Press, 2018), 243–271. 4. Discussed in Paul A. Karger and Roger R. Schell, “Multics Security Evaluation: Vulnerability Analysis,” in 18th Annual Computer Security Applications Conference, IEEE, 2002. Proceedings (2002): 127–146. Thompson identifies his source as “Unknown Air Force Document.” 5. Regardless of whatever technical advances in computer design occur in the future, the number of bits stored in a register and the number of registers themselves will always necessarily be relatively small.


Lonely Planet Nicaragua (Travel Guide) by Lonely Planet, Alex Egerton, Greg Benchwick

agricultural Revolution, British Empire, car-free, carbon footprint, centre right, clean water, Cornelius Vanderbilt, Day of the Dead, land reform, liberation theology, Multics, off grid, off-the-grid, place-making, race to the bottom, Ralph Nader, Ronald Reagan, sustainable-tourism, the long tail, traveling salesman

The mausoleum of Rubén Darío’s mother OFFLINE MAP GOOGLE MAP is just one block east. It’s seven blocks east of Santa Ana to Iglesia El Calvario OFFLINE MAP GOOGLE MAP , with a rust red, rather art deco exterior and a very nice bell tower, its otherwise simple interior hung with chandeliers. Museo Chorotega MUSEUM ( 2341-4291; Multicable, 1c S, Reparto los Angeles; admission US$5; 7am-1pm & 3-6pm Mon-Fri) Anyone with even a passing interest in archaeology should stop in at the one of the finest museums in the country. The collection focuses on pre-Columbian ceramics and is presented in a logical timeline, from the early inhabitants up until the arrival of the Spanish.


Peggy Seeger by Jean R. Freedman

anti-communist, anti-work, antiwork, cotton gin, feminist movement, financial independence, glass ceiling, job satisfaction, Multics, Nelson Mandela, Occupy movement, Skype, We are the 99%, Works Progress Administration, young professional

She spoke without self-pity or complaint, simply recognizing that her body can no longer do everything that her mind and spirit may want. “The days go by so fast,” she said, and she sometimes has trouble “living in the present,” because the past holds such splendid memories, and the end of the road is nearer than the beginning.25 And yet…our conversation occurred shortly after she had returned from a multicity tour throughout Britain, a tour greeted with universal acclaim from journalists, bloggers, and audience members. Clive Davies reviewed her eightieth-birthday concert at Queen Elizabeth Hall in London: Peggy Seeger is not the sort to indulge in geriatric sentimentality. Much like a folk-singing equivalent of Elaine Stritch, she bossed and cajoled, cracked sardonic jokes and made a point of letting the audience know when it was not keeping its end up in the singalongs.


pages: 1,387 words: 202,295

Structure and Interpretation of Computer Programs, Second Edition by Harold Abelson, Gerald Jay Sussman, Julie Sussman

Andrew Wiles, conceptual framework, Donald Knuth, Douglas Hofstadter, Eratosthenes, functional programming, Gödel, Escher, Bach, higher-order functions, industrial robot, information retrieval, iterative process, Ivan Sutherland, Johannes Kepler, loose coupling, machine translation, Multics, probability theory / Blaise Pascal / Pierre de Fermat, Richard Stallman, Turing machine, wikimedia commons

On the other hand, processors are getting faster and a future computer may have large numbers of processors operating in parallel on a single memory, so it may be possible to use up memory much faster than we have postulated. 299 We assume here that the stack is represented as a list as described in 5.3.1, so that items on the stack are accessible via the pointer in the stack register. 300 This idea was invented and first implemented by Minsky, as part of the implementation of Lisp for the PDP-1 at the MIT Research Laboratory of Electronics. It was further developed by Fenichel and Yochelson (1969) for use in the Lisp implementation for the Multics time-sharing system. Later, Baker (1978) developed a “real-time” version of the method, which does not require the computation to stop during garbage collection. Baker’s idea was extended by Hewitt, Lieberman, and Moon (see Lieberman and Hewitt 1983) to take advantage of the fact that some structure is more volatile and other structure is more permanent.


pages: 388 words: 211,074

Pauline Frommer's London: Spend Less, See More by Jason Cochran

Bonfire of the Vanities, Boris Johnson, British Empire, congestion charging, context collapse, David Attenborough, Easter island, electricity market, Etonian, Frank Gehry, glass ceiling, Haight Ashbury, haute couture, Isaac Newton, John Snow's cholera map, Kickstarter, low cost airline, Multics, Nelson Mandela, Skype, Stephen Fry, urban planning

Some travelers are flexible enough to use alternative booking sites such as Priceline.com, where buyers name their own price for tickets and hope the airlines take them up on their offer; and Skyauction.com, which functions like eBay for tickets. Travelers who plan to head to multiple international cities on their trip should get a free quote for their entire itinerary from Airtreks (% 877/247-8735; www.airtreks.com), a travel agent that specializes in multi-city tickets. You’ll still want to compare its quote with your own fare research, though. No matter which airline you go with, prepare yourself for added taxes and fees, which are usually $450 or higher round-trip from the USA—London’s airport fees, which account for about $300 of that, are high, and gas prices don’t help.


pages: 496 words: 174,084

Masterminds of Programming: Conversations With the Creators of Major Programming Languages by Federico Biancuzzi, Shane Warden

Benevolent Dictator For Life (BDFL), business intelligence, business logic, business process, cellular automata, cloud computing, cognitive load, commoditize, complexity theory, conceptual framework, continuous integration, data acquisition, Dennis Ritchie, domain-specific language, Douglas Hofstadter, Fellow of the Royal Society, finite state, Firefox, follow your passion, Frank Gehry, functional programming, general-purpose programming language, Guido van Rossum, higher-order functions, history of Unix, HyperCard, industrial research laboratory, information retrieval, information security, iterative process, Ivan Sutherland, John von Neumann, Ken Thompson, Larry Ellison, Larry Wall, linear programming, loose coupling, machine readable, machine translation, Mars Rover, millennium bug, Multics, NP-complete, Paul Graham, performance metric, Perl 6, QWERTY keyboard, RAND corporation, randomized controlled trial, Renaissance Technologies, Ruby on Rails, Sapir-Whorf hypothesis, seminal paper, Silicon Valley, slashdot, software as a service, software patent, sorting algorithm, SQL injection, Steve Jobs, traveling salesman, Turing complete, type inference, Valgrind, Von Neumann architecture, web application

I didn’t even see my first computer until I was about a junior in college, and I didn’t really learn to program (in FORTRAN) until a year or so after that. I think that the most fun I had programming was a summer job at Project MAC at MIT in the summer of 1966, where I worked on a program that created a job tape for the brand new GE 645 in the earliest days of Multics. I was writing in MAD, which was much easier and more pleasant than the FORTRAN and COBOL that I had written earlier, and I was using CTSS, the first time-sharing system, which was infinitely easier and more pleasant than punch cards. That was the point where the puzzle-solving aspects of programming became really enjoyable, because the mechanical details didn’t get in the way nearly so much.


The Rough Guide to New York City by Martin Dunford

Anton Chekhov, Berlin Wall, Bonfire of the Vanities, Buckminster Fuller, buttonwood tree, car-free, Charles Lindbergh, Chuck Templeton: OpenTable:, clean water, colonial exploitation, colonial rule, congestion pricing, Cornelius Vanderbilt, David Sedaris, desegregation, Donald Trump, East Village, Edward Thorp, Elisha Otis, Exxon Valdez, Frank Gehry, General Motors Futurama, gentrification, glass ceiling, haute cuisine, illegal immigration, Jane Jacobs, Lewis Mumford, machine readable, market bubble, Michael Milken, Multics, Norman Mailer, paper trading, post-work, rent stabilization, retail therapy, Saturday Night Live, subprime mortgage crisis, sustainable-tourism, The Death and Life of Great American Cities, the High Line, transcontinental railway, Triangle Shirtwaist Factory, upwardly mobile, urban decay, urban planning, urban renewal, white flight, Yogi Berra, young professional

Sprawling over 30,000 square feet, and featuring a spine-tingling high-tech sound system, three floors, palm trees, and mosaic mirrors, this is the place for a big, corporate club experience, and a generally non-local clientele – expect big, sweaty crowds. Cover $30. NI GHTL I F E example, part of multi-city chains and others, such as Bungalow 8, the haunt of celebrity wannabes with a stringent door policy that favours the young, rich, and beautiful. Happily, plenty of unpretentious clubs remain, especially in the Lower East Side, though venues shift and change, opening and closing according to finances, fashion, and the enforcement of anti-drug laws.


Applied Cryptography: Protocols, Algorithms, and Source Code in C by Bruce Schneier

active measures, cellular automata, Claude Shannon: information theory, complexity theory, dark matter, Donald Davies, Donald Knuth, dumpster diving, Dutch auction, end-to-end encryption, Exxon Valdez, fault tolerance, finite state, heat death of the universe, information security, invisible hand, John von Neumann, knapsack problem, MITM: man-in-the-middle, Multics, NP-complete, OSI model, P = NP, packet switching, quantum cryptography, RAND corporation, RFC: Request For Comment, seminal paper, software patent, telemarketer, traveling salesman, Turing machine, web of trust, Zimmermann PGP

LaPadula, “Secure Computer Systems: A Mathematical Model,” Report MTR–2547, MITRE Corp., 1973. 102. D.E. Bell and L.J. LaPadula, “Secure Computer Systems: A Refinement of the Mathematical Model,” Report ESD–TR–73–278, MITRE Corp., 1974. 103. D.E. Bell and L.J. LaPadula, “Secure Computer Systems: Unified Exposition and Multics Interpretation,” Report ESD–TR–75–306, MITRE Corp., 1976. 104. M. Bellare and S. Goldwasser, “New Paradigms for Digital Signatures and Message Authentication Based on Non–Interactive Zero Knowledge Proofs,” Advances in Cryptology—CRYPTO ’89 Proceedings, Springer–Verlag, 1990, pp. 194–211. 105. M.