CORECURSIVE #105

ReiserFS

And The Art And Artist Problem

ReiserFS

Have you ever known someone whose technical brilliance was overshadowed by personal failings? This is the story of Hans Reiser, a software developer driven to create a superior Linux filesystem, but whose difficult personality got in the way.

Then came the disappearance of his wife, Nina, in 2006. The investigation pointed to Reiser, ending with a murder conviction that shocked the tech world.

Reiser’s story is a reminder of how technical skills and personal integrity need to go hand in hand. From prison, he reflects on his mistakes, realizing the need for empathy and collaboration. His legacy, once about innovation, now serves as a cautionary tale.

Transcript

Note: This podcast is designed to be heard. If you are able, we strongly encourage you to listen to the audio, which includes emphasis that’s not on the page

Intro

Welcome to CoRecursive, I’m Adam Gordon Bell. Today’s episode is the story of a piece of software being built.

My wife and I often debate people’s character. Sometimes it’s big, like separating Michael Jackson’s music from his actions. Is “Billie Jean” still great, or is it tainted? But usually, it’s more specific. Sometimes people give her bad vibes. And I’m not always a good judge of character, I give people the benefit of the doubt, where she often knows right away what she thinks about someone. And she’ll know that the person is off. She’s not always right, but I mean, she’s not going to listen to this so like, yeah, like actually, shes always right, it just takes me time to realize it usually.

The Apology

But anyways, this is going somewhere I swear. So, it’s late January 2024. I’m at my desk, clicking through links, and I land on the Linux Kernel Mailing List, the LKML. It’s mostly patches. One title reads “Merge tag timers-v6,” followed by a message: “Happy New Year 2024! Please consider pulling these changes.” Then comes the literal diff patch: + code on line X, - this code. You can apply these patches to your source with git apply, just like pulling a pull request.

But that’s not the link I get. The one I follow starts like this:

Hans: I was asked by a kind Fredrick Brennan for my comments that I might offer on the discussion of removing ReiserFS V3 from the kernel. I don’t post directly because I am in prison for killing my wife Nina in 2006.

Hans: I am very sorry for my crime–a proper apology would be off topic for this forum, but available to any who ask.

That’s Hans Reiser. His voice, like everyone else’s here except mine, is generated by OpenAI.

The letter responds to a prompt from Fredrick Brennan. ReiserFS is being deprecated from the kernel, meaning it’s becoming obsolete and will be removed entirely.

And Hans Reiser, the creator—well, he’s in prison. For murder. And actually the file system and the man and the murder are all really bound up together. They are all linked and so the letter goes on. He points people to Reiser4. A more maintainable basis for the future of file system, he calls it.

And then he goes on. And on. Thousands of words. About the technical challenges, the interpersonal conflicts, the mistakes he made. The dreams he had. The life he lost.

It’s this unexpected thing. A letter from a convicted murderer on a technical mailing list. A glimpse into the human story behind the code. A man trying to explain himself, to grapple with his past. A man wondering if redemption is even possible. And it all starts with just trying to make a better linux filesystem.

There are many ways to tell the story of ReiserFS, Hans, and Nina, his victim. Entire books cover it. But my way of telling the story… well I want to tell you about how you can’t separate the person from the code. You can’t separate the technical from the social. You can’t be a monster in one domain and not have it be part of the others. It’s all mixed up together. That’s today’s story

The Rise of ReiserFS

So, picture this. It’s the late 1990s. The internet is taking off. Linux, this free, open-source operating system, it’s gaining traction. Programmers, they’re building all sorts of new things. Websites, applications, tools. And all these things, especially on linux, they’re made of files. Lots and lots of files.

And how does Linux keep track of all these files? With a filesystem of course. And back then, the popular Linux filesystem, it was ext2. It was…okay. It worked. But it had its problems.

Under the covers, a file system, the code, is like a librarian for your disk. I want to add a new book to the collection, Librarian has to find an empty shelf and put it there. But then it has to update the card catalog with details on where it put the book, or I’ll never find it. This card catalog is your directory listing, the index of the things on your drive.

Imagine you’re doing this, and suddenly the lights go out. Power failure. When they come back on, what’s the state of your library? You might have found the shelf space but never got the book there. Or the book’s on the shelf but not in the catalog. Maybe you’re halfway through writing the catalog card. Everything’s in this weird, half-finished state. Back then, computers crashed all the time, leaving you with a mess. Files marked as stored but not actually there. Files there but not properly recorded. It was chaos.

So, if your computer crashed, you had to run this thing called fsck. Filesystem check. And it could take hours. Literally hours. On a big disk, it could take all day.

And then there were the performance issues. Big directories, lots of little files? Ext2 would slow to a crawl. It used linked lists to organize directories, and if you’ve done your leetcoding exercises, you know that going node by node through a linked list can take time.

But yeah, this is 1993, and the dot com boom, which started with the netscape IPO, is still a couple years away. And Hans is in Oakland, California, across the bay. In a cluttered home office, filled with computer monitors, stacks of books, and the hum of cooling fans.

