 Hi, my name is Dimitri Letkov. I'm from Canonical and I work on Ubuntu full-time. I'm also a Debian developer and I work on all sorts of packages in Debian as well. And I'm here to talk about the new Ubuntu port for the IBM Z systems or some call them system Z or Z system also known as S39GX depending on which point in time you look at things. It is a new port for Ubuntu. However, it is an existing Debian architecture for a few years now. So there was S39GX bootstrap recently and there was S390 before that, which was the 31-bit port instead of 64-bit. In general for quite a few dev cons, we always had the presentations about people bootstrapping a new architecture and this time there's no new brand new architectures in Debian. However, there is S390 export in Ubuntu and it had to be bootstrapped from scratch again, which is a lot of fun and a lot of people enjoy it. The way we did it is we bootstrapped of Debian, so we took Debian installs of Debian's testing, worst table I can't remember, and then we built the Ubuntu tool chain first. Then we rebuilt the minimal-based packages of Ubuntu using the Ubuntu tool chain still on Debian. And then eventually once we had enough things built, we actually cross-graded from Debian to Ubuntu. And then we were finally running on top of Ubuntu, we built all the packages again, upload to Launchpad, we built the packages again, then we've decided to change the tool chain. We had to rebuild everything again and after a few times of rebuilding everything, we finally had a working port inside Launchpad with all the packages built inside Launchpad and everything published on ports.ubuntu.com. So it was fairly uneventful, so there was no lack of hardware because hardware is available, it is fast and stable and in general it was quite easy to do, right? The people who were involved it's the usual people who do a lot of base work in Ubuntu and Debian as well, so Adam Conrad, Mathias Cosay, Steve Langesheck, myself, Colin Watson, and many other people. And you've probably heard of those people being involved in cross-building and the bootstrapping and bootstrapping Debian architectures over the past years. So there's like big kudos to them. It was very uneventful, so usually when we bootstrapped like ARM64 or PowerPC64 EL or etc, you would work with demo hardware or beta-alpha boards and then you would see that the hardware fails during builds or that it overheats and then you have miss compiles and things like that. This was not the case with the mainframe because the mainframe is very stable, so I did not manage to crash it myself. It just keeps on going and essentially you plug in electricity and then three days later you get all of the archive built, all the whatever, 30,000 packages. It was quite nice. Obviously you have build dependency cycles which you need to break from time to time, but once those were resolved everything else would build really fast. There was no need to update config gas and config sub and all of those things because S390X is in existence for a while now. In that sense, and we didn't use cross-building per se, we did cross-build the kernels and the tool chain, but in general we used native compilation throughout. However, if you compare it with the S390X port in Debian, there is quite a few changes and things that we did from scratch or slightly differently or in your ways. So we have a single Debian installer build and we use it throughout on all the different platforms, such that it doesn't matter if you're trying to boot and install an LPAR or a ZVM, or if you're installing inside KVM you still use the same DI kernel, the same DI with the same preset values such that you don't need to change anything or use any different installation media. We do publish Ubuntu server ISO images and they have Alta Rita enabled booting for KVM. They are also a valid installation mirror, so you just grab the ISO and if you can export it on your local network you can do remote installation of that ISO directly without ever hitting archive.ubuntu.com or ports.ubuntu.com. That's new in Xenio, it is architecture independent because the code doesn't rely on anything architecture specific, but it was needed to be done on the mainframe because usually you typically net boot the mainframe and then you have no internet access apart from local network. So to enable that we have signed packages on the ISO image such that it's trusted installation throughout and GPG validated installation. And we do use live build SquashFS instead of running the bootstrap to bootstrap the base system. And we have GPG signed that it's validated and trusted even though it's fetched over a remote network essentially, which can't be FTP or HTTP untrusted protocol. In that sense it's quite an improvement because hopefully maybe in the future I can make Ubuntu desktop images to be installable with DI from the desktop images without ever hitting the network because loads of people still prefer to use DI to install things. We also publish cloud images for KVM and we have legsd images as well. So all of your typical container and cloud workloads they just work on S390X with Ubuntu such that you can have open stack, you can launch instances and you can run containers. That doesn't sound that impressive in the more mature architectures or more mature Ubuntu ports. However on S390X that's quite new so because open stack and KVM support was published upstream not that long time ago. So it's one of the first distributions with long term support which have open stack support built in. I am an EU immigrant and I do live in Britain and I do hope we will stay in the EU. But that's kind of a side note. In terms of the installer we do have a full DI pre-seed support. On the mainframe all of your devices they have to be brought up online manually and you have to configure them manually. It is automated with the help of UDEV but there is still a lot of installer support that needs to be in place which hasn't been there before. I've talked to the port maintainers of Debian just before this talk at the buff and hopefully we can merge all of this work and do it properly in Debian as well. Such that you can do a fully automated unattended pre-seed installations of Debian as well as Ubuntu. In practice that means that you need to activate DASD drives, you need to have support for ZFCP drives and usually part-man auto is nice to automatically partition things if you have enough disk space. All of those things have been enabled and because our DI is generic across all platforms you can use the same pre-seed files irrespective of which virtualization mode you use. I've also added VLAN support after two SRUs to fix it up. Such that you can now finally install Ubuntu with VLAN over the VLAN network only. Which is also nice and also was required for my usage of our mainframe because it's all on VLAN networks only. What's different versus the Debian port? Ubuntu only supports ZEC12 and up so that means you need to have latest or the one previous to that generation of mainframe. So Debian supports much lower conflicts I think it supports Z9 and Z196 and etc. So you do need slightly more recent mainframe. We do have right now an FPI enabled by default inside the tool chain such that majority of the packages unless they explicitly try to disable that. They're built with FPI enabled by default and it brings security features to the whole operating systems. We do not use the legacy FW up and down scripts. They're racy, they're a bit cumbersome to maintain. Instead we use ZDEV tooling only and that means that we generate Udev rules to bring up all of your devices up in race-free manner. We have KBM support and hands-off and stack support and also we build our DI with all the languages enabled such that you have localized DI experience if you don't speak English. In terms of software stacks, I mentioned that previously but we do have up-and-stack available, CloudIn and Golang, GCCGo, LXD, Docker, MongoDB, etc. So all of the typical web-scale things are available and traditional server databases are also available. There is currently lack or less availability of proprietary software or third-party vendor software. However, that's in progress to be enabled and essentially to become available on Ubuntu soon. That's a picture of a Z13 mainframe under the Linux 1 branding. It has orange borders on the side. I have no idea why IBM did that but it's a different type of orange but at least it's nice. Do you have any questions about S390X or what IBM mainframe is or how to boot it or anything? Yes, it does work. So do you intend to contribute the changes that you did to Ubuntu back to Debian and spend time on that? Right. Some changes are in. Other changes, a lot of other changes are still to be ported to Debian. And yes, I plan to work on that in a timely manner, hopefully for the upcoming release before we freeze. Any other questions? Out of curiosity, I'm not sure if you're able to share that but what are Canonica's intentions? Why they're bringing Ubuntu to Z systems? Usually the machines cost a lot of money so it's not... Correct. There is a partnership between IBM Linux 1 and Canonica to bring Ubuntu available. Ubuntu is available on Linux 1 mainframes and it is an engagement with IBM because it has to be otherwise it would not happen. So it is a partnership, there is a joint collaboration, joint support contracts, joint support for people if they want to buy that and all of that. So it is an engagement between IBM and Canonica. And you can see that a lot of Linux 1 developers from IBM teams from Linux Labs do participate in Ubuntu development and you can see it on public bug tracker and etc. And they are starting to contribute to Debian as well so they've contributed DI components and bug fixes here and there. It's not a lot yet but it's more than it used to be in the past. Yeah, I've seen a lot of stuff. Yes, yes. So in practice there is currently quite a few different teams which you can see public contributions to various projects like to MongoDB, to Nova, to OpenStack, to QMU, etc. All over the place. Because for them Linux 1 mainframes is quite important because by default option is to run only Linux and you don't even get options to run ZOS on it for example. So they're trying to push Linux more aggressively on the mainframe and there is benefits to that in terms of IO performance and CPU performance and people migrating from other Z operating systems on to Linux. We still have lots of time for questions. Well, I guess that's it then. Thank you very much Dmitri. Yeah, thank you.