The Line That Never Widened - Cover

The Line That Never Widened

Copyright© 2026 by Alexander Winston

Chapter 7: The Patch Novell Could Refuse

November 1995 through January 1996

The printers in the UnixWare engineering lab had never run this long without someone stopping to feed them paper.

Sarah Caldwell stood at the doorway of Eric Langford’s group on a Monday morning in November and watched three people take turns at a single tray, pulling off mailing-list digests like sheets from a loom. Bug reports. Questions about hardware nobody at Novell had tested. Patches that duplicated fixes already committed. A confident, three-page diagnosis of a memory corruption problem that turned out, on the fourth reply down the thread, not to exist at all. Someone had taped a running tally to the wall above the tray — messages received, messages answered — and the second number had stopped keeping pace with the first sometime around Thursday.

“This is what public means,” Eric said, without looking up from the stack in front of him. He did not say it happily.

“You wanted contributors.”

“I wanted an engineering department. What I got was mail.” He dropped a digest onto a pile already leaning toward the wastebasket. “Half of this is useful. Finding the half is a full-time job nobody budgeted for.”

He had built a triage system by the second week without asking anyone’s permission: reproducible defects in one stack, documentation corrections in another, hardware ports in a third, proposed behavioral changes set aside for review, and a growing pile of questions that belonged to Novell’s proprietary services and had no business on a public foundation list at all. The easy submissions moved fast — a corrected build path from a graduate student in Toronto, a manual-page fix, a portability correction for a university’s in-house compiler, three improved error messages nobody at Novell had thought worth writing. Eric signed off on those within a day. They cost him nothing and made the tree measurably better.

None of that mail was the only thing testing the released tree. Novell’s UnixWare team was not working alone, and had not been since the first release candidate went out in October. In Houston, Thomas Avery’s hardware-validation engineers carried the same tree through qualification on ProLiant hardware on a running basis, while a separate Compaq UnixWare development group built the proprietary drivers, diagnostics, and management agents that would ship above it. The two sides traded builds, failure reports, and interface requirements on a fixed weekly schedule, informal in tone and disciplined in practice. Nobody on either side treated it as a merger of authority. Compaq’s advantage was early access and joint engineering, not a vote in what Novell shipped.

“Public doesn’t mean self-committing,” Eric told his own team, the week the mail truly started arriving in earnest. “Anyone can send us a patch. Anyone can distribute a different tree. What goes into UnixWare is still our decision.”

Karen Whitlock’s submission arrived on a Wednesday, and it was not that kind of contribution.

It came as a coordinated set: a patch against the released networking code, a written explanation of a contention problem she had traced under sustained multiprocessor load, repeatable test results from a four-processor system she had access to at a research site, a second set of tests confirming BSD-socket compatibility, a note that the System V application interfaces still compiled and ran without modification, and — at the bottom, in the plain language David Rosen’s template had taught every serious contributor to use — a statement placing the whole submission under the foundation’s permanent public terms.

Eric read it twice before he said anything. “This is careful work.”

“Is that admiration?”

“It’s recognition.” He did not smile, but something in his shoulders eased. “The coarse lock has bothered me since the second release candidate. I didn’t have time to fix it properly. She found time.”

The numbers were hard to argue with. Throughput on the patched tree held steady as concurrent connections climbed past the point where the released code began to flatten and then fall. A second table showed the patched system behaving the way BSD systems already did, which mattered to every application developer trying to write once and run on both worlds.

Eric’s second reaction came an hour later, when one of his engineers loaded Novell’s proprietary NCP acceleration module onto the patched tree and ran it under the same load Karen had used.

It failed within four minutes. Not gracefully — the console filled with a cascade of retransmission errors before the connection dropped entirely, and the engineer who had loaded it looked up at Eric with the particular apology of someone who has just confirmed a suspicion nobody wanted confirmed.

The first substantial outside contribution to reach Novell’s UnixWare foundation had broken one of the products Novell intended to sell above it.


Eric’s team spent three days finding out why, and what they found unsettled him more than the crash had.

The proprietary NCP module reached into an internal networking hook that had never appeared in any published driver or service interface. It existed because both pieces — the public networking code and Novell’s private acceleration layer — had once been written by engineers who sat on the same floor and adjusted their assumptions over lunch rather than in a document. Karen’s patch had not touched anything Novell had promised to keep stable. It had reorganized internal locking and buffer ownership that the foundation had never described to anyone, because until now no outsider had needed to know it existed.

Novell’s module assumed the old arrangement anyway. Under load, it received a buffer after the patched networking path had already handed responsibility somewhere else.

“Walk me through it again,” Sarah said, in Eric’s office with the door closed. “Slowly.”