And He wants to build a better filesystem. Faster, more efficient, more elegant than anything out there. But building a filesystem, it’s not a one-person job. It takes a team. And Hans, he didn’t have a lot of money. He was bootstrapping this thing, working a day job, pouring every spare minute into his dream. And then he had this idea.

From Russia, With Code

He’d read an article about how Russian programmers, incredibly talented programmers, were working for next to nothing after the collapse of the Soviet Union. And Hans, he saw an opportunity. He booked a flight to Moscow.

Now Moscow in 1993. It’s just a couple years after The Soviet Union collapse. Everything’s changing. And here’s this American programmer, this guy with a cowboy hat, walking into a world he doesn’t really understand. He literally wore a cowboy hat in Moscow, to play up his Americaness. He’s trying to build a team, to communicate his vision, to navigate a culture that’s completely different from his own. He’s this American in Moscow, and he’s sticking out. He’s not blending in. He’s making a statement.

And he’s doing it all on a shoestring budget. He’s paying these programmers a fraction of what they’d make in the U.S., but for them, it’s still a significant raise. And Hans, he’s working his butt off to keep the money coming. He’s coding for Synopsys, then Sun Microsystems, taking on any contract gig he can find. He’s even moonlighting at some army research center in New Jersey, flying back and forth across the country, across continents, just to keep this dream alive.

He’s pouring all his energy into this project, into this dream of building a better filesystem. And for a while, it seems like it’s working. The team is making progress. The code is coming together. ReiserFS is starting to take shape.

He’s traveling back and forth between the US and Russia, checking in on his team, making sure the code is clean, that the algorithms are efficient. He’s pushing them hard, demanding excellence, because he knows that in the cutthroat world of file systems, there’s no room for second best.

But there are cracks in the foundation. Cultural differences, communication barriers, the challenges of managing a remote team. These things, they start to wear on Hans. He’s used to getting his way, to being in control. And in Russia, things aren’t so simple.

Fast forward to March 1998. Saint Petersburg. A cafe next to a canal. Hans is meeting a woman. Nina Sharanova. A mail-order bride. And Hans, he’s smitten. Her voice, her smile, her intelligence. She’s a doctor, an OB-GYN. She seems to be everything he’s looking for.

And so, they get married. A quick courtship, a hastily arranged wedding. And soon, Nina is pregnant. Their first child, Rory, is born in September 1999. It seems like a happy ending, a new chapter in Hans’s life. He’s now got a wife and kid and his team in Russia, and him have made great strides with their filesystem.

It had journaling - which was an old idea, actually. Before you shelf the book and update the card catalog, you write to a journal that you are going to do so, then you can recover without having to check every entry in the catalog.

Then it used B+ trees to organize directories, so no slow listing of files. But the biggest trick actually sort of created more space on the disk. And that was a big deal. But also the price of Han’s ambition was starting to become tragically clear.

Seeds of Trouble

Because if you rewind a bit, if you go back to the late 80s, before ReiserFS, before Namesys, there were these…warning signs. Little and sometimes big social glitches. They weren’t about the technology, not exactly. They were about Hans himself.

When Han’s at UC Berkeley, and he’s part of this student-run group called the Open Computing Facility, the OCF. It’s down in the basement of Evans Hall. Rows of humming computers, with fluorescent lights buzzing overhead. And for Hans and many others it’s a haven. A place to code, to build, to create. And a place dedicated to Open Source and open access.

The OCF is volunteer run, and Hans gets very involved. He even manages to secure a huge donation of Apollo workstations. But the OCF, it’s not just about the technology. It’s about the community. It’s about people working together, sharing ideas, building something bigger than themselves. Open source, it thrives on collaboration.

And Hans, he doesn’t really get that. He’s brilliant, yes, but he’s also got this…intense personality. He’s arrogant. He wants control. He doesn’t play well with others.

There are stories. Like the time he booted an undergrad off the system for posting a message he disagreed with on usenet. Or the time he physically assaulted a colleague after a disagreement. Or the meeting minutes with headings like, “Hans Complains, the Earth Shakes, etc.” These weren’t just isolated incidents. They were a pattern.

One former OCF user put it this way: He acted as if he owned the Open Computer Facility, and that everyone should kowtow to him. Another said, He went out of his way to be mean, petty, arrogant, and small-minded. These are signs. Signs of a person who’s not well integrated. Signs that are often rationalized away when someone is talented.

The Dream Begins

But yeah, Namesys, by the time they got to version 3 of ReiserFS they were really on to something. Linux kernel version 2.4.1 included ReiserFS as an option and all the sudden this code had distribution. And since it was the first linux filesystem with journalling, it was a solid choice.

