 So this is the talk FreeBSD coming from a Linux user. While that's the actual title, it will go about BSD in general. It's just I would like to introduce the fact that I, as a Linux user, was fairly easily welcomed in the BSD community. And I would like to highlight some of the differences, some of the things that might need some improvement and that need to be maybe looked at in a different way. So first and for all, who am I? My name is Toshan Barani. I'm from Belgium. I have my own consulting company. I'm involved in a lot of open source stuff, mostly Linux, as you see, but also in a lot of configuration management and that's the part where I think things can improve and can help getting users from other platforms also on the BSD platform. I gave a talk yesterday about open power because I would like free BSD, open BSD and not BSD to be supported on open power. So that's how I actually got more involved and introduced in the BSD community. So, yeah, I presume everybody knows this already, but Linux, when we talk about Linux, it's actually a kernel and you talk about Linux distributions, which are basically operating systems around the Linux kernel. Each distribution has its own view and its own idea on how that needs to be implemented. So it basically takes several packages, bundles them together, and then creates a distribution. Typically, the Linux kernel is the same on all of them, as in it's their compiled version of it, but it's still something different. So a Red Hat Linux is not the same like a Suzy Linux. Gen2 will be completely different than an Arch Linux. The reason why I mentioned this so specifically is because one of the reasons why in the Linux world at least there is some little attention for this is because each one of these communities looks at their own Linux distribution. There's very little movement between the Linux distributions. So typically, if a person becomes a Red Hat Linux user, they will remain a Red Hat Linux user. Okay, they will change between Red Hat and Fedora and other variants of it, but we see very little people actually jump from one to the other unless it is work mandated. So, yeah, BSD is an actual operating system. So we have free BSD, open BSD and net BSD, which are the main ones, I think, and most of the other ones are derived from it. Now there, the other difference is the licensing type, which is obviously for BSD more BSD-minded, while the Linux ones are GPL or LGPL depending on the libraries. I had a discussion yesterday with somebody on why Linux is much more popular in the world than BSD. He claimed that it was because of the licensing model. Honestly, I don't think so, but we need to keep account of one thing. In a GPL license, which is considered as a viral license, you contribute to, for instance, the kernel. If you want to make any modifications and you want to redistribute them, you are obliged to contribute back. While in the BSD world, companies can take free BSD packages themselves and don't necessarily need to provide those patches back upstream. I mean, most of them do it nowadays because they see the benefit of that, but there are several that will never do that. Now, has that contributed to the larger communities and the larger adoption of Linux? I don't think so, but it's definitely something for discussion, yes? That GPL benefit is actually a myth in my book because you have entities like GRSEC who are maintaining a patch, a harding patch for Linux, and they basically have closed source, and they are violating the GPL, and nobody can force them to stop. Well, first and foremost, people can force them to stop, but the cost benefit is not there most probably. I mean, you very well know legal actions cost a lot of money, a lot of lawyers, a lot of time, unless you're a big company, you're not going to do it. Oh yeah, by the way, if you want to interrupt me or say something, don't feel shy. The point is of having a discussion and also understanding how we can change things. Now, one other factor is the vendor support. So you have companies like Red Hat, like Suzy, like Canonical, which actually went out to the market and supported the Linux distribution of their choice, the one that they obviously made. In the BSD world, we don't have actual large companies doing that. We have several smaller companies, but we don't have an actual large company or large entity pushing that forward. And I think that's one of the other attributes why Linux today is so popular and why we have a Linux foundation, which is trying to get all those companies to work together, which, given that I need to work once in a while with the Linux foundation, fails miserably. So the other annoying part from a Linux perspective is the manufacturers like HPE, Dell, IBM, and whoever else you want to put there. Typically, right that they support Linux, you will hardly find any documentation from them or any support or any testing done for BSDs. So like I said from my talk yesterday, I'm trying to get open power, so IBM involved in that and Raptor computing and other companies like that. But, I mean, they weren't even thinking about this. I haven't spoken to any of the other companies yet, but the problem is if a user, a normal user goes out and looks at a machine or looks at this laptop and doesn't find any documentation on how to install BSD on it, he is not going to be as likely to do that. And the same in the server world. If you have a machine and the company doesn't find it, it's very difficult to convince the CIO or CTO that we want to do it because it's going to be better. So it's a very difficult situation. It has evolved over time, obviously. I'm giving what is now. I'm not going on how this history became. But we need to figure out ways to change this because if we do that, the adoption of BSD will be larger. I mean, I'm not expecting that we will ever become like the Linux communities, but at least it will be more adoption. It will be easier for smaller users also to be involved in the BSD communities. Oh, yeah. Both are derived actually from Unix, but I presume everybody knows that here. I'm not giving a history lesson here. I think most of you know that already. So in the title, I say I'm a Linux user. Actually, I'm also a developer because I started a long time ago. I used several distributions. I actually helped out in Fedora and in CentOS. I started my own distribution and I still am quite active in communities. I've done some kernel patches. So I'm saying that I'm a user, but I've done much more than normal user does. And from that experience, I'm also trying to understand how to become a BSD developer and help out in the BSD community. It's slightly different because of the differences in the actual operating system. And there seems to be a good reception for new people, but I feel the fact that Linux is hyped so much, it seems easier for new people to get involved. And it might be interesting to figure out a way how we can change that in the future so that there is more hype around these type of things. So why did I do Linux? I got frustrated with Windows. So I started looking at alternatives. The first book I found in the bookstore was Suze. So I bought that one, read that one, and then I moved to a whole bunch of Linux distributions. So I think I've done most of them for a while. And like I said, I've done several patches. I've helped maintain several packages. It's a fairly good ecosystem, so I can't complain about that. There's good documentation. But like I said, I have done multiple of these distributions. Most users don't have that. We had a presentation this morning of Jitsi on OpenBSD, and that person was frustrated by the fact that any question he asked the Jitsi community was, if you're not running it on Debian, we don't care about you. And that's the attitude of many Linux users, developers. If you don't do it our way, we don't care about you. Like I said, I've been talking with BSDs about open power, and everybody has been very open, at least to discuss options with me. Given that I am not very well known in the community, they were all very nice and open. If I tried to do that within the Linux community, I wouldn't get anywhere. I came to this conference. I already spoke to OpenBSD, NetBSD, FreeBSD. If I go to any of the Linux events, I don't think I would be able to do that. So it's still a good ecosystem, but the interactions between the distributions is very limited. People are very narrow-minded, and they only see their own distribution. I feel the BSDs are much better at that. At least OpenBSD and FreeBSD talk to each other, and NetBSD also talk to each other. I think this conference has been running for several years. That is also one way of looking at how the communities interact with each other. So yeah, I got involved in Belgium, because I live there, in the open source community. I did some Ansible Meetups. I organized a small conference called Load Days, which, when we chose the name, was the Linux Open Administration Days. But I think we should rename it, because Kristoff has spoken there already. So there are a lot of BSD talks nowadays. Config Management Camp, I also co-organized. That one is, I think, more interesting by getting new users on the platform without having to educate them in every little detail from the beginning. So having a tool like Ansible, Puppet, Chef, Salt, whichever one you prefer, and if you could just, by a few configuration changes, run the same things on BSD, it makes users very easy and comfortable to do it. I mean, those users are not going to be developers, and they're not going to be able to debug problems. But at least you get them on the platform, you get them interested, and then you can make them a little bit more aware and more experts in whatever they're trying to do. Yeah, I helped organize a few conferences other than that. My road to Unix is very strange. So in my consultancy business, I got introduced to IBM for AIX. I started doing training on that. And then I started thinking that, okay, I mean, this is proprietary Unix. Why don't I look at open source Unix? And that got me started on BSD. I started with free BSD because that's the one that I knew of. And Christof being another Belgian person, I could talk to him and get information from him easily. So that's typically what I also tell to most of the people I know. If you know somebody else who can help you and they're using that variant or that distribution, use the same because you can ask, you can talk to people, it makes it easier. So yeah, what I also do is I have a consulting company, but we also do some cloud support. So we use free BSD because of ZFS. So all our storage machines are free BSD or our backup machines are free BSD. And we use internally Ansible, so we actually are able to bootstrap free BSD from Ansible like we do a Linux machine. So for some of the other colleagues who are not always as aware of all the things we offer, they can still log in, do their Ansible playbook, and stuff gets repaired till I or somebody else who knows BSD a little bit better can look at it. But at least the customer doesn't suffer at that point. We use openBSD for all our routing and networking. Devices mostly because of packet filter. I know freeBSD also has packet filter, but the one in openBSD is a little bit newer. So that's why. So I learned to use BSD. It's, I mean, if you've been long enough in the Linux world, you know the old commands and not only the new ones. And so the old commands are the same. The most stupid example is like IF Confish. In Linux, it's considered deprecated and you're supposed to use IP route or IP address or IP whatever. I mean, it doesn't make sense. There's no actual good reason for changing it. But somebody had this crazy idea. They changed it. If you know the old commands, you can still use them on BSD. One of the use cases I wanted to highlight and something that maybe somebody can give me better feedback on is we have a whole bunch of customers that run Linux on the desktop. So I'm fortunate not all my customers run Windows on the desktop. So we do have some customers that run Linux. Now we use Cinnamon. So that's the window manager because it looks like Windows. So we don't need to help with supporting end users, like where is the button or how do I do stuff because it's very similar. The other reason why we use Linux is because third-party software like Citrix or like the Belgium EID software is only supported under Linux. And this is just two examples but you can fill in whichever one you want. Typically nowadays if you go to software, you'll find support for Windows, Mac and Linux. You will hardly find support for BSD there. And for certain of these packages, companies will not take the risk of saying, okay, we can use it in a different way or we can have two operating systems that doesn't work. So in general, my experience has been that device support is better for most of the devices. I think that's now less of a problem but that used to be a big problem for newer hardware. And yeah, there's still QEM support. I know Beehive is there in free BSD and can do very similar things but it's still a little bit different if you're running some of the Windows workloads because some of the customers still run Windows workloads on VMs but then specifically locked down to that application. So yeah, in the server world, it's very easy to get BSD in. We have several customers on that. Like I said, mostly for storage, for routing, we have some customers running Beehive and there the adoption has been very easy because people and operators don't actually see the difference. We have a customer where we have operators that try to log in and don't even know the difference. They just think they're working on an older Linux machine. And in some of them, we even have aliases if they type in the Linux commands, they get the Unix feedback on it. But again, this is my specific use case. I just wanted to highlight that this is possible. It's very difficult to get beyond this stage, I feel. So that's why, for instance, on the desktop, we don't get to do that. On other workloads, we have a whole bunch of applications that are officially certified for Linux, but not for BSD. And it's sometimes difficult for us to push that to customers because customers will want support from their upstream vendor. And if those upstream vendors don't have any kind of documentation on what to do with BSD, it's very difficult to get that adoption. So that was my presentation. If you have any feedback, discussions, questions? The best part is that it's much more stable. So typically, you have a kernel update every three weeks, four weeks in Linux. In the free BSD, it's typically like every six months, given that my laptop hardly reboots. So I'm mostly hibernating and suspending. That would make a big difference. I haven't personally switched to free BSD, even though I technically could, because I don't have a lot of devices that are not supported. But just to be in line with some of the development we do, I'm running Linux. But yeah, as a desktop, I think for a little bit more advanced users, it's not going to make a big difference. I mean, I use i3 Window Manager. I can do that on free BSD also. I use Firefox, all the other stuff that works all on free BSD. So I don't have a lot of software that wouldn't work. So I think it's more from a hesitation of having not to link with the business then. But that's personally, I think it's very easy to get certain workloads on. So you can, for instance, have a kiosk that could run free BSD because nobody would care, and it would be much more stable, secure, and easier to manage than a Linux machine. Unfortunately, I don't have any kiosk customers anymore. We had one several years ago, but that's typically no more the use case because people use tablets or other devices for that. Yeah. One of the biggest problems is that we're having a chicken egg problem here because people are rarely coming to a desktop BSD. There are much fewer people out there with BSD knowledge that you could hire even for operation staff on servers. I'm working for a company which has a mixed environment. So when we get new employees on board, we usually have to show them everything. And there are those who are curious and like the differences or whatever. We most don't. And so actually our landscape is changing previously as unfortunately on the decline because most of my coworkers are not interested in that. They have a W background or a redhead background or whatever and they just want to do that thing. And that's it. So it's hard to get the personnel that you need for that. Yeah. And like you said, that's a chicken and egg problem because unless we get people involved and interested, you're not going to get consultants from them or people who will promote it. So that is a problem. So I spoke yesterday about open power. We have the same problem in open power. We have a whole bunch of machines that will come but nobody wants to invest time in some of these new machines because they're not sure what will happen. They're not sure whether they'll be able to get work. So the same, I presume, will be with free BSD or for any BSD. If you invest your time to learn that, how much demand is there on the market for that? So yeah, it's difficult. Yes? Well, I think it's good for the university where we work. We have some linux, but of course some of the third-party linux and for the instance, some of the computing students, of course they use linux, some of them. But at the moment I'm trying to get my new laptop on this open BSD or any other BSD to the network at the moment. I can't because I've not figured out yet how to connect it to any connect with two-packer authorization stuff. So I trust as long as this doesn't work, it's impossible for me to use an open BSD or whatever desktop because I just can't connect it. So it's like... In linux they use any connect, I think? Yeah, any connect, but the two-packer stuff fails. Oh, okay. So if that's the problem, I've not yet figured out what magic you needed. So as long as we have all those, but everything works the same one bit. As long as this one doesn't work, then... Yeah, but... You improved a lot nowadays a lot of stuff around the new browser, so it wasn't there what underlying system you have, but there are still those little things that work. And even if they do work, maybe they introduce something new and then it doesn't work and you have to start over. So this is like... The browser stuff isn't 100% true. So we have EIDs in Belgium, so the electronic identification which you put into your smart card reader. And so the Belgium government is actually quite good because they open source the software. So you technically could compile it for free BSD. But the problem is that to use that in, for instance, Firefox, you need a Firefox extension. And that one will only build on linux. That doesn't build on free BSD. Now, I mean, Firefox is Firefox. Most probably there's some stupidity because of the driver that is working there. But I mean, these are type of things where you would think, oh, it's in the browser, therefore it would be easy. It's not always that easy. But it improved. Yeah, it improved. I'm not denying it. So probably we had a situation when our government chose an EID reader with only clothes, showers, drivers, and there were only for windows and for windows. And later also for macOS. Okay. Well, the Belgium government was, I think the very, very first one we had was also one of those closed source ones. But those were like the test ones that they issued. Once they went to the production one, which all the citizens got, it was open sourced. So like I said, we are a little bit lucky that we can still compile stuff and do stuff with it. But it's not 100% yet. And that's the same with your AnyConnect. I know that AnyConnect works, but I have... There is OpenConnect CLI or OpenConnect CLI also opens hours from the same outdoor OSI server. Yeah. But does it work? OpenConnect server needs previous reports. So I... Does it work with a two-factor authentication? No, no, the client cannot do two-factor authentication. But in fact, I might try it because I have explored the two-factor authentication in quite a distant past. Okay. But maybe... Maybe the situation changed over time. But, you know, I use macOS with daily driver with Cisco AnyConnect as a Cisco AnyConnect client. So I had to install a previous disk machine with OpenConnect clients from Wards and Desktips because I have a Cisco ASA with WebVPN installed. So I can test it against the last time I checked it. The last time I checked it. So the last time I checked it, although then the whole thing was very QT-like. Okay. Then I don't have the time to look at it. I need to work on it. So there's a sub-system previously that's annihilating Linux system calls which is used to typically run applications which are binary-only distributed for Linux. Okay. Like, for example, Skype maybe. There is a new selector. Yep. There's a new selector. But the new selector is fixed to some kind of old CentOS user line. It has to be a very good sooner version of libraries. So yeah, I was going to ask about whether you have any experience with that because I've tried it and it sort of works usually. Q, of course, the kernel modules get out of date with the recent Linux kernels and then what you need is a kernel module update. But if the kernel module is, let's say, recently synced with the changes in the Linux kernel, that usually works fine. To be honest, I don't know much about desktop experience with FreeBSD because the only previous desktop I have is my development laptop that I have at home, you know. So I'm not competent to answer this question. Okay. So maybe you should keep the new selector in mind. Yeah. I'll look at it. I remember that there used to be Debian with the FreeBSD kernel and there was a FreeBSD with the Debian user space and they had done all this stuff in the past. I thought that was all that precated and didn't exist anymore. But I will look at the subsystem. This actually something different. Yeah. To the FreeBSD, yeah. Yeah, but that might be able to help it like this. In the system calls, there is a Linux API running in the face in FreeBSD kernel that translates the Linux system calls with their semantics to FreeBSD. This calls on their semantics to help porting drivers from this R2. Any other questions per box? Well, I can show you one more thing now that we have time. So I told you about the Ansible that we have. So in this case, for instance, if I go to this machine, which is one of our backup machines, the only thing we need to do is basically change distribution here from FreeBSD 13 to when FreeBSD 14 comes to 14. And then it basically builds our virtual machine in QME for us. So from an operator perspective, it's fairly easy. It builds everything up. It does everything. Also, if I look for instance for... Something similar for my customers that we know. So if we look at, for instance, this one, this is how users are created. So yeah, you have some specific FreeBSD commands coming. But for the rest, it's typically just this statement to create a user. Now this has nothing to do with Linux or Unix. I mean, this is just easy for a novice user to be able to do it. And this is the same type of abstraction layer for puppet, chef, salt, or any other configuration management tool. And in that way, at least you can have users who are not always very familiar with all the subsystems still be able to use those type of machines. Thank you.