"A Political History of X" - Keith Packard (LCA 2020)

"A Political History of X" - Keith Packard (LCA 2020) — linux.conf.au

linux.conf.au

AI-assisted summary of "A Political History of X" - Keith Packard (LCA 2020) — original source. Check the original for full context.

Source published:

Key ideas

  • The X Window System emerged from an urgent practical debugging need at MIT and was designed as an open standard (X11) by DEC and collaborators to dismantle Sun's proprietary desktop monopoly with SunView. (2:05)
  • Mid-1980s Internet instability and TCP congestion collapses prevented distributed cross-country code syncing, forcing the centralization of X development into the pay-to-play MIT X Consortium. (21:42)
  • The permissive MIT license allowed vendors to fork closed drivers and proprietary window systems, which Packard argues duplicated engineering effort and stunted the ecosystem compared to a copyleft model like the GPL. (34:18)
  • Unix workstation vendors prioritized walled gardens and incompatible toolkits over a shared software commons, freezing core X for 15 years and allowing Microsoft Windows to conquer the application market. (44:09)

Detailed notes

## Background Published by linux.conf.au on YouTube on January 16, 2020, this presentation features veteran developer Keith Packard delivering a talk at LCA 2020 in Gold Coast, Australia. The session explores the 35-year political and organizational history of the X Window System, using it as a case study to examine the impacts of software licensing, corporate consortia, and community governance across the lifetime of the free software movement.

## TL;DR Keith Packard recounts the evolution of the X Window System from its mid-1980s academic roots at Stanford and MIT to its pivotal role as Unix workstation middleware. Created to unify a wildly fragmented proprietary ecosystem and neutralize platform dominance, X11 was backed by major vendors who centralized engineering within the paid-membership MIT X Consortium. However, permissive licensing enabled vendors to hoard graphics enhancements and fork incompatible toolkits like Motif and OPEN LOOK, freezing the core protocol for fifteen years and fracturing third-party application development. Packard reflects that this corporate wall-building and failure to embrace copyleft ultimately crippled the commercial Unix market, ceding the desktop computing ecosystem to Microsoft Windows.

## Atmosphere & style The presentation carries the warmth, humility, and candid humor of a legendary engineer reminiscing about the early computing trenches with an appreciative audience of peers. Speaking with self-deprecating wit about a talk prepared on just three days' notice, Packard balances technical nostalgia—like the physical realities of noisy VAX minicomputers and FedEx-based code collaboration—with frank, sober reflections on corporate compromises and missed warnings from figures like Richard Stallman. Watching it feels like pulling up a chair for an engaging fireside post-mortem, rich with institutional memory, wry admissions of industry missteps, and thoughtful philosophical lessons on software freedom.

## Bulletin - [02:05](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=125s) The X Window System emerged from an urgent practical debugging need at MIT and was designed as an open standard (X11) by DEC and collaborators to dismantle Sun's proprietary desktop monopoly with SunView. - [21:42](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1302s) Mid-1980s Internet instability and TCP congestion collapses prevented distributed cross-country code syncing, forcing the centralization of X development into the pay-to-play MIT X Consortium. - [34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) The permissive MIT license allowed vendors to fork closed drivers and proprietary window systems, which Packard argues duplicated engineering effort and stunted the ecosystem compared to a copyleft model like the GPL. - [44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) Unix workstation vendors prioritized walled gardens and incompatible toolkits over a shared software commons, freezing core X for 15 years and allowing Microsoft Windows to conquer the application market.

## Key takeaways - [00:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=0s) In 1984, the UNIX ecosystem was entirely proprietary and closed source, forcing developers into vendor lock-in with zero free software alternatives. - [02:05](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=125s) The introduction of dual-ported VRAM enabled viable high-resolution graphical workstations by allowing CPUs to write without conflicting with display scanout engines. - [02:05](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=125s) Bob Scheifler adapted Stanford's synchronous W Window System into the asynchronous X Window System to gain multiple terminal windows for debugging distributed Argus programs. - [05:46](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=346s) DEC's VAXstation 100 operated as a remote high-resolution terminal tethered to an office-floor minicomputer via three dedicated fiber-optic cables plugged directly into a UNIBUS card. - [08:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=498s) Workstation vendors heavily patched BSD Unix variants, fragmenting the platform so severely that compiling software across vendors required complex configuration scripts and endless compiler flags. - [18:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1098s) DEC engineers conceived X11 as an unencumbered, public sample implementation specifically to neutralize Sun Microsystems' commercial software lead with SunView. - [21:42](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1302s) Unstable transcontinental Internet links forced the X11 development team to rely on overnight FedEx shipments of magnetic backup tapes to move code between Cambridge and Silicon Valley. - [27:02](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1622s) The MIT X Consortium centralized development at Tech Square via corporate funding, but instituted a pay-to-play model that stripped voting rights from academic contributors and non-paying developers. - [28:27](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1707s) Richard Stallman regularly urged the X Consortium to adopt the GPL, an argument Packard later acknowledged as correct after observing how permissive licensing enabled proprietary vendor fragmentation. - [31:32](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1892s) Consortium-driven bureaucratic specifications like XIE and PEX failed because they were designed in vendor echo chambers without end-user or developer adoption. - [32:45](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1965s) Core X semantics were frozen for nearly fifteen years starting in 1988, preserving long-term backward compatibility at the expense of graphical evolution. - [34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) The permissive MIT license led to duplicative, isolated engineering, epitomized by Keith Packard and Joel McCormack simultaneously writing rival free and proprietary accelerated color frame buffer code. - [37:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2254s) Sun's NeWS and Adobe's Display PostScript offered superior vector rendering, but proprietary licensing and competitive hedging prevented PostScript from becoming a ubiquitous Unix standard. - [40:41](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2441s) Desktop toolkit wars between Motif and Open Look highlighted the failure of the 'mechanism, not policy' philosophy for user-facing applications, leaving Unix without a unified free toolkit. - [44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) Unix hardware vendors retreated into proprietary 'castle walls' instead of fostering a cross-platform commons, leaving an application vacuum that enabled Microsoft Windows to dominate the software market.

## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=0s) Introduction and Setting the Stage: 1984 UNIX

Keith Packard introduces the presentation as a political history of X, clarifying with a laugh that it is really a collection of tales he has told many people over the years. The talk was originally prompted by Bradley Kuhn, who encouraged Keith to submit it for CopyleftConf in Brussels. Because Keith wasn't planning on traveling to Brussels, he instead submitted it to linux.conf.au. It was accepted late in the schedule to fill a slot opened by an attendee cancellation, leaving Keith with only about three days to prepare rather than his usual two months. Keith prefaces his remarks with an explicit disclaimer: these are solely his personal opinions and memories from across thirty-five years of working on X, not the stance of his employer, and he invites veterans in the audience to raise their hands and correct him if memory has rewritten the facts.

Turning to the audience, Keith asks who was already using UNIX in or before 1984, noting that very few hands go up. He stresses that the computing ecosystem of that period was fundamentally different from today: > “For the rest of you, UNIX in 1984 was an entirely a closed source proprietary environment. There were no free software UNIXes in 1984.”

Universities had access through academic licensing granted by AT&T, which allowed students to learn and experiment on the systems, while corporations eventually acquired licenses to build commercial products. However, proprietary lock-in was absolute: compilers, operating systems, and graphics subsystems were all locked under restrictive licenses, leaving developers stranded in what Keith terms a “land of copyright hell.”

- The talk was assembled in roughly three days as a late replacement at LCA 2020 after being conceived for CopyleftConf. - Keith notes that after 35 years, human memory inevitably rewrites stories, and welcomes corrections from those who lived through it. - In 1984, free software alternatives did not exist in the UNIX space; every layer of the stack was proprietary.

---

[02:05](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=125s) Hardware Constraints and Stanford Origins: V and W

Explaining why graphics were so crude in the early 1980s, Keith points to hardware memory architecture. Before the invention of VRAM (dual-ported RAM), building a competent frame buffer was effectively impossible. Single-ported RAM forced the CPU and the display scanout engine to fight for memory access, preventing high-resolution monochrome or color displays. Once VRAM arrived—allowing the CPU to write to one port while the display controller continuously scanned out from the second—modern graphical workstations became viable.

Around that time at Stanford University, students Paul Rexache and Brian Reid were working on the V-System (V Kernel), an experimental distributed microkernel operating system developed under Professor David Cheriton. V used direct Ethernet frame message-passing rather than TCP/IP because Ethernet was fast and lightweight. Because V was designed from the ground up as a distributed system built on synchronous Remote Procedure Calls (RPC), it made no sense to tie graphics to a purely local framebuffer. They created the V Graphics Terminal System (VGTS), which evolved into the W Window System. Because the underlying operating system was inherently networked, W became a network-transparent window system.

```mermaid flowchart LR accTitle: Evolution of Early Networked Window Systems accDescr: Diagram tracing the technical progression from Stanford's V Kernel and VGTS into W, and Bob Scheifler's subsequent rewrite into the asynchronous X Window System at MIT.

subgraph Stanford["Stanford University"] V["V Kernel<br>(Distributed Microkernel, Sync RPC)"] VGTS["VGTS Terminal Program"] W["W Window System<br>(Synchronous RPC)"] V --> VGTS --> W end

subgraph MIT["MIT Laboratory for Computer Science"] Argus["Argus Distributed System<br>(Bob Scheifler / Barbara Liskov)"] X["X Window System<br>(Asynchronous RPC)"] W -->|"Ported to VAXstation 100 & rewritten"| X Argus -.->|"Need for multi-window debugging"| X end ```

The W Window System was eventually ported to the DEC VAXstation 100 (VS100) at Stanford. Even though V and W were proprietary, the Stanford researchers shared the code with friends at the MIT Laboratory for Computer Science (LCS). Bob Scheifler was an MIT master's student working under Barbara Liskov on Argus, a distributed, multithreaded programming environment written in the CLU language. Scheifler ran into a practical bottleneck: terminal debuggers like dbx could inspect only one thread or program at a time. To debug distributed Argus programs properly, he needed multiple terminal sessions on screen at once. Rather than writing a display system from scratch, Scheifler ported Stanford's W code to UNIX on the VS100. Finding that V's synchronous RPC protocol performed terribly over UNIX network connections, Scheifler spent a couple of weeks replacing the synchronous protocol with a fully asynchronous stream protocol. Moving sequentially past "W" in the alphabet, the project became "X."

- The 1984 Apple Macintosh featured a 512×342 monochrome display, reflecting the strict hardware constraints of the era. - VRAM allowed high-resolution workstations by decoupling CPU writes from display scanout via dual ports. - The V Kernel communicated directly over raw Ethernet frames rather than TCP or IP stacks. - Bob Scheifler’s original motivation for hacking on W was simply to get multiple debugging windows for his master's work on Argus. - As Keith jokingly observes regarding the name: “So you choose the first metasyntactic variable name for your window system and you think people are gonna think you are the smartest naming person ever.”

---

[05:46](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=346s) The DEC VAXstation 100 Hardware

Keith describes the physical realities of the DEC VAXstation 100 (VS100) graphics terminal, showing a slide photograph (and noting that image copyright clearances for old hardware photos are notoriously hard to find). In that era, the main compute engine was typically a departmental minicomputer like a DEC VAX-11/750. A VAX-11/750 consisted of two 19-inch equipment racks roughly four feet tall, cooled by four to six loud, eight-inch squirrel-cage blowers—a loud piece of machinery that could never sit inside someone’s actual office.

To give developers a high-resolution graphical workstation at their desk, Digital Equipment Corporation built the VS100 as an intelligent remote terminal: > “All of a sudden I have a workstation: I can run the optical fiber a long distance, I can actually have the VAX up on the seventh floor... run the optical fiber down the plenums—because MIT was extremely plenum friendly—and run the optical fibers into my floor under Bob's office on the fifth floor, so you could actually have this computer terminal, which is a full speed UNIX workstation sitting in your office.”

The VS100 terminal sat on a desk, powered by an internal Motorola 68000 processor running roughly 128 KB of dual-ported VRAM to drive a high-resolution monochrome monitor at 60 Hz. The display resolution was over 1,000 pixels wide (approximately 1024×800 or 1088×864). It connected to the distant VAX backplane via three fiber-optic cables plugged into a large UNIBUS card in the VAX chassis. Keith points out the irony that the 68000 processor inside the "dumb terminal" on the desk was often faster than the shared VAX minicomputer down the hall.

- The VAX-11/750 required dedicated machine-room space due to its massive dual-rack enclosure and high-powered squirrel-cage cooling blowers. - The VS100 used three optical fiber lines to link the office desktop terminal directly to the UNIBUS backplane floors away. - The terminal featured a high-resolution monochrome display, a keyboard, a mouse, and dedicated 68000 hardware running the display firmware.

---

[08:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=498s) The Fragmented Workstation Market and Vendor Divergence

By the mid-1980s, workstation companies were competing aggressively. Every major vendor took the Berkeley Software Distribution (starting from 4.1BSD, 4.2BSD, or 4.2BSD-Tahoe/4.2c) under AT&T and UC Berkeley licenses, and heavily patched the source tree to add custom features. Each company was convinced that its proprietary variant would crush all competitors and dominate the workstation market.

Because every vendor introduced incompatible system calls, header structures, and library quirks, developing cross-platform software became a nightmare. It was during this era that Larry Wall wrote the original `Configure` shell script (which later inspired GNU Autoconf). Keith highlights the famous, cynical line that Larry Wall's script printed when detecting the system: > “This was the best thing it could say: 'Congratulations, you're not running Eunice.'”