But the thing that really made it popular, was a NameSys / Han’s innovation called tail packing. ( I feel like I’m going to get tired of the library metaphor ) Imagine that our librarian’s shelves are all divided into blocks that are the size of a medium sized hardcover book. We call that a block, and most file systems had 4kb blocks. That is how a hard drive works, and each little area is a block. The librarian, in the card catalog is actually writing down the address of the blocks where the book is stored. And if the book is larger than the block size, the librarian just splits up the book, puts it in as many blocks as it needs. 4kb is actually pretty small, so many books are split across many many blocks. Fragmentation, if you remember running defrag on your home windows machine like I do, fragmentation is when the books that are big and need to be split are split all over the library, so when retrieving them, the librarian has to go all over the place, instead of all being next to each other, block after block. Defrag is putting them back, sequentially next to each other.

But tail packing is a different thing then defragging. It’s a technique for dealing with small files. You see when you have all these books that are a bit larger than the block, you get these little tails, instead of storing them next to the rest of the book, you store them all together. You pack all these tails, ends of book together into one block.

This effectively gave you more space, and especially if you had lots of small files. Because imagine without tail packing, if you were storing pamplets instead of books, storing one per block, instead of packing a whole bunch into one block is going to waste a lot of space.

It was brilliant! Suddenly, you had all this extra space on your hard drive. No file system checks, more space, and it was significantly faster than ext2.

And the Linux community loved it! Companies issues praise:

Philipp: ReiserFS is the main engine behind our LivingXML database system…With the great help of ReiserFS, we now have one of the best database systems.

SUSE Linux, a popular distribution, even adopted it as their default filesystem. This meant enterprise usage and professional support. SuSe was putting their reputation behind and on the line for ReiserFS. Hans, he was on top of the world. His dream, it was becoming a reality. His filesystem was changing the Linux landscape. He was a star in the open-source community. He was getting the recognition he craved.

But even then, even as ReiserFS was taking off, there were these whispers. Rumors of data corruption. Concerns about scalability. And then there was Hans himself. His personality, maybe had some bugs as well. Post honeymoon phase the marriage was getting harder.

The Beginning of the End

Because while Hans is in Moscow, chasing his technological ambitions, something else is happening back in Oakland.

Because Nina came to the US for love, for a better life.

Nina: We were madly in love until our first child was born.

But things changed. Hans, he was consumed by his work, spending most of his time in Russia. Nina, she was left to navigate a new culture, a new language, a new life, all while raising two young children on her own.

And it wasn’t just the distance. There were conflicting expectations. Hans, he wanted a traditional wife, someone who would put her career aside and focus on the family. Nina, she had her own dreams, her own ambitions. She wanted to be a doctor in the US, to build a life for herself and her children.

Nina: Hans did not want me to be a doctor in the U.S. He wanted me to have six children and then I could deal with my career… He believed that Russian women would stay at home and devote themselves to their children… He didn’t want me to study for my exams. I knew that when I married him. We thought we could change each other.

But they couldn’t. The tension, the resentment, it grew with each passing day. Nina, she felt isolated, trapped in a marriage that was slowly suffocating her. Meanwhile Hans full of excitement for more ideas he has about improving filesystems. Or maybe he’s just unsatisfied with where ReiserFS 3 stood.

The Dream Continues

Hans: Hierarchy doesn’t scale well for human beings, and hierarchical namespaces scale extremely poorly.

He’s already thinking bigger. He’s got this grand vision, this almost utopian idea of how computers should work. He sees the limitations of existing systems, the walls between applications, the data silos. And he wants to tear them down. He wants to build something better, something faster, something more… connected.

He gives a talk at Google. He’s passionate, intense. He’s pacing back and forth, explaining his vision.

Hans: The file system is the most central namespace of the OS.

Hans: I would like to suggest that namespaces in general are like roads and waterways.

He’s building on an idea, an analogy to Adam Smith, the economist. Smith saw how roads and waterways connected cities, how they facilitated trade and communication, how they fueled the growth of civilizations. Hans, he sees files the same way. As the infrastructure that connects data, that allows applications to communicate, that powers the digital world.

And he’s convinced that the current infrastructure, it’s not good enough. It’s fragmented, it’s inefficient. Namespaces are a barrier holding back data and holding back progress. He wants to build a unified namespace, a single, interconnected system where all data is accessible, where information flows freely.

Hans: To unify the namespaces within the operating system is a bit of a quest for a holy grail… even though we will never succeed in unifying all the namespaces within the operating system, the closer we can get ourselves to it, we’re in a better place than if we don’t get any closer to it.

He secures funding from DARPA, the Pentagon’s R&D agency. They want a filesystem for the future, a filesystem that can handle anything.

Hans: Reiser4 is not only a file system. It is a software framework for creation, assembly, and customizing file systems.

Hans: How well your file system performs is very much determined by how easy it is to make little changes to it, and the more little experiments you make the higher your performance is going to be.

It’s a bit hard for me to understand his vision. But I think its a bit like replaces a file based system with a database, where files can easily be searched and indexed and have metadata and plugins can add whole new ways of seeing the file system layer. It’s a lot.

Hans: The thing that’s true of everything that’s highly empirical is that you’re going to get it wrong a lot of the time because nature is just so much more complex than our puny little brains.

The actual storage layer is also different.

Hans: Reiser4 uses dancing trees, which obsolete the balanced tree algorithms used in databases…This makes Reiser4 more space efficient than other filesystems because we squish small files together rather than wasting space due to block alignment like they do

