 Okay. All right. Thank you for coming, everyone. My name is Sevan. I'm going to give you a talk about the NetBST project and how it might be of interest to you if you have a lot of old hardware around and you want to do something with modern software. So a quick intro about why you might want to do this. You may have a lot of old hardware and we have different operating systems and if you want to test something across your different systems, this provides you a consistent environment regardless of the hardware that you want to try. It gives you the opportunity to kind of test an idea across the board from something as old as a Vax to something more modern, say, a PDA running on an ARM CPU and it depends on how passionate you are about your ideas, but it could be a good way of actually measuring how your code performs in such situations. And like I said, the software benefits from the exercise. So, say, the Sun Spark CPUs have very kind of strict alignment requirements, which you don't necessarily have, say, on a PC. So, while things kind of work okay on your desktop computer, you may find that when you're actually trying to run on these systems, things blow up spectacularly and that just kind of feeds back into your software and makes it more robust, if not fun. So, this is the range of systems that the NetBSD project supports, broken down from different families of CPUs, starting from the deck alpha to the families of ARM. That's strong ARM and X scale and the more modern variants that you find. The HPPA Intel, the Motorola family, Big Endian and Little Endian MIPS, PowerPC, Hitachi Super H in Big Endian mode and Little Endian mode, 32-bit Spark, 64-bit Spark, Vax and so on. And that doesn't matter. So, a moment of silence for the Acorn 26-bit port which died earlier last month. It died of a severe bit rot, basically, but it was an interesting system because it's a 32-bit processor but with a 26-bit address space. So, that kind of gives it an interesting angle because traditionally, for Unix, you're expecting a 32-bit system with memory management unit as your kind of requirement. But due to the lack of, these systems are kind of quite rare and really, they pretty much live on in the educational establishment in the UK. So, it's quite rare to kind of get that in the hands of developers outside. So, that's gone to the CVS attic now. Does anyone know what this is? There's something about black obelisk, obelisk, right? So, this is a computer made by Sharp and sold in Japan in the late 80s and I think early 90s. It's on the similar idea as the Neo Geo which was bringing the arcade experience to the home. And this is a Motorola, I think, like 68020 or the original systems and it went up to like 68030. And this is very popular in Japan and if you're lucky, you may get your hands on it in the other parts of the world but it's very rare. We happily run on these systems and there's a big group of Japanese developers who actively make sure that things run okay on this. If you're not fortunate enough to kind of get your hands on one of these systems, you can get your hands on an emulator called XM6I, which as I was preparing my slides for, I realized that they've, I don't know, someone's let the domain slip so it's actually being squatted but if you look on the Internet Archive, XM6I.org, you can get a copy of the emulator. And so people typically run this on a Raspberry Pi and emulate one of these systems. Anybody still got to say good dreamcast? Yay. The support for this has been there for quite a while. The problem with this is, as with most of these old computers as the previous speaker said, the hardware ends up becoming very pricey to obtain. So we require the broadband adapter which in reality is just, you know, the cheaper real tech network cards. It's just one of those in a bespoke form factor but you can expect to pay up to like 400 pounds on eBay for one of these. So there's various projects for like kind of doing DIY, DIY broadband adapters based on, you know, just a standard PCI. Actually it might be an ISA 10 megabit network card that you put into a breadboard and just wire it in directly to your dreamcast. It's not as tidy but it's a lot cheaper than 400 quid. And I was always kind of looking, trying to prepare the slides for this. There's actually a troll page that I found which was basically somebody saying that if you grease your mode emports and then wedge the ethernet cable in, you might be able to get it working if your systems aligned correctly with your PC. And with most of these systems which are, you know, quite old, as age moves forward certain things kind of start to manifest. You know, like the lasers, in this case the laser for the drive wasn't really built to last, you know, 15, 20 years. So one of the common things that, again, looking on eBay is there's usually you can pick these machines up without a working GD drive. So there's various projects around as well so you can actually just use a compact flash adapter and continue to kind of operate your dreamcast machine. It starts to look, as these kind of projects and things pile up, your shiny nice case kind of starts to lose its niceness because you just kind of grow tentacles and wires and stuff. Another one, does anyone know what this machine is from Japan? So this is the Omron Lunar Workstation. This one is a 68040 based system. This was built by a corporation in Japan in the late 80s. And the significance of this machine is that at the time when it came out it had CPM support. It had MUC support and it had support for 4.3BSD out of the box like natively. So with one of these you can test your code all the way back to 4.3BSD and up to modern day NetBSD. And later on just before the company imploded they also did a workstation on the Motorola 88K which was the processor between the 68000 and the PowerPC which didn't really take on. We don't support the 68K, sorry, the 88K machines. Is that the original memory? It's lower memory for the H? I think so, yes. More importantly is the resolution. Like even my laptop here, the extremely thing I can't even do that. But the OpenBSD guys basically took the R68000 port and used it as the basis for the 88000 port. And these machines are interesting as well in that you can replace the floppy drive with a PCMCIA adapter and then you can get it on Wi-Fi and browse maybe. Actually this is a fresh effort going on at the moment actually. Does anyone know what this board is? So this is a Milan board which according to Wikipedia was built by a company in Germany towards the end of the 90s and was produced until like the early 2000s. And this is an Atari ST clone. But the difference being that it's got PCI slots, ICER as well and it can support up to 512 megabytes of RAM. Interesting thing is that it's actually got an Intel Triton chip set, which Intel did for the PCs back in the day. The support for this actually landed quite some time ago, but what I was saying about assumptions, somebody assumed that you would only ever find an Intel Triton chip set on an X86 machine and basically ripped out the support for that in the Atari port and broke things. But one of the Izumi Tsutsui has been kind of working on this at the moment because he's just been donated a board and the systems spung back into life. It's quite impressive. Actually going back, according to Wikipedia actually, there was also an ACP, so this is the old-fashioned AT-style motherboards. They actually did prototype the ACPI version, but it actually never made it to production. That would have been quite cool today. Amiga, we support the Amiga, but on the earlier systems, you need something basically with an MMU, so that means that you're confined to a 68030 or up. We support the 68060 as well, which is supposed to be kind of compatible with the 68040, but there's a couple of things that don't behave the same as. But it's there, and as the previous speaker said, you can expect to pay lots of money for one of these accelerator boards to get things going. Anybody remember Cobalt? So Cobalt was a company that came around I think in the late 90s, and the idea was to kind of build an appliance for serving content, and it was kind of complemented with an extremely outdated version of Linux even for the time. We run on those as well. So these appliances are typically MIPS 4000 based systems, and you can get them in various form factors. They're commonly like kind of a rack mount based system, but you can also get this really nice cube that kind of sits in your shelf nicely and has a single PCI slots. Window CEPDAs? So we have the actual Window CEPD projects went through like three generations of CPU architecture. The original stuff was based on MIPS, and then it moved on to the Hitachi Super H, and then after that it kind of died with ARM, and the ARM stuff is a strong ARM initially and X-Scale afterwards. We pretty much support those. The nice thing is actually again from Japan, you can get these really nice, I think they're sharp mobile phones, which run the X-Scale CPU, and you can run NetBSD on them as well. Yeah. If you're besides the Ritual Computing, if you actually want to build the bootloader or anything like that, you have to get into a bit of embedded Visual C++, which is in a style of madness. Cool. So we need to kind of make sure that some of this stuff actually works and it's just not theoretical. So there's a project called Anita, which is this Python-based framework, and it basically spins up an instance of whatever machine it's been configured to. Boots are NetBSD, ISO, runs through the install process, and I guess runs some tests as well, runs the test framework, and then publishes the results. For the Google Summer of Code last year, there was a project from one of the students to extend the support. So I think support for the PMAX port was added, the HPC MIPS, the MIPS-based PDAs was added, and there was a third one, but I can't remember. But I will show you on the next slide. We basically have support for emulators. These can be wired into Anita. So keymew for doing like Spark, PowerPC, things like that. CIMH for Vax. Does everyone know what CIMH is? Yes, from your talk last year, that was excellent. The gentleman gave a talk about trying to boot NetBSD Vax and testing for testing Postgres. So CIMH actually started life in deck in the 60s for basically testing the PDP hardware, and it kind of evolved from there, and at some point it was open sourced to the world. And so you can use that to boot NetBSD, but you can also use it to kind of boot loads of other interesting old operating systems like from deck and things like that. GX emulator is an interesting emulator. It does kind of MIPS. It does the Dreamcast, like SuperH stuff, and some other platforms. UAE is the unsupported, no, unbootable Amiga emulator. But then once they got the Amiga booting, they changed it to UNIX Amiga emulator. And the XMCI is the 68,000 arcade machine emulator that I was mentioning earlier on. Yeah, and so that's the Japanese guys, like most of the conferences, have like a Raspberry Pi booting the emulator, and that's I think like a Pi 1 or a Pi 2 with X. Running NetBSD. Complimentary hardware. So that's a new graphics card that came out I think last year, which supports NetBSD. Amiga, the developer actually worked, the creator of this actually worked with one of the NetBSD developers to put the driver together. So that was cool. So things are still going on. He's currently actually working on a new laptop project called the Reform. This kind of open source secure, not secure but auditable open hardware laptop that you may have heard of last year. For your Vax and other turbo channel based hardware, we can bring you the wonders of USB. You can, you may laugh, but you may want to get on Wi-Fi with your Vax station running NetBSD. You're not going to get a turbo channel based Wi-Fi adapter. Aha, indeed. So that's the turbo channel is a bus that's found on a deck hardware. So the Vax one generation of the Alpha and the MIPS based deck stations. And that's one of the NetBSD devs who created this. His new project, that was I think last year or the year before that he was doing this. Does anyone know what a deck Dynard is? Apart from the NetBSD devs in the room. So Deck Dynard was the reference strong arm hardware platform that was created by Deck in the late 90s. So it's an open firmware based strong arm system. And on the board you have this kind of connector. And based on this connector, it's actually a PCI slot. So he's built an adapter that plugs into this and then with that you get PCI. So you can plug in modern hardware into your ancient strong arm appliance. I wanted to actually post a picture but I couldn't go on to his website. It is that the URL is correct but there's some problem. Yeah. So why would you want to do this? It's really easy to kind of get started. Excuse the slides, I had this kind of weird problem but really all you need is a copy of the source code if you wanted to kind of experiment and build stuff but otherwise I just grab an ISO and get started. But if you wanted to kind of build an OS, obtain the source code. If you run the build SH list arc you'll get the list of architectures that you can just build out of the box right there. So if you wanted to kind of target the next station you'd say you want the tools and that would just go through and build the linker compiler and everything else that you need to kind of build the OS. And then for the last one you can say build a release and it would go through everything, build all the kernels and generate an image for you ready to play with. But you don't have to go through this process. You could just download an ISO from the website and start playing. Retro blues, sadness. Most modern Wi-Fi adapters that can do WPA are card buffs and that means the difference between card buffs and PCMCIA though they're the same form factor. PCMCIA is basically an ISO card in a credit card size form factor whereas card buffs is PCI. And most of these ancient pieces of hardware only do the PCMCIA. So it means that you're confined to an adapter that can only do 802.11b and without only on web. So that kind of sucks for the PDA for example. So you might have a modern operating system that can do IPv6 on your backstation. It's another problem when you actually want to get some software on there because the way that Perl 5 does its build process means that it's not possible to actually cross compile that. So basically what happens is the official documented process is that you would have your target hardware sitting there and on your shiny fast computer you would invoke the build but the build would SSH onto your target do all its tests and then continue building on it which you can't really automate. And you can't kind of fake that on your modern machine. So it means you'd be surprised how much you can't build if you don't have a version of Perl 5. And it's going to be interesting if there ever is going to be a move to Perl 6 permanently because there's a lot of stuff that just won't work. For the Perl 5 case, will building in an emulator help you? I guess I've not actually delved into the... You could set up your instance with Anita in the emulator. Build Perl 5, get the package out, copy that. Actually, and that's exactly the approach that the FreeBSD project has taken for the modern systems. But the thing is actually for us we actually have the cross compilation support for cross building packages. It's just that we completely fall short of the Perl process because of this requirement. Any other questions? You had a comment back there a little bit saying ensure you have a C99 compiler. Are most of these machines before 99? Oh yes, so the question was there's a note about a C99 compiler. Aren't most of these machines pre-99? Yes, this is if you want to kind of cross compile from another computer. If you're actually installing a release you would actually get a modern compiler with it. So I'm assuming that you want to experiment, like you want to change something about the OS. I've had some problems on the VACs because the GCC target support has had bugs that get neglected. So how is the experience on these other platforms? Is that a general problem? So the question was about tool chain support for legacy systems and bit rot and issues that crop up. Yes, and actually this is a problem with some of the legacy systems because as support gets removed from GCC upstream you're kind of in this limbo. The nice thing is one of our developers, Jorg, is actively working on LLVM support. And in response to some of the support for some of these architectures they've been quite welcoming in terms of yeah sure we can have that. I think the specific case was the 68,000 Motorola support that they were happy to kind of take on. I'm not sure what it means for the VAC support but you know. I think there were some bugs in the support recently. In LLVM? No, in GCC. And also MIPS, which apparently is a nightmare to do any sort of system call. So apparently we've also received GCC fixes for MIPS and VACs support from the audience. That's it. Thank you for listening.