The Line That Never Widened - Cover

The Line That Never Widened

Copyright© 2026 by Alexander Winston

Chapter 10: The Directory Without a Native Platform

October 1996 through August 1997

The Novell Partner’s CNE arrived at Front Range with three ring binders and set them on the conference table side by side.

One binder covered the NetWare replica. One covered the UnixWare replica. One, thinner and still smelling faintly of the copier, covered the experimental Windows NT service the bank had asked her to bring up as a pilot. From the administration console upstairs, the directory looked like a single tree with a single name, and in every way that mattered to an ordinary user logging in on a Tuesday morning, it was. Which binder a technician needed depended entirely on which operating-system label happened to be bolted to the machine that had just failed.

Beside the three binders she set a fourth document, unbound, still warm from the printer: a proposal to move the bank’s Novell file services off NetWare and onto UnixWare. The file contents would survive the move without complaint. Everything Novell had ever wrapped around those files — who was allowed to touch them, what got remembered when one was deleted, how the volume itself was organized and repaired — would need separate handling, because none of it currently spoke the same language on both sides of the move.

Curtis Boyd looked at the four documents for a long moment before he said anything. “We keep telling people it’s one directory,” he said. “Why does one directory need three different ways of putting itself back together?”

Nobody in the room had an answer that didn’t eventually turn into an explanation, which was itself the answer.


Front Range wanted to add a Windows NT server to the same NDS tree already running across its NetWare and UnixWare systems. Microsoft hadn’t won anything; a line-of-business application the bank couldn’t replace on short notice happened to run on NT, and Ellen Barrett wanted whoever used it to carry the same identity and the same rights as everyone else on the network, rather than opening a fourth account database nobody would remember to keep synchronized.

The Partner’s CNEs could install the NDS service on all three platforms without difficulty. What they couldn’t do was treat a backup, a restore, a database repair, or a replica replacement as the same procedure once the operating system underneath it changed. A planned replica move, from an aging NetWare server slated for retirement onto a UnixWare machine with room to spare, walked the problem through in miniature: the replica itself could be rebuilt cleanly through ordinary directory replication, no argument there, but the local database file backing it could not simply be copied over and opened on the other side. Repair tools reported different things in different formats. Nobody could say with a straight face that a backup taken on one platform represented the same kind of consistency point as a backup taken on another. And when something did go wrong, which engineering group even owned the problem depended on which kernel the failure happened to be running under.

Nothing failed badly enough to make the evening news. The migration window that should have taken an afternoon grew, without any single dramatic event forcing it, into a full weekend, because the Partner’s team kept discovering that one logical directory required three separate definitions of what counted as a recoverable copy of itself.

Curtis lined the three binders up on the conference table edge to edge, spines facing out, and left them there through the rest of the meeting like exhibits nobody wanted to claim.

Ellen didn’t file a complaint. She sent Sarah something closer to a condition. Front Range would put more of its applications under NDS’s identity and rights — gladly, she said, that part had already earned its keep — but not one system further until the directory offered one supported way to recover it, regardless of which machine happened to be running it that week.


Sarah carried the question to Provo rather than reducing it to a line in a status report. Eric Langford brought a directory-engineering lead named Renata Cole into the meeting, a woman who’d spent most of the last two years keeping NDS’s various platform ports from drifting any further apart than they already had, and who clearly considered the current state of affairs a personal grievance rather than an abstract architecture problem.

“Common schema and common replication were never the hard part,” Renata said. “Every port we’ve shipped agrees on what an object is and how a change gets copied around. What they don’t agree on is what happens underneath that — how a transaction gets logged and recovered, how records get laid out on disk, how locking works when two things want the same record, how a backup gets coordinated, what a repair tool actually checks, what an upgrade does to an old database, what a corruption report even looks like. Every one of those grew up separately because writing a fast port on each platform’s own terms was always the quickest way to get it running.”

Sarah asked, mostly to see how quickly the answer would come, whether there was a version of this where the database file itself could simply be copied from one machine to another and opened without ceremony.

Renata didn’t take long to refuse it. “Byte order’s different on some of these processors. Alignment’s different. Filesystem behavior’s different. If a replica was in the middle of a transaction when it stopped, the recovery state means something specific to the platform that wrote it. Hand that file to a different machine without accounting for any of that and you haven’t ported a database. You’ve corrupted one and called it a migration.”

What she offered instead was more disciplined than a single portable file, and more useful for it: one database engine, built from a single source base rather than three divergent ones; one canonical logical database format that every platform read and wrote the same way, not a menu of acceptable representations; one transaction and recovery model; one set of verification and repair tools instead of three that disagreed with each other about what healthy looked like; one backup contract a CNE could rely on regardless of which machine the replica happened to be sitting on; and replication and upgrade behavior that didn’t care what was underneath it. A replica moved physically between unlike machines still needed a controlled backup, restore, or conversion procedure to get there safely — copying an active database file blindly between systems was exactly the corruption she’d just described, not a shortcut around it — but what disappeared was the need to rebuild or reinterpret the directory through what currently amounted to three separate database products wearing the same name.

Eric had been quiet through most of it, listening the way he listened to something before deciding whether he agreed with it out loud. “This is the same discipline we settled on for the kernel boundary,” he said finally. “Platform-specific work goes underneath a documented contract. It doesn’t get to define what the service is.”


The storage side of the problem was sitting one floor down, and it hadn’t been built with UnixWare in mind at all.