Hans: For some interfaces, Reiser4 performs such switching in intelligent manner without user intervention. Thus, the file system is in permanent evolution, adapting to current conditions.

He’s working with his team in Russia. Long nights, endless emails, debates about algorithms and data structures. He’s pushing them hard, demanding perfection. He wants Reiser4 to be the best, the fastest, the most revolutionary filesystem ever created.

But he’s also becoming increasingly isolated. His communication style, his relentless pursuit of his vision, it’s creating friction. He’s alienating colleagues, pushing away potential allies. The warning signs are there, flashing brighter than ever.

A Bittersweet Affair

And meanwhile Nina’s isolation increases. She doesn’t know many people in Oakland. Hans is off in Russia, chasing his dreams of file system domination, leaving Nina to deal with the realities of daily life: two young kids, a new country, a failing marriage.

Nina starts meeting people off craigs list. She’s trying to balance her responsibilities as a mother, her desire for a career, her own personal needs.

She’s spending her days at Grand Lake Montessori, this private school where her kids go, this place that’s all about nurturing and child-centered learning. She’s volunteering, helping out in the classrooms, connecting with other parents. She’s trying to create some semblance of normalcy, of stability, in a life that’s spinning out of control.

And into this void steps Sean Sturgeon. Hans’s best friend. A complicated guy. A former truck driver, a self-proclaimed “ex-gay prostitute,” a one-time fixture in the Bay Area S&M scene. Later, when the police are involved, when the Hans and Nina story hits the news, and it does, the salacious details of Nina and Sean affair becomes the center stage.

But actually their marital struggles and tension that led to a trial separation was less about affairs and more about parenting.

Rory is five years old. He’s a bright kid, but he’s also struggling. Nightmares, anxiety, behavioral problems. Nina, she’s worried. She takes him to therapists, gets him evaluated. She’s trying to figure out what’s going on, how to help him.

But Hans, he’s dismissive. He thinks Nina is overreacting, that Rory’s problems are just a normal part of growing up. He sees Nina’s concern as a tactic in their custody battle, a way to paint him as a bad father.

Nina: Our children hardly know their father because he has been home for only months at a time, three times a year.

Hans, he’s got his own ideas about parenting. He believes in toughening up kids, exposing them to the real world. He sees video games, even violent ones as educational, as a way to teach Rory about history, about strategy, about the culture of manhood.

Hans: Little boys take to violent computer games like monkeys take to trees. They do not have instincts that favor combat rehearsal activities for no reason, they have them because they affect whether they live or die a significant amount of the time.

Nina, she sees it differently. She sees the nightmares, the anxiety, the drawings of monsters and soldiers. She sees a child who’s struggling, a child who needs a safe and nurturing environment, not a virtual battlefield.

The conflict escalates. Hans accuses Nina of manipulating Rory, of turning him against him. And anyways he’s busy, back and forth from Russia, building his perfect file system, his perfectly ordered world of data. And the big struggle he’s having is maybe the size of his ambition because he doesn’t want to talk about his existing widely used ReiserFS V3 file system anymore.

The Cracks in the Code

And yeah, that existing version, V3, it’s getting this reputation for being…fragile. Especially when the hardware isn’t perfect. And in the early 2000s, hardware, it wasn’t always perfect. Hard drives crashed, power flickered, things happened. And when things happened, ReiserFS, sometimes it just…fell apart. Data got corrupted, files vanished.

And the Linux community, they’re starting to notice. They’re starting to talk. On mailing lists, in forums, the whispers are growing louder.

Jeff: ReiserFS has serious scalability problems…the scalability problems are real.

Jeff Mahoney, a SUSE developer, he’s seeing the writing on the wall. ReiserFS, it’s great for small files, but it doesn’t scale. It can’t handle the massive datasets, the high-volume workloads that are becoming more and more common.

And Hans, he’s dismissive. He’s got this almost messianic belief in his own vision. He’s not interested in patching up ReiserFS. He’s got Reiser4, this next-generation file system, this masterpiece he’s convinced will solve everything.

Hans-Reiser: The code was unmaintainable terrible code that needed to be rewritten from scratch…

He’s telling SUSE, telling the Linux community, that ReiserFS is obsolete, that they need to move on to 4. He’s not interested in compromise, in collaboration. He’s got his own way, and he’s sticking to it.

And the kernel developers, they’re not having it. They’re seeing Hans’s brilliance, but they’re also seeing his arrogance, his inability to work within a community. Alan Cox, a core Linux developer, he’s worried about the long-term viability of Reiser4.

Alan-Cox: “It doesn’t matter if reiser4 causes crashes. It matters that people can fix them…and the code is maintainable.”

yeah, What happens if Hans disappears. Who’s going to maintain this complex, unconventional file system? Who’s going to fix the bugs, the inevitable crashes? There is a huge element of trust here, and Hans isn’t interested in building trust. If SuSe is selling paid enterprise support for his existing file system, they need to trust it works. If they don’t, if he’s not helping maintain it and fix issues, why would they ever trust his next idea?

