 Hello So next up will be a new cafe USD. We'll be presented by the st. Chamberlain I will have him now to continue with the talk. Thank you Thank you. Hello everyone. Um This is new K for BSD explained This will be a just short 20 minute talk Talking about some of the history of K for BSD and The current status of it because it's been quite some time since we really did any sort of publicity demonstrated what New K for BSD is now capable of in testing and said so new K for BSD and is a sub project within Debian We only use packages from the official archive Except Linux because The idea was to use an alternative kernel And I still like to use Linux and there's nothing really wrong with Linux, but This is not just simply a set of packages to be installed on a GNU Linux system, but You can't simply apt-get install a kernel and Boot it the entire system has been recompiled for the free BSD kernel And as well as the kernel we get all of the free BSD kernels hardware driver support So the drivers themselves are different from In most cases different from the drivers shipped by Linux, which is quite useful in case you have trouble with hardware Using Linux drivers This would be an alternative to test the hardware to check if it's a kernel bug or hardware issue Or it may be that K for BSD simply works on hardware that you have available So instead of throwing it in the trash you you could use K for BSD and still use hardware that otherwise would have been useless to you As well as a kernel we take a few utilities from free BSD Mainly just to boot it there are already some BSD utilities in the Debian archive So the mailing list actually does back to 1999 Though work didn't begin that long ago the first Debian BSD based system was Something that Matthew Garrett claims to have bootstrapped But we never really the developers at the time. I wasn't involved that long ago, but the developers at the time Couldn't easily exchange the work they were doing People many developers then had dial-up connections It wasn't convenient to exchange whole machine images of Compiled binaries as well as patched source code So, you know in modern times get hub and the cloud Giving free storage is really something we take for granted now. It was a real limitation to online collaboration in 2002 It was suggested that it may be easy easier to put Debian packages to a different kernel if the same Libc was used new Libc The GNU HURD project was already active at the time and had the same idea Nathan Hawkins managed to bootstrap such a system based on free BSD and GNU libc But that was hosted on an FTP server at a university which had a fire and Before anyone else was able to get another copy of his work. It was lost permanently so It was bootstrapped again by someone else Robert Millan and He took it further and managed to make the shrewt it was a shrewt running on top of regular free BSD It wasn't something bootable by itself But it contained enough of the compilers toolchain and Debian Core packages to actually build new packages. So from there you could build many many more Things like building the kernel and Being able to boot came like much later It was accepted into instable in 2009 prior to that there was an unreleased archive of Custom built packages that had been like manually bootstrapped So not something really releasable Is it they they wouldn't have under undergone the same QA or had security support as the rest of the Debian archive would By 2011 it was ready for release with squeeze and it was called a technology preview Because it was still somewhat buggy and incomplete It had about 85% of Debian source packages building for it By 2013 that increased to 89% ZFS support was added in the installer Also within grub 2 that was that was worked on by Robert Millan I actually noticed this show up more recently on the PlayStation 4 dev kit. There was a Screenshot leaked of the ps4 dev kit and that was booting free BS like a free BSD derived system not new KPBSD But free BSD Itself and Sony we were using that that code that Robert Millan had written for for this project BST gels were working and even now we still don't have a full set of utilities to administer that easily but What can be done with that is and you can create multiple Shrews basically, but It includes facilities more like containers you can assign multiple IP addresses to a server and Then assign some of those IP addresses to Your containers which each run in a BSD gel so you could run a SSH service within the gel And then log into those SSH services. So for example on my development system, which runs wheezy Knooker free BSD there are shoots for Sid which I'll show you how does it son? IP address It's on IP address on the local network So I have shoots for each of like Sid Jesse wheezy and I can just SSH into them The PFI wall was already ready PFI wall has a configuration syntax, which is quite desirable. It's similar to a Utility I forget the name of that Is used as a wrapper around IP tables the DSA uses a tool to administer IP tables PFI wall configuration syntax is actually quite similar to that and it's very extensible With wheezy we already had Apache MySQL PHP scripting languages. So to someone who's familiar with a Linux Apache MySQL PHP development environment If you were to put them on a wheezy Knooker for BSD server, they probably wouldn't notice any difference because The only tools that they really use already available you could also Deploy a wheezy shoot on top of free BSD itself containing Debian packages and the GNU lip see and you could run those on top of free BSD So we were actually bringing software to free BSD that might not have existed in there. They're on free BSD ports archive and you could do the reverse you could install a free BSD shoot on top of Debian no K for BSD and if for example, you had proprietary software compiled for Free BSD you would be able to use this to run it on a actually Debian based system without virtualization ZFS and I mentioned was already working in wheezy Also, there was support to create ZFS file systems within the installer If you have a ZFS file server There's a lot of discussion recently about the ideal way to back up data with Debian based servers What I do and have been doing for some time is with my ZFS file system for file server. Sorry. I am Periodically our sync My data to that server and use ZFS snapshots which allowed to permanently keep a consistent Set of files from from that particular point in time Which you could Restore later here's an example of the ZFS utils script in Debian etsy default ZFS utils you can configure snapshots to happen automatically and then arbitrarily delete Snapshots between snapshots If you do this On the assumption that the most recent data is most important to you You're most likely to want to restore recent data, but you still like with less granularity some backups from Longer ago that this is a really good way of doing that which you can't easily do in With with incrementals like tip style incrementals because you can't arbitrarily delete incrementals You would need like a full set of incrementals to be able to restore to a particular point in time But this was working really well in ZFS already in whizzy On production servers and I've deployed this and one server didn't crash didn't have to be rebooted for a serious security vulnerability in the kernel didn't Didn't go down for 400 days consistently Continuously sorry Performance wasn't great The first bar here these these benchmarks should be taken with a grain of salt they're not necessarily benchmarking the OS itself, but the way that packages or third-party software gets built and then how it then performs in Situ It has improved between Whizzy and Jesse and it's almost on a power with Linux for certain tasks Anything that's like heavily CPU bound Should perform the same either way if it's limited by IO it can in some cases even be faster on Phoebe SD especially using ZFS with Features like compression and K for best is shown up in a few places around the world in Japan in Tokyo I noticed this picture of some someone's laptop at that conference is Tokyo. It seems they had Phoebe SD and Had installed a debing new K for PD shoot on top of it Also, it was apparently powering the new PG get repository server And in 2015 it was rejected from the official release, but right now Christoph and I are trying to put together a release of Jesse from the state. It was in when official Jesse was released and It'll have the kernel of free BC 10.0 Which has many improvements that are relevant to desktop use cases mostly We've now parted more than 90% of packages to run on this OS and fixed a lot of bugs If you were to use this on a desktop and it's possible with some difficulty to set up disk encryption ZFS provides compression check summing of data redundancy And if you have multiple disks it Integrates support for raid or even if you only have one disk you can ask it to store two copies of Files and it will automatically use the it'll detect corruption on the disk and Still be able to retrieve a intact copy from elsewhere on the disk unless the entire disk fails Or too much of the metadata is lost Again, you can use the CFS snapshots locally instead of on a file server and then you can run those more often say hourly And We support multiple desktops except for gnome, which it would have been too difficult at the time for us to port It was changing quite a lot due to system D log and D integration and Although free base D has shown it can be ported still to free base D We didn't really have the resources to do that ourselves within Debian and 3D graphics should be improved because Previously there weren't actually Kernel mode switching drivers available, but they are now We have a separate Jesse K for beastie suite for this. So we can now Make corrections to packages without going through stable proposed updates But our own K for beastie Jesse proposed updates and we can fix portability bugs that may not have been serious enough to request a stable PU from the release team But we can fix other bugs that are more specific to K for beastie and try to make it less buggy overall It has security updates and security team have hosted Build D and our packages on the security dot D dot or mirrors So an install system would have a apt sources list something like this So thank you to FTP master and security teams who are actually hosting our project on their infrastructure and the user land and We take a snapshot of the free beastie kernel that's packaged as K for beastie 10 Source package From that we build K for beastie kernel headers We prefer that as few packages as possible actually use the kernel headers because we want software to be portable They're not really care which kernel is running on the machine and When we upgrade the kernel Only packages such as the glib C Some cross-platform libraries such as Lib USB, which directly access hardware Those are those tend to be the only things that really need changes for a big kernel transition So the libraries are abstracting away specifics about the kernel and If you were to put your own package We don't want to be listed as another if death in a header You know like Linux open BSD free BSD and then dragonfly BSD. We don't want to be another one of these because It's better in code to distinguish whether you need a specific kernel feature or a feature of the user land better still if if you test for Specific features that your software needs to enable a piece of code So that someday if that kernel or that specific combination of kernel and user land Gain support for a feature. It will be used automatically on the next package build So I'm gonna skip that so what I'd like to do with K for BSD myself is support old hardware for longer If possible and Linux for example has no longer installable from floppy drives. I think Some people will have all hardware lying around and it's not really obsolete until we stop making Up to date software for it And I mentioned already you may have say free BSD proprietary applications. You might may not want to further away but rather Be able to run those still in a shoot for example on a more up to date devian system and I think this project should pave the way for new heard Maybe I see the the architecture of new heard to be more like the ideal of how we'd like things to be it's currently not as Capable as K for BSD But since we're trying to abstract away kernel specific features I think new heard will benefit from our work and that should be eventually easier I'm gonna put these slides up online because I don't have time to get through all of them I did promise you a demo so Sdl for example is very portable The the new spot for accelerated graphics makes this possible that Framates were terrible before with the VGA graphics, but now Accelerated 2d and even 3d graphics are now possible another thing. We do have wines so at some point we are trying to get steam and and Initially windows games to actually be able to still work because it's a popular thing that people try to do on Free operating systems. They still like to run their world applications Yeah, so actually steam does work and some steam games will also work I'll encourage you to try out K for BSD Well, there will be announcement shortly with it within deb camp. Sorry debcon When we have a release build or release candidate put together, but that would be coming this week and you'll be able to try it, hopefully So I'm afraid we don't have time for your questions. Thank you all Thank you. Is there a talk schedule for half past you can hear it. Okay on question. I have is What's actually the most difficult thing when porting? Like some software that compiles on free BSD and on Debian Linux to K free BSD That's actually really useful when software supports Free BSD and glue Linux and you can sometimes solve the problem in two different ways You may have a choice to use either the free BSD support if it can communicate with the kernel still Or you could choose to use the GNU Linux support if there's enough of the GNU user land there for it to communicate with Just random example That that dialogue at the top right of the screen is responding to ACPI events Now whatever shows that dialogue we never ported that so that was something that worked on free BSD and Because it's listening probably to dev D just a user land piece of software that talks to the kernel receiving ACPI events because of that it just works automatically and There may have been yet another way of doing this by looking at some Cctl or slash proc where we have Compatibility compatibility interfaces into things that a Linux program may expect there to be on that system I see what's current Suggests or recommended installation procedure wait for the announcement and there's there have been some Jesse CD builds, but We didn't think they were fit for release until the last of the bugs were fixed Being perfectionists and all we um we have a an Upload being made today of Debian installer and when that's finished. There'll be a mini ISO and net boot images and If from if Steve McIntyre has time during Debcon we'll put out a full spin of install media and we'll announce that Thank you. It's the next speaker here