“The patch doesn’t corrupt anything documented. It corrupts an assumption we never wrote down.” Eric rubbed his eyes. “NCP is central to Novell Enterprise UNIX. Novell and Compaq are already qualifying the released tree together — my group against the core, Thomas’s people against the ProLiant hardware, Compaq’s own UnixWare developers against the drivers and management tools that ship above it. Front Range is live on the current service path. If we change the networking internals now, every one of those tracks has to run its regression cycle again before the commercial release, and I don’t have the schedule for that.”

“None of that is imaginary.”

“No. But I can’t tell the mailing list the real reason without describing a module that’s confidential.” He said it flatly, the way a man states a fact he has already argued with himself about and lost. “So the rejection I write is going to sound like Novell blocking a networking improvement because Novell doesn’t feel like reviewing it properly.”

“Because that’s what it will look like,” Sarah said. “Even if it isn’t what it is.”

He sent the rejection anyway — regression risk, certification exposure, release-schedule proximity, all true, none of it the whole truth. The explanation satisfied nobody, including, Sarah suspected, Eric himself.

What the room did not say out loud, and what Sarah carried out of it, was harder to dismiss than the crash: Novell had built a commercial product on top of a public floor while quietly depending on part of that floor staying arranged for Novell’s private convenience. The license had never promised that. Only habit had.


Karen’s public reply arrived within the week, and it was precise rather than angry.

She accepted, in plain terms, that Novell was not obligated to ship or support her patch immediately. She disputed the part underneath that acceptance — that Novell’s commercial calendar could decide, by itself, what the foundation was permitted to evaluate for its own future. Two other contributors reproduced her performance numbers within days. A third found a smaller compatibility defect in her socket-handling code and submitted a correction. The patch left the rejection stronger than it had entered it.

“They’re modifying work we haven’t approved,” Eric said, reading the thread over Sarah’s shoulder.

“Approval was never required for private testing or redistribution. We wrote that clause ourselves.”

David called before the disagreement had time to set into factions. “Several of the BSD-affiliated contributors are assembling an independent development tree carrying Karen’s patch,” he told Sarah. “Nobody’s filing anything. Nobody’s threatening the charter. They’re doing exactly what Denise described to Vance’s board a year ago.”

“Is Karen forcing our hand by threatening a fork?”

“The ability to fork isn’t a weapon somebody invented for this argument,” David said. “It’s the mechanism that keeps every governing body — including the one you built — from becoming indispensable. Novell is free not to ship it.” A pause, chosen rather than accidental. “Novell is no longer free to make it disappear.”

Karen formally asked the UnixWare maintainers to reopen review using the expanded public test record — her original numbers, the reproductions, the corrected defect. Judith Arlen, coordinating the foundation’s public technical process from California, scheduled an open session where every side could present its evidence, and said plainly, to Karen and to Eric alike, that the session would inform the UnixWare team’s decision without making that decision for them. The final word on Novell’s own tree still belonged to Novell.


Both trees had already reached Houston through the joint engineering program by the time Judith called. She asked Compaq only to place its nonconfidential results into the public review record.

Thomas Avery’s hardware-validation team had been carrying the released code and Karen’s revised patch set through the same qualification cycle it ran on every UnixWare candidate, against two configurations: the current-production ProLiant build used for certification and for Front Range, and a Pentium Pro validation system, no longer confidential in name since Intel’s public introduction of the processor three weeks earlier, though the deeper platform agreement behind it stayed exactly as unannounced as before. The lab itself looked almost identical to the one Sarah remembered from the spring — the same taped-down cabling, the same wall of load generators humming through the same sustained storage-and-network workloads — except that one of the two racks now carried a processor name Avery’s team no longer had to whisper.

The results favored no one completely, which was what made them useful.

Karen’s changes materially improved scaling under heavy concurrent load on both machines. Ordinary System V and socket applications passed every published compatibility test without modification. Novell’s proprietary NCP module failed under the patched behavior on both configurations, reproducibly. And separately, Compaq’s own UnixWare development group — the engineers building the drivers and management agents that shipped above Avery’s validated hardware, not Avery’s validation team itself — found that the network-transport component of one of its own management agents depended on the same undocumented timing Novell’s NCP module did. Nobody had gone looking for that. It simply hadn’t mattered until now.

“Two companies built private assumptions on top of a public foundation,” Avery said to Foster afterward, “and neither of us wrote them down. If the foundation freezes every internal habit our products have ever leaned on, nobody outside either company can develop anything at all.”

“If we publish this,” Foster said, “another manufacturer gets the same multiprocessing improvement we’re paying to validate.”

“Yes.”

“And Compaq’s advantage is still—”

 
There is more of this chapter...
The source of this story is StoryRoom

To read the complete story you need to be logged in:
Log In or
Register for a Free account (Why register?)

Get No-Registration Temporary Access*

* Allows you 3 stories to read in 24 hours.