But Hans has his vision for a new filesystem world, where all the previous ideas are tossed aside. He doesn’t care about the social elements, or the people he is rubbing the wrong way.

The Seeds of Reiser4

Hans : It had to be written from scratch to be written right…

That’s Han’s talking to the kernel mailing list. He’s thinking about a world where a simple search can unearth anything and everything, regardless of the application, regardless of the file format.

But He’s been butting heads with the Linux kernel developers. He sees them as resistant to change, as unable to grasp the brilliance of his vision.

Hans : What makes you think kernel developers have a deep understanding of the value of connectivity in the OS? They don’t. The average kernel developer is not particularly bright.

And the kernel developers, they’re pushing back. Linus Torvalds, the father of Linux, he’s not impressed with Reiser4’s plugin architecture.

Linus: As long as you call them ‘plugins’…I (and I suspect a lot of other people) are totally uninterested…

Uninterested, because they’re worried about the complexity, the stability, the long-term viability of Reiser4. They’re worried about his inability to collaborate, to compromise. They’re seeing a man who’s so focused on his own vision that he’s blind to the practical realities of working within a community, of releasing and maintain code at the scale of heavily used operating system kernel.

And at home, while all this is going on, he’s accusing Nina of Munchausen by proxy, of weaponizing their son’s health in their custody battle.

Hans: “You don’t want the kids except as a bargaining chip.”

He’s projecting, blaming Nina for his own failings, for his own inability to connect, to empathize. He’s building this perfect file system, this world of interconnected data, but his own world is fracturing. But he does it, he gets Reiser4 completed.

Control and Loss

Hans presents benchmarks for Reiser4. For small files, still a specialty, its much faster than ext3. For metadata operations, like file creation and deletion, it was again, much faster than other linux filesystems. On other benchmarks, large files, concurrency, Hans had benchmarks showing it could be 2 to 3 times faster. Others disputed this, and found hans benchmarks to focus in on the specific scenarios where his filesystem clearly had an advantage, but either way, it existed. His vision had been created.

And then he needs to get it into the linux kernel.

Hans : “All objections have now been addressed…I request that reiser4 be included.”

He’s fighting for recognition, for his vision to be accepted. It’s a fight that mirrors another battle he’s waging, a brutal custody battle with his now estranged wife, Nina.

Their emails are a war zone. He accuses her of Munchausen by proxy, of fabricating illnesses for their son, Rory.

Hans : You don’t want the kids except as a bargaining chip. They interfere with your career.

He sees her as manipulative, an obstacle to his control over their children. But Nina, she’s just trying to protect her kids, to shield them from his increasingly erratic behavior. She takes Rory to therapy, gets him evaluated.

Nina : Rory needs a very safe environment. He needs to thrive.

She expresses her fears to friends, worries about the impact of the constant conflict on her children. She wants them to feel safe, loved, protected. She wants to build a stable, nurturing environment for them, far from the toxic battlefield of her marriage.

Meanwhile, Hans is consumed by the fight. The custody battle, the Reiser4 debates, they’re fueling his anger, his paranoia.

Hans : Male geeks…are one of America’s most hated cultural minorities. … I am tired of being the punching bag.

He feels misunderstood, unfairly targeted. He lashes out, sends threatening emails.

Hans : Those who anger slowly, cool slowly Nina.

The stress is mounting, the pressure building. He’s losing his grip, his world spiraling out of control.

And then, Nina disappears. September 3, 2006. She drops the kids off at his house, a normal Sunday afternoon exchange. A hug, a kiss goodbye. And then, nothing. She vanishes without a trace.

It’s like a file system corrupted, a system crashing. All that data, all those connections, suddenly fragmented, lost. His wife, the mother of his children, gone. His dream of a unified namespace, of total control over data, a stark contrast to the chaos of his own life. He’s the architect of his own destruction, a brilliant mind consumed by his own demons. He’s about to pay the price for his ambition, his isolation, his inability to connect, to empathize, to see the human cost of his pursuit of control.

The Wire

Nina’s friend, Ellen became concerned that Nina didn’t pick the kids up from school the next day. That evening she phoned the police to report a missing person. She must have had suspicions because the police had her phone Hans, with them present. She asked him if he might know where Nina was and he immediately said he wanted to talk to his lawyer.

Not a great sign. So the police, they start watching Hans, following him, but they’re also listening. They’ve got his phones tapped, a wire room set up at headquarters. Officers are working in shifts, headphones on, listening to every conversation, every whispered word. They’re hoping to hear something, anything that will give them a break in the case, a clue to where Nina might be.

And what they hear, it’s not what they expect. It’s not the frantic calls of a worried husband, desperately searching for his missing wife. It’s not the hushed conversations with accomplices, plotting a cover-up. It’s something else entirely.

It’s Hans, talking to his mother, Beverly. He’s complaining, ranting, not about Nina’s disappearance, but about Nina herself. About the custody battle, about the divorce, about how she “lied” about their son’s illnesses.

