The dark and murky past of NixOS
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Armijn
NixOS hasn't always been there, but it was created by a small team 15 years ago. In this talk you will learn how NixOS got started (and what came before), why certain design decisions that are still in NixOS today were made, and perhaps see an embarassing picture or two.
 So the next talk is going to be about Dark and Murky Palsk of Nixos. So it's me again. So before we start, I first want to announce a little bit of a contest. The first person to actually package this thing into Nix packages will win this very hard, ugly hard plastic MSN figurine. Actually it no longer works on MSN because MSN is no longer working but it does work on Linux. So get cracking. So and if you're thinking about adding support for this to Hydra, that's even better. So because you know what, it actually has LEDs and can flap its wings and all that. It's really cool. So if you want to be woken up in the middle of the night because your build failed, it's perfect. So I got some more of them. So I'm going to talk about the history of Nixos and this is not necessarily the real history so some of the facts might have been changed for dramatic effect. But who cares? So it's all in the past anyway. So a little bit about me. I actually studied computer science at the University together with Ilko and Rob. And my master thesis was Nixos. So I created the very first Nixos. So it's because of me that you are here. So it would have happened one way or another anyway but I just accelerated it. So after that I drifted away to do other things mostly first system administration. I used to be on the board of NLUIG, formerly known as the Dutch Unix User Group. And then I got more into legal and licensing so I was on the core team of GPLviolations.org for about seven years. And now I'm having my own consultancy focusing on open source license compliance, software provenance and so on. So things about reproducible builds, where software is coming from is still very important in my day to day job. Because when I actually have to go to court and then show like, oh well this is where this particular software came from, then knowing exactly where it came from, how it was built is actually very, very important to me. So about me, so I started using Linux and open source somewhere in 1994, first free BSD. And then later we switched at home, we switched to Linux in 1995, Slackware. And that was before Windows 95 was released. So I only started using Windows 95 or 98 when it was already a few years old. So in 1996 I started studying at Uttar University. So Ilka was actually one of the first other students that I even talked to, so on the first day. So we've known each other for quite a long time. So I already had some experience with Linux, free BSD, then we got HP, Wax and Irox. I can tell you it's nothing like in Jurassic Park. But so and then Solaris a year later. And although I've used Linux exclusively for a very long time, I've always been a bit of a BSD fanboy and I have proof. So that's actually Kurt McCusick. So an old Unix guy, super nice guy, if you ever meet him in a conference just go talk to him. He knows a lot of stuff about the history of Unix and he's done so much. That's unbelievable. Anyway, there were some frustrations. Some friends actually studied physics and they got really deep into Debian. And I was using HP, Wax, Irox, another Linux and free BSD at home. And then whenever I said, you know, this problem, how should I, and then their default answer would be up, get install. That really turned me off. So that's like, come on. So every conversation ended with up, get install. It's like, okay, bye. And that just like, it's, if they wouldn't have done that, I might have been using Debian, but that was like, okay, this is not for me. If this is your attitude, then this is not for me. All right. So through a friend I got involved in Rock Linux. I'm not sure if anyone here has ever heard of Rock Linux. They, oh, one person. It was a long time ago. So and I especially worked on the ultra spark port because admittedly I was also a bit of a sun fan boy. But that distribution was a built from source thing, much like Gen2, but then a little bit before Gen2 and maybe not as polished as Gen2. But it, what attracted me is what it was kind of influenced by the free BSD port system that I really liked. And in the end, it wasn't a very successful project. Gen2 took their entire market basically overnight. And I just ended up installing Red Hat Linux and later Fedora Core and have stayed with that forever since. So around 2002, I took over the management or maybe the mismanagement of a student lab at the university. And I also got very interested in things like portability because of my experience with other operating systems and other architectures as well. So one day a very big pile of old PCs became available and we just started like, okay, well, these are going to be trashed anyway. So why don't we do anything with it? So we will, I just hold them to the lab. We stacked them up. We installed different operating systems on it. And we started to play with build form software. So December build form, Tindall box, also some build form software from the University of Amsterdam. And I've forgotten the name. I don't even no longer know. Do you still know what it will go forgot to? And one test case for us was the strategic, strategic XT program transformation tool. So that looked a little bit like that. So the person on the right is actually Martin who was the number three, I think the number three committer to NICS packages. So he hasn't done anything for over a decade, I think, but he can still be found somewhere in the lock. So it's a lot of beige, lots of Dell taking up a lot of space as well. But this is what we did is we played around. And what we found is that the build form software was suboptimal at best. So some builds would sometimes fill because I did an update of the base system. So some builds, they would run perfectly. Then it's like, okay, there's a security update. I would just install the security update and then the build would fill. And debugging that would just be so incredibly hard. So basically, we took the approach like, okay, well, you know, don't touch it or it will break. Of course, these machines were connected to the internet. So that's not a good idea. But it was a very useful learning experience for us. I wrote a paper about that that you can still find. I presented it at the UK UIG Linux conference in 2003. So it was in Edinburgh. It was very nice in summer. I just did the start of the French festival, so I got lucky. So around this time, Ilco had already started working on NICS and one of the first use cases being release management for, again, Stratigo XT. And I have proof for that. So this is from an old conference where it actually says, release management for Stratigo XT with NICS. See, I didn't lie. Where he's also talking about stuff that I don't even understand. Like, what is it? Software deployment as a memory management? I think that's in your thesis, right? So if you really want to know about what it all means, just read this thesis. So of course, there was already something before NICS. It was called Mac. So that software never saw an official release, but at one point it did have a Wikipedia page. So I think it's probably been deleted a long time ago. And a little known fact, Bra Modena from Vimfame, he was also working on a release tool called App, which was sponsored by NLNet. There they are again. And one thing is that I basically connected, but I'm who I happen to know at the time, NLCO, and they just spent a day talking about, I don't even know what you talked about, probably about ideas about the different systems. You probably know a lot more about that. Or you might have forgotten. Mostly forgotten. It was a long time ago. So when I was looking for a project for my master thesis, I tried some and failed. And basically I was looking for something like, okay, I really have to finish studying. So what they actually said is, well, why don't you try to build a complete Linux distribution with NICS? And back then, already some work had been done by NICSU, which was a quite minimal user mode Linux based distribution. So it wasn't the kernel. It was basically some user land tools that were working. So there was actually something before NICSOS called NICSU. I think you can still find it in the repositories. I wouldn't recommend trying it, but it's still there. But my goal was to go all the way and actually install it onto real hardware just to make sure, like, okay, can we do this? Will this actually work? Because at that time we didn't know. So I took NICSU. I expanded on it because I'm quite a stubborn person. I tried to build things on my Fedora core and Ilco was using SUSE. And yeah, well, you know, they say, you know, Linux standard base. Well, my ass. Like, no way. There were so many differences between those two distributions that it was just painful. So one of the things was with the C library, I think with the MPTL threading library, that was just a ton of pain. So Fedora took a much different approach to that than SUSE did. And that just caused lots of troubles. So in the end, I convinced Ilco that this was a problem. And then he introduced a statically built environment. And I think that that is still more or less in NICS today, but not in the way we actually made it. So my main contribution there was just to moan a lot so Ilco would actually attack this problem. And that's usually a very good strategy when dealing with Ilco. You're just, you're just a bitch. It takes some time, but then it just fixes it like that. So I actually added quite a few of the tools there, and then I added most of them. I did the static builds. I added them to the subversion repository and so on. And after that, we just started hacking. So this is a very early engineering note. I still don't know what Ilco was trying to say here, but I think it was a little bit about how the store worked. You really have to improve your handwriting. So after adding enough of the essential tools, we actually got it to work and got it transferred to some real hardware. So both virtual and real. So we had some VM-Bare virtual machines, and we also installed it on a real PC. And we were just happily playing around with it. And then we thought we were toying around. And then all of a sudden we realized, like, okay, well, we forgot to create the bin SH sim link. But most of the tools worked. So at that time, we knew, like, okay, well, a lot of the programs out there actually do not depend on bin SH being present in the system. And it will just work fine without them. So Linux standards base, you don't actually don't need it. At least for most programs, you actually don't need it. So at that point, we knew that this would work. And that gave the project a major boost. And that made Ilco very happy, as I can show you here. Now, where is this? This is the worst photo that's in there. But can you see the green stuff there? The SUSE DVDs? Ilco exposed. So when then we installed a new build form with two main machines called itchy and scratchy and also a whole other, another pile of machines. So we were definitely into the Simpsons, as you can tell. So and eventually those two machines were completely reinstalled with NixOS very early on. I was just a little bit hesitant, but just Ilco just said, like, we're just going to install NixOS on it and just use it on those machines. And that worked really well. And I think those machines ran for how long? Four or five years? Quite a long time, doing lots and lots of builds. So it was like this, a little bit tidier, as you can see. So the two main build machines were up there. And the other ones were just all kinds of other machines that we installed with various operating systems. But eventually those were all scrapped. And I think that we only used the two upper machines. So I did some more work on NixOS then. I actually made installation cities, which I then installed on some of the machines that I showed to you. And I also tried to do some cross-complation. I had some old Java stations, actually, and with a Spark processor. And what I tried to do is to create a cross-complation environment with GCC. And that turned out to be incredibly hard. I still don't know why. So these days it's a lot better. But at that point in time it was just impossibly hard to do. I don't know why. Something with the include paths or that it would have something like DD. It would try to invoke a previously built compiler for the wrong platform or something and libraries and big mess. So after that I moved away from NixOS. But I still kept contributing to a few packages for a few years. But I don't think that there's much that survives to this day. I mean, maybe a few brackets here and there that you can still find when using Git blame. But you know I still have some of the pictures. We basically say there's no pictures. So one thing that I can do is actually, so Ilko dug up an old boot session, a movie with an old boot session of NixOS in June 2005. So it's June 2005. So if you want to see that, it's very, very bare bones. So I think this is actually Oco typing. Yeah, so this was very, very rough. Not a lot of automation going on at that point. I'm not sure why Ilko was typing so slow. So one thing that you will notice is at this point we didn't actually yet correctly set the path because it said command not found found for LS. So we used echo, which was a dirty hack, but it works. So in case you ever wipe your environment, that's actually a good hack. So we didn't actually set the path back then. I think we were just a few months in here at this point. So just so you know, wild cards, they don't work. So I think this was definitely Ilko typing. We eventually, we could be cut there. We just had to find the right derivation. Now that was very old school, old school next OS. So I think that's the end. All right, so to wrap up, so technically I started next OS, but since then it is because of you that it has grown so much. So I actually want to thank you for putting so much work into it and making it a lot, lot better. So thank you. So of course we might have some time for some more embarrassing stories. If anyone wants to hear. Why did you move away from next OS? I got a job and that didn't involve next OS. And at that point I was very, very getting very deeply into the licensing stuff. So basically didn't have any free time left at all to tinker with things, but I still updated a few packages here and there. Any other questions? I'm curious about this idea of running the activation script from Grubb while you're booting. If that was an idea you had from the beginning or something you came up with along the way. This was 14 years ago. I honestly don't remember. I just needed to get stuff done. So I really don't remember. Fair enough. Are you using next OS again now? So if you actually saw my talk from yesterday, no. So right now I'm still on Fedora. So some people are trying to convince me to go back to next OS. So Rob already tried to install it while we were driving here. I just said, well, he said, well, yeah, just give me the laptop. I'll install it now. I just said, keep your eyes on the road. It will be a lot better. So yeah, I should go back into it, but first I have to finish a few other things. First need to get some clients off my back. Who was the first other person you convinced to install next OS other than you two? Actually, in our lab, there were quite a few people quite eager to install it. So I think so Martin, who was there as the number three committer, was also very interested in a few other people in the lab as well. And I'm not sure how it actually spread. Do you still know how it actually spread outside of our lab? Was it through the, probably through Haskell, some Haskell people, I think? I really can remember. Yeah, they were very early contributors like Ludovic, who started Geeks. I don't know when he showed up, 2007 or so. There were a few people already using it before, but I think that mostly some of the Haskell people at the university, they started to get into it and probably spread the word. Yeah, it's all in the Git logs. So I don't remember these things because they're in the logs. So as soon as they started using it, they started contributing so that we can find out how it actually went. I was wondering if you can recall anything from your thesis defense? Like were there any intros? So it was not a PhD thesis, but it was just a master thesis. So I remember basically them saying that it was good enough. That was a good moment. So no, actually, so there was just a few people there, like Supervisor, Ilco and a bunch of others. So no external people. So no, I don't really recall anything. Uh-oh. Well, first of all, can I mention that the thesis defense was one week before the 10-year deadline that you had to reach and then had to not have to pay back your entire student tuition fee? Okay, so a little bit of history about that. So when we started, we actually got student loans and the period to finish it was 10 years. And I finished it in nine years and 51 days. 51 weeks. Sorry, 51 weeks. So I had one week left. And the other thing is that you were wearing a sick of it all t-shirt. That was the right one. Yeah. But that was just coincidence because no. That was not an honest, that was, no. I was wearing that, I think, but that wasn't a conscious decision. It's just a band, you know. Hey, what did Nix's configuration look like before Model System was introduced? What did it look like? Configuration came later. I like that answer. Yeah, so basically it was very bare bones, just what you saw. That was it. That is what it was like in the early beginning, just finding the right paths in the store and then just doing some stuff. So it was really just a proof of concept. This was some really cool masters and PhD theses that you had over there. Are there any other theses from your department that you remember that are interesting in some way to you personally? So you actually expected me to have read those theses? So no, no, so I wasn't into that. I was just glad that I had finished everything. I probably wasn't the right person to have an academic career. Have you had anything interesting in the lower level like unicannel space with people? I only had HLVM Galois thing works with Nix, but have you had anything else in that space? You will have to repeat that question. Unicannels. Unicernels. That was the question. So don't the only thing that I actually focused on was just getting Linux to work. So that is all I ever tried. Did you consider making it with FreeBSD instead? No. Not fanboy enough. So why not? I already had done it for Linux and I think that with FreeBSD the whole kernel and user space was much more tightly integrated. So it would have been a lot more difficult. With Linux, things were much more componentized. So that would actually have been easier. Sometimes when packaging packages for Nix packages, we have some questions about licensing, what we can include, how we can link and so on. Would you be willing to help answer those questions? So we have another week, right? So of course I'm not a lawyer, so I can actually not give legal advice, especially in certain jurisdictions I'm not allowed to do that. But I do have thoughts about them. That is as far as I can go. But yeah, so licensing and Nix packages, that's something that could be improved. Let me just say that. I think that there's a lot of stuff that can be improved there. So if anyone is interested in tackling that problem, I would be more than happy to help. All right, so did anyone manage to package it? No one? Really? So I will be here all afternoon. So if you just have packaged it by then, then you can just come and pick it up. So if there are no more questions, I'd like to thank you for your time and attention.
 So the next talk is going to be about Dark and Murky Palsk of Nixos.  So it's me again.  So before we start, I first want to announce a little bit of a contest.  The first person to actually package this thing into Nix packages will win this very  hard, ugly hard plastic MSN figurine.  Actually it no longer works on MSN because MSN is no longer working but it does work  on Linux.  So get cracking.  So and if you're thinking about adding support for this to Hydra, that's even better.  So because you know what, it actually has LEDs and can flap its wings and all that.  It's really cool.  So if you want to be woken up in the middle of the night because your build failed, it's  perfect.  So I got some more of them.  So I'm going to talk about the history of Nixos and this is not necessarily the real  history so some of the facts might have been changed for dramatic effect.  But who cares?  So it's all in the past anyway.  So a little bit about me.  I actually studied computer science at the University together with Ilko and Rob.  And my master thesis was Nixos.  So I created the very first Nixos.  So it's because of me that you are here.  So it would have happened one way or another anyway but I just accelerated it.  So after that I drifted away to do other things mostly first system administration.  I used to be on the board of NLUIG, formerly known as the Dutch Unix User Group.  And then I got more into legal and licensing so I was on the core team of GPLviolations.org  for about seven years.  And now I'm having my own consultancy focusing on open source license compliance, software  provenance and so on.  So things about reproducible builds, where software is coming from is still very important  in my day to day job.  Because when I actually have to go to court and then show like, oh well this is where  this particular software came from, then knowing exactly where it came from, how it was built  is actually very, very important to me.  So about me, so I started using Linux and open source somewhere in 1994, first free  BSD.  And then later we switched at home, we switched to Linux in 1995, Slackware.  And that was before Windows 95 was released.  So I only started using Windows 95 or 98 when it was already a few years old.  So in 1996 I started studying at Uttar University.  So Ilka was actually one of the first other students that I even talked to, so on the  first day.  So we've known each other for quite a long time.  So I already had some experience with Linux, free BSD, then we got HP, Wax and Irox.  I can tell you it's nothing like in Jurassic Park.  But so and then Solaris a year later.  And although I've used Linux exclusively for a very long time, I've always been a bit  of a BSD fanboy and I have proof.  So that's actually Kurt McCusick.  So an old Unix guy, super nice guy, if you ever meet him in a conference just go talk  to him.  He knows a lot of stuff about the history of Unix and he's done so much.  That's unbelievable.  Anyway, there were some frustrations.  Some friends actually studied physics and they got really deep into Debian.  And I was using HP, Wax, Irox, another Linux and free BSD at home.  And then whenever I said, you know, this problem, how should I, and then their default answer  would be up, get install.  That really turned me off.  So that's like, come on.  So every conversation ended with up, get install.  It's like, okay, bye.  And that just like, it's, if they wouldn't have done that, I might have been using Debian,  but that was like, okay, this is not for me.  If this is your attitude, then this is not for me.  All right.  So through a friend I got involved in Rock Linux.  I'm not sure if anyone here has ever heard of Rock Linux.  They, oh, one person.  It was a long time ago.  So and I especially worked on the ultra spark port because admittedly I was also a bit of  a sun fan boy.  But that distribution was a built from source thing, much like Gen2, but then a little bit  before Gen2 and maybe not as polished as Gen2.  But it, what attracted me is what it was kind of influenced by the free BSD port system  that I really liked.  And in the end, it wasn't a very successful project.  Gen2 took their entire market basically overnight.  And I just ended up installing Red Hat Linux and later Fedora Core and have stayed with  that forever since.  So around 2002, I took over the management or maybe the mismanagement of a student lab  at the university.  And I also got very interested in things like portability because of my experience with  other operating systems and other architectures as well.  So one day a very big pile of old PCs became available and we just started like, okay,  well, these are going to be trashed anyway.  So why don't we do anything with it?  So we will, I just hold them to the lab.  We stacked them up.  We installed different operating systems on it.  And we started to play with build form software.  So December build form, Tindall box, also some build form software from the University  of Amsterdam.  And I've forgotten the name.  I don't even no longer know.  Do you still know what it will go forgot to?  And one test case for us was the strategic, strategic XT program transformation tool.  So that looked a little bit like that.  So the person on the right is actually Martin who was the number three, I think the number  three committer to NICS packages.  So he hasn't done anything for over a decade, I think, but he can still be found somewhere  in the lock.  So it's a lot of beige, lots of Dell taking up a lot of space as well.  But this is what we did is we played around.  And what we found is that the build form software was suboptimal at best.  So some builds would sometimes fill because I did an update of the base system.  So some builds, they would run perfectly.  Then it's like, okay, there's a security update.  I would just install the security update and then the build would fill.  And debugging that would just be so incredibly hard.  So basically, we took the approach like, okay, well, you know, don't touch it or it will  break.  Of course, these machines were connected to the internet.  So that's not a good idea.  But it was a very useful learning experience for us.  I wrote a paper about that that you can still find.  I presented it at the UK UIG Linux conference in 2003.  So it was in Edinburgh.  It was very nice in summer.  I just did the start of the French festival, so I got lucky.  So around this time, Ilco had already started working on NICS and one of the first use cases  being release management for, again, Stratigo XT.  And I have proof for that.  So this is from an old conference where it actually says, release management for Stratigo  XT with NICS.  See, I didn't lie.  Where he's also talking about stuff that I don't even understand.  Like, what is it?  Software deployment as a memory management?  I think that's in your thesis, right?  So if you really want to know about what it all means, just read this thesis.  So of course, there was already something before NICS.  It was called Mac.  So that software never saw an official release, but at one point it did have a Wikipedia page.  So I think it's probably been deleted a long time ago.  And a little known fact, Bra Modena from Vimfame, he was also working on a release tool called  App, which was sponsored by NLNet.  There they are again.  And one thing is that I basically connected, but I'm who I happen to know at the time,  NLCO, and they just spent a day talking about, I don't even know what you talked about, probably  about ideas about the different systems.  You probably know a lot more about that.  Or you might have forgotten.  Mostly forgotten.  It was a long time ago.  So when I was looking for a project for my master thesis, I tried some and failed.  And basically I was looking for something like, okay, I really have to finish studying.  So what they actually said is, well, why don't you try to build a complete Linux distribution  with NICS?  And back then, already some work had been done by NICSU, which was a quite minimal user  mode Linux based distribution.  So it wasn't the kernel.  It was basically some user land tools that were working.  So there was actually something before NICSOS called NICSU.  I think you can still find it in the repositories.  I wouldn't recommend trying it, but it's still there.  But my goal was to go all the way and actually install it onto real hardware just to make  sure, like, okay, can we do this?  Will this actually work?  Because at that time we didn't know.  So I took NICSU.  I expanded on it because I'm quite a stubborn person.  I tried to build things on my Fedora core and Ilco was using SUSE.  And yeah, well, you know, they say, you know, Linux standard base.  Well, my ass.  Like, no way.  There were so many differences between those two distributions that it was just painful.  So one of the things was with the C library, I think with the MPTL threading library,  that was just a ton of pain.  So Fedora took a much different approach to that than SUSE did.  And that just caused lots of troubles.  So in the end, I convinced Ilco that this was a problem.  And then he introduced a statically built environment.  And I think that that is still more or less in NICS today, but not in the way we actually  made it.  So my main contribution there was just to moan a lot so Ilco would actually attack this  problem.  And that's usually a very good strategy when dealing with Ilco.  You're just, you're just a bitch.  It takes some time, but then it just fixes it like that.  So I actually added quite a few of the tools there, and then I added most of them.  I did the static builds.  I added them to the subversion repository and so on.  And after that, we just started hacking.  So this is a very early engineering note.  I still don't know what Ilco was trying to say here, but I think it was a little bit  about how the store worked.  You really have to improve your handwriting.  So after adding enough of the essential tools, we actually got it to work and got it transferred  to some real hardware.  So both virtual and real.  So we had some VM-Bare virtual machines, and we also installed it on a real PC.  And we were just happily playing around with it.  And then we thought we were toying around.  And then all of a sudden we realized, like, okay, well, we forgot to create the bin SH  sim link.  But most of the tools worked.  So at that time, we knew, like, okay, well, a lot of the programs out there actually do  not depend on bin SH being present in the system.  And it will just work fine without them.  So Linux standards base, you don't actually don't need it.  At least for most programs, you actually don't need it.  So at that point, we knew that this would work.  And that gave the project a major boost.  And that made Ilco very happy, as I can show you here.  Now, where is this?  This is the worst photo that's in there.  But can you see the green stuff there?  The SUSE DVDs?  Ilco exposed.  So when then we installed a new build form with two main machines called itchy and scratchy  and also a whole other, another pile of machines.  So we were definitely into the Simpsons, as you can tell.  So and eventually those two machines were completely reinstalled with NixOS very early  on.  I was just a little bit hesitant, but just Ilco just said, like, we're just going to  install NixOS on it and just use it on those machines.  And that worked really well.  And I think those machines ran for how long?  Four or five years?  Quite a long time, doing lots and lots of builds.  So it was like this, a little bit tidier, as you can see.  So the two main build machines were up there.  And the other ones were just all kinds of other machines that we installed with various  operating systems.  But eventually those were all scrapped.  And I think that we only used the two upper machines.  So I did some more work on NixOS then.  I actually made installation cities, which I then installed on some of the machines that  I showed to you.  And I also tried to do some cross-complation.  I had some old Java stations, actually, and with a Spark processor.  And what I tried to do is to create a cross-complation environment with GCC.  And that turned out to be incredibly hard.  I still don't know why.  So these days it's a lot better.  But at that point in time it was just impossibly hard to do.  I don't know why.  Something with the include paths or that it would have something like DD.  It would try to invoke a previously built compiler for the wrong platform or something  and libraries and big mess.  So after that I moved away from NixOS.  But I still kept contributing to a few packages for a few years.  But I don't think that there's much that survives to this day.  I mean, maybe a few brackets here and there that you can still find when using Git blame.  But you know I still have some of the pictures.  We basically say there's no pictures.  So one thing that I can do is actually, so Ilko dug up an old boot session, a movie with  an old boot session of NixOS in June 2005.  So it's June 2005.  So if you want to see that, it's very, very bare bones.  So I think this is actually Oco typing.  Yeah, so this was very, very rough.  Not a lot of automation going on at that point.  I'm not sure why Ilko was typing so slow.  So one thing that you will notice is at this point we didn't actually yet correctly set  the path because it said command not found found for LS.  So we used echo, which was a dirty hack, but it works.  So in case you ever wipe your environment, that's actually a good hack.  So we didn't actually set the path back then.  I think we were just a few months in here at this point.  So just so you know, wild cards, they don't work.  So I think this was definitely Ilko typing.  We eventually, we could be cut there.  We just had to find the right derivation.  Now that was very old school, old school next OS.  So I think that's the end.  All right, so to wrap up, so technically I started next OS, but since then it is because  of you that it has grown so much.  So I actually want to thank you for putting so much work into it and making it a lot,  lot better.  So thank you.  So of course we might have some time for some more embarrassing stories.  If anyone wants to hear.  Why did you move away from next OS?  I got a job and that didn't involve next OS.  And at that point I was very, very getting very deeply into the licensing stuff.  So basically didn't have any free time left at all to tinker with things, but I still  updated a few packages here and there.  Any other questions?  I'm curious about this idea of running the activation script from Grubb while you're  booting.  If that was an idea you had from the beginning or something you came up with along the way.  This was 14 years ago.  I honestly don't remember.  I just needed to get stuff done.  So I really don't remember.  Fair enough.  Are you using next OS again now?  So if you actually saw my talk from yesterday, no.  So right now I'm still on Fedora.  So some people are trying to convince me to go back to next OS.  So Rob already tried to install it while we were driving here.  I just said, well, he said, well, yeah, just give me the laptop.  I'll install it now.  I just said, keep your eyes on the road.  It will be a lot better.  So yeah, I should go back into it, but first I have to finish a few other things.  First need to get some clients off my back.  Who was the first other person you convinced to install next OS other than you two?  Actually, in our lab, there were quite a few people quite eager to install it.  So I think so Martin, who was there as the number three committer, was also very interested  in a few other people in the lab as well.  And I'm not sure how it actually spread.  Do you still know how it actually spread outside of our lab?  Was it through the, probably through Haskell, some Haskell people, I think?  I really can remember.  Yeah, they were very early contributors like Ludovic, who started Geeks.  I don't know when he showed up, 2007 or so.  There were a few people already using it before, but I think that mostly some of the Haskell  people at the university, they started to get into it and probably spread the word.  Yeah, it's all in the Git logs.  So I don't remember these things because they're in the logs.  So as soon as they started using it, they started contributing so that we can find out  how it actually went.  I was wondering if you can recall anything from your thesis defense?  Like were there any intros?  So it was not a PhD thesis, but it was just a master thesis.  So I remember basically them saying that it was good enough.  That was a good moment.  So no, actually, so there was just a few people there, like Supervisor, Ilco and a bunch of  others.  So no external people.  So no, I don't really recall anything.  Uh-oh.  Well, first of all, can I mention that the thesis defense was one week before the 10-year  deadline that you had to reach and then had to not have to pay back your entire student  tuition fee?  Okay, so a little bit of history about that.  So when we started, we actually got student loans and the period to finish it was 10 years.  And I finished it in nine years and 51 days.  51 weeks.  Sorry, 51 weeks.  So I had one week left.  And the other thing is that you were wearing a sick of it all t-shirt.  That was the right one.  Yeah.  But that was just coincidence because no.  That was not an honest, that was, no.  I was wearing that, I think, but that wasn't a conscious decision.  It's just a band, you know.  Hey, what did Nix's configuration look like before Model System was introduced?  What did it look like?  Configuration came later.  I like that answer.  Yeah, so basically it was very bare bones, just what you saw.  That was it.  That is what it was like in the early beginning, just finding the right paths in the store  and then just doing some stuff.  So it was really just a proof of concept.  This was some really cool masters and PhD theses that you had over there.  Are there any other theses from your department that you remember that are interesting in  some way to you personally?  So you actually expected me to have read those theses?  So no, no, so I wasn't into that.  I was just glad that I had finished everything.  I probably wasn't the right person to have an academic career.  Have you had anything interesting in the lower level like unicannel space with people?  I only had HLVM Galois thing works with Nix, but have you had anything else in that space?  You will have to repeat that question.  Unicannels.  Unicernels.  That was the question.  So don't the only thing that I actually focused on was just getting Linux to work.  So that is all I ever tried.  Did you consider making it with FreeBSD instead?  No.  Not fanboy enough.  So why not?  I already had done it for Linux and I think that with FreeBSD the whole kernel and user  space was much more tightly integrated.  So it would have been a lot more difficult.  With Linux, things were much more componentized.  So that would actually have been easier.  Sometimes when packaging packages for Nix packages, we have some questions about licensing,  what we can include, how we can link and so on.  Would you be willing to help answer those questions?  So we have another week, right?  So of course I'm not a lawyer, so I can actually not give legal advice, especially in certain  jurisdictions I'm not allowed to do that.  But I do have thoughts about them.  That is as far as I can go.  But yeah, so licensing and Nix packages, that's something that could be improved.  Let me just say that.  I think that there's a lot of stuff that can be improved there.  So if anyone is interested in tackling that problem, I would be more than happy to help.  All right, so did anyone manage to package it?  No one?  Really?  So I will be here all afternoon.  So if you just have packaged it by then, then you can just come and pick it up.  So if there are no more questions, I'd like to thank you for your time and attention.