Novell’s storage engineering group was well into a new file-service layer for the next generation of NetWare, intended to fix problems that only became visible once customers started running genuinely large systems: bigger storage pools and volumes than the current model handled gracefully, faster mounting and recovery after a server came back up, more flexible ways of carving storage into volumes, and — the part that mattered most to anyone who’d ever had to explain a lost file to a customer — the deleted-file salvage behavior, the trustee assignments, and the namespace handling that made a Novell volume behave like a Novell volume rather than an ordinary disk. The design, as it stood, assumed it would live inside the NetWare kernel and nowhere else, which would leave UnixWare’s file services running on an entirely different storage model and recreate, almost exactly, the migration boundary Front Range was trying to get rid of.

Eric proposed bringing it to UnixWare anyway, through the same kind of documented filesystem and block-storage interfaces the networking work had already established, and he was explicit that it would need to be a real engineering port rather than a wrapper pretending a NetWare disk image was something UnixWare could simply read. The UnixWare version would have to present two honest faces at once: an NCP client should see exactly the Novell rights, trustees, salvage behavior, and volume semantics it had always seen, while a UNIX process working locally on the same machine needed defined ownership, permission, path, and locking behavior of its own — the kind that meant something to a program that had never heard of a trustee assignment. Where the two ways of thinking about access couldn’t be reconciled without guessing, the answer wasn’t to pretend a UNIX mode bit and a directory trustee right were secretly the same thing. It was to require an administrator to say, explicitly, which one governed.

Nobody was proposing to move Oracle or any ordinary UNIX workload onto this new storage layer. Oracle already had a certified home on UnixWare’s native filesystems, and nothing about the storage project changed that. It existed to do one job well — Novell-managed file services and the large shared volumes that came with them — not to become the only way to store anything on the machine.

“The directory team can test their engine on top of this if they want to,” the storage lead told Sarah, “but it had better pass just as cleanly on plain UnixWare, on NTFS, on whatever the other platforms are running underneath them. If the common database only works because it’s sitting on our storage layer, we haven’t built a common database. We’ve built a dependency and called it portability.”


By the time the question reached a product and partner strategy meeting in Provo, marketing had already collected the complaint from a dozen customer interviews without needing to go looking for it: the name Novell Directory Services sounded, to almost everyone who heard it cold, like a feature that came bundled with a Novell server, not something a company would buy on its own merits. The product had quietly outgrown the name months earlier. It was being asked to identify users and applications on NetWare, on UnixWare, on Windows NT, on proprietary UNIX systems that had nothing to do with Novell’s file services at all — and its packaging still described it as something that arrived in the box with a NetWare license.

Walter Grimes hadn’t softened his position since the transport argument, and he raised the same kind of objection now, from a different angle. The directory was one of NetWare’s strongest remaining competitive advantages, he said. Sell it broadly enough, and Novell would spend its own engineering effort helping customers run Windows NT and UNIX servers comfortably enough that they’d never feel the pressure to buy a NetWare system in the first place.

“Those systems are already in the customer’s network, Walter,” Sarah said. “Nothing we do changes that. The only question is whether our directory governs them or somebody else’s does. If we refuse, Microsoft’s domains fill that space, or whatever comes after them does. We don’t get to keep the directory small by keeping our eyes shut.”

The shape of the decision that came out of the meeting had two parts that had to travel together, and Sarah made a point of keeping them separate in her own head even as everyone else in the room kept trying to collapse them into one. The directory needed to stop being tied to a single operating system — deployable and genuinely supported on its own across every platform Novell’s customers actually ran, not filed away as a NetWare line item. That was a question of platform independence, and it was the one the room had come to argue about. It was not a question of licensing independence, and Sarah didn’t let it become one. And the product needed a name that could carry the platform-independence claim without apologizing for it. The name marketing proposed — eDirectory, explained in the room in exactly the terms of the moment, an electronic enterprise directory reachable across networks and across the platforms sitting on top of them, nothing more futuristic than that — got a cooler reception than Sarah expected, mostly because everyone in the room understood that a new name attached to the same old inconsistencies would only make the inconsistencies more visible.

Gordon wasn’t willing to approve a rebrand that wasn’t backed by something real. He tied the product claim to three deliverables and made it clear the announcement didn’t happen without all three: the common database engine Renata’s team was building; actual supported ports on the platforms customers needed, built against that engine rather than around it; and one administration, backup, repair, and partner-certification model that a CNE could learn once and use everywhere. The storage layer downstairs got approved as a product of its own in the same meeting, under a name to go with it — Novell Storage Services, NSS for short — though its reach stayed deliberately narrower than the directory’s: NSS ran on NetWare and UnixWare, full stop, with no plan to chase it onto Windows NT, Solaris, AIX, or HP-UX simply because eDirectory was headed there. Print services and the rest of the common infrastructure that traveled with the directory went on the same roadmap without a promise attached to a date — held to the same discipline of documented interfaces and platform-specific adaptation, but earning a UnixWare migration project of their own rather than riding the directory’s already-built one. GroupWise and Novell’s other server applications weren’t part of this decision at all; they stayed exactly where they were, separately licensed products with migration projects of their own to be taken up later, not something this meeting was already claiming credit for. Existing NDS customers would keep their trees, their schema, their objects, their rights, and their licenses through an ordinary supported upgrade — Novell was widening and renaming a product its customers already depended on, not asking them to build a second directory from scratch.

 
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.