Hans : She really was nuts, mom. She really was…and you know, she came up with these illnesses because she hated me.

He’s angry, bitter, resentful. He’s talking about Nina in the past tense, like she’s already gone. He’s not showing any remorse, any concern for her well-being.

Mother: Still, Nina didn’t deserve whatever it is that happened to her. Don’t you think?

Hans: I think my children shouldn’t be endangered by her.

His mother, she tries to steer him back, to remind him that Nina, no matter their differences, didn’t deserve whatever happened to her. But Hans, he’s not having it. He’s caught up in his own narrative, his own justifications.

Hans : Yeah, well being decent is a mistake, a mistake I paid for heavily.

The officers listening, they’re taking notes, marking down the times, the dates, the words. They’re analyzing his tone, his inflections, the pauses, the hesitations. They’re building a profile, a psychological portrait of a man consumed by anger, a man who seems more concerned with winning a custody battle than finding his missing wife.

Meanwhile, the investigation is intensifying. They’ve searched Hans’s home, not once, but twice. They’ve found traces of Nina’s blood, mixed with Hans’s, on a pillar in the living room. They’ve found more of her blood in his car, on a sleeping bag stuff sack. The passenger seat’s missing, the floor looks scrubbed clean. There are books on homicide in his car. It’s all starting to add up, a pattern emerging from the noise.

And then, there’s the car chase. Hans, spotted driving his mother’s Honda, leads police on a wild goose chase through the Oakland hills, dodging and weaving, trying to shake his tail. He abandons the car, sprints through the neighborhood, disappears into the night. He’s acting like a guilty man, a man with something to hide.

The police, they’re convinced. They announce Hans Reiser as a suspect in Nina’s disappearance. The media, they’re all over it, cameras flashing, microphones thrust in faces. The pressure’s mounting, the public scrutiny intensifying.

Hans gets a lawyer who tries to downplay the evidence, calling it “flimsy,” “circumstantial.” Saying Hans is just a computer guy, a bit eccentric, not a killer. But the police, they’ve got their man. They’re just waiting for the final piece of the puzzle to fall into place. They’re waiting for Hans to crack, to confess, to lead them to Nina. But Hans, he’s not talking. For him truth is a variable, waiting to be assigned, waiting altering, updated and incremented. And as the investigation continues, the question hangs heavy in the air: Where is Nina? Will they find her? Or will Hans Reiser, the architect of a revolutionary file system, become the architect of his own escape?

The Trial

Fast forward to 2007. and in Oakland it’s a media circus. TV trucks, reporters, bloggers, all jostling for position. Inside, a courtroom drama is unfolding, a real-life tragedy playing out in real time.

The prosecution methodically lays out their case. They show the jury the last known images of Nina, shopping with her kids, just hours before she vanished. They present the blood evidence, Nina’s blood in Hans’s house, in his car. They highlight his erratic behavior. They call witness after witness, each one painting a picture of a man consumed by anger, a man capable of violence.

The defense tries to counter this narrative. They attempt to portray Nina as manipulative, unstable, a woman who might still be alive, hiding somewhere to punish him. They bring up her affair, trying to shift the blame, to create reasonable doubt. They talk about Hans’s personality, his quirks, his social awkwardness. They say he’s just a programmer, a bit different, not a killer.

And then, Hans takes the stand. He’s wearing a suit, trying to project an image of composure, of innocence. He tells his story, his version of the truth. He denies killing Nina. He says he doesn’t know where she is.

But under the pressure of cross-examination, the facade crumbles. He’s evasive, condescending, arrogant. He contradicts himself, gets caught in lies. He admits to perjury, to hiding evidence. He stumbled over questions about the missing passenger seat from his car, offering a series of shifting explanations. Yeah, the seat of his car is just gone, with no real explanation, besides it made it better for sleeping in the car. The car is also soaking wet on the inside when they take it, as if hosed off. Plus Nina’s blood in the car and at his house. He also has his passport and a lot of cash in fanny pack. Its all circumstantial but yeah … come on.

He admitted to perjury, to intentionally misleading the jury. And then there were the missing hard drives, given to his lawyer months before but only revealed during the trial.

And then there were the murder books. “Homicide: A Year on the Killing Streets”, the behind the scenes look at Baltimore homicide investigators that would eventually lead to the the show “The Wire” and “Masterpieces of Murder” as true crime book. Both bought together with cash from a local Barnes and Noble.

He tried to explain away the books, saying he bought them out of an “arrogance of innocence”. And this part maybe seems true, well the arrogance part. He was a smart person, and cocky and thought if he had a plan and did some research, he could get away with everything. Not even thinking of the optics of heading to the local book store and buying all the books on ‘murder’ to help craft a plan.

And then, that moment of tension. The jury delivers the verdict: guilty, first-degree murder. As Hans is led away, he utters those chilling words: “I’ve been the best father that I know how.” A desperate attempt to justify the unjustifiable.

The Fallout

The Linux community, they’re watching all of this unfold. And their reactions, they’re all over the map.