The_dark_and_murky_past_of_NixOS__NixCon_2019__0_10451.png The_dark_and_murky_past_of_NixOS__NixCon_2019__10452_10859.png The_dark_and_murky_past_of_NixOS__NixCon_2019__10860_11063.png The_dark_and_murky_past_of_NixOS__NixCon_2019__11064_13211.png The_dark_and_murky_past_of_NixOS__NixCon_2019__13212_18359.png The_dark_and_murky_past_of_NixOS__NixCon_2019__18360_18659.png The_dark_and_murky_past_of_NixOS__NixCon_2019__18660_20207.png The_dark_and_murky_past_of_NixOS__NixCon_2019__20208_20447.png The_dark_and_murky_past_of_NixOS__NixCon_2019__20448_20735.png The_dark_and_murky_past_of_NixOS__NixCon_2019__20736_21611.png The_dark_and_murky_past_of_NixOS__NixCon_2019__21612_24071.png The_dark_and_murky_past_of_NixOS__NixCon_2019__24072_25211.png The_dark_and_murky_past_of_NixOS__NixCon_2019__25212_25271.png The_dark_and_murky_past_of_NixOS__NixCon_2019__25272_26051.png The_dark_and_murky_past_of_NixOS__NixCon_2019__26052_26303.png The_dark_and_murky_past_of_NixOS__NixCon_2019__26304_26555.png The_dark_and_murky_past_of_NixOS__NixCon_2019__26556_26663.png The_dark_and_murky_past_of_NixOS__NixCon_2019__26664_26867.png The_dark_and_murky_past_of_NixOS__NixCon_2019__26868_27143.png The_dark_and_murky_past_of_NixOS__NixCon_2019__27144_27935.png The_dark_and_murky_past_of_NixOS__NixCon_2019__27936_28031.png The_dark_and_murky_past_of_NixOS__NixCon_2019__28032_28763.png The_dark_and_murky_past_of_NixOS__NixCon_2019__28764_29183.png The_dark_and_murky_past_of_NixOS__NixCon_2019__29184_29327.png The_dark_and_murky_past_of_NixOS__NixCon_2019__29328_30023.png The_dark_and_murky_past_of_NixOS__NixCon_2019__30024_30875.png The_dark_and_murky_past_of_NixOS__NixCon_2019__30876_31751.png The_dark_and_murky_past_of_NixOS__NixCon_2019__31752_32663.png The_dark_and_murky_past_of_NixOS__NixCon_2019__32664_32735.png The_dark_and_murky_past_of_NixOS__NixCon_2019__32736_33527.png The_dark_and_murky_past_of_NixOS__NixCon_2019__33528_38555.png The_dark_and_murky_past_of_NixOS__NixCon_2019__38556_38987.png The_dark_and_murky_past_of_NixOS__NixCon_2019__38988_40199.png The_dark_and_murky_past_of_NixOS__NixCon_2019__40200_41303.png The_dark_and_murky_past_of_NixOS__NixCon_2019__41304_41363.png The_dark_and_murky_past_of_NixOS__NixCon_2019__41364_41555.png The_dark_and_murky_past_of_NixOS__NixCon_2019__41556_41639.png The_dark_and_murky_past_of_NixOS__NixCon_2019__41640_41735.png The_dark_and_murky_past_of_NixOS__NixCon_2019__41736_42239.png The_dark_and_murky_past_of_NixOS__NixCon_2019__42240_42647.png The_dark_and_murky_past_of_NixOS__NixCon_2019__42648_42743.png The_dark_and_murky_past_of_NixOS__NixCon_2019__42744_42899.png The_dark_and_murky_past_of_NixOS__NixCon_2019__42900_43031.png The_dark_and_murky_past_of_NixOS__NixCon_2019__43032_43091.png The_dark_and_murky_past_of_NixOS__NixCon_2019__43092_44891.png The_dark_and_murky_past_of_NixOS__NixCon_2019__44892_45027.png