 Well, hi everyone, I'm Deb Goodkin and I'm with the FreeBSD Foundation and coming from Boulder, Colorado where we're headquartered and thank you for attending my talk. I do want to send a big thank you out to the Linux Foundation for accepting my talk and including our voice in this conference. One thing, just a little logistics really quick. If you have any questions at the end, I'm going to try to allow for some time at the end, but this talk, I am cutting it down from an hour talk originally and so what I was hoping was to leave more time on the Slack channel, which you can connect to. It's called track wildcard channel and and please feel free to submit any questions there. You can also send me questions over Twitter as well as email me. I don't have my email here, but Deb at freebsdfoundation.org. So let's get started. First, who am I? I do have a technical background, but it's not with operating systems. So I'm letting you know that just because this talk is really an overview of FreeBSD, what it is and how the project works and and so I so it's not really intended for going into much technical detail of FreeBSD. I've been with the FreeBSD Foundation since 2005, so it's been almost 15 years and I refer to myself as a curiosity. I know it's not really a real word, but I'm an avid learner and I do spend a lot of time trying to learn about FreeBSD and operating systems in general just to help me in my job, but also to help advocate for the project. So my goal here is to tell you what FreeBSD is, really just give you an overview, tell you how the project works and why you should contribute or use FreeBSD. So what is FreeBSD? So first I have to start off with FreeBSD is not a Linux distribution. And I'm telling you this because even though it's 2020 and FreeBSD has been around for a long time, people still think or you know, the FreeBSD is a Linux distribution or they include it in a survey like I'm showing you right here that this came out from opensource.com, which is owned and run by Red Hat and they were doing the survey near the end of last year and they wanted to find out what your favorite Linux distro was and they included FreeBSD and so it makes it really confusing and so we're always having to tell people that FreeBSD is in a Linux distro and just to get back to this survey really quick. I mean they had really good intentions and I know that they included it because they know FreeBSD is a popular operating system and so they just wanted to include it here, but so I was just pointing that out. So FreeBSD is comprised of like three different components and so on the top right you have the operating system. So that's what you're actually running on your computer. In the center we have the best part of our community and so the project is made up of thousands of contributors and volunteers who contribute to that operating system and then on the bottom right is it's who I represent, the FreeBSD Foundation and we're a separate organization, but we are a non-profit and I'll talk about this in a little bit. So FreeBSD is one of the oldest largest and most successful open source projects in the world. It's a complete operating system. So what does that mean? When you compare it to Linux, Linux is the kernel. So this is why you have distros out there because then you're integrating the kernel with the other components that make up an operating system and FreeBSD is the whole operating system. So it includes the kernel, the user land, documentation, tools, utilities, anything that you need to make up an operating system. There's over 33,000 software packages that you can use. So that allows you to customize your operating system to what you want. So you get to have like a GUI or access the internet. It's created by thousands of contributors from all around the world. FreeBSD runs on many different platforms. So all the, you know, most of the popular CPUs out there it runs on as well as cloud platforms too. And there are tons of millions of deployments out there. So this is my really high-level abridged version of where FreeBSD descended from. So you have, you know, because I came out of Bell Labs at AT&T back in 1969, and then Berkeley started working on it and doing a lot of research and innovation on it. And then in early 93 it branched out into a FreeBSD and NetBSD. Then I have this timeline here that this is also a very shortened version of a timeline that we have on on our website. And on the bottom left you can see the URL that will take you to the timeline. And I'd really encourage you to go look at that because this is really, you know, interesting information about the history of FreeBSD as well as the history of UNX. And so you can see on the top right that UNX was developed in 69 and then in 74 Berkeley started modifying and approving it. And then in 92 is when the first unencumbered full operating system was available. And that was called 386BSD. And then in 93 FreeBSD split off and it was formed. And actually on June 19, 1993, that was when the name was FreeBSD was chosen. And then in between that time, between 93, 92 and in 94, there was a lawsuit and it was brought on by AT&T. And so because of that, it just took up the developer's time that he had to deal with that from Berkeley. And so during that period, there was a lot of adoption or development. And so it's slowed down the progress for a little bit of time. But since then really, there have been 27 years of innovation and growth. And so I don't know how hard this is to see on your screen. Maybe you can zoom in on that. And the reason why I showed this large flowchart of UNX is because to show you how like on the right here in the pink blocks, you have all these corporations who used FreeBSD. In fact, when I was at IBM, we had our own version of UNX and HP and Sun and all these different companies back then were using some of their own variations of FreeBSD. I'm sorry, of UNX. And then as you move over to the left and I zoom in on this here, you see FreeBSD as well as Linux. And the purpose of this chart is to show you really the long history of FreeBSD and how it did descend from the original UNX up at top on the top or Linux was created to it was a replacement for like a free version of MINIX back in the early 90s. So who uses FreeBSD? These aren't the only companies that use FreeBSD. But I chose these names because they're marquee companies are recognizable names that I'm sure most of you are familiar with. And so it shows that there are a lot of large corporations out there that do use FreeBSD. And most likely you use FreeBSD. So if you have an iPhone or an Apple computer, the Mac OS was based originally on FreeBSD. And then most of those components were replaced by FreeBSD. And Netflix, if you're watching a movie, all that streaming is being streamed from FreeBSD servers from around the world. If you're playing with a Sony PlayStation, that is also FreeBSD based. So why should you use FreeBSD? I mean, when I think about it or when people ask me about it, community is is my first thought and answer. And the reason why is because it really is a welcoming and friendly and inclusive community. Is it perfect? No. But the thing that I like about the community is not only do they come back with constructive criticism, if they're like reviewing your changes or code, but they do work on approving. So if there's a problem, then I mean, you may have a heated discussion. But usually it's resolved in a positive way. It's also known for excellent documentation. And so as I learned and I play around with FreeBSD, not only do we have great documentation that comes with the operating system, you can search for help and you will almost always find your answer. We have modern and good tooling and really a consistent development and release process that really has been built on from the original FreeBSD and just only improved on over the years. And like I said before, we support a lot of architectures. And the other thing that stands out really is license, is that it is a permissive license. And so it's what that means is that you can make your changes, you can implement something that is your own IP, your own secret sauce, and you do not have to give that back. Though we do find that most companies do give back most of their code, which is awesome. So how does the project work? I just don't mind me every so often. I'm looking at the time since I want to make sure that we cover all the points I really want to cover here. But anyway, so the FreeBSD foundation is a whole different organization than the project. And so we do not control or run the project. We have a core team, which is really the leadership of FreeBSD. Sometimes I think of them as upper managers, they're the governance team. And they are elected. And in fact, we just had elections. And so we have a whole new core team. And it's starting, I believe, this week. And so there's a whole transition going on. We have a great mentorship model that we follow. And so when you are new, and you're showing interest, and you're contributing to the project, someone will reach out to you and offer to be a mentor. And that's how you get your commitment. And you can actually commit your changes to the source tree. We have different functional teams that make up how things are done. They have some of the different responsibilities of the project. And I'll cover that in a sec. And then it's a very collaborative environment. So this is how I view the organization. It's not a real org chart. If it was, all the red boxes on the bottom would go even further over, including all the different teams that I listed on the bottom of the slide. And it just would have been too messy. So it doesn't mean if you have a red box that you're more important. But what I'm showing here is how on the top level, you have the foundation, and then you have the project. So two separate organizations. And then you have that core team that I just talked about. And so they help provide guidance and leadership to the project. And then you have these functional teams, which have all these different responsibilities to support free BSD. And the nice thing about having these functional teams is it allows people who are interested in contributing to the project to participate in one with either they have the skills and experience to contribute, or maybe they want to gain those skills and experience. And so they could participate in one of these functional teams. But also it's not required. So it's just something that's available to help. And this lists what the responsibilities are of the core team. And so you don't have one person who has the final say or who's actually in charge of the project. And just so you know, you can access all these slides because I'm not going to be able to cover all of them during this talk. And so you can spend a lot more time looking into some of these areas. I am highlighting the age distribution of the contributors or the committers, just to show you that we do have quite a few young people who are continuing to join the project and to contribute, as well as on the older side, too. And what's great about this is that having these people that well, so the older people actually most of them have been on the project since the beginning, which I think is awesome, because they're still involved, they're still contributing, and they're available and they want to help. And so they're there to help bring up these newer people and teach them, and they're very approachable. And then you have a lot of people in the middle. And so it really shows the sustainability of the project, as well as the growth, and keeping the knowledge, too, within the project. We're sharing that knowledge. The release, I'll just go over this really quickly. We have two different branches, one's the current, this is at the bottom, current and stable. Currents, any of your changes that you make, and then stable is the stable branch, or anything that has been changed, as long as it's been tested and improved, then it can move into the stable branch. One thing about FreeBSD is we really follow that principle of least astonishment. So what it means is don't make changes just to make changes. So don't break things that already work, but it doesn't mean don't make changes. We're still very innovative, but people think through their changes more. They might present with their thoughts and ideas to different people in the community and get their input. And so there's more thought into things before changes are actually made. And then we have the two different types of releases. We have the major release right now. We're looking at coming out with 13.0, mid-year next year, and then 12.2, which is coming up shortly. And so it's just sort of a minor versus major releases. And how you contribute to the project, I'll just go through this really quickly. It's basically you can contribute writing code, writing documentation, maintaining ports, and advocacy, many different ways that you can step in really quickly to contribute. And I always suggest even if people have a computer science background and they want to get started, doing documentation is the best way to get started because you have to understand technically how things work. And it's a great way to learn how things work. Here's a list of how or why companies use FreeBSD. And I'd say the main reasons really are the BSD license and the CFS support. And where FreeBSD is used and where it stands out. I'll let you read through this list. And when you look at the kernel features, this is the basic functionality that an operating system needs nowadays. And so we have that in our operating system. And the same holds with user line. But one thing I would say is that when you look at the kernel and the user line tools is that because it's one operating system, you have everything together, it's very coherent. And you have one team that is working on this together. And so the whole effort of putting this operating system together is it's definitely a collaborative effort. But you have like when you do testing, the testing is done by the same group of people across the whole operating system. So you don't have different pieces that are coming from different areas and trying to mesh it together. It's a very coherent system. Other features of FreeBSD from the CFS were actually the foundations actually funding a few CFS projects currently, the Ctrace for real time debugging and performance analysis. Jails, we developed the first containers back in early 2000. And jails are used a lot for containerization. Beehive, we have our hypervisor, the network stack, or the TCP IP was developed originally in FreeBSD and improved on FreeBSD and it's still being used. And it's used in a lot of different operating systems out there right now. And then Capsicum, which is out of University of Cambridge are doing a lot of work with this and security right now. The foundation, it's we're here in Boulder, Colorado, we're a nonprofit. One thing I want to point out we are classified as a 501c3 and which means that we're a public charity and we're for the public. It's our whole purpose is to support the FreeBSD project and comparing to other types of foundations which usually are 501c6, which what that means is that they're still a nonprofit, but they're a trade association. And so that means they're focused on commercial users and companies out there. And so a good example of that would be the Linux Foundation. And so that's how we differ. We're 100% funded by donations and really our purpose is to step in and help guide the project as well as to fill out critical needs. So I have this slide because a lot of times I give a talk like this at more Linux oriented conferences, which I consider this one to be. And so really it's I'm not trying to say we should code together because it's you know different operating systems, but I think that it really helps if you're working on operating system to understand others. And because you learn you learn pros and cons and so if you we all have successes and failures and so you learn from each and and so and and so it just it only makes you better at what you do. We have different coding philosophies and methodologies and so it's great to understand both and why you might like one over the other. And whether our smaller code base I mean we have like in our kernel we have I haven't checked recently but maybe five million lines of code versus Linux is at about 26 million lines of code and this is just the kernel because we're a smaller code base it allows you to have it's a great reference for actually learning about operating systems. And then I include this quote at the bottom I had read from this one guy and I think that this is true it just makes you better at what you know what you're doing with the operating system. So why should you contribute to FreeBSD? I mean really to be the community. So if you are looking for a new project to contribute to FreeBSD is great because first our strong mentoring culture as well as just the community being inclusive and welcoming. It's like I was pointing out before the operating system is a great way to learn systems programming and just the study operating systems. And because we're a smaller project the size of it allows you to make notable contributions and so you can start contributing in an area and be recognized for that. And when I was talking about sort of on that age graph that I showed earlier a lot of those people are notable FreeBSD and FreeBSD founders and they're very approachable and they actually and they do want to help. So why use FreeBSD on your desktop? So one thing I'll point out I mean so I've listed these are all the reasons that I see and I hear from people that use it on their desktop. And one thing that I do want to point out is that one thing that we the foundation has taken up is you know we recognize this a lot of times it's difficult to get FreeBSD working on your system it may be really old or it may be very new hardware and so we're working on making sure that FreeBSD does work on you know a lot of the hardware especially the newer hardware out there. If I did list these distributions I call them distributions they're not really distributions out there from free they're based on FreeBSD that if you want to try one I might try ghost or midnight they're all great Fury is a newer one so I'm just not familiar with it and so anyway I would suggest trying that I know I'm running out of time so I'm going to try to finish up here but what I would suggest is just jump in and get your hands dirty and the easiest way is to rent it on a on a cloud on a virtual machine you know so you're not installing an bare metal at first but you can do that too I actually have a system here so this is my list of resources I will I'm going to actually make this available later but you also have access to the slides so you can see that and but I would really suggest just reading the FreeBSD handbook if you're interested and looking more into FreeBSD and I do see that I'm almost out of time and I do have some questions here so because I'm not going to have okay I'm not sure if I'm still alive or not but anyway since I won't have time to answer them here please go to the channel that slack channel that I mentioned the wild card one and and I will be happy to answer them there and I'll try to actually tweet them too so more people have access to that so I want to thank you for attending this talk and I look forward to seeing what you're going to do with FreeBSD in the future so thank you