Jonathan Corbet, the editor of LWN.net, a respected Linux news site, writes an article analyzing the impact of Reiser’s conviction. He talks about Reiser’s technical brilliance, his innovative ideas, but also about his flaws, his “disregard for the rest of the community,” his “certainty of always being right.” He acknowledges the loss to the community, the loss of a “voice which, for all its faults, had some unique and innovative things to say.”

But in the comment sections, in the online forums, a different story unfolds. A raw, unfiltered, and often unsettling reaction. There’s shock, disbelief, of course. But there’s also something else, something darker.

Some comments focus on the technical implications. What will happen to ReiserFS? Will Reiser4 ever see the light of day? Will someone else take over the projects? Or will they be abandoned, tainted by their creator’s crimes? There’s talk of renaming the filesystem, of erasing Reiser’s name from the code, of distancing themselves from the scandal.

And then there are the jokes, the dark humor, the casual cruelty. “At least they’ll let him code in prison,” one commenter quips. Another suggests, “Maybe he’ll create something even better now that he has plenty of time.” A disturbing lack of empathy, a strange disconnect from the human tragedy at the heart of it all.

Others express genuine concern, for Nina, for her children, for the impact on the open-source community. They worry about the negative stereotypes, the headlines screaming “Linux :: murder!” They lament the loss of a brilliant mind, a wasted talent.

But the silence from the leaders of the Linux community, it’s deafening. His legacy, once a source of pride, is now shrouded in shame. His brilliance, once celebrated, is now overshadowed by the darkness of his crimes.

And as the Linux community grapples with the fallout, a question lingers: What happens when the code we create, the technology we build, becomes entangled with the dark parts of human nature?

The Confession

But there’s still a piece missing, a gaping hole in the story. Nina’s body has never been found. If you believe hans, if his filesystem has been serving you well all these years, if you’ve seen his google talks, if you think he’s a genius and someone to look up to, you might just rationalize things away. He said it on the stand, computer people might be quirky, but we shouldn’t be assumed to be evil because of it.

I think for a brief time, people like me, who maybe weren’t popular in highschool, who spend a lot of time indoors with a computer, they identify with that message, and think Hans is maybe a stand in for our own past persecutions. He’s just a nerd being picked on by the world.

But that’s where the plea bargain comes in. A deal is struck and on a hot July afternoon in 2008, A convoy of police cars snakes its way through the Oakland hills, up into Redwood Regional Park. A SWAT team, armed with rifles, scans the dense undergrowth. Inside a caged van, Hans Reiser sits handcuffed to his lawyer.

They arrive at a remote parking lot, the end of the road. Hans leads them down a narrow deer trail, the air thick with the smell of pine and eucalyptus.

Hans stops. He points.

Hans: If you dig down two feet, you’re going to hit Nina’s toes.

The officers exchange glances. They start digging and they find her or what remains. And for his cooperation, his sentence is reduced to 2nd degree murder.

The Lost Vision

So, Hans Reiser is in prison, his legacy forever tainted by his crime. But what about his code, his creation, ReiserFS? What about the dream of Reiser4, the filesystem he believed would revolutionize the Linux world?

It’s a story of what might have been, a story of unrealized potential. Reiser4, despite its technical innovations, never quite makes it. It’s a complex filesystem, with features like “dancing trees” and a plugin architecture that promised flexibility and performance. But it’s also a filesystem burdened by its creator’s past.

The Linux community, already wary of Hans Reiser’s abrasive personality and unconventional coding style, now grapples with the implications of his crime. Trust is broken. The enthusiasm for Reiser4 wanes.

And as the community debates the merits of Reiser4, other filesystems step into the spotlight. Ext4, building on the familiar foundation of ext3, emerges as a stable and reliable option, quickly becoming the default choice for many Linux distributions. And ext4 is a group effort, various experienced linux developers working together to get it working and into the kernel.

Btrfs, with its advanced features and focus on data integrity, gains a following among those seeking a more modern and robust filesystem. XFS, known for its high performance with large files, continues to be a strong contender in the enterprise space.

Reiser4, meanwhile, languishes. It lacks the corporate backing needed to drive its development and integration into the mainline kernel. And also unlike ext4, there is only a singular person, Hans pushing for it. And from his prison cell his voice is now a whisper, lost in the noise of the rapidly evolving Linux community.

Edward Shishkin, a former Namesys employee, picks up the torch, continuing to develop Reiser4, even releasing a new version, Reiser5. But without Hans’s drive and vision, without the support of the community, the project struggles to gain momentum.

And as the years pass, as the Linux kernel evolves, ReiserFS is marked as obsolete, slated for removal. The code, once so innovative, becomes a footnote in the history of Linux filesystems. A reminder that technical brilliance alone is not enough. That true progress requires not just code, but collaboration, community, and a shared vision for the future.

Now known as inmate G31008, Hans His legacy, once a testament to innovation in the Linux world, is now overshadowed by a single, horrific act.

But he gets a letter asking about this thoughts on Reiser3 being slated for removal from the linux kernel. And from his prison cell, Hans Reiser writes. A 6,500-word letter to the Linux Kernel Mailing List, a community he once clashed with. It’s a letter filled with regrets, reflections, and a plea for understanding.