(Eunice was a UNIX compatibility emulation layer running on DEC's proprietary VAX/VMS). Outside of avoiding Eunice, developers had to rely on thousands of conditional compiler flags (`#define`) to make code build across competing BSD derivatives. Keith stresses that while code could be ported if developers were willing to constantly recompile and debug configuration flags, a true commercial binary software market remained impossible without common standards.

Keith shows two examples of the hardware from that era: 1. **The DEC VAXstation II:** A heavy, double-wide cabinet sitting on casters designed to roll under a desk, equipped with an 8-bit accelerated color display around 1986–1987. 2. **The Sun 3/60:** A popular competing machine from Sun Microsystems based on a commodity Motorola 68020 microprocessor, setting the stage for the architecture battles among mid-1980s workstation platforms.

[10:52](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=652s) Hardware Quirks: Dumb Frame Buffers vs. Early Accelerators

Keith Packard contrasts the architectural designs of mid-1980s workstation hardware, comparing the Motorola 68020-based systems with Digital Equipment Corporation's (DEC) VAXstation II/GPX. The 68020 setups relied on a simple, "dumb" frame buffer where the central CPU drew every pixel directly on the screen. In contrast, the VAXstation II featured a proprietary VAX microcontroller wired to a specialized graphics accelerator. Because the CPU was barred from touching the frame buffer directly and had to route everything through the accelerator, “that kind of sucked actually turned out to be worse than the dumb frame buffer in so many ways.”

Packard also recalls the optical mouse that came with the VAXstation. While having an optical mouse in 1986 sounded advanced, the sensor was primitive and incapable of tracking motion across standard desk surfaces:

```mermaid flowchart TD accTitle: Mid-1980s Workstation Hardware Comparison accDescr: Contrasting 68020 dumb frame buffers with VAXstation II accelerated graphics and optical input requirements.

subgraph Motorola["Motorola 68020 Workstation"] CPU1["68020 CPU"] -->|"Direct pixel access"| FB1["Dumb Frame Buffer"] MouseBall["Mechanical Ball Mouse"] -->|"Prone to desk goo & dirt"| CPU1 end

subgraph VAX["DEC VAXstation II / GPX"] CPU2["Proprietary VAX CPU"] -->|"Interacts via bus"| Accel["Graphics Accelerator"] Accel -->|"Draws to display (no direct CPU access)"| FB2["Frame Buffer"] GridPad["Custom Grid Mousepad"] -->|"Required for tracking"| OpticalMouse["Early Optical Mouse"] OpticalMouse --> CPU2 end ```

- **Custom optical mousepad:** The mouse required an engineered metallic grid mousepad to detect movement, as it could not track regular desktop surfaces. - **Reliability trade-off:** Despite the mousepad constraint, the optical design avoided the grime and physical desk goo that plagued traditional mechanical ball mice.

---

[12:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=720s) The 1985–1986 Unix Workstation Landscape

In the mid-1980s, workstation manufacturers offered strictly proprietary windowing environments, trapping third-party developers in walled gardens. For Packard, the gold standard at the time was Sun Microsystems’ SunView, which he encountered as an undergraduate around 1985. SunView drove a high-resolution megapixel display (1152×900) capable of running multiple terminal emulators, rich desktop widgets, and full GUI applications. However, SunView was implemented directly inside the SunOS Unix kernel: drawing a single primitive like a rectangle required an expensive system call context switch into kernel space and back, though this architecture did enforce memory isolation between competing client windows.

Other competitors offered equally isolated solutions: - **Digital Equipment Corporation (DEC):** Shipped VWS (VAX Windowing System, or UIS—User Interface Services), which was restricted solely to the VMS operating system. - **Apollo Computer:** Offered the Domain system, an idiosyncratic, network-distributed OS running a custom window system on unique planar display hardware. On an 8-bit display, Apollo separated video memory into eight distinct 1-bit planes; drawing a colored line required rendering across each plane sequentially, producing a visible cascade where colors morphed into place. - **Tektronix:** Packard's employer during this era repeatedly attempted to enter the Unix workstation arena. Tektronix made four separate entries and exits from the workstation market, crippled in part by selecting buggy National Semiconductor 32016 and 32032 processors instead of Motorola 68000 chips. While Tektronix managed to deliver notable Smalltalk graphics workstations, their management continuously misread the commercial Unix market.

---

[14:58](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=898s) Two Weeks of Hacking: The Evolution from X1 to X10

The core architecture of the X Window System traces its heritage back to a rapid prototyping effort by Bob Scheifler at MIT. “Bob Scheifler developed the early X Window System in about two weeks,” Packard remarks, placing it in the lineage of seminal tools like Perl, Python, Tcl, and JavaScript that emerged from brief bursts of ad-hoc engineering only to anchor computing infrastructure decades later.

Early iterations followed an evolutionary path: - **X1 through X6:** Kept as internal research prototypes at MIT under closed institutional arrangements, though shared informally with peer researchers at CMU, Stanford, and UC Berkeley. - **X7, X8, and X9:** Incremental refinements. X8 was a reserved version, while X9 introduced the permissive MIT License model. - **X10:** The first version approaching production utility. It introduced rudimentary color support alongside monochrome, running across IBM PC RTs, Sun-3/60s, DEC VAXstations, and surplus Tektronix units Packard had retrieved for his basement.

```mermaid flowchart LR accTitle: X Window System Early Version Trajectory accDescr: Progression from MIT internal versions X1-X6 up to the community-adopted X10.

X1_X6["X1 – X6 (MIT Internal)<br/>Closed institutional research"] --> X7_X9["X7 – X9<br/>Protocol refinements; MIT license adopted"] X7_X9 --> X10["X10 (1985–1986)<br/>Multi-vendor ports & binary driver blobs"] X10 --> X11Plan["X11 Consortium Proposal<br/>Universal open standard"] ```

The licensing model was open, yet real-world software distribution was fraught with proprietary entanglements. The MIT License was seen by Packard’s Berkeley peers as a “copy center license—take it and do whatever you want with it.” Consequently, early X10 archives were not entirely free software: - DEC’s monochrome and color display drivers were distributed as closed binary blobs. - Sun-3/60 ports acted as wrappers over the kernel-level SunView subsystem. - Only the IBM PC RT display port was open source, built by Carnegie Mellon University students while developing the Andrew Project. Because CMU had student labor and no motivation to hide the code, they simply distributed the raw C source.

---

[18:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1098s) The Limits of X10 and DEC's Market Reset Gambit

When Keith Packard began targeting the VAXstation II/GPX in 1986 while developing a C compiler and development environment, the operational warts of X10 became acute. X10 established an external window manager model where an independent client handled moving, resizing, and iconifying windows. However, X10 provided no mechanism for window managers to decorate client frames with title bars or control borders. To manage windows under `uwm` (Ultrix Window Manager), users relied on combinations of chorded keystrokes and pointer clicks, such as holding the left mouse button to translate or the right button to resize.

| Workstation / System | Windowing Solution | Architecture / Limitations | |:--- |:--- |:--- | | **Sun Microsystems** | SunView | Integrated in Unix kernel; required context switches; tied strictly to Sun hardware. | | **DEC VAXstation** | VWS / UIS (VMS), X10 (Ultrix) | Early Unix ports used binary-only display server drivers; GPX acceleration was awkward. | | **Apollo Domain** | Domain Window System | Proprietary networked environment; unique 8-plane frame buffer required sequential plane writes. | | **MIT X10** | `uwm` (Ultrix Window Manager) | No protocol support for window decorations; primitive line/circle math; fragmented driver code. |

Recognizing that Sun was running away with the Unix workstation market thanks to commercial software adoption—notably desktop publishing titles like FrameMaker and Interleaf running exclusively on SunView—competing vendors faced a cold reality. Competing hardware companies could not persuade commercial ISVs to port software to half a dozen proprietary window systems.

To neutralize Sun's platform advantage, Jim Gettys and Smokey Wallace at DEC’s Western Research Laboratory (WRL) conceived an audacious strategy: develop X11 as an open standard, build a vendor-neutral sample implementation written by DEC engineers and institutional collaborators, and release it completely unencumbered to the public. As Packard summarizes their reasoning: “all of a sudden the standard window system for UNIX will become X and not Sun View and all other vendors—Sun's advantage in the market of having a platform to ship software on will evaporate.”

[21:42](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1302s) The Birth of X11 and the Failure of the 1980s Internet

Remarkably, the proposal to create a standardized network window system succeeded: Digital Equipment Corporation (DEC) management bought into the plan, and Sun Microsystems was brought on board as well. A team at Digital's Western Research Laboratory (WRL) was assigned to write the initial X11 implementation. Unlike an incremental update, X11 started from a blank sheet of paper and inherited essentially no code from X10. However, it did inherit a few questionable concepts. Packard cites window borders—a constant-width region around a window to separate it from others on screen—as a prime example. While X11 introduced external window managers capable of drawing their own window decorations, the protocol retained built-in borders simply because legacy X10 applications might expect them.

The protocol design was hammered out between 1986 and 1987 in a cross-organizational collaboration involving DEC, MIT, Sun, HP, and researchers from Carnegie Mellon University (CMU). However, collaborating across the continent proved near-impossible over the mid-1980s Internet. Development was split between Cambridge, Massachusetts, and Silicon Valley in California. Even though the codebase was tiny—only a couple of megabytes—the network suffered constant timeouts and failures, making it impossible to synchronize repositories overnight. Consequently, progress relied on physical courier logistics: “No, no, no, X11 development was basically FedEx based.” Van Jacobson and Dave Clark had not yet solved the TCP congestion collapse problems plaguing the network, forcing the team to rely on tapes shipped by air rather than remote digital collaboration.

- X11 shared protocol ideas with X10 but discarded its codebase completely. - Constant-width window borders were retained in the protocol despite the advent of decorating window managers. - In 1986–1987, transcontinental code transfers of even 2–3 MB routinely collapsed due to Internet instability. - The logistical workaround relied on overnight FedEx shipments of magnetic backup tapes between East and West Coast teams.

[24:16](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1456s) Centralizing Development: The MIT X Consortium at Tech Square

Because distributed development over the network had broken down, the project shifted strategies entirely. Instead of attempting to fix the wide-area Internet, the decision was made to abandon distributed development and concentrate all paid engineering locally at MIT by creating an industry consortium. Major Unix workstation vendors pooled significant sums of cash to fund full-time staff on-site. Keith Packard was hired alongside his close friend Jim Fulton, joining Bob Scheifler on the second floor of the MIT Laboratory for Computer Science at 545 Technology Square.

Tech Square was hallowed ground for computing history. It was the birthplace of Project MAC, the MULTICS operating system (the direct ancestor of Unix), and early AI labs filled with Symbolics Lisp machines. The massive ceiling cable trays were packed with every generation of networking wire ever installed—from thicknet to thinnet—because pulling decommissioned cables out was far too labor-intensive. Packard was given an account on ITS (the Incompatible Timesharing System) on a DEC PDP-10, as well as an account on a host that held an original, un-subnetted Net 10 address. This early brush with history is the reason Packard jokes that he still configures his home network to use `10.0.0.0/8` rather than the conventional `192.168.0.0/16`.

```mermaid flowchart TD accTitle: The MIT X Consortium Centralization accDescr: Diagram showing how workstation vendors pooled money to fund in-person developers at MIT instead of distributed Internet development.

subgraph Vendors["Corporate Funding"] DEC["Digital (DEC)"] SUN["Sun Microsystems"] HP["Hewlett-Packard"] OTH["Other Workstation Vendors"] end

subgraph MIT["MIT X Consortium (545 Tech Square)"] Pool[("Pooled Consortium Cash")] Staff["Centralized In-House Engineering<br/>(Bob Scheifler, Keith Packard, Jim Fulton)"] end

DEC --> Pool SUN --> Pool HP --> Pool OTH --> Pool Pool --> Staff ```

[27:02](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1622s) "Pay to Play": Corporate Control and the Loss of Academic Collaboration

The creation of the MIT X Consortium marked an abrupt structural transition from an open, multi-university commons into a strict "pay-to-play" model. Initially backed by 10 to 15 corporate members, the roster quickly expanded to around 50 vendors, amassing an enormous budget. But this institutional wealth carried profound consequences: only paying members were granted voting rights on standards. Once workstation corporations realized that paying MIT meant MIT engineers would do the heavy lifting, vendor companies laid off their own internal shared-code developers, drying up distributed contributions.

Simultaneously, the academic and hacker communities that had incubated X were disenfranchised. Non-paying universities had no say in technical standards and were largely sidelined. Packard recalls visiting Carnegie Mellon University around 1989 to see the Andrew Project—an ambitious campus-wide distributed system built on X11: “It was fun, and we chatted with them a while, and then we went home, and that was the last we talked with these people, because again, they weren't members; they had no actual say in what I was supposed to do.” As an employee whose paycheck was directly covered by consortium revenue, Packard found his own daily priorities compromised:

> “It turns out when somebody controls my paycheck, I too can be turned to the dark side.”

- Paying member corporations obtained exclusive voting privileges on standard proposals. - Workstation vendors stopped spending internal research budgets on shared community graphics code. - Collaboration with universities, such as CMU's Andrew Toolkit team, largely evaporated because universities lacked paid memberships. - Packard reflects that despite his radical college background—attending an institution whose tongue-in-cheek motto was "Atheism, Communism, Free Love"—he prioritized answering emails from the corporate sponsors who underwrote his salary over non-member inquiries.

[28:27](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1707s) Richard Stallman, the GPL, and Vendor Misalignment

The mid-1980s also marked the emergence of copyleft. In 1985–1986, Packard had already released code under early drafts of the General Public License before version numbering or the GNU Project had fully stabilized. Up on the sixth floor of 545 Tech Square lived Richard Stallman, who had an office in the building and essentially lived there without a separate apartment. Stallman regularly came down to the second-floor X Consortium offices to challenge the team and rail against their refusal to license X under the GPL. Stallman's interpersonal intensity alienated the team at the time, leading them to disregard his advice: “We should have listened to him then, but we did not, because we knew him too well, I guess... and he really was right, we need to remember that.”

Furthermore, the workstation vendors funding the consortium had no philosophical devotion to software freedom. To them, the X Window System was the single anomaly of free software within completely proprietary product lines consisting of closed compilers, closed Unix kernels, and proprietary desktop utilities. Every vendor was locked in a brutal race to develop a hardware and OS combination so dominant that all competitors would go bankrupt. While Sun Microsystems came close to achieving total workstation hegemony, the corporate backers viewed X solely as commoditized middleware to share costs—not as a social mission to liberate users.

[31:32](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1892s) Standards Without Users: The Era of Bureaucratic Extensions

Because voting rights and participation in the MIT X Consortium were restricted to workstation vendors, the standards design process operated in an insular echo chamber. Missing from the table were independent application developers, everyday end-users, and academic researchers who understood where high-performance graphics was actually heading. Instead, a corporate delegate would pitch an elaborate concept, the consortium would spend years grinding out a political consensus, and a sprawling specification would eventually be ratified.

The result was a collection of over-engineered, heavily standardized extensions that virtually nobody in the wider software world actually adopted. Packard notes two notorious initiatives: 1. **XIE (X Imaging Extension):** A wildly complex system intended to transfer, process, and render image data over network streams. 2. **PEX (PHIGS Extension to X):** An extension designed to implement PHIGS (Programmer's Hierarchical Interactive Graphics System) in X.

Industry consortiums of that era were convinced that standard committee designs would inevitably defeat individual corporate innovations. PEX was promoted as the consortium-backed "GL killer" intended to destroy Silicon Graphics' proprietary GL language. Packard spent significant time implementing the PEX reference platform, yet both PEX and PHIGS ultimately collapsed into irrelevance when the broader developer industry decisively rejected them in favor of Silicon Graphics' technology, which evolved into OpenGL.

[32:45](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1965s) The 15-Year Freeze of the Core X Window System

Keith Packard explains that an early effort to create a low-bandwidth version of X failed to solve the real architectural bottleneck: low bandwidth was never the true issue; rather, high latency was the killer, and that initiative left latency untouched. Around the same time, X Input version 1 appeared, which Packard characterizes as an awkward bolt-on; only much later did Peter Hutterer write X Input version 2 as a complete and genuinely usable rewrite. During this late-1980s period, workstation vendors were fiercely competing to differentiate themselves and had zero interest in expanding the common baseline of functionality. Consequently, the moment X11 Release 1 shipped, the core protocol was essentially frozen in time.

```mermaid flowchart TD accTitle: Freeze of the X Window System accDescr: Diagram illustrating how workstation vendor competition led to freezing X11 semantics for 15 years while PC and Mac window systems advanced. subgraph MarketDynamics["Vendor Incentives"] V["Workstation Vendors<br>(DEC, Sun, HP, IBM)"] -->|"Compete via differentiation"| F["Refuse to expand<br>shared core standard"] end subgraph ProtocolStatus["Protocol Evolution"] F --> FR["Core X11 Frozen<br>(1988–2000)"] FR --> P["Benefit: Pristine binary compatibility<br>(1985 apps run in 2020)"] FR --> S["Drawback: Stagnant rendering model<br>(Overtaken by PC and Mac)"] end ```

Between 1988 and nearly the year 2000—a span of roughly fifteen years—the standard semantic definition of core X remained completely unaltered. While this ensured backwards compatibility, allowing programs written in 1985 or 1986 to run without issue on modern X servers, it crippled technical evolution. As Packard laments:

> “And as a result, X, which started way ahead of the PC window system, the Mac window system, and all these other proprietary window systems, it stopped. It stopped in 1988; it never got any better, and as a result, other things changed.”

- High latency, rather than raw bandwidth limitations, caused network performance bottlenecks in X. - X Input version 1 was an awkward bolt-on, later completely rewritten by Peter Hutterer as version 2. - The core protocol stayed frozen for roughly 15 years to protect backward compatibility across vendor hardware.

---

[34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) RISC Workstations, the DECstation 3100, and the CFB Duplication

As the Unix workstation market accelerated, the flowering of RISC processor architectures—including MIPS and SPARC—shook up traditional hardware lines. Digital Equipment Corporation (DEC) had spent years manufacturing its proprietary VAX processors in-house, watching them get marginally faster year by year. DEC responded to the RISC revolution by releasing the DECstation 3100, their first MIPS-based computer. Running a 16 MHz processor with a 60-nanosecond clock cycle, it was four to five times faster than existing VAXstations. DEC concluded that the CPU was powerful enough to dispense with dedicated graphics acceleration hardware entirely, opting instead for a simple, dumb frame buffer paired with VRAM and a scan-out engine, mirroring Sun's strategy with the Sun 3/60 and SPARCstation.

The problem lay in the software: the existing X Window System color frame buffer code for 8-bit displays was primitive and performed terribly. Instead of pooling resources with the MIT X Consortium to engineer a shared solution, Joel McCormack at DEC wrote proprietary, accelerated color frame buffer routines to give DEC hardware a commercial edge. Packard refused to accept proprietary superiority, sparking an intense six-month duel: McCormack wrote proprietary code for DEC's operating system, while Packard wrote a competing free implementation under the MIT license. The resulting codebase was the notorious `cfb` (color frame buffer) code. Keith jokes about the result:

> “How many of you have seen the color frame buffer code? Yeah, the C preprocessor is an evil tool.”

Packard's code ended up faster, though he admits taking optimizations he probably shouldn't have taken. Reflecting on the wasted effort, he observes:

> “If the X server had been released under the GPL license, we would have collaborated, right? We'd been forced to collaborate, because that's what the license does, and I'm pretty sure the result would have been better than what we came up with either individually.”

Because the MIT license allowed proprietary branching, McCormack could not share his work, Packard could not inspect it, and both engineers ended up duplicating effort in isolation.

---

[37:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2254s) NeWS, Display PostScript, and Fractured Rendering Models

During this same era, Sun Microsystems developed the NeWS (Network Extensible Window System), architected by James Gosling (who had earlier written Gosling Emacs, or "Gosmacs", floppy disks of which are still owned by Packard's friend Bdale Garbee) and David Rosenthal. NeWS possessed an enormous architectural advantage over X: it incorporated PostScript directly as its rendering engine. Developed by Adobe alongside professional graphics experts, PostScript provided a coherent, sophisticated page description language that could render and rasterize vector shapes far better than X ever could.

```mermaid flowchart TD accTitle: Fragmentation of PostScript in Unix Windowing accDescr: Shows how Sun NeWS and Adobe Display PostScript fractured the workstation market without establishing a universal standard. subgraph SunApproach["Sun Microsystems"] N["NeWS Engine<br>(PostScript rendering)"] X["X11 Engine"] N & X --> M["Merged X11/NeWS Server<br>(Closed source / In-server WM)"] end subgraph AdobeApproach["Adobe DPS"] DPS["Display PostScript<br>(Binary blobs sold to DEC, HP, IBM)"] NEXT["NeXTSTEP GUI"] DPS --> NEXT end M -.->|"Market fragmentation"| APP["Commercial App Developers<br>(Cannot rely on PostScript; abandon both)"] DPS -.->|"No ubiquitous platform"| APP ```

However, Sun had committed to supporting X as an industry standard while simultaneously believing NeWS was technologically superior. Sun's response was an ambitious, complicated plan: merge the X11 and NeWS servers into a single, closed-source codebase. In NeWS, the window manager ran directly inside the window server process, forcing the combined hybrid server to act as an internal X window manager as well. Sun kept this server proprietary as a competitive differentiator, relying heavily on "steaming piles of the X Window System sample implementation" without opening the derivative code back up to the community.

Concurrently, Adobe marketed Display PostScript (DPS). DPS powered the NeXTSTEP windowing system and was licensed as proprietary binary blobs to Unix workstation vendors like DEC, HP, and potentially IBM to incorporate into their X servers. However, because DPS remained an expensive, non-standard proprietary option across competing vendors, software developers could never assume its presence across the target market:

> “So, here we are, crushing the market because people want to have a proprietary advantage; we have no way of developing applications—again, if X had been developed under the GPL.”

Ultimately, no major commercial software ecosystem grew around Display PostScript on Unix, stifling the adoption of advanced 2D graphics across the Unix landscape.

---

[40:41](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2441s) The Desktop Toolkit Crisis: Athena, SunView, Motif, and Open Look

The lack of strong copyleft licensing fractured the user-facing desktop just as thoroughly as it crippled the rendering engines. While proprietary platforms offered polished interfaces, the baseline free Unix desktop was limited to twm (Tab Window Manager) coupled with the bare-bones MIT Athena Widget Set (`Xaw`). Sun shipped SunView, which offered a humane, usable, and cohesive environment. Motif and the Common Desktop Environment (CDE) soon emerged, introducing the visual innovation of using three distinct shades of gray on buttons to simulate a raised or depressed 3D appearance—a visual trick that SunView subsequently adopted.

| Desktop / Toolkit | Licensing Model | Base Tech Stack | Key Architectural / UI Characteristics | |:--- |:--- |:--- |:--- | | **Athena Widgets (`Xaw`)** | Free / Permissive (MIT) | X Toolkit Intrinsics (`Xt`) | Bare-bones visuals; lacked modern UI widgets; primitive styling. | | **SunView** | Proprietary (Sun) | Kernel / Sun-specific | Humane, cohesive interface; early adopter of 2D/3D shading. | | **Motif / CDE** | Proprietary (OSF) | X Toolkit Intrinsics (`Xt`) | Pioneered 3-shade pseudo-3D bevels for pressed button states. | | **Open Look** | Proprietary (Sun / AT&T) | Built on `Xt` (or XView) | Alternate competing standard; mutually incompatible with Motif. |

Both Motif and the various implementations of Open Look were closed-source, leaving the Unix ecosystem without any standard, high-quality, free software graphical toolkit. This drove third-party application developers to frustration: after arriving hoping to target a standard windowing system, they discovered that every hardware vendor mandated an incompatible, proprietary UI toolkit.

Even though Motif and certain Open Look implementations shared the lower-level MIT X Toolkit Intrinsics (`Xt`) library, their policy choices were entirely incompatible:

> “The free one was called the Athena widgets; you saw what that one looked like. There was an implementation of Open Look based on the same underlying toolkit, the X Toolkit, as Motif. But the way that Xt worked with Open Look and the way that it worked with Motif was essentially completely different. You couldn't mix and match bits of an Open Look app and bits of a Motif app; you had to either go all-in Motif or all-in Open Look.”

This architectural failure undermined the core philosophy of X, which famously touted "mechanism, not policy"—the principle that the window system should never dictate visual style or behavioral rules. In application toolkits, policy is mandatory. Attempting to preserve neutrality, `Xt` attempted to facilitate every conceivable policy within its framework, producing an overly complex library that failed to deliver a unified desktop experience.

[43:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2614s) The OPEN LOOK Toolkit Trap and Xt

Keith Packard recounts the tangled history of OPEN LOOK implementations, highlighting how vendor pressures compromised software architecture. Sun Microsystems originally ran SunView, a proprietary windowing system with its own programming interface. When transitioning toward X, Sun repurposed that existing API into an X toolkit called XView. However, customers began pushing back, demanding adherence to the official standard X toolkit architecture. In response, Sun and AT&T developed an alternate implementation on top of the X Toolkit Intrinsics (Xt), known as OLIT.

Packard laments that this concession produced an inferior developer experience. Forcing the OPEN LOOK specifications into Xt’s architecture required massive engineering effort just to yield a clunkier, less efficient framework. Combined with the competing Motif toolkit pushed by the Open Software Foundation, the Unix workstation ecosystem fragmented into incompatible camps, leaving application developers caught in the crossfire of corporate posturing rather than benefiting from a coherent, shared standard. Evaluating this compromise, Keith Packard remarks: “Sun and AT&T I believe spent an enormous amount of time creating a worse toolkit in terms of application development because they were forced to implement on top of Xt—yeah, not a great idea.”

- **SunView to XView transition:** Sun converted its proprietary SunView API into XView so legacy applications could migrate over to the X Window System. - **Customer push for standardization:** Corporate customers demanded an Xt-compliant implementation, prompting Sun and AT&T to build an Xt-based OPEN LOOK toolkit. - **Architectural compromise:** Layering the toolkit over Xt created significant development overhead and produced a demonstrably worse environment for application developers.

```mermaid flowchart TD accTitle: Evolution of Sun Graphical Toolkits accDescr: Chart showing Sun's progression from proprietary SunView to XView and the Xt-based OPEN LOOK implementation.

subgraph Proprietary ["Proprietary Era"] SV["SunView API"] end

subgraph X11 ["X11 Migration"] XV["XView Toolkit<br>(SunView API on X)"] XT["Xt-based OPEN LOOK<br>(Built with AT&T for Xt standard)"] end

SV -->|"reimplemented for X"| XV XV -->|"customer pressure for Xt"| XT ```

[44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) Walled Castles and the Decade of Windows

By 1992 and 1993, active development on X ground almost to a halt as the broader commercial Unix market suffered a dramatic collapse. Packard argues that this collapse was entirely self-inflicted by the workstation vendors. Rather than pooling resources into a common platform that guaranteed binary and source portability across hardware lines, every vendor attempted to lock customers into proprietary extensions and incompatible desktop environments. Packard uses the metaphor of feudal lords retreating into isolated fortresses, oblivious to the external forces mounting against them.

Summarizing the strategic blunder of the Unix vendors, Keith Packard observes: “All of them, instead of building a commons where they could collaborate and build systems that would actually allow application portability and cross-vendor development, and instead of working together they decided to build their castle walls taller, hide inside, and eventually the roving hordes outside overran the castles, and we got to the decade of Windows.” The vacuum left by Unix infighting was swiftly filled by Microsoft Windows. For software developers, Windows offered a single stable target where software could be compiled once and delivered universally to users. Reflecting on that decisive shift, Packard quips: “Windows took over because you could actually develop applications on Windows and ship them to all of your customers—it turned out to be important, who knew?” Concluding the presentation, the session chair notes there is no remaining time for formal audience questions, inviting attendees to follow up with Packard in the hallway as the room breaks into applause.

- **Stagnation of X (1992–1993):** Upstream progress slowed substantially as the underlying commercial Unix market contracted under vendor friction. - **The "Castle Wall" mentality:** Unix manufacturers prioritized vendor lock-in and differentiation over cross-platform application compatibility and shared commons. - **The rise of Microsoft Windows:** The market embraced the "decade of Windows" because independent software developers could reliably ship applications across an entire consumer and enterprise customer base without rebuilding for competing vendor silos.

## Notable quotes > [44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) Windows took over because you could actually develop applications on Windows and ship them to all of your customers — Keith Packard

> [27:02](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1622s) It turns out when somebody controls my paycheck, I too can be turned to the dark side. — Keith Packard

## Mentioned Keith Packard, Bob Scheifler, Bradley Kuhn, Paul Rexache, Brian Reid, David Cheriton, Barbara Liskov, Larry Wall, Jim Gettys, Smokey Wallace, Jim Fulton, Van Jacobson, Dave Clark, Richard Stallman, Peter Hutterer, Joel McCormack, James Gosling, David Rosenthal, Bdale Garbee, MIT, Stanford University, Carnegie Mellon University, UC Berkeley, Digital Equipment Corporation, Sun Microsystems, Hewlett-Packard, Apollo Computer, Tektronix, IBM, Silicon Graphics, Adobe, AT&T, Open Software Foundation, Microsoft, X Window System, X11, X10, V-System, W Window System, VGTS, Argus, CLU, VAXstation 100, VAX-11/750, VAXstation II, Sun 3/60, DECstation 3100, SunView, SunOS, Domain, Andrew Project, NeWS, Display PostScript, NeXTSTEP, Athena Widgets, Motif, Common Desktop Environment, OPEN LOOK, XView, OLIT, X Toolkit Intrinsics, OpenGL, PEX, XIE, uwm, twm, Microsoft Windows

## Video description Keith Packard

https://lca2020.linux.org.au/schedule/presentation/186/

Stretching back over 35 years, the X Window System is one of the oldest surviving free software projects. Having its origins before the invention of the GPL, the history of X offers a slice through the whole lifetime of the software freedom movement. Using X as a lens, we can study the causes and effects of licensing, community and corporations in the world of free software.

This presentation will describe the origins of X, a discussion about the influences and interactions with the major Unix workstation vendors and early interactions with the Free Software Foundation. Also included will be a description of how internet performance bottlenecks in the mid 80s drove structural and governance changes in X that haunt the larger software ecosystem to the current day. Finally, a discussion on how software licensing choices drive community structure and affect corporate engagement will be included.

linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see https://linux.conf.au/

Produced by NDV: https://youtube.com/channel/UCQ7dFBzZGlBvtU2hCecsBBg?sub_confirmation=1

#linux.conf.au #linux #foss #opensource

Thu Jan 16 13:30:00 2020 at Room 8

[Source](https://www.youtube.com/watch?v=cj02_UeUnGQ)

中文简报

《X 的政治史》——Keith Packard(LCA 2020) Keith Packard 回顾了 X Window System 的演进历程:从 1980 年代中期在斯坦福和麻省理工学院(MIT)的学术渊源,到其作为 Unix 工作站中间件的关键地位。为了统一极度割裂的专有生态并化解平台垄断,X11 获得了各大厂商的支持,这些厂商将工程开发集中在实行付费会员制的 MIT X Consortium 内部。然而,宽松的许可证制度导致厂商们私藏图形增强功能,并分化出 Motif 和 OPEN LOOK 等不兼容的工具包,致使核心协议被冻结长达十五年,也使第三方应用程序的开发陷入分裂。Packard 反思道,这种企业间筑起壁垒以及未能采用著佐权(copyleft)的做法,最终重创了商业 Unix 市场,将桌面计算生态拱手让给了微软的 Windows。 X Window System 源于 MIT 紧迫的实际调试需求,并由 DEC 及其合作者设计为开放标准(X11),旨在打破 Sun 公司凭借 SunView 建立的专有桌面垄断。 (2:05) 1980 年代中期的互联网不稳定性和 TCP 拥塞崩溃导致无法进行跨国分布式代码同步,迫使 X 的开发集中到了付费参与的 MIT X Consortium。 (21:42) 宽松的 MIT 许可证允许厂商分叉闭源驱动程序和专有窗口系统;Packard 认为,与 GPL 等著佐权模式相比,这导致了重复的工程劳动并阻碍了生态系统的发展。 (34:18) Unix 工作站厂商优先考虑高墙花园和不兼容的工具包,而非共享的软件公地,导致核心 X 协议冻结了 15 年,并让微软 Windows 征服了应用市场。 (44:09)

Reading summary

Keith Packard argues that the X Window System arose to dismantle proprietary workstation silos, but corporate pay-to-play governance and permissive licensing enabled vendors to retreat into isolated proprietary extensions, ultimately freezing protocol development and ceding the desktop market to Microsoft Windows. Architectural Origins and the Anti-Monopoly Gambit (2:05) In 1984, the UNIX ecosystem lacked free software alternatives, leaving developers constrained by proprietary system licenses. At MIT, Bob Scheifler addressed the need to debug distributed Argus applications on DEC VAXstation 100 hardware by adapting Stanford's W Window System—originally built for the networked V-System microkernel—replacing its synchronous RPC with an asynchronous stream protocol to create X. By 1986, Sun Microsystems dominated workstation sales because commercial software vendors wrote exclusively for SunView, an environment embedded directly in the SunOS kernel. To eliminate Sun's platform advantage, DEC engineers Jim Gettys and Smokey Wallace persuaded DEC and Sun to back X11 as an unencumbered, vendor-neutral standard sample implementation. Consortium Governance and Academic Disenfranchisement (27:02) Because transcontinental Internet instability in 1986–1987 forced developers to ship magnetic code tapes via FedEx, the project abandoned distributed engineering and centralized development at the MIT X Consortium at 545 Technology Square. Major workstation vendors pooled funding for on-site staff, but instituted a strict pay-to-play structure where only paying members held voting rights on standards. Packard recalls that this financial dependency subordinated staff priorities to corporate sponsors while disenfranchising academic contributors, including researchers on CMU's Andrew Project. Although Richard Stallman urged the team to license X under the GPL, the consortium retained permissive terms. In this corporate echo chamber, the consortium prioritized bureaucratic, unadopted standards like PEX and XIE, while Silicon Graphics' GL evolved into the true graphics standard, OpenGL. Permissive Licensing and Protocol Stagnation (32:45) Permissive MIT licensing allowed vendors to incorporate shared code without contributing enhancements back. When DEC released the MIPS-based DECstation 3100, Joel McCormack developed proprietary color frame buffer code to secure a hardware advantage, prompting Packard to spend six months independently developing the free `cfb` code. Packard reflects that a copyleft license would have forced collaborative development rather than duplicated effort. Furthermore, because competing hardware vendors refused to let rivals expand the shared baseline, core X11 protocol semantics were frozen between 1988 and roughly 2000. While this preserved binary compatibility for legacy applications, it stagnated X's rendering model. Meanwhile, modern vector graphics alternatives like Sun's NeWS and Adobe's Display PostScript were locked behind proprietary licenses, leaving Unix without a ubiquitous 2D imaging standard. Toolkit Wars and Windows Dominance (40:41) X's governing philosophy of 'mechanism, not policy' failed at the desktop interface layer, where concrete styling policies are mandatory. The reference implementation offered only the rudimentary Athena Widget Set (`Xaw`), driving the market into incompatible proprietary environments: the Open Software Foundation's Motif and Sun and AT&T's OPEN LOOK. Attempting to force OPEN LOOK onto the MIT X Toolkit Intrinsics (`Xt`) produced the cumbersome OLIT library, leaving third-party developers caught between fragmented toolkits. Packard observes that by 1992–1993, Unix vendors had built proprietary 'castle walls' to trap customers rather than fostering a common software platform. This infighting exhausted independent software vendors, creating a vacuum filled by Microsoft Windows, which offered a unified target where software could be compiled once and sold universally. Packard delivers these reflections as personal memories from thirty-five years of graphics development rather than formal employer positions. His core conclusion remains that the Unix workstation market collapsed because vendors prioritized proprietary differentiation over copyleft collaboration and cross-vendor application compatibility.

精炼阅读摘要

Keith Packard在linux.conf.au(LCA 2020)演讲中指出,X Window System最初作为打破专有壁垒的中立标准而诞生,但由于各大UNIX厂商执迷于构筑封闭的技术护城河与排他性商业控制,导致整个生态割裂停滞,最终在桌面市场被统一的Microsoft Windows击溃。 硬件瓶颈与网络窗口系统的诞生 (2:05) 在1984年,整个UNIX领域完全由专有闭源软件掌控。受限于双端口RAM(VRAM)发明前的单端口显存竞争,高分辨率图形工作站难以实现。随着VRAM的引入以及斯坦福大学分布式微内核系统V-System的发展,网络透明的W窗口系统应运而生。MIT的Bob Scheifler为了在Barbara Liskov指导的Argus分布式项目中方便多线程调试,将W移植到DEC VAXstation 100上,并将其低效的同步RPC协议重写为异步流协议,从而诞生了X系统。 到了1985至1986年,各大工作站厂商纷纷推出专有窗口系统,如Sun的SunView、DEC的VWS以及Apollo的Domain系统。面对Sun凭借SunView独占商业桌面排版软件(如FrameMaker)的巨大市场优势,DEC的Jim Gettys与Smokey Wallace推动将X11打造为中立开放的标准参考实现。他们希望借此消除Sun的平台壁垒,联合跨厂商力量打破单一巨头的垄断。 联盟集权化与学术开源生态的边缘化 (24:16) 由于20世纪80年代跨大陆的网络极不稳定且频繁超时,早期的X11代码协同必须依赖FedEx航空快递磁带。为打破网络协同僵局,各大厂商于MIT 545 Technology Square成立了MIT X联盟,以集中出资的方式雇用全职开发人员。然而,这种运作迅速滑向“付费参与”(Pay to Play)模式,只有缴纳高昂年费的硬件厂商才拥有标准投票权。 这一商业化架构导致原本孕育X的学术黑客社区遭到边缘化。尽管Richard Stallman极力呼吁将X纳入GPL许可证保护,但联盟并未采纳。厂商视X为分摊基础设施成本的商品化中间件,自身则在编译器、内核及上层工具链上实施专有锁定。随着厂商撤裁内部的共享开发团队并牢牢控制工程师薪酬,独立开发者与高校(如CMU的Andrew项目)的研究者丧失了技术话语权,联盟沦落为脱离实际用户需求的官僚协调机构,耗费数年标准化的PEX和XIE最终均被市场抛弃。 许可证缺陷与底层渲染技术分化 Packard回顾认为,MIT许可证的过度宽松导致了严重的重复开发与资源浪费。为在DECstation 3100上获取商业优势,DEC工程师Joel McCormack编写了专有的加速彩色帧缓冲代码,促使Packard花费六个月开发出与之抗衡的开源`cfb`代码。Packard坦言,如果当时采用GPL许可证,双方将被迫在单一代码库上协同,从而避免在专有分叉中互设壁垒。 这种封闭分化同样摧毁了先进2D渲染技术的统一。Sun开发了基于PostScript的高级渲染窗口系统NeWS,但为了私利将其与X11混合为专有的封闭服务器;Adobe则将Display PostScript(DPS)作为昂贵的二进制闭源模块向DEC、HP等厂商单独授权。由于缺乏普遍统一且免费的标准图形环境,第三方软件开发者无法依赖高级PostScript渲染能力,导致UNIX平台的图形渲染生态长期陷入碎片化。 桌面工具包混乱与Windows的全面颠覆 (40:41) 在桌面UI层面,X协议坚守“提供机制而非策略”(Mechanism, not policy)的信条,但图形用户界面必须依赖明确的交互策略。X Toolkit Intrinsics(Xt)为了保持中立而包揽一切,结构极度臃肿。随后各厂商在界面层大打分裂战:OSF力推Motif,Sun和AT&T则在客户压力下将原有的SunView API先改造成XView,再强行嫁接到Xt上开发出笨重的OLIT。两套体系互不兼容,让应用开发者无所适从。 在核心协议长达15年的停滞期内,各工作站厂商如同封建领主般“把城堡的高墙砌得更高”,试图通过封闭扩展来绑定客户,而拒绝共同维护通用的二进制兼容生态。到1992至1993年,UNIX工作站市场在内耗中骤然崩塌。Microsoft Windows凭借统一稳定的API、一次编译即可交付全量用户的应用生态迅速崛起,彻底占领了图形桌面市场。 Packard的总结表明,UNIX工作站联盟的覆灭并非技术起步过晚,而是专有厂商在宽松开源许可证掩护下过度追逐排他性优势、忽视应用层兼容性与共享公地的必然苦果;该演讲未深入探讨Wayland等现代显示架构对历史包袱的最终清理方案。

Detailed notes — zh

## Background 本内容由 linux.conf.au 于 2020 年 1 月 16 日在 YouTube 平台发布,记录了资深开发者 Keith Packard 在 LCA 2020 上的专题演讲。根据页面介绍,演讲以拥有超过 35 年历史的 X Window System 为切入点,探讨了早期 Unix 工作站厂商的博弈、与自由软件基金会(FSF)的互动、网络瓶颈对治理结构的影响,以及开源软件许可与社区治理对产业生态的长远驱动作用。 ## TL;DR Keith Packard 回顾了 X 窗口系统从 1984 年 Stanford V Kernel 与 W 系统起步、由 Bob Scheifler 改写诞生,再到各大 Unix 工作站厂商为对抗 Sun 垄断而联合成立 MIT X 联盟的完整历程。演讲深度剖析了宽松 MIT 许可证与“付费入局”联盟治理模式带来的负面效应:包括阻碍上游代码协作、脱离一线开发者真实诉求、诱发 XIE 和 PEX 等臃肿标准,以及长达 15 年的核心协议技术停滞。同时,各大商业巨头在 Display PostScript 及 Motif、OPEN LOOK 等图形工具包上固步自封、相互倾轧,最终导致跨平台应用生态分崩离析,直接促成了 1990 年代初 Unix 市场的全面溃败,将桌面计算的主导权拱手让给微软 Windows。 ## Atmosphere & style 整场演讲呈现出一种炉火纯青的极客式幽默与沉重反思相交织的独特氛围。Keith Packard 以近乎讲段子的轻松口吻,调侃着当年用 FedEx 磁带跨大陆同步代码、在天花板横穿光纤等荒诞技术往事,引得台下笑声不断;但在轻松背后,贯穿着一种作为亲历者目睹“公地”被商业围墙扼杀的深切痛惜。整场分享节奏明快、观点辛辣,既是一场回溯早期计算史的怀旧之旅,也是一记警示开源生态莫蹈覆辙的警钟。 ## Bulletin - [02:08](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=128s) X 窗口系统最初源于 Bob Scheifler 为调试分布式系统 Argus 而在两周内对 W 窗口系统的异步重写,随后被 DEC 用于打破 SunView 专有垄断的行业标准武器。 - [25:06](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1506s) MIT X 联盟采用“付费入局”的会员运作模式,不仅切断了高校研究者与开源社区的外部协作,还导致了 XIE 与 PEX 等脱离实际需求的膨胀标准。 - [34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) MIT 许可证的宽松特性未能强制源码共享,致使各厂商利用专有二进制和私有闭源工具包构筑高墙,直接促成了 1990 年代初 Unix 市场崩盘并被 Windows 取代。 - [32:45](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1965s) 由于各大硬件厂商极度排斥扩展通用基础功能,X11 核心协议在长达 15 年的时间里几乎零改动,在换取长久向后兼容性的同时付出了创新停滞的沉重代价。 ## Key takeaways - [00:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=0s) 1984 年前后的计算环境是完全的闭源“版权地狱”,缺乏任何自由开源的 UNIX、编译器或图形系统。 - [02:08](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=128s) 双端口 VRAM 的问世解决了高带宽图形刷新瓶颈,使得高分辨率单色与彩色工作站的大规模应用成为可能。 - [02:08](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=128s) Bob Scheifler 为解决调试器无法多线程调试的问题,将 W 系统的同步 RPC 重写为异步架构,诞生了 X 系统早期原型。 - [08:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=498s) 早期工作站厂商基于不同 BSD 版本深度魔改且互不兼容,促使 Larry Wall 编写 configure 脚本以应对繁重的条件编译移植工作。 - [12:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=720s) SunView 等早期窗口系统将图形代码硬编码进 Unix 内核,虽然保证了隔离性,但也构筑起深厚的专有硬件绑定壁垒。 - [14:58](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=898s) X10 的 MIT 许可证本质上是极度宽松的“Copycenter”许可,导致分发包中充斥着 DEC 和 Sun 等厂商的专有二进制驱动。 - [19:47](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1187s) DEC WRL 牵头将 X11 作为开放工业标准并免费捐赠样本实现,目的是瓦解 Sun 依靠 SunView 建立的第三方商业应用垄断。 - [23:03](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1383s) 1980 年代中期的互联网极度脆弱,无法稳定传输数兆字节代码,导致早期跨洋协同不得不依赖 FedEx 快递磁带。 - [25:06](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1506s) 由于异地网络同步受阻,各大巨头出资在 MIT 科技广场 545 号建立实体 X 联盟,将核心研发收拢至同一物理空间。 - [27:21](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1641s) X 联盟的“付费入局”商业机制使全职工程师仅对出资雇主负责,导致与高校及广大外部开发者的技术沟通全面断裂。 - [28:27](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1707s) 斯托曼曾严厉质问 X 团队为何不用 GPL,Packard 事后坦承若当时采用强 Copyleft 许可证,各大厂商将被迫更紧密地开源协同。 - [31:32](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1892s) 脱离实际开发者需求的象牙塔式标准制定,催生了 XIE 和 PEX 等庞大却无人问津的工业联盟规范,最终惨败给 OpenGL 等竞品。 - [32:45](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1965s) X11 核心协议在长达 15 年间语义零改动,虽然提供了跨越数十年的代码向后兼容性,但也导致 X 停留在了 1988 年的技术水平。 - [34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) 在缺乏 GPL 约束的宽松许可下,DEC 倾向于开发专有闭源驱动,迫使工程师耗费半年时间在宏黑魔法中重复造轮子搞开源竞速。 - [37:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2254s) Sun 的 NeWS 和 Adobe 的 Display PostScript 等先进渲染架构因各大厂商追求独占二进制卖点而碎片化,扼杀了现代图形生态。 - [40:41](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2441s) X 倡导的“提供机制而非策略”在应用层破产,由于服务端缺乏统一样式策略,导致 Open Look 与 Motif 在上层水火不容。 - [44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) Unix 厂商因工具包政治博弈消耗了宝贵先机,在各方自建高墙锁死客户的内耗中,最终将桌面市场全盘输给了开发分发友好的 Windows。 ## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=0s) 开场:仓促成型的演讲与 1984 年的闭源“版权地狱” 演讲者 Keith Packard 以一段风趣的开场白拉开序幕。他调侃称,虽然这场演讲名义上是“X 的政治历史”,但实际上不过是他多年来逢人便讲的一堆老段子。最初是 Bradley Kuhn 鼓励他将这篇内容整理出来,投稿到几周后在布鲁塞尔举办的 Copyleft Conf;但因为 Keith 并没有去该会议的计划,便转而投给了 LCA(linux.conf.au)。由于原定演讲者未能出席,这篇演讲是作为临时替补临时塞进日程的。Keith 打趣道,自己通常喜欢花上几个月的时间精雕细琢一场演讲,而这一次他总共只有大约三天时间准备,因此内容难免有些粗糙。 Keith 明确声明,本次演讲与他的雇主毫无关联,绝不代表公司的立场与观点,完全属于他个人的看法。“I need to tell you that because there is so there's going to be a lot of opinion in this and I will almost certainly be wrong,” Keith 坦承道,面对跨越 35 年的 X 历史,谁都有可能记错,而人类的记忆往往会在不断复述故事的过程中重构事实,因此大家大可当作听一段半虚构的故事,台下经历过那段岁月的老前辈随时可以举手纠错。 随后,Keith 询问台下观众有谁在 1984 年或更早之前就接触过 UNIX。放眼全场,举手的人寥寥无几。Keith 随即指出,在 1984 年,UNIX 完全是一个闭源的专有环境,世上根本不存在任何开源自由软件 UNIX。AT&T 对 UNIX 的许可证机制允许大学采购使用,因此高校学生得以接触到其源码;随着时间推移,企业也获准购买许可并以此为基础打造商业产品。在那个时代,编译器是专有的、操作系统是专有的、图形系统同样是专有的,用 Keith 的话说,所有人当年都生活在一个不折不扣的“版权地狱”(copyright hell)中。 - 演讲缘起:Bradley Kuhn 曾建议 Keith 将此话题提交给比利时布鲁塞尔的 Copyleft Conf,最终因行程原因转投 LCA 2020 救场。 - 准备时间:由于是临时填补空缺,演讲仅花了大约三天时间准备,而非平时习惯的数月。 - 历史背景(1984 年):没有任何自由/开源 UNIX 存在,编译器、操作系统和图形界面全被严格版权壁垒笼罩。 --- ### [02:08](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=128s) 图形硬件的突破与 X 的前身:V Kernel、W Window System 到 X 的诞生 回溯到 1984 年,初代 Apple Macintosh 刚刚发布,配备了一块 512×380 左右像素的黑白屏幕。在那之前,计算机图形之所以糟糕,是因为硬件层面上缺乏能够胜任的帧缓冲区(framebuffer)。直到同一时期出现了显存——VRAM(双端口随机存取存储器),高分辨率的单色与彩色图形工作站才真正成为可能。VRAM 的核心优势在于它是双端口结构:一端直接与 CPU 对接通信,另一端则直接送往屏幕扫描输出引擎(scan-out engine)。 与硬件变革几乎同步,当时斯坦福大学的学生 Paul Rex Roy 和 Brian Reid 正在研发一个名为 V Kernel 的分布式微内核系统。该系统直接运行在以太网(Ethernet)上进行消息传递,完全绕过了 TCP/IP,因为在他们看来以太网本身就足够强大。为了在有限的图形设备上显示输出,他们编写了图形终端系统 VGTS,随后进一步演化出 W Window System。由于 V 本身就是一个彻底的分布式操作系统,所有系统调用与函数调用都是基于远程过程调用(RPC)在可能位于远端的处理器上执行,因此“让图形系统只服务于本地屏幕”这种想法压根没有在他们的脑海中出现过。W 窗口系统顺理成章地成了一个天生支持分布式的窗口系统。 后来,W 窗口系统被移植到了 DEC 的 VAXstation 100(VS100)上。虽然这套软件同样是完全专有的,但他们将其共享给了麻省理工学院(MIT)的朋友 Bob Scheifler。当时 Bob 正在计算机科学家 Barbara Liskov 的指导下攻读硕士学位,课题是基于 CLU 语言的分布式多计算机多线程系统 Argus。调试 Argus 遇到了极大的阻碍:当时的调试器(如 dbx)一次只能调试单个线程,为了同时调试多个线程,Bob 迫切需要在一个屏幕上打开多个终端窗口。为了解决这个燃眉之急,Bob 决定先去“偷师”Brian 和 Paul 的 W 源码,将其移植到连接在 VAX 上的 VS100 上,本想着搞定终端就回去写 Argus。不料他彻底“跑偏”了:Bob 花了两周时间全力魔改 W。V 系统内置的同步 RPC 在自身微内核里极其高效,但移植到 UNIX 上却慢得难以忍受;Bob 于是将其全盘重写为异步架构。两周之后,成果诞生了——依照 V、W 的字母顺序,新系统被顺理成章地命名为 X。 ```mermaid flowchart TD accTitle: The Evolution of X Window System accDescr: Diagram showing the progression from Stanford's V Kernel and W Window System to MIT's X Window System. subgraph Stanford["Stanford University"] V["V Kernel<br>(Distributed Microkernel)"] VGTS["VGTS<br>(Graphics Terminal)"] W["W Window System<br>(Synchronous RPC)"] V --> VGTS --> W end subgraph Hardware["Hardware Platform"] VS100["DEC VAXstation 100<br>(VS100 Display Terminal)"] end subgraph MIT["MIT (Laboratory for Computer Science)"] Bob["Bob Scheifler<br>(Argus Project under Barbara Liskov)"] X["X Window System<br>(Asynchronous RPC)"] end W -.->|"Ported to hardware"| VS100 W -->|"Source shared with Bob"| Bob Bob -->|"Rewrote sync RPC to async for UNIX"| X VS100 -.->|"Target display hardware"| X ``` - 硬件痛点:在 VRAM 普及之前,普通 RAM 无法同时满足 CPU 读写和屏幕扫描输出的高带宽需求,限制了高分辨率图形的发展。 - VRAM 机制:双端口 RAM 允许 CPU 与显示扫描电路并行访问,支撑了 60Hz 刷新率的高分辨率单色及彩色工作站。 - 协议变革:Bob Scheifler 弃用了原版 W 在 UNIX 下性能表现极差的同步 RPC,改写为异步机制,奠定了 X 协议的底座。 - 命名调侃:Keith 笑称,选择元语法变量(V、W、X)给窗口系统命名,大概会让人觉得自己是天底下最懂起名的人。 --- ### [05:46](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=346s) 远古神机:VAXstation 100 与 MIT 的光纤布线奇景 Keith 随后向台下展示了一张老旧的 DEC VAXstation 100(VS100)硬件照片。Keith 坦言,PPT 中的所有图片他都无法找到原始版权或授权出处,只能寄希望于合理使用原则(Fair Use),但后续公开幻灯片时大概率得把这些图片删掉。他详细剖析了 VS100 这款惊人的设备:它的后端并非一台小主机,而是连接在机房里庞大的 VAX-11/750 大型机上。一台 VAX 750 由两个标准的 19 英寸机柜拼成,高约 4 英尺,内部装有四到六个 8 英寸的离心鼓风机(squirrel-cage blowers)强制散热,噪音震耳欲聋,绝不可能直接放在办公室。 为了将图形界面延伸到研究人员的桌面上,DEC 在 VAX 的背板总线上插入了一块巨大的 UNIBUS 扩展卡。这张卡引出了大约三根光纤,从机房长距离连接到用户桌面上形似终端的 VS100 盒子上。VS100 内部实质上是一台基于摩托罗拉 68000(68k)处理器的完整计算机,配有鼠标、键盘以及一块超高分辨率的单色显示屏(约 1080 像素宽)。尽管名义上它只是庞大 VAX 主机的“前端终端”,但讽刺的是,这颗 68k 处理器的局部处理速度甚至可能比后端的 VAX 还要敏捷。 这套系统配备了约 128KB 极其昂贵的双端口 VRAM,能以惊人的 60Hz 刷新率输出高分辨率单色图像。更绝的是其物理部署方式:在 MIT 计算机科学实验室(LCS),庞大的 VAX 主机安置在 8 楼(或 7 楼)的机房中,而光纤则沿着大楼宽敞的天花板吊顶层(plenums)顺流而下,一路穿行至 5 楼 Bob Scheifler 的办公室。这让 Bob 能够坐在安静的办公室里,面对着键盘、鼠标和一台拥有全速 UNIX 工作站性能的高分辨率屏幕开展工作。 - 物理连接:通过 UNIBUS 接口卡与 3 根光纤线缆,连接机房中的 VAX-11/750 与办公室桌面端的 VS100。 - 硬件规格:VS100 搭载 Motorola 68000 芯片,128KB 专有 VRAM,支持 60Hz 刷新率的超高分辨率黑白单色显示。 - 建筑奇观:MIT LCS 建筑内部极具“吊顶友好度”(plenum friendly),使得光纤得以从 8 楼机房横跨数层下穿至 5 楼。 --- ### [08:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=498s) 工作站军阀割据与混乱的移植时代:从 BSD 4.x 到 Configure 脚本 步入 1980 年代中叶,UNIX 工作站市场呈现出百家争鸣又四分五裂的局面。由于 UNIX 本身是闭源专有的,市面上的主流硬件厂商(如 DEC、Sun 等)纷纷先向 AT&T 购买 UNIX 商业授权,再获得加州大学伯克利分校(UC Berkeley)的许可,拿到 BSD 源码分支开始深度魔改。厂商们采用的基准各不相同,有的基于 BSD 4.1,有的基于 4.2,有的甚至基于 4.2c。 每一家工作站厂商都自信爆棚,认为自己手里改出的操作系统天下第一,坚信自家产品必将一统江湖、将对手赶尽杀绝。其直接后果就是极端的生态碎片化:各家的系统调用、内核接口和底层实现全被打上了私有烙印。正是在这种混乱割据的背景下,Larry Wall 编写的经典 `configure` 脚本应运而生。Keith 引用了终端用户当年最熟悉的一句经典输出: > “Congratulations, you're not running UNOS.” UNOS 是当时运行在 DEC VMS 上的 UNIX 仿真层。如果环境不是 UNOS,`configure` 脚本就必须在源码中塞进数千个 `#define` 预处理宏,竭力探测当前到底是哪一家厂商修改出来的古怪 BSD 系统。“That was awesome, right? We actually had portable software kind of as long as we were really willing to recompile,” Keith 讽刺道,只要开发者愿意耗费大量时间重新配置与编译,代码勉强算得上“可移植”。然而,所有硬件厂商梦寐以求的统一商业独立软件市场(ISV 软件生态),在缺乏标准的前提下根本成了无稽之谈。 随后,Keith 展示了 DEC 推向该市场的重磅产品——VAXstation II。这是一台带有轮子、被塞在桌子底下的双倍宽度移动小推车主机,在 1986 至 1987 年左右配备了震撼业界的 8 位彩色加速图形显示卡。Keith 笑着赞叹当年宣传图里操作员时髦的衣着,称自己每天都在努力模仿那种独特的穿搭派头。作为鲜明对照,市场上另一款极具代表性的图形机器是 Sun 公司的 Sun-3/60,与 DEC 昂贵的专有微码硬件架构不同,Sun 3/60 则是直接采用了通用的摩托罗拉微处理器。 - 厂商分裂:各硬件厂商分别基于 BSD 4.1、4.2 或 4.2c 私自魔改,没有统一接口标准,各自为战试图垄断市场。 - 移植困局:缺少通用二进制或源码标准,跨平台软件必须依赖海量条件编译宏(#define)并在各厂商机器上重新编译。 - 代表机型对比: - **DEC VAXstation II**:双宽机箱推车架构,搭载专有硬件及 8-bit 彩色图形加速。 - **Sun-3/60**:Sun 推出的高性价比图形工作站,直接采用摩托罗拉通用商品化处理器。 ### [10:52](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=652s) 硬件之争:哑帧缓冲区与糟糕的图形加速器 在 1985 至 1986 年前后,工作站硬件呈现出截然不同的设计哲学。基于摩托罗拉 68020 的机器使用的是“哑帧缓冲区”(dumb frame buffer),这意味着屏幕上的一切像素都必须由 CPU 亲自负责绘制。相比之下,DEC 的 VAXstation II 则搭载了专有的 VAX 微控制器和硬件图形加速器(通过一条 Keith Packard 甚至记不清名字的总线连接到系统末端)。在理论上,硬件加速听起来很美好,但这也意味着 CPU 根本无法直接向帧缓冲区写入数据,任何渲染操作都必须与那个图形加速器交互。在实际使用中,这种硬件加速不仅糟糕透顶,而且在很多方面表现得比纯粹的哑帧缓冲区还要差劲。 当时的输入设备同样充满了时代印记。VAXstation II 配备了极其前卫的光电鼠标,但 1986 年的光电技术还非常原始,它根本无法在普通的平整桌面上识别移动,必须搭配一张带有特殊网格图案的专用鼠标垫使用。尽管受限于鼠标垫,但这项技术在当时看来依然酷炫十足,并且带来了一个巨大的现实优势——它彻底摆脱了机械滚轮球,不用像传统机械鼠标那样在桌上滚来滚去、吸满各种恶心的污垢黏液,因此在可靠性上要出色得多。 - **摩托罗拉 68020 方案**:采用无硬件加速的哑帧缓冲区,绘制完全依赖 CPU 算力。 - **VAXstation II 方案**:配备专有 VAX 控制器与图形加速总线,CPU 无法直写显存,实际开发体验极差。 - **早期光电鼠标**:必须依赖定制专用网格鼠标垫才能追踪光标,但避免了机械滚轮球藏污纳垢的问题。 --- ### [12:00](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=720s) 早期 Unix 窗口系统群雄割据:SunView、Apollo 与泰克 在 1985 年左右,早期 Unix 窗口系统开始涌现,而在 Keith Packard 当时的视野中,绝对的统治者是 SunView。Keith 在大约 1985 年读本科时第一次见到 SunView,被其深深震撼:它驱动着一块分辨率高达 1152×900 的百万像素级屏幕(Keith 对这些参数依然记忆犹新),能同时运行多个终端、应用程序以及各种桌面小部件。然而 SunView 存在一个致命缺陷:你必须购买昂贵的 Sun 工作站才能运行它。更关键的是,SunView 的窗口系统是直接塞在 Unix 内核里的,任何绘图操作都必须触发系统调用进入内核,画好一个矩形后再返回用户态。虽然这种由内核强制隔离的架构防止了不同应用在屏幕上恶意打架,但也让它紧紧绑定在 Sun 自己的软硬件生态中。 ```mermaid flowchart TD accTitle: Early Workstation Window Systems accDescr: Comparison of early proprietary workstation window systems from Sun, DEC, Apollo, and Tektronix. subgraph Sun["Sun Microsystems"] SV["SunView"] SV -->|"内核系统调用"| SK["Unix 内核 (内置窗口系统)"] SK -->|"独占绑定"| SH["Sun 专有硬件 (1152x900)"] end subgraph OtherVendors["其他竞争厂商"] DEC["DEC: VWS / UIS (仅限 VMS 系统)"] AP["Apollo: Domain 系统 (平面显示架构/8张1-bit显存)"] TK["Tektronix: 屡败屡战的小众 Smalltalk 机器"] end ``` 与此同时,其他厂商也各自为战。DEC 推出了 VWS(UIS),但它只能运行在 VMS 操作系统上;Apollo 工作站运行着专有的 Domain 网络分布式系统,其显示硬件拥有全行业独一无二的“平面显示架构”(planar display)——如果是 8 位色彩,机器内部实际上是由 8 块独立的 1 位帧缓冲区叠加而成,画一条彩线需要在这 8 张显存平面里逐层绘制,肉眼甚至能清晰看到线条的颜色随着图层逐一渲染而缓慢渐变。至于 Keith 当时任职的泰克公司(Tektronix),其管理层对 Unix 工作站市场的理解堪称灾难,先后四次杀入该市场又迅速狼狈退出。泰克使用过充满 Bug 的国家半导体(National Semiconductor)32016 与 32032 处理器,尽管后来他们造出了基于摩托罗拉 68000 家族的优秀 Smalltalk 专用机,但由于泰克本质上是一家示波器制造厂,缺乏与摩托罗拉的紧密关系,最终还是被芯片销售人员忽悠着掉进了半导体硬件的泥潭。 - **SunView**:Sun 的专有杀手级产品,分辨率达 1152×900,代码深埋于内核,绘图开销依赖系统调用。 - **DEC VWS / UIS**:DEC 早期自研的图形界面,无法原生跨越到 Unix 生态,仅限 VMS。 - **Apollo Planar 显示**:采用平面图层架构,8 位色彩由 8 块单位深图层组成,绘制线条时能看见颜色逐层渲染的视觉动画。 - **泰克(Tektronix)的困境**:曾四度进军工作站市场均以失败告终,深受国家半导体硬件缺陷之害,其优秀的 Smalltalk 机器终究沦为小众产品。 --- ### [14:58](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=898s) 两周搞出来的基础架构:从 X1 到 X10 的演化 谈及 X Window 系统的起源,Keith 直言这套沿用数十年的系统核心竟然出自麻省理工学院(MIT)Bob Scheifler 仅仅两周业余时间的黑客开发。软件历史上充满了这种产物:从 Perl、Python 到 Tcl 都是如此,而 JavaScript 甚至连两周都没用上,仅仅是一个周末仓促拼凑的结果。开发者为了尽快完成手头任务而急就章写出的东西,往往在四十年后依然左右着现代计算世界。Keith 打趣道:“这些遗留技术就像是在说:‘噢,我得赶紧搞出点东西把工作干完。’结果四十年后的今天我们还受它牵制,真是谢谢了,当时要是能多想一想该多好。” 早期的 X 版本(X1 至 X6)完全用于 MIT 内部研究,采用闭源许可证,仅非正式地分享给卡内基梅隆大学(CMU)、斯坦福大学和加州大学伯克利分校等少数高校好友。经过 X7 到 X9 的小幅迭代,X10 终于成为了一个“几乎可用”的系统。X10 支持单色和彩色显示,被移植到了 IBM PC RT、Sun-3/60、DECstation、早期的 HP 机器以及 Keith 从泰克报废仓库里捡回家的废弃工作站上。此时的 DEC 没有任何成熟的 Unix 窗口系统,干脆直接宣布在自家工作站上预装 X10。但 X10 本质上还只是个半成品,距离真正稳定成熟就差临门一脚。 在授权许可方面,许多人误以为 X 从一开始就是开源社区如今理解的“自由软件”,但 X10 采用的是典型的 MIT 许可证。正如伯克利的朋友们戏称的那样,这根本不是具有强传染性的 Copyleft,而是一种“Copycenter”许可——“拿去吧,爱怎么折腾就怎么折腾”。由于缺乏强有力的源码共享约束,X10 的分发包中充斥着大量的专有二进制静态库(binary blobs)。DEC 的单色与彩色渲染代码全部以二进制形式打包;Sun-3/60 上的移植版本完全依赖底层 SunView 的内核代码进行渲染;唯独 IBM PC RT 版本附带了完整的源代码,原因在于卡内基梅隆大学接受了 IBM 的赞助来开发 Andrew 分布式系统,CMU 手头有一大帮闲置的计算机系学生,他们顺带玩着 X 系统并随手写完了渲染模块,压根没人费心思去把它预编译成二进制。 > “作为来自伯克利的朋友们的说法,这是一个‘版权中心’许可证——拿走它,想怎么用就怎么用。” > —— Keith Packard 谈及早期 MIT 许可证的极度宽松本质与缺乏 Copyleft 约束 --- ### [18:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1098s) X10 的缺陷与 uwm 的按键体操 1986 年,刚大学毕业并已在泰克工作多年的 Keith Packard 第一次在 VAXstation II GPX 上正式接触到了 X10,他们当时正在其上开发一套 C 语言编译器以及某种早期形态的 IDE。Keith 很快领教了 X10 的种种硬伤。其中最奇葩的设计缺陷是其外部窗口管理器机制:虽然 X10 允许一个独立的外部 X 应用程序来充当窗口管理器以实现窗口的移动、缩放和最小化,但系统在底层上根本不支持让窗口管理器为应用程序窗口添加边框修饰(decorations)。如果窗口要带标题栏或按钮,必须由应用自己去画,窗口管理器对此完全无能为力。 ```mermaid flowchart LR accTitle: X10 Window Manager Limitations accDescr: Flow diagram showing how uwm in X10 controlled windows directly via shortcuts without window borders. User["用户输入"] -->|"Alt + 鼠标左键"| Move["移动窗口"] User -->|"Alt + 鼠标右键"| Resize["缩放窗口"] Move & Resize --> UWM["uwm 窗口管理器"] UWM -.->|"无法注入边框/标题栏"| Win["应用原生窗口 (无任何装饰控件)"] ``` 这就导致了当时的代表性窗口管理器 uwm 变成了一套复杂的键鼠“按键体操”。用户想要管理窗口,界面上没有任何可视化的缩放手柄或关闭按钮,全凭神奇的组合快捷键与鼠标点击配合:按住 Alt 加左键拖动窗口,按住 Alt 加右键调整窗口尺寸。除了无法挂载装饰部件之外,X10 的渲染模型也极其粗糙原始,图像管理能力孱弱,直线和圆弧的绘制算法非常简陋,整个系统的推进基本只靠 MIT 自身以及少数 DEC 和 CMU 的人员在维持。 - **无边框修饰(Reparenting 缺失)**:窗口管理器无法接管应用的父窗口以注入标题栏,所有管理依赖快捷键隐式操作。 - **uwm 交互方式**:由于缺乏 UI 交互控件,移动窗口靠 Alt + 左键,缩放靠 Alt + 右键。 - **粗糙的图形子系统**:图像处理管线原始,矢量线条与圆弧绘制算法缺乏工业级支持。 --- ### [19:47](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1187s) 联合制衡 Sun:DEC WRL 的 X11 颠覆战略 面对 X10 的局限,越来越多的工作站硬件厂商开始主动找上 MIT 要求加入项目。厂商们空前一致的热情背后隐藏着严峻的生存危机:当时整个 Unix 工作站市场几乎被 Sun 彻底垄断,而 Sun 靠着深度绑定的 SunView 构筑了极宽的生态护城河。SunView 上甚至已经涌现出了商业级桌面出版应用,如 FrameMaker 和早期的 Interleaf。软件开发商只愿意为一家独大的 SunView 编写软件,其他工作站厂商虽然也推出了专有图形系统,但上面根本没有第三方应用愿意移植。 ```mermaid flowchart TD accTitle: DEC Strategy to Counter SunView accDescr: How DEC and other workstation vendors united around X11 to break Sun's proprietary software monopoly. subgraph Problem["市场困境"] SunMonopoly["Sun 垄断市场"] -->|"绑定专有系统"| SunViewApps["第三方商业软件生态 (FrameMaker / Interleaf)"] OtherVendors["DEC / HP / Apollo 等厂商"] -->|"专有系统孤岛"| ZeroApps["无第三方商业应用"] end subgraph Strategy["DEC WRL 破局策略"] DECWRL["DEC 西部研究实验室 (Jim Gettys & Smokey Wallace)"] DECWRL -->|"制定开放标准"| X11["X11 全新标准"] DECWRL -->|"DEC 工程师免费贡献"| SampleImpl["X11 样本参考实现"] end Strategy -->|"统一软硬件接口"| ResetMarket["重置市场竞争规则:打破 Sun 专有平台优势"] ``` 为了打破这一僵局,供职于 DEC 西部研究实验室(Western Research Lab, WRL)的 Jim Gettys 与 Smokey Wallace 构思了一个极为精妙的战略反击方案:既然单个厂商无法单挑 Sun,那就联合大家重新定义规则。DEC 提议共同研发一套全新的、设计完善的行业标准协议——X11,并且 DEC 将组织自家的核心工程师团队与外部合作者一道,免费向业界捐赠一个完整的 X11 参考样本实现(sample implementation)。 这一招的战略意图非常毒辣:通过打造一个跨厂商兼容的免费标准窗口系统,各大硬件厂商可以联合向软件开发者宣告“X 系统才是 Unix 事实上的工业标准,支持 X 就能通吃所有厂商”。这套组合拳将彻底重置工作站图形市场的竞争规则,让 Sun 凭借 SunView 建立起来的专有软件生态优势在一夜之间烟消云散。 > “所有这些工作站厂商都跑过来说:我们真的很想拥有软件,但我们专有的窗口系统上根本没有任何软件可用;那如果我们联合起来,制定一个新的标准并宣布‘这才是标准的 Unix 窗口系统’,会怎么样呢?” > —— Keith Packard 揭示各大硬件厂商联合倒向 X 协议的根本商业动因 ### [21:42](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1302s) X11 的全新开端与糟糕的遗留设计 令人惊讶的是,这个构想居然成功了。提案团队不仅说服了 DEC(Digital Equipment Corporation)的管理层,甚至连 Sun 电脑也被拉了进来。Packard 调侃道,Sun 当时的态度就像是:“好啊,标准这东西太棒了,我们也得加入!”他至今也想不通 Sun 为何会同意这个计划,但无论如何,这对 Sun 来说并没有坏处。DEC 管理层买账后,便在西部研究实验室(Western Research Laboratory,WRL)成立了一个团队,负责编写最初的 X11 实现。 X11 决定从零起步,拿出一张完全空白的图纸,凭借从 X10 中吸取的教训,设计一套全新的网络视窗系统。从代码层面来看,X11 几乎没有继承任何来自 X10 的代码,但它却继承了少数几个概念——在 Packard 看来,“继承的想法大多都很烂”(“It inherited a couple of ideas, most of them bad”)。例如,X10 拥有固定宽度的视窗边框(window borders),用于在屏幕上区分各个视窗;而 X11 已经打算采用外部视窗管理(external window management),允许视窗管理器拥有属于自己的装饰和边框风格。按理说,视窗边框该如何绘制本应全权交给视窗管理器去决定,但设计团队却妥协道:“不行,我们得把视窗边框保留在核心协议里,因为 X10 的旧应用程序可能还想要这玩意。” ```mermaid flowchart LR accTitle: 从 X10 到 X11 的过渡 accDescr: 展示 X10 的遗留思路如何影响 X11 的全新架构设计 subgraph X10["X10 时代"] A["固定宽度视窗边框"] B["旧有代码库"] end subgraph X11["X11 架构变革"] C["完全重写代码"] D["外部视窗管理器装饰"] E["向后兼容妥协:保留核心边框"] end A -.->|"坏点子遗留"| E B -->|"全盘抛弃代码"| C D -->|"理应完全替代"| E ``` ### [23:03](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1383s) 跨越大陆的研发障碍:基于 FedEx 的“软盘网络” X11 协议的设计是多家机构跨界合作的产物,汇聚了 Sun、HP、MIT、CMU(卡耐基梅隆大学)以及 DEC 的工程师。整个协议设计工作是在 1986 至 1987 年间通过互联网展开的。然而,当时的互联网环境极度恶劣脆弱,甚至根本无法承担基本的分布式协同。当时主要有两个核心研发团队:一支在马萨诸塞州剑桥的 MIT,另一支远在加州的硅谷。 两地工程师面临的滑稽现实是:他们甚至无法通过网络传输两三兆字节(a couple of megabytes)的代码来进行夜间同步。每次传输都会不断超时并崩溃断开。因此,X11 的大部分早期开发实际上是靠联邦快递(FedEx)维系的。Packard 忍不住感叹道:“装满一飞机磁带的带宽和可靠性,真是令人惊叹。”(“You know, it's amazing what the bandwidth and reliability of an airplane full of tapes is.”)早期的网络拥塞崩溃不仅拖慢了进度,更直接改写了 X Window 的组织历史:工程团队并没有停下来去抢修互联网(TCP 拥塞控制直到后一年才由 Van Jacobson 等人解决),而是彻底放弃了跨互联网分布式协同开发的设想。 - 跨机构协作参与方:Sun、HP、MIT、CMU 以及 DEC。 - 协作困境:代码体积仅有数兆,但 1986—1987 年的互联网频频超时,无法支撑每日异地同步。 - 应对策略:放弃通过网络异地协作,转而使用物理快递(FedEx 运送磁带)。 - 关键决策:各大工作站厂商决定集中出资,在 MIT 成立实体联盟并全职雇佣工程师,将核心研发收拢至同一物理空间。 ### [25:06](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1506s) 进驻科技广场 545 号:现代计算的圣地与 MIT X 联盟的诞生 既然异地网络协作走不通,各大工作站巨头便决定合资组建基金,直接在 MIT 租办公室雇人写代码。Packard 本人以及他的好友 Jim Fulton 相继被招募入伙,与核心元老 Bob Scheifler 一同构成了最初的三人组,入驻 MIT 计算机科学实验室(LCS)所在的科技广场 545 号(545 Tech Square)二楼。 踏进这栋大楼让 Packard 热血沸腾。这里是现代计算的真正摇篮:催生了 Multics 操作系统的 Project MAC(MIT、通用电气与贝尔实验室的联合项目)便是在这里展开,而 Multics 正是 UNIX 的直接前身。办公室内随处可见 Symbolics Lisp 机;天花板上巨大的走线架里塞满了人类已知的所有网络线缆——粗缆(Thicknet)、细缆(Thinnet)应有尽有,因为线槽太大、抽旧线又太费事,工程师们便只管把新线不断往里塞。Packard 在这里分到了 DEC-10 机器上 ITS(Incompatible Timesharing System)的账户,甚至分到了一个货真价实的顶级“Net 10”IP 地址(在 Net 10 被重新分配为内网私有网段之前)。 然而,伴随资金涌入建立起来的“X 联盟”(MIT X Consortium),在运作模式上发生了根本性质变。联盟由最初的十到十五家成员迅速扩张到约五十家,坐拥巨额运营资金。但这套机制是完全的“付费入局”(pay for play):只有掏了真金白银的企业会员,才有权对技术标准进行投票决议。 ### [27:21](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1641s) 付费话语权带来的孤立与外部协作的断裂 “付费入局”彻底扭曲了开源社区的生态格局。从前那种多所大学、多家企业自由开放、人人皆可参与贡献的合作氛围荡然无存。面对这一转变,各大计算机厂商的反应是直接撤回自己的研发力量:既然他们已经出钱让 MIT 的团队代劳,企业内部就完全没有动力再花钱维护共享代码。 与此同时,与高校之间的外部技术合作几乎瞬间蒸发,因为高校不是付费联盟会员,根本无权参与制定标准。Packard 回忆起大约在 1989 年前往 CMU 的一次拜访:CMU 团队基于 X11 开发了雄心勃勃的 Andrew Toolkit,双方在现场聊得很开心,但 MIT 团队回程之后就再也没有跟他们联系过。作为拿厂商薪水的全职工程师,Packard 坦言自己的精力被牢牢束缚住了:“我会被那些给我发工资的人发来的邮件占满时间,而根本不会花时间去回复那些不给我发工资的人的邮件。”哪怕他曾就读于一所以“无神论、共产主义、自由恋爱”为非官方信条的激进大学,面对资本与薪资的支配,他也自嘲道:“事实证明,只要有人控制了我的薪水支票,我也会堕入黑暗面。”(“It turns out when somebody controls my paycheck, I too can be turned to the dark side.”) ### [28:27](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1707s) 早期与理查德·斯托曼的摩擦及工作站巨头的闭源本质 在 X 联盟不断固化的同一时期,通用公共许可证(GPL)也开始萌芽。早在 1985 至 1986 年间,Packard 就曾以未经版本编号的早期 GPL 协议发布过自己的首个自由软件。巧合的是,自由软件运动的奠基人、GPL 的作者理查德·斯托曼(Richard Stallman)当时就住在科技广场 545 号的六楼。斯托曼没有普通公寓,几乎长住在办公室里,也是这栋楼里的熟面孔。 斯托曼是一个极难相处且个性强硬的人。他经常走下楼梯来到二楼的 X 联盟办公室,当面严厉质问甚至痛骂他们为什么不使用 GPL。面对这种狂风暴雨式的说教,年轻的 Packard 产生了强烈的排斥心理,觉得此人过于偏激难缠,因而根本听不进去他的话。但回望历史,Packard 坦率承认斯托曼在原则上是正确的:“我们当时本应该听他的,但我们没有,大概是因为我们对他太熟悉了。” 当时资助 X 联盟的所有主流 UNIX 工作站厂商,其骨子里对自由软件毫无兴趣,甚至视其为敌。在这些厂商的整机产品中,X Window 系统是唯一的自由软件,其余的内核、C 编译器、工具链全部高度闭源。每家厂商都在全力打造一套足以消灭所有竞品、迫使整个市场向自己迁移的专有软硬件平台: > “每一家 UNIX 工作站厂商都想打造出一套无比强大的 UNIX 发行版和硬件平台,以至于所有其他 UNIX 工作站厂商都会随之消亡,所有人都会迁移到他们那里。” > —— Keith Packard ### [31:32](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1892s) 象牙塔式闭门造车:脱离实际的联盟标准(XIE 与 PEX) 在 X 联盟内部,一套标准的确立流程极为冗长:某人提出一个宏大的设想,撰写成标准规范,随后在联盟各大硬件厂商内部反复沟通协调数年以达成共识,最终由联盟表决批准。 在这套标准制定流程中,最致命的缺陷在于角色的缺席:除了工作站硬件巨头,真正的应用程序开发者、终端用户以及洞悉图形学演进前沿的高校研究人员被彻底排除在外。结果,联盟花费数年心血打磨出的诸多“重磅标准”,在真实世界里沦为无人问津的摆设。Packard 在演讲现场向观众发问有谁真正用过这些标准,台下几乎无人响应。 两个最具代表性的膨胀标准是: - **XIE (X Imaging Extension)**:一套为了在网络间进行复杂的图像像素传输与处理而设计的庞大扩展,最终几乎没有产生实际效用。 - **PEX (PHIGS Extension to X)**:联盟试图用它作为三维图形标准,去对抗并彻底击败 SGI 的 GL 语言。当时的巨头们盲目笃信“由工业联盟制定的规范总能击败单一商业公司推出的规范”,因此 Packard 等人投入了大量精力在 X 上实现 PHIGS 扩展(即 PEX)。然而事实证明,脱离广大开发者真实诉求的工业联盟标准,在后来 SGI GL 演化出的 OpenGL 面前溃不成军。 ### [32:45](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1965s) 核心协议的十五年冻结与技术停滞 在 X 协议的演进中,人们曾尝试开发低带宽版本的 X,然而事后证明低带宽从来不是 X 的核心瓶颈,致命伤反而是高延迟,而早期的低带宽项目完全没有解决延迟问题。与此同时,早期推出的 X Input 第 1 版体验极差,充其量只是硬凑上去的外挂模块,直到多年后 Peter Hutterer 完全重写了 X Input 第 2 版,输入系统才真正变得可用。在这一时期,各大 Unix 工作站厂商一心只想与竞争对手形成差异化壁垒,极度排斥扩大通用的基础功能。这种商业博弈导致 X 窗口系统在 X11R1 发布后便被“冻结在时间中”,其核心协议在长达 15 年的时间里(直到接近 2000 年)几乎没有任何语义层面的改动。 ```mermaid flowchart TD accTitle: 核心协议冻结的利与弊 accDescr: 展示X11核心协议长期不变带来的长久移植性优势与技术停滞劣势 subgraph Pros["长处:长久移植性"] A["1985/1986 年编写的程序"] -->|"语义零修改"| B["可在现代 X 环境直接运行"] end subgraph Cons["弊端:技术停滞"] C["PC 与 Mac 视窗系统"] -->|"持续迭代赶超"| D["现代图形渲染与交互演进"] E["X 窗口系统 (1988)"] -->|"厂商拒绝扩充核心"| F["停留在 1988 年技术水准"] end ``` 这种协议冻结形成了一把双刃剑:一方面,它带来了无与伦比的向后兼容性和可移植性,厂商可以自信地向客户承诺去年的软件今年依旧能跑,甚至 1985 或 1986 年编写的代码在现代 X 系统上依然能直接运行;但另一方面,技术环境在这 15 年间翻天覆地,计算机架构迅速革新。最初技术遥遥领先于 PC 视窗系统和 Mac 系统的 X,却停留在 1988 年止步不前。Keith Packard 评价这种两难局面时指出:“Now that's awesome for portability it's a great story to tell your customers that their applications from last year will run this year.”但残酷的代价是,外部技术日新月异,缺乏演化动力的 X 迅速被竞争对手追平并甩在身后。 - **高延迟瓶颈**:针对低带宽的优化未触及 X 协议深层的往返延迟(High Latency)痛点。 - **输入系统重构**:X Input 1 极为简陋,后由 Peter Hutterer 重构为 X Input 2 后才具备真正的实用性。 - **15 年零变化**:从 X11 发布到 2000 年前后,核心语义未发生重大调整,导致平台创新陷入停滞。 --- ### [34:18](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2058s) DECstation 3100 与 CFB 编写竞争:MIT 许可证的局限 20 世纪 80 年代末,精简指令集(RISC)浪潮在加州蓬勃兴起,SPARC 与 MIPS 等处理器横空出世,终结了 DEC 多年来依赖自家专有且提速缓慢的 VAX 处理器的时代。DEC 推出了旗下首款基于 MIPS 芯片的工作站——DECstation 3100。这台机器搭载 16 MHz 处理器,时钟周期达到惊人的 60 纳秒,运行速度大约是老式 VAX 机器的四到五倍。因为 CPU 性能足够强劲,DEC 决定不配备专门的图形加速硬件,而是像 Sun SPARCstation 或 Sun 3/60 一样,直接采用普通处理器搭配 VRAM、无加速的简单帧缓冲区(Dumb Frame Buffer)与显示扫描输出引擎。然而当时 X Window 系统的颜色帧缓冲区代码(Color Frame Buffer, CFB)极其原始粗糙,针对 8 位彩色显示的绘制性能十分糟糕。 面对性能瓶颈,DEC 并没有选择与 MIT X 联盟(MIT X Consortium)合作改进上游,而是让 Keith Packard 的好友 Joel McCormack 在 DEC 内部开发专有的加速 CFB 绘制代码,以此作为其工作站的闭源商业优势。出于对技术垄断的不满,Keith Packard 决定向其发起挑战,展开了一场长达六个月的双雄竞速:Joel 为 DEC 开发闭源专有驱动,而 Keith 则在 MIT 许可证下编写开源免费实现。最终诞生的 CFB 代码虽然凭借疯狂使用 C 预处理器宏获得了极快速度(甚至跑得比闭源版还快),但代码复杂度极其恐怖。回顾这段历史,Keith Packard 强调:“If the X server had been released under the GPL license, we would have collaborated, right? We had been forced to collaborate, because that's what the license does.”在宽松的 MIT 许可证下,两人无法看到彼此的源码,技术壁垒迫使顶尖工程师不得不各自闭门造车,白白浪费了原本可以合力写出更优雅系统的机会。 - **DECstation 3100 架构**:首款基于 MIPS 的 DEC 电脑,16 MHz 时钟频率,依赖 CPU 纯算力驱动 8 位彩色 dumb frame buffer。 - **闭源驱动与开源竞争**:Joel McCormack 为 DEC 打造专有图形优势,Keith Packard 用 6 个月写出开源版本并反超性能。 - **预处理器的代价**:开源 CFB 深度依赖 C 预处理器进行内联优化,造就了维护难度极高的“代码黑魔法”。 --- ### [37:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2254s) NeWS 与 Display PostScript:被商业孤岛扼杀的现代图形 在同一时期,Sun Microsystems 的 James Gosling 与 David Rosenthal 打造了著名的 NeWS(Network Extensible Window System)。NeWS 在架构上极其亮眼,它直接采用 Adobe PostScript 作为渲染基础。与当时非图形专业程序员拼凑出来的 X 渲染模型不同,PostScript 是一门经过多年深思熟虑、具备顶尖排版与光栅化渲染能力的页面描述语言。NeWS 甚至把窗口管理器直接做进了视窗系统服务端内部,在图形表达能力上远超 X。然而,Sun 虽然承诺将 X 作为标准,却又放不下 NeWS 的优势,于是构想出一个疯狂计划:将 X11 与 NeWS 合并在同一个服务端源码库中(即 X11/NeWS 服务端),试图让单一服务端同时支撑两套应用,并借此建立 Sun 的独占专有壁垒。 ```mermaid flowchart LR accTitle: PostScript 图形扩展在各工作站之间的碎片化 accDescr: 展现NeWS和Display PostScript由于专有授权无法形成统一开发标准的困境 subgraph Sun["Sun Microsystems"] A["X11/NeWS 服务器"] --> B["闭源专有方案"] end subgraph Adobe["Adobe Display PostScript"] C["Display PostScript (DPS)"] --> D["NeXTSTEP (核心架构)"] C --> E["DEC / HP / IBM (高价二进制 Blob)"] end B --> F["应用开发者无法依赖"] D --> F E --> F F --> G["商业应用生态彻底难产"] ``` 与此同时,Adobe 开发了 Display PostScript(DPS),被 NeXTSTEP 视窗系统选为核心图形技术,并向 DEC、HP、IBM 等各大 Unix 厂商高价兜售二进制模块(Binary Blobs)以便集成到各自的 X 服务端中。Display PostScript 本有机会为整个生态带来现代化的革命性渲染模型,但由于各大厂商将其作为相互倾轧的专有卖点,第三方软件开发者根本无法指望目标用户的系统上普遍存在该扩展。其结果是,市面上几乎没有出现过任何严重依赖 Display PostScript 的主流商业应用程序。Keith Packard 遗憾地指出,正是为了保留独家专有卖点,各大厂商联手扼杀了新兴技术的应用市场;如果当时的 X 采用 GPL 许可证,厂商便无法以私有二进制形态割裂生态,跨平台的现代化图形渲染标准或许早就落地生根。 - **NeWS 技术亮点**:基于 PostScript,具备完整的矢量缩放与高级光栅化能力,将窗口管理器集成进服务器端。 - **X11/NeWS 混合体**:Sun 依赖 X 示例实现的代码拼装服务器,但将其作为闭源资产独占。 - **Display PostScript 的商业困局**:缺乏统一定价与开源共享,沦为小众厂商的高价扩展,最终导致开发者群体集体放弃。 --- ### [40:41](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2441s) 桌面工具包割裂与“机制而非策略”的破产 在用户界面层面,开源社区早期能够获得的免费图形桌面极其简陋。维基百科上展示的 TWM 界面窗口装饰粗糙生硬,而同时期专有工作站上的 SunView 已经拥有了更具人性化、现代且美观的界面。随后,OSF/Motif 和 CDE(通用桌面环境)引入了令人惊艳的伪 3D 浮雕效果——利用三种不同明暗的灰色阴影为按钮营造凹凸有致的立体视觉,不仅重新定义了视窗外观,还被后续版本的 SunView 借鉴。然而,无论是 Motif 还是 Open Look,所有成熟好用的图形工具包全部是闭源的。开源世界唯一免费附带的只有简陋原始的 Athena Widgets(Xaw)。 ```mermaid flowchart TD accTitle: 工具包分裂对应用开发者的阻碍 accDescr: 阐述Xt底层框架无法调和Open Look与Motif策略差异导致的开发碎片化 subgraph CoreFramework["X Toolkit (Xt)"] Base["设计原则: 机制而非策略 (Mechanism not policy)"] end Base -->|"无法提供统一样式策略"| Split subgraph IncompatibleToolkits["分裂的闭源工具包"] Split --> ToolA["Open Look (专有闭源)"] Split --> ToolB["Motif / CDE (专有闭源)"] Split --> ToolC["Athena Widgets (免费但原始简陋)"] end ToolA -.->|"架构水火不容,组件无法混用"| Conflict["开发者必须二选一站队"] ToolB -.->|"架构水火不容,组件无法混用"| Conflict Conflict --> Block["跨平台通用应用生态建设失败"] ``` 这种工具包层面的专有割裂给软件开发者带来了灭顶之灾。当应用开发者满怀期望进入 X 平台时,本以为面对的是一个统一的标准窗口系统,现实中却发现每个硬件厂商都推销一套互不兼容的闭源工具包。X 系统标榜的“提供机制而非策略(Mechanism, not policy)”哲学,在此处彻底暴露了缺陷:X 服务端拒绝定义窗口外观与交互策略,迫使所有的 UI 策略全部积压到底层应用程序工具包(X Toolkit,即 Xt)中。尽管 Open Look 与 Motif 名义上都基于共同的 Xt 库开发,但两者在策略实现上背道而驰,架构水火不容。开发者既无法混用两种部件,也无法在没有重写的情况下移植界面。厂商试图将 UI 策略推给上层,结果反而在生态层面上切断了通用商业应用诞生的可能。 - **视觉技术革新**:Motif 开创了利用三色灰阶产生按钮按压伪 3D 视觉的设计语言,确立了早期 GUI 质感。 - **自由软件的空白**:当时开源界仅有 Athena Widgets,不仅外观原始,实用功能也难以满足复杂桌面应用需求。 - **“机制而非策略”的死胡同**:服务端缺少标准 UI 规范,导致 Xt 工具包被迫塞入各种相互冲突的实现,应用跨环境移植变得异常艰难。 ### [43:34](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2614s) 工具包之争的泥潭:OPEN LOOK、Xt 与 Unix 厂商的内耗 围绕 X Window System 的图形用户界面标准,各大 Unix 厂商陷入了极度消耗资源的割裂与内耗。Keith Packard 回顾了 OPEN LOOK 在技术演进中的扭曲过程:最初 Sun 拥有运行在其专有视窗系统上的 SunView,后来他们沿用相同的 API 开发出了一套面向 X 的工具包并命名为 XView;然而,客户随后提出明确要求,坚决主张必须使用标准的 X 工具包架构(即 Xt / X Toolkit Intrinsics)。为了顺应这种行业诉求,Sun 与 AT&T 耗费了海量精力在 Xt 之上强行构建新的实现(即 OLIT / OPEN LOOK Intrinsics Toolkit)。 在 Keith Packard 看来,这种技术妥协带来了极其讽刺的结果——由于受制于底层 Xt 架构的种种包袱与限制,厂商投入巨大人力物力换来的反而是一个在应用程序开发体验上更难用、更糟糕的工具包。无论是 OPEN LOOK 还是 OSF 推出的 Motif,整个 Unix 生态都在界面库的政治博弈与重复造轮子中越陷越深,非但没有形成合力,反而在无谓的技术妥协中消耗了宝贵的先机。 Keith Packard 尖锐地评价了这段折腾历史:“Sun and AT&T, I believe, spent an enormous amount of time creating a worse toolkit in terms of application development because they were forced to implement it on top of Xt.” ```mermaid flowchart TD accTitle: Unix 厂商的工具包内耗与高墙策略 accDescr: 展示 Unix 厂商在图形界面工具包上互相攻伐、强行封装,最终导致应用生态割裂并被 Windows 击败的全过程。 subgraph Toolkits["工具包的碎片化演进"] A["专有视窗 API<br/>(SunView)"] --> B["迁移为 X 工具包<br/>(XView)"] B --> C["被迫适配标准 Xt 架构<br/>(OLIT)"] D["OSF 阵营对手<br/>(Motif)"] -.->|"API 割裂与对抗"| C end subgraph MarketImpact["生态恶果与市场易手"] C --> E["开发体验劣化<br/>应用跨平台移植破裂"] E --> F["Unix 厂商筑起高墙自守<br/>市场于 1992-1993 年崩盘"] G["微软 Windows 平台"] -->|"一次编写,交付所有客户"| H["外部大军攻破城堡<br/>开启属于 Windows 的十年"] F -.->|"拱手让出桌面市场"| H end ``` ### [44:09](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=2649s) 城堡崩塌与 Windows 时代的来临 大约在 1992 至 1993 年间,X Window System 自身的发展几乎陷入停滞,其根本诱因在于背后的 Unix 商业工作站市场走向了全面崩溃。Keith Packard 指出,这场崩溃完全是各大 Unix 厂商咎由自取。面对个人计算机与通用软件平台的崛起,各大厂商本应携手建立一个开放共享的“公地”(commons),通过跨厂商的技术协作确保软件在不同机器间具备无缝的可移植性;但现实中,每一家厂商都只想锁死客户,把自家的城堡围墙越砌越高,龟缩在各自的高墙之内闭门造车。 最终,筑起高墙的策略换来的是全盘皆输。外部的“游牧大军”席卷而来,彻底踏平了各大厂商各自为战的孤岛城堡,个人计算领域随即跨入了被微软全面统治的“Windows 十年”。Keith Packard 带着几分自嘲与幽默指出,Windows 之所以能横扫市场,其逻辑简单而致命:在 Windows 上,开发者只需编写一次应用程序,就能顺畅交付给全天下的客户,这种对应用开发与软件分发极其友好的统一生态,事实证明对商业成败有着决定性意义。 演讲行毕,现场主持人代表全体参会者向 Keith Packard 致以谢意,盛赞这是一场内容极其精彩、引人入胜的分享。由于该场议程时间已全数用尽,现场未设提问环节,主持人幽默地建议大家“去走廊里围追堵截 Keith”,演讲在全场热烈的掌声中落下帷幕。 - Keith Packard 总结 Unix 阵营惨败给 Windows 的战略失误:“All of them, instead of building a commons where they could collaborate and build systems that would actually allow application portability and cross-vendor development, decided to build their castle walls taller, hide inside, and eventually the roving hordes outside overran the castles.” - Keith Packard 剖析 Windows 胜出的关键原因:“Windows took over because you could actually develop applications on Windows and ship them to all of your customers; it turned out to be important, who knew?” - Unix 市场在 1992 年至 1993 年间急剧萎缩,不仅严重遏制了 X Window 自身的核心技术演进,也直接重塑了随后十年的操作系统格局。 - 现场由于演讲超时未安排正规的 Q&A 问答,主持人提示听众可以在会场走廊等非正式场合与 Keith 继续交流探讨。 ## Notable quotes > [28:27](https://www.youtube.com/watch?v=cj02_UeUnGQ&t=1707s) 每一家 UNIX 工作站厂商都想打造出一套无比强大的 UNIX 发行版和硬件平台,以至于所有其他 UNIX 工作站厂商都会随之消亡,所有人都会迁移到他们那里。 — Keith Packard ## Mentioned Keith Packard, Bob Scheifler, Bradley Kuhn, Brian Reid, Paul Rex Roy, Barbara Liskov, Larry Wall, Jim Gettys, Smokey Wallace, Jim Fulton, Richard Stallman, Joel McCormack, Peter Hutterer, James Gosling, David Rosenthal, Van Jacobson, X Window System, X10, X11, V Kernel, W Window System, VGTS, Argus, SunView, uwm, Athena Widgets (Xaw), Motif, CDE, OPEN LOOK, OLIT, XView, X Toolkit (Xt), NeWS, Display PostScript (DPS), OpenGL, PEX, XIE, Andrew Toolkit, UNOS, TWM, FrameMaker, Interleaf, DEC VAXstation 100, DEC VAXstation II, DECstation 3100, VAX-11/750, Sun-3/60, SPARCstation, IBM PC RT, Apple Macintosh, Symbolics Lisp Machine, MIT, MIT LCS, MIT X Consortium, DEC, DEC WRL, Sun Microsystems, AT&T, Tektronix, Apollo Computer, Hewlett-Packard (HP), IBM, Carnegie Mellon University (CMU), Stanford University, UC Berkeley, Adobe, Silicon Graphics (SGI), Microsoft, Free Software Foundation (FSF), National Semiconductor ## Video description Keith Packard https://lca2020.linux.org.au/schedule/presentation/186/ Stretching back over 35 years, the X Window System is one of the oldest surviving free software projects. Having its origins before the invention of the GPL, the history of X offers a slice through the whole lifetime of the software freedom movement. Using X as a lens, we can study the causes and effects of licensing, community and corporations in the world of free software. This presentation will describe the origins of X, a discussion about the influences and interactions with the major Unix workstation vendors and early interactions with the Free Software Foundation. Also included will be a description of how internet performance bottlenecks in the mid 80s drove structural and governance changes in X that haunt the larger software ecosystem to the current day. Finally, a discussion on how software licensing choices drive community structure and affect corporate engagement will be included. linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see https://linux.conf.au/ Produced by NDV: https://youtube.com/channel/UCQ7dFBzZGlBvtU2hCecsBBg?sub_confirmation=1 #linux.conf.au #linux #foss #opensource Thu Jan 16 13:30:00 2020 at Room 8 [Source](https://www.youtube.com/watch?v=cj02_UeUnGQ)

Source quotes

[28:27] Keith Packard: 每一家 UNIX 工作站厂商都想打造出一套无比强大的 UNIX 发行版和硬件平台,以至于所有其他 UNIX 工作站厂商都会随之消亡,所有人都会迁移到他们那里。

Source quotes

[44:09] Keith Packard: Windows took over because you could actually develop applications on Windows and ship them to all of your customers [27:02] Keith Packard: It turns out when somebody controls my paycheck, I too can be turned to the dark side.

Original transcript

[0:00] reduce Keith's packet with the history [0:02] of X well it's notionally history but [0:12] it's really tales that I've told to a [0:14] lot of people [0:15] Bradley Kuhn actually encouraged me to [0:17] put this talk together and submit it for [0:18] his conference copyleft conf in a couple [0:21] weeks in Brussels but as I was not [0:23] planning on going to copy left off I [0:25] said well I could submit that to LCA [0:27] this talk was added late in the in the [0:30] program due to some people not being [0:33] able to attend and so it's a little [0:35] rough around the edges so I apologize [0:36] for that [0:37] I usually like to spend a couple of [0:39] months putting a talk together but this [0:40] time I had about three days so here we [0:44] go okay first off this is not a talk [0:47] about anything my employer cares about [0:49] it's definitely does not represent their [0:50] opinions these are my opinions I need to [0:53] tell you that because there is so [0:54] there's going to be a lot of opinion in [0:55] this and I will almost certainly be [0:59] wrong for those of you who lived through [1:01] this history please please feel free [1:03] raise your hands and correct me or I do [1:04] speak wrongly because 35 years of X is a [1:10] long time and I'm sure I've forgotten [1:12] most of the important things and as we [1:15] all know now our memories tend to [1:16] rewrite things as we tell stories to [1:18] others and so this could be completely [1:20] fictional okay who here was using UNIX [1:25] in 1984 or earlier now very many of us [1:29] for the rest of you UNIX in 1984 was an [1:32] entirely a closed source proprietary [1:34] environment there were no free software [1:36] UNIX is in 1984 this may come to you as [1:39] a terrible surprise but the licensing [1:42] that 18t applied to the UNIX allowed [1:44] universities to use it so students at [1:46] universities had access to it [1:48] and eventually allowed corporations to [1:51] acquire a license and build commercial [1:53] products based on it [1:54] there was really no free software [1:56] anywhere the compilers proprietary the [1:58] operating systems were proprietary [1:59] though graphic systems were proprietary [2:01] we lived in a land of copyright hell [2:05] okay so where does X come from [2:08] remember 1984 that was the year the [2:11] Macintosh the original Macintosh [2:13] - released um it had a 512 by 380 some [2:18] pixel monochrome screen [2:21] why was graphics so terrible back then [2:24] well the real thing is is that just a [2:27] few around the same generation somebody [2:30] came up with a new way of doing memory [2:32] before V Rams it was essentially [2:35] impossible to build a competent frame [2:37] buffer you couldn't do high resolution [2:39] monochrome or color graphics until the [2:42] vram was introduced the theorem was a [2:44] dual ported Ram once I'd talked to the [2:46] CPU the other talked to the scan out [2:48] engine once that became introduced we [2:50] could build high resolution workstations [2:53] Paul O'Brien read in policin he were [2:55] working or at Stanford students at the [2:57] time they were working on a distributed [3:00] microkernel system called the V kernel I [3:02] did message-passing over Ethernet not [3:04] TCP not IP Ethernet because Ethernet was [3:07] awesome they needed a terminal program [3:12] to run on their tiny little graphics [3:14] devices they wrote the V graphics [3:16] terminal system IV GTS had some [3:19] interesting constraints on it and then [3:21] eventually wrote the W Window System [3:22] that's kind of the first because V was a [3:25] distributed operating system the notion [3:27] of having a graphic system that could [3:29] only talk to the local display it never [3:31] occurred to them V was all about RPC all [3:35] all the all the function calls of the [3:37] operating system calls went into this [3:39] distributed operating system and [3:40] appeared and were executed on some [3:42] processor possibly remotely to you so [3:44] RPC was the core of V so of course the W [3:47] Window System was a distributed Window [3:48] System the W Window System was [3:50] eventually ported to the V s100 the back [3:53] station 100 I have a picture of that I [3:54] think on the next slide and was ported [3:57] by Brian or or Paul I'm not sure which [4:00] of them or both of them were involved in [4:01] that I had I don't I don't remember [4:03] asking them back in the day but they [4:05] ported that at Stanford of course this [4:08] was all proprietary software remember [4:10] even the V system was proprietary but [4:12] they shared it with friends at MIT Bob [4:14] Schieffer in particular who was working [4:16] with Barbara Liskov yeah amazing [4:19] computer scientist he was working on the [4:22] Argus system as part of his master's [4:24] degree and he got a little sidetracked [4:26] how many of you get sidetracked like [4:28] this he's like oh I've got this Argus [4:33] system which is another distributed [4:35] multi computer multi-threaded up [4:38] language environment using clue I really [4:42] need to be able to debug more than one [4:43] program at a time in gdb or in the in [4:45] this case dbx could only debug one [4:49] thread at a time so I need multiple [4:50] terminals to be able to debug my Argus [4:53] programs so it's like oh I know what I [4:55] should do I should seal this w code from [4:57] Brian and Paul and port that to Unix get [5:01] it working on the BS 100 on the [5:02] connected to of acts and oh we go now [5:05] I've got a terminal program I can get [5:06] back to Argus well he got a little [5:08] sidetracked he spent a couple weeks [5:10] hacking on w completely replaced the [5:13] synchronous RPC mechanism because V of [5:15] course had synchronous our pcs which was [5:17] really efficient because it was [5:19] basically the core of the operating [5:20] system but UNIX not so much so we re [5:23] implemented is asynchronous in a couple [5:25] weeks later Poole we have look at this V [5:28] W X awesome name yeah okay so you choose [5:35] the first metasyntactic variable name [5:37] for your Windows system and you think [5:39] and people are gonna think you are the [5:41] smartest naming person ever yeah okay [5:46] here is the Venerable vs 100 this is [5:49] unfortunately all of the images in this [5:52] deck I could not find attributions or [5:57] copyrights for any of them so these are [5:59] probably all I'm hoping I've got some [6:02] fair use terms allowing me to use the [6:05] images but when I publish the slides [6:07] I'll probably have to strip all the [6:08] images out this was a the vs 100 it's an [6:11] awesome piece of hardware imagine what [6:14] you have in your office is a vac 750 who [6:16] knows how big of X 750 is yeah it's 2 [6:20] 19-inch racks about 4 feet tall with I [6:25] think probably 4 or 6 8-inch [6:28] squirrel-cage blowers to get air through [6:30] it so or is that gonna be in your office [6:34] probably not but that's what this [6:36] plugged into is it was a yuna bus card [6:38] universe cards are about this big [6:40] the universe card that plugged into the [6:42] back plane of the VATS Iran I think [6:45] three optical fibers from the universe [6:47] card out to this device which is a 68k [6:51] based computer of course it was just [6:53] terminal because you had your real backs [6:55] back in the background who needs a 68k [6:57] when you have of X that turns out that [6:59] 68k was probably faster it had a mouse a [7:05] keyboard and a high-resolution screen I [7:07] think it was 1024 by 800 and some no [7:10] it's more than 1024 I think I actually [7:12] wrote this down sorry yeah I think it's [7:16] on the next note something out even in [7:18] the neck screen I think it's like 1,100 [7:19] pay or 10 10,080 some pixels a crazy [7:22] number okay let me get off the stage [7:24] again I'm going to kill myself [7:26] it was awesome monochrome screen again [7:29] it's a 68 K processor it's got like 128 [7:33] K bytes of VRAM these really expensive [7:36] dual ported memory that allow you to [7:38] scan out a monochrome screen at the [7:41] whopping rate of 60 Hertz and it's got a [7:44] lovely mouse and a keyboard so all of a [7:46] sudden I have a workstation I can run [7:47] the optical fiber a long distance I can [7:50] actually have the VAX up on the seventh [7:54] floor I think eighth floor of a [7:55] laboratory of computer science at MIT [7:57] run the optical fiber down the plenums [8:00] because MIT was extremely plenum [8:02] friendly and run the optical fibers into [8:05] my floor under Bob's office on the fifth [8:06] floor so you could actually have this [8:09] compute this terminal which is a full [8:11] speed UNIX workstation sitting in your [8:13] office amazing fantastic okay let's see [8:18] the UNIX workstation market UNIX was [8:21] closed source as we said most of the [8:23] vendors shipped a proprietary hacked-up [8:25] version of what bsd what berkeley was [8:27] working on bsd so they started with bsd [8:30] 4.1 in some cases 4.2 in other cases 4.2 [8:34] see in some cases and I don't remember [8:38] if anybody started with 4.3 so everybody [8:40] took BSD UNIX they got a license from [8:43] AT&T they got they got permission from [8:45] Berkeley and they started hacking the [8:46] heck out of the source code because they [8:48] needed to make it better [8:49] right and they had they had they had [8:52] awesome ideas on how to improve this [8:53] great operating system [8:54] and every single one of these [8:56] workstation vendors was going to take [8:57] over the world and wipe the rest of the [8:59] vendors off the market because theirs [9:01] was so much better and as a result [9:05] during that era that's when the [9:07] configure program came about and about [9:08] this era early 80s this is one of its [9:11] famous lines who's ever seen this [9:13] printed on their terminal yeah this is [9:16] the configure script that that Larry [9:18] wall wrote this was the best thing it [9:21] could say congratulations you're not [9:23] running unis unis was the UNIX emulation [9:26] that ran on VMs at the time but in all [9:29] other cases it was like well this is [9:30] some variant of a BSD like operating [9:32] system I'm going to have like six [9:33] thousand pound defiance to tell you how [9:36] to compile your program for this bsd [9:38] that was awesome right we actually had [9:40] portable software kind of as long as we [9:43] were really willing to recompile so the [9:45] whole notion of a commercial software [9:46] market which each of these vendors was [9:48] desperate to create was never going to [9:51] happen because there was no standards [9:53] okay Dex entrant into this into that one [9:57] or two one of Dex two entrance into this [9:59] market was called the vac station - you [10:01] can see actually had one of these on my [10:02] under my desk at MIT it's this rolling [10:05] cart thing with wheels in the bottom and [10:08] it's a double-wide system this is color [10:10] graphics okay-okay 1986 1987 something [10:16] like that no don't remember the exact [10:17] age it had an 8-bit color accelerated [10:21] color graphics screen amazing stuff I [10:25] love especially his his outfit I I [10:29] struggle to emulate his panache every [10:32] day [10:34] okay another another common graphics [10:39] computer the arrow is two thoughts on [10:40] 360 how many of you how many of you have [10:42] played with a sudden 360 yeah okay the [10:45] difference between the Sun 360 and the [10:47] vac station was the Sun 360 used a [10:50] commodity Motorola microcontroller at [10:52] the end 68 oh 20 and it used a dumb [10:55] frame buffer which is to say the CPU is [10:58] responsible for drawing everything on [10:59] the screen meanwhile with our friend the [11:02] vex vex station - it used a proprietary [11:04] VAX microcontroller and it had a [11:08] graphics accelerator which was connected [11:11] via probably I don't even remember which [11:14] bus it used to connect it into the end [11:16] of the system but it had accelerated [11:18] graphics which meant the CPU could not [11:20] draw into the frame buffer directly he [11:23] actually had to interact with the [11:24] graphics accelerator that kind of sucked [11:27] actually turned out to be worse than the [11:29] dumb frame buffer in so many ways this [11:32] was awesome it had this really cool [11:34] special mousepad so it had an optical [11:36] mouse but optical mice weren't all that [11:39] awesome [11:40] in 1986 yeah you actually couldn't tell [11:44] it didn't have the ability to detect [11:47] motion on a regular flat surface so you [11:48] had to use the custom mouse bed yeah it [11:51] was kind of cool they had the advantage [11:53] of not having a ball underneath it got [11:55] that got full of goo from the desk and [11:57] so it was a lot more reliable okay sir [12:00] in 1985 8086 we had the early unix works [12:04] really early unix window systems the [12:07] dominant window system at least from my [12:09] perspective again this is my story was [12:11] was Sun view I saw Sun View first as an [12:14] undergraduate in like 1985 it was [12:17] amazing I had a mega pixel screen 1152 [12:20] by 900 resolution yeah I remember all [12:23] the numbers and it had it had multiple [12:29] terminals and applications and desktop [12:31] widgets it was awesome [12:34] what was the problem with Sun view oh [12:36] you had to buy a Sun workstation to run [12:39] Sun view the Windows system was actually [12:41] in the UNIX kernel so that meant to draw [12:43] anything you had to take a kernel call [12:45] and go draw a rectangle come back [12:48] which meant that you had some protection [12:50] from other applications drawing on the [12:52] screen because other applications you [12:55] know the kernel would actually would [12:57] actually keep things isolated Digital [12:59] had vws UIs which only ran on VMS this [13:02] is their VAX Window System and I don't [13:06] even member what UAS stood for I can't [13:07] even backronym it today I apologize [13:10] Apollo had Apollo was a unix-like [13:12] workstation it wasn't actually running a [13:14] BSD derivative as far as I know it had [13:17] its own crazy crazy kind of network [13:21] distributing stuff called domain and [13:23] that included a Windows system [13:24] Apollo also had the distinction of [13:27] having the the only plane our display in [13:30] the industry which meant that it had if [13:32] you had an eight 8-bit frame buffer on [13:34] Apollo you actually had eight one bit [13:36] frame buffers and to draw a line on the [13:38] Apollo meant drawing a line at every [13:40] single frame buffer separately so it was [13:43] really cool to watch it draw because [13:45] you'd see the color slot slowly migrate [13:47] from one color to the next as it drew in [13:49] successive successive planes of the [13:52] frame buffer that was great [13:55] I was actually working at the time at [13:58] Tektronix and Tektronix was [14:00] demonstrating small talk but of course [14:02] Tektronix was insane that's really a bed [14:06] where I apologize that Tektronix [14:07] management had a very poor a poor idea [14:11] of how to succeed in the UNIX [14:13] workstation market they actually entered [14:15] the UNIX workstation market I think four [14:17] times altogether and exited it shortly [14:20] thereafter each time yeah not exactly a [14:23] great business model they had they had [14:27] they were using national semiconductor [14:28] 32 Oh 16 and 32 Oh 32 processors which [14:32] had numerous bugs and yeah they kept [14:35] trying to make them work not so much [14:36] they're an awesome Smalltalk machine [14:38] they eventually shipped a couple of [14:40] those it was fantastic [14:41] again 68k based but because they're [14:45] mostly the oscilloscope company they [14:46] didn't really have a close relationship [14:47] with Motorola and their say their [14:49] national salesperson US sold them down [14:52] the 3200 16 River okay so as I say Bob [14:58] Schieffer developed [15:00] the early X Window System in about two [15:01] weeks so that's where our architecture [15:04] comes from two weeks of spare time [15:05] hacking we have a lot of systems like [15:08] that in our world right I can think of [15:11] things like Perl and Python and tickle [15:14] JavaScript JavaScript was not even two [15:16] weeks that was a weekend right there's [15:22] these legacy technologies it's like oh I [15:24] know I need to do something quick just [15:26] so I can get my job done and here we are [15:27] 40 years later thanks maybe you could [15:30] have thought about that a little more [15:32] yeah that's what happens right okay so X [15:35] 11 X 1 through X 6 were used internally [15:39] at MIT they had a closed source license [15:41] because it was you know university [15:43] research and nobody really had any idea [15:44] what to do with it it was shared with [15:47] friends informally I think friends at [15:48] CMU I'm sure friends at Stanford and [15:50] Berkeley got to take a look at this but [15:53] it wasn't published in any in any sense [15:55] that we think of software publishing ok [15:59] x10 came along and there were there were [16:01] seven eight and seven and 9 X 7 and 9 as [16:05] well X 8 was the version 8 was reserved [16:07] but those were just kind of incremental [16:09] improvements on X 6 as far as I know X [16:11] 10 was almost usable right the X 10 [16:15] Window System had monochrome and color [16:16] support it ran on PC RTS the IBM PC RTS [16:21] Sun 360s it ran on the deck the deck [16:25] stations I think it probably ran on [16:27] early HP workstations of the air I [16:29] certainly I know that i ported to the [16:30] Tektronix workstations that I had in my [16:33] basement that I got out of Tektronix [16:34] surplus because they were canceled yeah [16:38] Digital actually didn't have a UNIX were [16:41] windows system at the time so digital [16:42] said hello I know what we'll do we'll [16:44] ship x10 on our digital workstations [16:46] well the problem with x10 was that it [16:48] was almost a Windows system and it [16:50] almost worked and it was like oh we're [16:52] kidding they're really close can we just [16:53] make a few refinements let's see oh and [16:57] the other thing is the x10 distribution [16:59] you think of X is always having been [17:01] free software right well X was [17:03] distributed and this too in this era x10 [17:05] was distributed under the MIT license I [17:07] think x9 might have been the first [17:09] release to have that license the MIT [17:11] license is not a strong [17:14] copyleft license right it's a it's a as [17:16] my friends from Berkeley call it a copy [17:18] center license take it and do whatever [17:20] you want with it [17:21] yeah copyright copyleft copy center yeah [17:27] so the the distribution actually [17:29] contained a number of binary blobs that [17:32] all the digital rendering code for [17:35] monochrome and color was both [17:36] distributed as binary blobs the Sun 360 [17:39] port relied on underlying Sun view code [17:42] and the kernel to do all of its [17:43] rendering the only thing that actually [17:45] shipped with x10 that was in source form [17:47] was for the IBM PC RT and that's because [17:50] CMU Carnegie Mellon University was [17:53] sponsored by IBM to do a bunch of work [17:55] on on on building the andrew system [17:58] another distributed works work [18:00] environment of the era and they needed [18:03] to run it on a PC RT they were playing [18:05] with X at the time kind of on the side [18:06] and there wasn't any rendering code and [18:09] they had a pile of students and so they [18:11] shipped they just shipped the source [18:13] code because why would they pre compile [18:14] it okay so I got X I this is my first [18:18] exposure to X this is 1986 I think I've [18:22] just graduated from from university I've [18:27] been working at Tektronix for a number [18:29] of years but I got X 10 on the vac [18:31] station to GPX we're building a we're [18:34] building a C compiler and IDE of the era [18:38] before the term IDE existed x10 had a [18:42] lot of warts one of its us awesome warts [18:45] as x10 also did external window [18:47] management we're a separate X [18:49] application did the window management [18:51] allowed you to move and resize and icon [18:53] of high windows but there was no way to [18:55] put decorations on the windows with the [18:57] window manager so if you if how many of [19:01] you have ever used uwm or x10 yeah just [19:06] a very few the reason there were no [19:08] decorations is because there was [19:09] literally impossible to do the [19:11] application would have to draw those [19:13] decorations [19:13] so the uwm the the window manager of the [19:16] era the only way you could manage [19:18] windows was with a may amazing [19:20] combinations of hotkeys and mouse clicks [19:22] those all all left to move the window on [19:25] right button to resize [19:27] because there's no way to put widgets [19:29] around it so that kind of sucked X tens [19:31] rendering bottle it was also very [19:33] primitive at the time it had very poor [19:36] image management which was kind of [19:37] important the the rendering line and [19:40] circle drawing code was fairly primitive [19:43] and it was being done mainly by MIT with [19:47] little digital involvement some people [19:49] at CMU they really wanted to get the [19:52] broader a lot of other workstation [19:54] vendors had come in to MIT and said we [19:55] really like to get involved with this [19:57] now why did they want to get involved [19:59] with this system any idea well right now [20:04] they were all competing against son and [20:06] son had the entrenched so I'm view [20:09] window system right all of these [20:13] workstation vendors are coming and [20:14] saying we really want to have software [20:15] but there is no software for our [20:17] proprietary window system so what if we [20:20] all kind of banded together created a [20:23] new standard created a new standard and [20:26] and said hey this is now the standard [20:29] UNIX window system [20:31] you should come import to us because we [20:32] support multiple vendors and Sun View [20:34] only supports Sun now sun was the [20:36] dominant workstation vendor of the era [20:38] there were actually commercial [20:40] applications shipping on Sun View right [20:43] you could actually buy frame maker and [20:45] another desktop publishing application [20:49] I don't know way before way before that [20:51] there was another in interleaf there we [20:54] go interleaf was also available that was [20:56] like a commercial publishing system so [20:58] people were using Sun View to do things [21:00] other than develop window systems [21:03] why I don't know yeah so Jim Geddes and [21:08] smokey Wallace who were both at [21:10] digital's Western research lab at the [21:11] time came up with a cool plan I know [21:14] what we'll do we'll we'll work to [21:17] develop a new X standard x11 we will [21:20] donate a sample of implementation done [21:24] by Dec engineers in collaboration with a [21:26] few other people and we'll reset the [21:28] market right all of a sudden the [21:30] standard window system for UNIX will [21:33] become X and not Sun View and all other [21:36] vendors a Suns advantage in the market [21:39] of having a platform to ship software on [21:41] will evaporate [21:42] well shockingly it worked they managed [21:45] to sell it to digital management they [21:47] even managed to get Sun on board it's [21:49] like sure our standards those are [21:51] awesome we should join that too I don't [21:53] know why Sun agreed to this plan didn't [21:57] work out it worked out fine for them so [21:59] digital management bottom to the plan a [22:01] team at Western Research Lab was was put [22:03] together I'm sorry I didn't write down [22:06] all of the names and so I'm not gonna [22:07] try to remember them and they did and [22:10] they were signed up to do the initial [22:11] x11 implementation okay so now x11 is [22:15] going to be developed that it's we're [22:17] gonna we're gonna start for the fresh [22:19] fresh slate right we're just gonna start [22:21] with a blank sheet of paper and develop [22:23] a new network window system based on the [22:25] ideas that we learn from X 10 so X 11 [22:28] interpret inherits essentially no code [22:32] from X 10 it inherited a couple of ideas [22:35] most of them bad so X 10 had window [22:40] borders which was a constant width area [22:44] around the screen so you could separate [22:46] one window from the other now we're [22:49] gonna have external window management [22:50] with with the window manager being able [22:52] to have its own decorations and so we [22:55] should probably let the window manager [22:57] figure out what kind of borders to draw [22:58] but know will leave borders in because X [23:00] 10 apps might want them okay so the [23:03] protocol work was developed in a cross [23:06] collaboration between people at Sun and [23:09] HP at MIT I think some CMU people were [23:12] involved and and certainly at digital [23:15] the protocol [23:17] protocol design work was done over the [23:19] internet in 1986 and 1987 if anybody [23:24] went to Dave's talk earlier yesterday [23:27] you'll learn that the Internet in 1986 [23:30] 1987 was a challenging environment to [23:32] work in [23:34] literally you were talking about USPS no [23:37] no no x11 development was basically [23:39] FedEx based there were two teams one in [23:43] one in Cambridge Massachusetts so one in [23:45] Silicon Valley doing development on the [23:48] code and the protocol and they could not [23:51] copy [23:51] it's a tiny amount of code it's a couple [23:54] of megabytes the internet was not [23:55] functional enough for them to be able to [23:57] copy the code and synchronize their [23:59] development efforts overnight they just [24:02] it would just timeout and fail and [24:04] timeout and fail and timeout in fail so [24:06] most x11 development was done you via [24:08] FedEx you know it's amazing what the [24:10] bandwidth and reliability of an airplane [24:13] full of tapes is so that really the [24:16] internet failure really changed the [24:19] course of X development radically [24:22] instead of saying wait maybe we should [24:24] fix the internet which happened the next [24:29] year they said what we're going to do [24:32] instead is concentrate the development [24:35] with hired and paid developers at MIT [24:38] we're gonna we're gonna build a [24:40] consortium hire a bunch of developers [24:42] pick me I got picked although they [24:45] didn't know me at the time concentrate [24:48] the development at MIT and stop trying [24:51] to do distributed development right that [24:54] literally they gave up on the notion of [24:56] doing development over the internet [24:57] because the Internet of this era was [25:00] seen as fundamentally broken and then [25:01] Jacobson and Dean hadn't figured out [25:03] what to do okay so here we go [25:06] the internet is not viable we're gonna [25:08] just put developers in an office at MIT [25:10] and pay them with a pool of money from [25:13] all these major workstation vendors okay [25:15] so I got hired my good friend Jim Fulton [25:18] was hired and then we hired a couple of [25:20] other developers in the in the ensuing [25:22] months but initially it was Bob and Jim [25:24] and I working on the second floor now of [25:27] the laboratory for computer science [25:28] how have you been [25:30] square in MIT not too many of us have we [25:33] so this is where project Mac happened [25:36] project Mac was where multix came from [25:39] it was a joint collaboration between GE [25:42] and MIT and Bell Laboratories and a [25:44] bunch of other people it was an enormous [25:46] project project Mac developed multics [25:49] what's the what does multix proceed in [25:52] our world UNIX exactly so here we are at [25:56] the origins of project Mac and I am I am [25:58] so pumped right I'm it like the the [26:01] birthplace of modern computing project [26:04] Mac was there this was started there the [26:07] Symbolics machines are all over the [26:09] office the cable trays at MIT were full [26:12] of every K every networking technology [26:14] known to mankind because the cable trays [26:17] were huge and who would pull cables out [26:19] because that was really hard [26:21] you know thick net thin net I don't know [26:25] whatever kinds of I don't even remember [26:26] the kinds of networking there I got a an [26:29] account on on I TS which is the [26:33] incompatible time sharing system that [26:34] MIT had developed for the Dec 10 I got [26:36] to play with I get to have I got to have [26:38] an account on a machine on net 10 the [26:41] machine literally had a net 10 a real [26:44] net 10 internet address before they [26:46] repurposed net 10 for my house which is [26:53] why my house uses net 10 and not 192 dot [26:55] 168 it's like I was there when yeah I [26:59] know I'm getting really old okay so the [27:02] consortium was was funded by consortium [27:04] members by by enormous sums of money [27:07] paid by consortium members there were [27:08] probably ten or fifteen initially and it [27:11] grow to 50 or so we had an enormous pile [27:14] of cash the members who were paying by [27:16] the way also voted at all the standards [27:19] ok so what's happened here we've gone [27:21] from a multi University multi multi [27:24] corporation free collaboration where [27:27] everybody's allowed to participate to [27:29] pay for play hooray what did this do to [27:33] our external collaboration well the [27:35] corporations were now excited they were [27:37] paying for MIT to do their work so one [27:40] of the corporations do 2x [27:42] development of this era they stopped [27:44] right there was no reason for them to [27:46] spend internal money on shared code that [27:49] was terrible [27:50] external collaboration with universities [27:53] basically evaporated at that point [27:55] because they weren't members they [27:56] weren't allowed to contribute to the [27:57] standards so we stopped working with [28:00] them I remember taking one trip to CMU [28:03] in 1989 or so where we went to see what [28:06] they were doing with Andrew and they had [28:08] built their an entire toolkit based on X [28:10] 11 I mean it was fun and we chatted with [28:12] them awhile and then we went home and [28:13] that was the last we talked with these [28:15] people because again they weren't [28:18] members they had no actual say in what I [28:21] was supposed to do I was being paid by [28:23] these corporations okay so this is the [28:27] same era that the GPL was started right [28:29] the GPL did not exist in any in any real [28:33] way when X started I remember doing my [28:37] first GPL software in 1985 1986 was [28:41] licensed under the general public [28:43] license there was no new project there [28:45] was no version on it it was the general [28:47] public license so that I actually did I [28:49] actually went back and looked I released [28:51] GPL software as my first licensed free [28:55] software I felt pretty good about that [28:57] okay so where was the GPL well [29:00] unfortunately a Richard Stallman the [29:03] author of the GPL and a phen and quite [29:06] quite an interesting individual lived at [29:10] 5:45 tech square he lived up on the [29:12] sixth floor I think he had an office up [29:14] there he did not have an apartment and [29:17] we knew him extremely well he was a [29:19] challenging individual to get along with [29:22] he would regularly come down to our [29:24] offices and ask tough ask us or kind of [29:27] rail at us for not using the GPL this [29:31] did not make a positive impression on me [29:33] this was my first interactions with [29:34] Richard directly and I I remember [29:38] thinking at the time this this guy is a [29:40] little you know I'm not interested in [29:43] talking to him because he's so [29:44] challenging to work with and so we we [29:49] should have listened to him then but we [29:50] did not because we knew him too well [29:53] I guess and and met him as well [29:57] the other the you know he really what he [30:01] really was right we need to remember [30:03] that okay the other thing of course is [30:07] these corporate sponsors they're all the [30:08] UNIX workstation vendors do they have [30:10] any free software in any of their [30:12] products the only free software they [30:16] have is the X Window System that's it [30:18] right there kernels or compilers all [30:22] their tools everything is proprietary so [30:24] they really have no interest in free [30:26] software at all and in fact they're very [30:28] much dedicated to non-free software [30:30] that's where they make their money [30:31] remember each UNIX workstation vendor [30:33] was going to create a UNIX distribution [30:36] and hardware platform that was so [30:38] awesome that all the other UNIX [30:39] workstation vendors would disappear and [30:41] everybody would migrate to them some got [30:43] really close and if things had turned [30:45] out differently and son had had taken [30:48] over the world our world would be very [30:50] different place right now I don't know [30:51] better or not it turns out that me [30:54] personally was powerfully affected by [30:56] the pay-for say policies the mitx [30:58] consortium right I would spend my time [31:00] answering mail by people who pay my [31:02] salary I would not spend my time [31:05] answering mail from people who did not [31:07] pay my salary yeah it turns out even [31:11] even me who was you know a free software [31:13] radical went to a college whose whose [31:17] College motto was atheism communism free [31:21] love yeah it turns out when somebody [31:24] controls my paycheck I too can be turned [31:27] to the dark side okay so X consortium [31:32] standards the standards process the MFE [31:34] X consortium was at somebody who come up [31:36] with an awesome idea write a standard [31:38] spend a couple of years working within [31:40] the consortium generating consensus and [31:42] what that standard should be and then [31:44] the consortium would ratify it [31:46] now the consortium at the time was all [31:48] the UNIX workstation vendors critically [31:51] missing from this list was perhaps [31:53] application developers end-users [31:56] researchers from universities who might [31:58] have good ideas about where graphics is [32:00] going so we had all these awesome [32:02] standards come up how many of you have [32:04] ever used any of these standards yeah [32:08] okay xie the ex imaging extension [32:11] allowed you to do crazy stuff putting [32:14] images over the wire packs the figs [32:17] extension 4x there was a great plan [32:19] figs was of course going to be the GL [32:22] killer because it was an industry [32:23] consortium those always win over [32:25] industry industry individuals right [32:27] we saw that happen again and again figs [32:30] was trying to trying to st i had the the [32:34] GL language graphics language the [32:37] industry consortium was trying to put [32:39] together figs we implemented a figs [32:41] extension 4x called pax i worked a bunch [32:45] on a low bandwidth version of X it turns [32:48] out that low bandwidth is not the [32:49] problem with X the problem with X is [32:51] high latency and that didn't touch that [32:53] problem oops yeah yeah and then of [32:58] course there was X input version 1 it's [32:59] important to realize this is version 1 [33:01] and not version 2 version 2 is a [33:03] complete rewrite by Peter Hudler which [33:05] is actually usable a version 1 was this [33:07] bolt-on stuff now the important thing to [33:10] remember in this era was that the [33:13] workstation vendors were trying to [33:14] differentiate with their competitors [33:17] they did not want to increase the common [33:20] base of functionality so the X Window [33:22] System as soon as X r1 shipped the X [33:26] Window System was frozen in time the [33:28] core X Window System [33:29] did not change until nearly the year [33:32] 2000 so for 15 years the standard for [33:35] the X Window System was the same no [33:37] semantic changes and that means that [33:40] today you can largely run programs from [33:42] 1985 or 1986 on a modern X Window System [33:46] because a semantics never changed now [33:49] that's awesome for portability it's a [33:51] great story to tell your customers that [33:53] their applications from last year will [33:54] run this year the problem is is that [33:56] technology changed computers got [33:58] different over over those 15 years and [34:01] as a result X which started way ahead of [34:05] the PC Window System the Mac Windows [34:07] system and all these other compile teri [34:09] windows systems it stopped it stopped in [34:11] 1988 it never got any better and as a [34:14] result other things changed right ok I [34:18] wanted to show you some of the [34:19] workstations the era is they're not [34:21] actually an image on this [34:22] oh I'm sorry my slides kind of suck as I [34:27] said they were done rather hurriedly [34:29] okay Dec station 3100 this was the first [34:32] mips-based deck computer right deck had [34:36] been doing vats VAX processor for years [34:39] and years proprietary VAX process it had [34:41] a fab the VAX process of getting slowly [34:43] faster and faster [34:44] um and then some crazy people and excuse [34:47] me I used that word again I apologize [34:48] some some advanced people in California [34:52] came up with the idea of came up with [34:57] the idea of risk computing right and we [34:59] had the flowering of RISC RISC processor [35:02] design across the industry we had the [35:04] SPARC processor we had the MIPS [35:06] processor and we had a bunch of other [35:08] stuff okay [35:09] so deck built the deck station 3100 this [35:12] is this is my first story about where [35:14] the GPO would have helped us a lot the [35:17] deck station 3100 was a 16 megahertz [35:21] processor it ran probably 4 or 5 times [35:23] as fast as the back station 60 [35:26] nanosecond clock cycle it was just [35:29] amazing how what could you do with that [35:32] kind of power [35:34] ok it was fast enough that they decided [35:37] not to build a graphics accelerator and [35:39] to do a dumb frame buffer so this was [35:41] essentially the the the Dex equivalent [35:43] of the Sun SPARC station or Sun 360 the [35:45] same era [35:46] you know commodity processor a VRAM dumb [35:49] frame buffer and a scan out engine and [35:52] that was it but the problem was with the [35:55] X Window System was the the the color [35:58] frame buffer code the color the code [35:59] that could draw to an 8-bit frame buffer [36:02] was extremely bad at the time that was [36:04] extremely primitive so what a deck to [36:06] did deck decide to collaborate with the [36:09] mitx consortium and build a bunch of new [36:11] frame buffer code no a friend of mine [36:17] Joel McCormack at deck decided to go off [36:19] and write some new accelerated color [36:21] frame buffer code that would be a [36:22] proprietary advantage for their [36:23] workstation I of course didn't think [36:25] that was a great idea so he and I spent [36:28] the next six months competing me doing [36:30] free implementations under the MIT [36:32] license the he doing proprietary [36:34] implementations for their operating [36:36] on writing color frame buffer code and [36:39] the result was the CFP code that we all [36:41] know and love how many of you have seen [36:43] the color frame buffer code yeah the C [36:47] preprocessor is an evil tool yes yes my [36:54] code ended up being faster yeah there [37:02] were some optimizations that I should [37:04] not have taken okay okay if if the ex [37:10] server had been released under the GPL [37:12] license we would have collaborated right [37:16] we had been forced to collaborate [37:17] because that's what the license does and [37:21] I'm pretty sure the result would have [37:23] been better than what we came up with [37:25] either individually I no doubt he was a [37:27] much better programmer than me in most [37:29] ways but I couldn't see his code and he [37:31] couldn't share with me okay here's [37:34] another adventure the news Window System [37:36] this was a proprietary Window System [37:38] done by Sun written by James Gosling and [37:41] David Rosenthal um how many of you know [37:43] what else James Gosling has done a [37:45] little language that he wrote yeah this [37:47] is one of his earlier efforts he also [37:49] was an early author of Emacs while he [37:51] was at CMU he lived he used the office [37:54] next door to my friend B Dale was [37:56] developing Emacs so BDL still has floppy [37:59] disks with jaws mac source code so the [38:01] network extensible windows system this [38:04] was awesome [38:05] PostScript based there were some there [38:08] were some interesting design choices in [38:10] this window system I have a different [38:14] talk that could probably give about why [38:15] I didn't think News was such a great [38:16] idea but it had a tremendous advantage [38:19] over X it had PostScript in it which [38:22] meant that it had the PostScript [38:24] rendering model it was a competent [38:26] well-designed page description language [38:29] Adobe had been working on it for years [38:31] I'm sure they had collaboration with [38:33] actual graphics people unlike X and so [38:37] you actually could do really interesting [38:38] drawing stuff right you could do you [38:40] could do rasterize rasterize things [38:44] really really nicely much better than X [38:46] ever could so the problem was of course [38:49] was that news [38:50] voluntary window system and son had [38:51] committed to using X as their standard [38:53] window system but news was better in [38:54] some ways so what they decided to do [38:57] this is the crazy plan they decided to [38:59] merge the x11 news servers into one [39:01] source code base which meant that you [39:04] had a single window system that could [39:06] either run news applications or X [39:07] applications the awesome part about news [39:10] was that the window manager was actually [39:12] in the window system in the Windows [39:14] System server and so it had to then kind [39:17] of grow and learn how to be an X window [39:19] manager inside the window system server [39:22] of course the news X 11 news server was [39:26] going to take over the world because it [39:28] was the most awesome idea ever and so it [39:29] was closed source a proprietary [39:31] advantage for Sun it used of course [39:35] steaming piles of the X Window System [39:37] sample implementation but again we [39:40] couldn't see the source code because x11 [39:42] was licensed under the MIT license so [39:46] even though there was a there was [39:47] another post gift implementation done by [39:49] Adobe Adobe display PostScript this was [39:52] used on the next in the next system in [39:55] their Window System and Adobe also sold [39:57] binary blobs for UNIX workstation [40:00] vendors to merge into their X [40:02] implementation so you could have display [40:03] PostScript now display PostScript would [40:06] have been awesome right it would've been [40:09] awesome to have a new rendering model [40:10] but it was a proprietary advantage for [40:12] HP and dec I think maybe IBM might have [40:16] done it as well which meant that [40:17] application developers couldn't count on [40:19] it being present so as far as I know [40:21] there were no significant commercial [40:23] applications ever developed they [40:25] depended upon display PostScript right [40:28] so here we are crushing the market [40:30] because people want to have a [40:32] proprietary advantage we have no way of [40:33] developing applications again if X had [40:36] been developed under the GPL yep okay in [40:41] the era here's what the free UNIX [40:43] desktop looked like TWM this is this may [40:47] well be a snapshot from my from my [40:49] machine I don't know it's the on the on [40:51] the Wikipedia page [40:54] isn't that amazing graphics [40:57] Justin that look incredible here's what [41:00] open looked like at the time this is Sun [41:02] view running on a Sun workstation yeah [41:05] does that look a little more humane a [41:09] little more a little more stylish maybe [41:12] a little more usable yeah actually it [41:13] was a lot more usable uh similarly he [41:17] was here was motif and CDE right I think [41:20] I'm not sure but I think motif was where [41:24] they came up with this cool hack of [41:25] using three different colors for the [41:27] buttons indicate pressed versus not [41:30] pressed it's just three different shades [41:31] of gray I guess is this cool 3d effect [41:34] Sun View adopted that I think this [41:37] version has that yeah the original Sun [41:39] View did not have the 3d effect but you [41:42] can see the shaded buttons here they [41:45] give that little pristine effect yeah I [41:46] think I think motif invented that I'm [41:48] pretty sure they did [41:50] both of those were close source motif [41:53] was close source open look all of the [41:56] open look implementations are close [41:57] sourced we had no standard free software [42:00] version of a toolkit running on X what [42:04] did that do for application development [42:06] in the X environment right if you're an [42:08] application developer and you come into [42:10] the X market you think oh cool we have a [42:12] standard Window System I can ship the [42:13] same code everywhere Oh everybody has [42:16] their own tool kit well that's not gonna [42:18] work out well yeah [42:22] the free one was called the Athena [42:24] widgets you saw what that one looked [42:25] like it were all based there was an [42:29] implementation to open look based on the [42:31] same underlying toolkit the X toolkit as [42:34] motif but the way that XT worked with [42:38] open look and the way that it worked [42:40] with motif was essentially completely [42:44] different you couldn't mix and match [42:46] bits of an open look app and bits of a [42:49] motif app you had to either go all in [42:51] motif or all in open look so even though [42:53] they were notionally based on a common [42:55] library they weren't practically useable [42:58] on top of this common common library so [43:01] xt x had this famous line mechanism not [43:04] policy which is to say we don't try to [43:07] make you we don't try to specify what [43:09] things are going to look like or how [43:10] things are going to [43:11] in the underlying Windows system will [43:13] that applications put that policy on top [43:15] well in the ex toolkit it turned out [43:17] that that really wasn't possible you had [43:20] to have policy in your application [43:22] toolkit so what XT did is it said well [43:25] every every policy we can think of will [43:27] put that into the toolkit that's how [43:29] we're a mechanism and not policy didn't [43:32] work great there's open look there were [43:34] a couple of implementations of open look [43:35] Sun view which was the thing that ran [43:38] remember the Sun View stuff that ran is [43:40] a proprietary Window System they took [43:41] that same API and made an X toolkit and [43:44] called X view then they made open view [43:47] because their customers said oh but we [43:48] have to be using the standard X toolkit [43:51] so Sun and 18t I believe spent an [43:54] enormous amount of time creating a worse [43:56] toolkit in terms of application [43:58] development because they were forced to [44:00] implement enough top of xt yeah not a [44:03] great idea motif like I said all of this [44:08] stuff yeah [44:09] ok so in 1992 or 1993 X kind of stopped [44:13] developing because the UNIX market had [44:16] collapsed and it collapsed because of [44:18] what the UNIX vendors were trying to do [44:20] all of them instead of building a [44:22] commons where they could collaborate and [44:24] build systems that would actually allow [44:26] application portability and cross [44:29] defender and cross vendor development [44:32] and instead of working together they [44:34] decided to build their castle walls [44:35] taller hide inside and eventually the [44:40] roving hoards outside over and the [44:43] castles and we got to the the decade of [44:46] Windows and I think that is about the [44:49] end of my talk yeah Windows happened [44:53] when Windows took over because you could [44:55] actually develop applications on Windows [44:57] and ship them to all of your customers [44:59] it turned out to be important who knew [45:02] ok that's the end of my talk thank you [45:05] all very much [45:07] we're coming you're listening thank you [45:15] Heath for that an amazing talk well [45:17] thank you very much very engaging [45:18] unfortunately we have no time for [45:20] questions so feel free to chase him in [45:24] the hallways [45:26] [Applause]