 Yeah Hello everyone I'm not sure I would have the time to make a demo. Oh, well, let's run you. Oh that's At the one yeah French yeah, I speak English, but Yeah, I Already made a position, but yeah Installed anyway So what's hi-coo hi-coo is a free Software operating system. Oh, it's not already You actually have to put the wood sector and Install the boot manager you can actually use grub. Yes. Yes. It's dangerous. I know reboot So hi-coo is a free software operating system and it's inspired by the BOS which used to be a proprietary operating system in the 90 late 90s and And it we have our own kernel and our own graphical interface and here we are we're inside hi-coo I just do something for the demo and we're done. I do a CD-record package here and Yeah If I search CD or If I remove the package From the active package that directory Yep, I Could zoom in but I never tried. Ah Great It's a bit weird, but so I just removed the CD-record package. So No CD-record anymore if I Put the package back Yeah, I didn't like it, but it's back again That's for the demo because I don't have much time. Yeah, that's a little bit to resolve it So as I said, it's a free software operating system We started in just after the beer ink demise And it took us like 17 years to get a first beta because we take our time And there are several recommended platforms mostly Intel based The first one is the recommended one if you want to Also run BOS binaries, which are getting quite rare now But you can use the latest GCC if you don't don't mind there's also a 64 bit Image which works quite well and some more exotic platforms Which I won't get into detail because they don't boot anyway yet We do have nightly builds It's been going on for quite some time now they can be updated live and They start transactional I will get into it later We are getting to be that too real soon now as we say And we have a build infrastructure, which is getting quite quite good So it's easier now than for the the first beta But you still can find DVDs from the latest beta. So you need to ask Adria, which is over there We don't have any stickers anymore we have to make new ones We started optimizing because the long time ago we used to boot with 40 megs of RAM But yeah, it's getting there But the you can actually boot haiku, but you can't install it with that That's low RAM level, but yeah and some various improvements And we started to clean up because for the other platforms the JLPC Was a mess because we had to stick to an old JLPC for BOS compatibility So for newer platforms, we just imported some stuff from the Melville C Library for Mathematics operations at least We did some stuff on the security side, but if you're a security expert, we do need some help Well, we started from a very low level. We still run apps as roots. I know it's bad But well it works. We have many more drivers this time and we still support floppy disks Yeah, well We did have vector icons for some time now with a custom format, which is much smaller than SVG So we can actually store them Alongside the i-node for some files But the GUI used to have like eight by eight pixel stuff in some places So now it scales with the system font size So you just have to set the font size to like say 18 18 points and it just scales everything up We do support some theming so you can actually Make haiku look as ugly as CDE or Windows 3 For yeah a bit of about packaging we Used to don't really have a proper packaging format in BOS Some use zip files that you unzipped where you want it. It worked at the time We did have some PKG files with a click click click click and yeah Well, but they didn't have any dependency management. So it was it was mess With haiku we started with some scripts that just downloaded zip files and unzipped them, but it's yeah same dependency package management So now we have had the packaging infrastructure for quite some years now Well, we have a package folder with all the packages inside They are compressed file with our own format and some other State files By defaults all the packages that are in there are active, but you can actually change this and when you do an upgrade you can actually Get go back to the previous dates because they are Saved and the the update is transactional. So the all the old files are moved to this folder and Either it it updates or it doesn't update, but it should work So basically as I showed you installing haiku is just copying 400 files, and that's it and updates are so quite fast We also have package file system, which is a virtual file system which mounts all the active packages content In the file system There are some shine-through directories which you can actually use to install manually like dot slash configure dash dash prefix equals As is our user local directory if you would if you want There's a tool called haiku Porter which you can run to build packages from recipes We have a repository of recipes which is called haiku port which you can find on github We didn't reinvent the wheel. We just took the packaging name naming from Gen2 and yeah, the recipes are basically shelf shelf scripts We do have several interfaces to this there is haiku defaults to search and install software There's a software updater there's also a tool to Get the old BOS packaging files and create a proper haiku package for them and then there's a common line interface because well not everyone knows how to use a GUI Then this was a bit challenging because Well, some people complain when we introduce the package management Because they say oh no, it's not the BOS way. Well actually it is BOS way because it's simpler It is cleaner. It's faster. So well On the bright side we get almost reproducible builds we probably have to patch GCC to make this Fully reproducible But it means that when you create a package you actually have to have all the dependencies built already So you get cyclic dependencies and everything and some parts of haiku actually needs haiku to build so There are there is a haiku port cross Repository with a few recipes for cross build package, but we don't always check it and also applications tend to put config files everywhere and when you use Language-based package managers like pip it wants to add the line in the in the file Telling that there is a directory with packages inside. So, yeah, but it's doable So as I said updates are fast you can actually find where a file comes from By reading an extended attribute And you are quite sure the binary didn't change because it's read only anyway You can also a blacklist files like broken Wi-Fi drivers from the base package either at boots or permanently And as I said you can boot previous states If something breaks which sometimes happen like last week we broke the bootloader Which is a bit problematic because the the stage one the first sector of the disk Only knows how to locate the the primary one and not the the previous ones But it's not that hard to fix The transaction directories we cannot restart from them So you have to redownload everything when there's a checksum error or something But maybe we'll fix this and she uses it a bit more memory, but we are quite conservative So it's not that bad and we found out we catch like two or three times the package content. So it's better now I don't have many numbers to show you but for now we have more than 4,000 packages recipes on high cupboards. So packages We have even more recipes in high cupboards. None of them are buildable yet, and we have three other smaller repositories with 1,500 packages, so it's not that bad And we don't present to run on servers So we don't have well We actually have an Apache package for example, and I have more than 600 packages on my Development version machine. It works quite well. I was scared a bit when we started it because I Wasn't sure if it would scale correctly, but it's not that bad So now that I convinced you that you should port your application to high-cube because it's much better well Some people say oh, that's not POSIX. That's not UNIX. Yeah, well, we don't pretend to be UNIX We do have enough support of POSIX not to be bothered with it but well Often when I port applications, I found Linux schools Directly inside the code without any proper checks and the same people who say we are not POSIX They don't even bother to add proper checks for Linux schools So well and well like BOS did I notify stuff like like 20 years ago But just differently besides I notify is not really POSIX anyway So it's usually okay to have fallbacks You want to modularize your code Because if def is not always the proper way Sometimes you just write a base class and subclass this depending on the platform or the feature you want And sometimes things can just be an option. You don't always have to make them mandatory So it's usually okay to have fallbacks. Oh, yeah, I say this already Just a small example putting a Qt keychain which I needed for something it was quite easy I just replaced some if this to to make them cleaner and Changed like 17 lines and added a file and that's it and got merged One big don't you don't want to return negative negative error codes because we already have them negative and it's bad Besides POSIX changed their mind at one point. So BOS wasn't wrong at the time Builders are quite okay. Just make sure you check for the features you need Compilers well for system libraries with gcc2, but otherwise it's it's quite okay X11 well what to say you may want to isolate the X11 code from the logic of your application And wayland users will thank you For Qt, it's quite okay again X11 stuff We actually had to clean up these in some ported apps The only problem is openGL for now As an example, I I tried to pull the next class client But then it said oh, I need the Qt web engine, which is actually a chromium fork and Chromium is a webkit for fork and it maintains They are all they are maintaining their own force of the dependencies. So we had to we would have to maintain two parts of Chromium and three parts of the dependencies. So it's well on the other hand the on cloud client just built I just had to implement a specific I notify like functions You may want to fix your toolkit because sometimes you you think you need something in the toolkit But you are afraid of touching it so you work around it and it's bad That's bad. There is an article about it on Linux weekly news There are many areas where you can contribute to haiku Coding, of course, either porting or fixing the base system. You can translate ads or the system and Nice vector icons and stuff like that We already have a nice source of contributors like gsoc, which we participated several times we Did GCI like from the beginning and it's it's really nice It's a quite a lot of work because you have to check that students do things correctly, but it's it's nice And we did actually once and we have the the student here So yeah, and some contributors actually stay with the project. So that's great So well if you want to help the slides have clickable links in the PDF So don't hesitate you can even donate money if you if you have some Yeah, I think that's it. Well, that was fast. So if you have any question So why use haiku when you never actually use BOS Well Unfortunately, we We only had the haiku booth yesterday. So but you can come and we'll make you a demo. There are nice features like indexable extended attributes Attributes in BFS which you can search very quickly So you don't have to run like update DB every night and you wonder why your laptop is swapping and yeah, update DB and You can it's used for emails like subjects and from to so you can actually you don't even need to run your main client to know That you do have new mails and we have Yeah, nice features like the the file browser. We have It's called x-ray navigation So you just pop a context menu and you can have the sub folders and sub menus and you can even use it for Dragon drops so you can just drag and drop of our folder. It opens a context menu I don't have to wait for 10 windows to open and close So we do things differently. We explore stuff and yeah, we just show how it could be done and Sometimes the Linux people invent things BS had 10 years ago like tick less So, yeah Yeah, some another question Don't be shy. Yeah So compatibility layers for other binary formats We do have a compatibility layers for BSD drivers for free BSD drivers. We use their network drivers for internet and Wi-Fi So it's a static leap. We just compiled the driver with it And we get a haiku driver without touching the the code. Well, mostly we do send some fixes sometimes We do have QT ports. We don't have GTK We do have SDL and some other stuff with it. We have many Languages, we do have rest and go. I think it's maybe not packaged yet properly, but and Java of course it took us some time We don't have wine yet. So if you want to if you're interested, I mean who uses windows So BUS used to be a great at mutimania because the camera was fast and So high does haiku compare Actually the BUS kind of wasn't that fast. I did a benchmark like 15 years ago, and it was like 10 times slower than Linux, but the the way it works like it was Really multi-threaded at the time and applications were also multi-threaded. So each window has their its own event loop in a thread So when a window blocks Something is like calculations or something it doesn't stay the whole application. So even if it's slower You actually feel it's faster because it's more responsive. So it's not so much of a speedy issue, but responsiveness So yeah, haiku does have this this responsiveness because we model everything well mostly everything Like BUS. We do have threads in Windows and because it's bitten into the API just like as if Qt when you create a window It actually just spawns the thread for you Yeah, well three more minutes Yeah So your Wi-Fi driver has been broken for a while. So I how can you fix it? Well, you can come to us and we'll see Yeah, you can of course submit a bug report You can create a ticket and we'll And come to IRC because everybody still use IRC. I hope We can help you there How many people do use haiku and a physical device at least two are there and three where great Well, I do have an NVIDIA card in this machine So it's I have a full HD panel, but only this display is so it's well not really handy So I have a VM, but we don't really have figures. I Think we might find some download figures, but Real hardware versus Resolution I'm not sure. Yeah How many people use haiku at all same same answer. I don't really know at least two three And four of course Yeah, I Have really no idea Yeah Yeah, exactly. We don't track our users. So we don't know Well, we do have bug reports people telling his crates sometimes people people complaining on the forum So, yeah, at least some people Yeah, I think we can grab it up any more question Next cloud Next cloud They rewritten their clients. Yeah. Yeah, I started the port the port like six months ago. So Well a bit more Yeah So What web browsers and haiku we have a native browser called web positive which actually runs webkit inside Thanks to Adria We do have webkit browsers based Using acute so Kapsila or whatever we don't have Firefox because Firefox they keep changing their minds. So we stopped following them Maybe we'll look at it again Thank you everyone