Hans: The man I am now would do things very differently from how I did things then.

He reflects on the early days of ReiserFS, recalling the struggles to make it perform competitively. He admits to a crucial social misstep, a failure to acknowledge the work of others. He expresses regret for not appreciating his team more.

He acknowledges the technical challenges of Reiser4 and the social missteps that hindered its acceptance.

Hans: The problem was that it didn’t use the code that had been written by others in the kernel community, and people don’t really like their code not being used. People want to feel included. I responded to their social need by, well, screwing the pooch in response.

He talks about the prison workshops, the lessons he’s learning about conflict resolution. He thanks Edward Shishkin for his work on Reiser5, though he admits he doesn’t know what’s in it, due to his lack of internet access. He encourages the community to support the project, disentangling it from his own tarnished reputation. It’s a complex letter, a glimpse into the mind of a man grappling with his past. He closes with a poignant reflection:

Hans: It has been an honor to be of even passing value to the users of Linux.

Ending

Rightfully, this story should be about Nina. She’s the one who lost her life. But there’s something important here. A thing I thought should be said. Your technical and social skills—they work together. They multiply when working together. Maybe here, with Hans they divide.

I’m not saying your difficult colleague is a murderer, But these things, they are not not connected. Hans struggled with empathy. Frankly I struggle with empathy sometimes. And Hans is going to be out, probably in not too long and I hope he gets better at that. And thinking of others. I hope we all get better at that.

So, yeah, back what I’ve learned from my wife. How she can spot problems in people I’ve given a pass to. Well, I think how you interact with people matters. You can’t separate the art from the artist, because they are all tied up together. The coworker you have that some women in the office refuse to work with - a real story I’ve heard. Or that mean-spirited person that just gets a lot of good work done. And they shouldn’t get a pass.

We do ourselves no favors when we rationalize, defend, or rally behind people whose lack of empathy makes them dangerous. And yeah my wife has this knack for seeing through the facade, for sensing when something’s off. But really we all have that. And maybe that’s what we need more of in tech—a little less focus on the code and a little more on the character. Understand the people, and their motivations. Because, in the end, it’s all connected.

Even Hans touched on this lesson in his letter to the linux mailing list:

Hans: The man I was then presented papers with benchmarks showing that ReiserFS was faster than ext2. The man I am now would start his papers crediting them for being faster than the filesystems of other operating systems, and thanking them for the years we used their filesystem to write ours. Not doing that was my first serious social mistake in the Linux community, and it was completely unnecessary.

ReiserFS was named after Hans, who often spoke of his grand vision. But what about his team in Russia? Who were they? What ideas were theirs? What crucial work should be credited to Hans, and what to his unnamed team? How did they endure his challenging personality? This is the true purpose of the letter.

Hans: In prison I have been working quite hard on developing my social skills, especially my conflict resolution and conflict avoidance skills…It has changed me.

Hans: Assuming that the decision is to remove V3 from the kernel, I have just one request: that for one last release the README be edited to add Mikhail Gilula, Konstantin Shvachko, and Anatoly Pinchuk to the credits, and to delete anything in there I might have said about why they were not credited. It is time to let go.

Outro

That was the show!

Hans’ request was granted. A patch email was sent to the Linux mailing list, updating the readme. ReiserFS will be dropped from Linux in 2025, but for now, the readme better reflects the teamwork it took to build it.

I’m deeply indebted for this episode to the myriad of coverage of Han’s trial. Espeically Henry K. Lee for his thorough reporting in Presumed Dead and to Fredrick Brennan for sharing Hans’s letter and for the web archive’s way back machine, because this didn’t happen that long ago, but a lot the webpages seem lost in the sands of time.

All quoted dialogue here is exact quotes, from Henry’s book, from emails, from reporting on the case, trial transcripts or somewhere else. But I’m sure i got some things wrong, because I’m just a guy, clicking around, reading web pages and writing down my thoughts. So forgive me any error.

Thank you Nina Reiser’s family, I’m sorry you have to go through this. I hope for a brighter future for her children, Rory and Nio.

And Thank you to all the people who sent me interesting links, like this linux mailing list link and thanks to the supporters who keep me at this, even though I’m new to a job and seem to struggle to find the type of investment of time an episode really needs. If you want to join the supporters and show you appreciate for the show go to corecursive.com/supporters. We also have a pretty awesome slack channel you can find on the website.

And until next time, thank you so much for listening.

Support CoRecursive

Hello,
I make CoRecursive because I love it when someone shares the details behind some project, some bug, or some incident with me.

No other podcast was telling stories quite like I wanted to hear.

Right now this is all done by just me and I love doing it, but it's also exhausting.

Recommending the show to others and contributing to this patreon are the biggest things you can do to help out.

Whatever you can do to help, I truly appreciate it!

Thanks! Adam Gordon Bell

Audio Player
back 15
forward 60s
00:00
00:00
52:33

ReiserFS