0:00:07.329,0:00:13.679 You're here, Bob, of course. Bob is hot. Bob is very hot. 0:00:13.679,0:00:14.679 Welcome to BSD is Dying. 0:00:14.679,0:00:15.779 No, it's not dead yet, 0:00:15.779,0:00:16.529 we're getting there. 0:00:16.529,0:00:18.949 Anybody out here last year? 0:00:18.949,0:00:24.939 Okay. I gave a really bad talk on pf, and I appreciate Bob coming out and correcting me this year. 0:00:24.939,0:00:28.550 Anyways, we should go and get started. 0:00:28.550,0:00:33.560 BSD is Dying. 0:00:33.560,0:00:35.820 What is BSD? 0:00:35.820,0:00:40.150 I think most of us know, BSD is a derivative of UNIX. 0:00:40.150,0:00:41.630 Okay, what is UNIX? 0:00:41.630,0:00:44.300 UNIX is an 0:00:44.300,0:00:45.260 operating system. 0:00:45.260,0:00:48.000 What is an operating system? 0:00:48.000,0:00:53.930 It runs computers. 0:00:53.930,0:00:56.610 But, what is a computer? 0:00:56.610,0:01:03.610 It helps users accomplish tasks. What is a user? A user is somebody biped 0:01:07.409,0:01:10.600 that stands up right sort of like me. 0:01:10.600,0:01:14.280 Who am I? My name is Jason Dixon. 0:01:14.280,0:01:18.000 First and foremost, a SysAdmin. I like to work on networks, 0:01:18.000,0:01:18.590 firewalls. I like to tweak. 0:01:18.590,0:01:21.350 No. Yes. 0:01:21.350,0:01:27.630 I'm a programmer, sort of. I enjoy 0:01:27.630,0:01:28.960 Perl, Postgres, 0:01:28.960,0:01:30.820 on Apache 0:01:30.820,0:01:34.150 servers. I'm a consultant here. I'm an employee 0:01:34.150,0:01:38.920 here, and a lover of 0:01:38.920,0:01:40.150 BSD. 0:01:40.150,0:01:42.050 Why am I here? 0:01:42.050,0:01:46.970 That’s the question I've been asking myself all along. 0:01:46.970,0:01:48.630 To talk about why BSD is dying. 0:01:48.630,0:01:52.380 Sex and greed. 0:01:52.380,0:01:59.380 Someone kick these guys out. 0:02:00.410,0:02:05.470 Okay. So again, what is BSD? What is UNIX? What is an operating system? What is a computer? 0:02:05.470,0:02:12.470 Computer is a device that computes, especially a programmable electronic machine that performs high-speed mathematical or logical operations or that assembles, stores, correlates, or 0:02:13.900,0:02:14.390 otherwise processes 0:02:14.390,0:02:15.529 information. 0:02:15.529,0:02:19.090 This is a computer. This is also known as a 0:02:19.090,0:02:22.459 computer. This is a really big computer. 0:02:22.459,0:02:28.309 This is a big big computer, and sometimes, it just can, well, compute 0:02:28.309,0:02:31.339 But what does a computer really do? 0:02:31.339,0:02:33.729 All right, it helps us write documents, 0:02:33.729,0:02:40.729 shopping lists. Sometimes, it can even delete documents. It helps us work with email, 0:02:42.050,0:02:46.749 surf the Web, movies, 0:02:46.749,0:02:48.769 and listen to music. 0:02:48.769,0:02:50.409 Oh, and yes, games. 0:02:50.409,0:02:53.959 How? How does the computer let us do these 0:02:53.959,0:02:56.569 things? Well, it takes the work 0:02:56.569,0:03:00.179 and using the computer component, we can translate it into machine language 0:03:00.179,0:03:01.489 that is the foundation 0:03:01.489,0:03:07.999 for kernel, libraries, userland applications, otherwise known as an operating system. 0:03:07.999,0:03:10.659 like BSD. 0:03:10.659,0:03:12.619 What is a kernel? 0:03:12.619,0:03:16.439 It's a wonderful thing, it allows 0:03:16.439,0:03:23.439 The management of processes memory, peripheral devices, and by extension, allows us to do networking, security, 0:03:23.540,0:03:26.639 work with disks and file systems, user interfaces, userland applications, like 0:03:26.639,0:03:33.619 people can write documents, check email, surf the Web, watch movies, listen to music, and play games. 0:03:33.619,0:03:38.209 and much, much more. 0:03:38.209,0:03:41.009 So, in summary, BSD 0:03:41.009,0:03:44.150 is a UNIX-derived operating system 0:03:44.150,0:03:51.150 enables users to harness the power of a computer to process information. It uses the kernel to manage processes memory, and peripheral devices. And by extension, we can perform 0:03:51.730,0:03:58.149 networking, enforce security, read from and write to storage devices, and interface visually to applications like text editors, mail clients, Web browsers, multimedia players, and 0:03:58.149,0:04:05.149 games. 0:04:05.509,0:04:09.199 In the beginning, I'm going to try and breeze through this, people 0:04:09.199,0:04:10.970 The Holy 0:04:10.970,0:04:15.369 Trinity – MIT, Bell Labs, and GE created a systems called Multics. 0:04:15.369,0:04:18.750 This is a nice flash from the past. 0:04:18.750,0:04:20.650 Life was good. 0:04:20.650,0:04:21.639 No. No. 0:04:21.639,0:04:22.849 Actually, it 0:04:22.849,0:04:24.970 wasn’t. The Multics was a commercial 0:04:24.970,0:04:29.690 failure. So, a couple of gentlemen like Ken Thompson and Dennis Ritchie were not 0:04:29.690,0:04:34.539 [xx] support, liked to play games. They worked at Bell Labs and they had this game called 0:04:34.539,0:04:36.470 Space Travel, which performed really 0:04:36.470,0:04:40.500 really badly. So, what's…actually, I'm sorry 0:04:40.500,0:04:43.639 it ran on a PDP-7. 0:04:43.639,0:04:48.989 What is an assembly programmer to do when a game doesn’t work properly on the star board? He mauls 0:04:48.989,0:04:53.240 it. So, in 1969, Ken Thompson 0:04:53.240,0:04:53.969 and 0:04:53.969,0:04:58.620 Sorry, came out with the Uniplexed Information 0:04:58.620,0:05:01.270 and Computing System. It was capable of supporting 0:05:01.270,0:05:02.499 a number of users 0:05:02.499,0:05:04.189 up to two. 0:05:05.239,0:05:07.100 And by 0:05:07.100,0:05:11.949 1970, UNIX was officially known as U-N-I-X Unix 0:05:11.949,0:05:14.759 It ran on a PDP1145 0:05:14.759,0:05:17.929 and was capable of text processing 0:05:17.929,0:05:21.019 and had utilities like roff and a text editor. 0:05:21.019,0:05:22.409 for the purpose of 0:05:22.409,0:05:24.210 patents. By 0:05:24.210,0:05:28.929 1973, they rewrote UNIX and a programming language called 0:05:28.929,0:05:33.340 C which allowed AT&T to make the source code available to let other 0:05:33.340,0:05:35.650 people run it on their systems. 0:05:35.650,0:05:40.110 By 1974, a gentleman by the name of Bob Fabry, who was at the University 0:05:40.110,0:05:42.079 of Cal Berkeley in their Computer Science Department 0:05:42.079,0:05:44.940 bought a copy of UNIX for $99. 0:05:44.940,0:05:47.710 to run their PDP-11. 0:05:47.710,0:05:52.850 By 1977, a gentleman named Bill Joy, a graduate 0:05:52.850,0:05:55.569 student, distributed the Berkeley Software 0:05:55.569,0:05:56.979 Distribution as 0:05:56.979,0:06:02.590 1BSD. It was on a tape media that contained the PASCAL 0:06:02.590,0:06:04.270 compiler, the ex editor, and 0:06:04.270,0:06:09.289 by 1978, it was known as 2BSD with 0:06:09.289,0:06:10.179 vi, csh, and the list 0:06:10.179,0:06:11.549 goes on. 0:06:11.549,0:06:17.030 By 4BSD, we had job control, delivermail, 0:06:17.030,0:06:21.339 precursor to sendmail, curses, libraries. 1981, 0:06:21.339,0:06:24.750 4.1BSD, this one, we are recorded through VAX 0:06:24.750,0:06:30.539 addressed a number of memory performance issues with UNIX on VAX 0:06:30.539,0:06:34.159 1983, 4.2BSD uses TCP/IP from BBN, 0:06:34.159,0:06:36.990 and also the Berkeley Fast File System from the 0:06:36.990,0:06:39.219 gentleman, Kirk McKusick, 0:06:39.219,0:06:44.100 who also brought us the original Beastie today. 0:06:44.100,0:06:49.280 In 1986, 4.3BSD introduced performance improvements over 4.2BSD 0:06:49.280,0:06:53.299 By 1988, we had a list called 4.3BSD-Tahoe 0:06:53.299,0:06:57.180 originally intended to run on the Power 6/32 “Tahoe” platform. 0:06:57.180,0:07:00.160 That platform actually never came to fruition 0:07:00.160,0:07:04.280 but it did allow us to abstract some of the machine-independent 0:07:04.280,0:07:07.240 code which allowed it to become portable much later on. 0:07:07.240,0:07:09.050 By 1989, there was 0:07:09.050,0:07:10.810 Net/1, which separated the networking code 0:07:10.810,0:07:14.349 from the AT&T UNIX code 0:07:14.349,0:07:17.399 allowing for a permissive BSD license 0:07:17.399,0:07:20.479 By 1990, 4.3BSD-Reno 0:07:20.479,0:07:24.770 introduced the MACH virtual files, MACH virtual 0:07:24.770,0:07:27.189 memory system, Sun-compatible NFS 0:07:27.189,0:07:30.939 However, it was known as a real 0:07:30.939,0:07:34.119 gamble, hence the Reno moniker. 0:07:34.119,0:07:36.690 By 1991, we had 0:07:36.690,0:07:40.280 Net/2 where all AT&T code and utilities were replaced or removed 0:07:40.280,0:07:44.439 and ran on the Intel 386 0:07:44.439,0:07:47.360 and it became the basis for the 386BSD 0:07:47.360,0:07:50.840 and BSD/386 releases. 0:07:50.840,0:07:52.870 A gentleman by the name of Bill Jolitz 0:07:52.870,0:07:54.880 behind 386 0:07:54.880,0:07:58.169 BSD release, which eventually became the foundation for 0:07:58.169,0:07:59.849 FreeBSD and NetBSD. 0:07:59.849,0:08:02.250 And the 0:08:02.250,0:08:09.250 BSD3, I'm sorry, the 386BSD, which later on became BSD/OS by BSDI 0:08:09.659,0:08:14.599 Exodus. Back in 1992, a wholly owned subsidiary of 0:08:14.599,0:08:18.699 AT&T called Unix System Laboratories 0:08:18.699,0:08:20.389 decided to go after 0:08:20.389,0:08:22.539 BSDI for 0:08:22.539,0:08:25.249 I'm sorry, 0:08:25.249,0:08:26.860 in New 0:08:26.860,0:08:33.139 Jersey, as for an injunction against him due to various what they consider proprietary 0:08:33.139,0:08:34.650 code in the 0:08:34.650,0:08:35.960 BSD. 0:08:35.960,0:08:40.200 This was one of their advertising things again, they used this as the basis for the 0:08:40.200,0:08:42.150 lawsuit. I have 0:08:42.150,0:08:44.640 no idea what that’s for. 0:08:44.640,0:08:47.660 0:08:47.660,0:08:52.440 Net/2 was basically, I'm sorry 0:08:52.440,0:08:55.809 the three BSDIs version of BSD OS is basically Net/2 0:08:55.809,0:08:58.239 + 6 files that they had version from 0:08:58.239,0:09:00.540 Bill Jolitz’s 386 0:09:00.540,0:09:05.030 BSD. The lawsuit was, I'm sorry, the court settlement was 0:09:05.030,0:09:09.020 ruled over by a judge who denied the injunction 0:09:09.020,0:09:11.469 and asked them to narrow their 0:09:11.469,0:09:15.650 complaint to recent California copyrights and the possibility of the loss of 0:09:15.650,0:09:19.299 trade secrets. He also did a really great thing for BSD is that he hinted, 0:09:19.299,0:09:21.829 that…actually by this 0:09:21.829,0:09:25.770 point, the University of California Berkeley had been also added into the 0:09:25.770,0:09:29.030 lawsuit. Well, he gave a hint to bring the case to the state 0:09:29.030,0:09:30.160 court. So, 0:09:30.160,0:09:36.110 BSD laywers were pretty smart over at Cal and they decided to make a run over to the state court by the next 0:09:36.110,0:09:38.690 Monday to file a countersuit 0:09:38.690,0:09:39.390 against USL, 0:09:39.390,0:09:43.250 in the state of California. 0:09:43.250,0:09:46.280 Soon after USL went up for 0:09:46.280,0:09:49.070 sale, and it was bought by Novell 0:09:49.070,0:09:53.860 A gentleman, Ray Noorda, the CEO 0:09:53.860,0:09:58.730 at Novell, agreed to a settlement at this point because they understood that there was 0:09:58.730,0:10:01.060 no copyright infringement in the 0:10:01.060,0:10:03.510 code. So, basically, 0:10:03.510,0:10:05.850 the lawsuit was settled out of court 0:10:05.850,0:10:07.150 in secret for ten years. 0:10:07.150,0:10:08.870 In 2004, a site Groklaw primarily got 0:10:11.490,0:10:14.990 what the actual settlement 0:10:14.990,0:10:16.120 was released. 0:10:16.120,0:10:17.910 And, well 0:10:17.910,0:10:19.560 USL, AT&T and 0:10:19.560,0:10:20.550 Novell sort of 0:10:20.550,0:10:22.190 was embarrassed, 0:10:22.190,0:10:27.060 which ended up resulting in two distinct releases 0:10:27.060,0:10:32.990 4.4BSD, there is an encumbered version and had USL license 0:10:32.990,0:10:37.490 and AT&T code, and 4.4BSD-Lite, which was completely unencumbered 0:10:37.490,0:10:39.460 and became the 0:10:39.460,0:10:40.600 foundation for 0:10:40.600,0:10:43.470 FreeBSD. 0:10:43.470,0:10:47.500 NetBSD, I'm sorry, FreeBSD, it ends right there 0:10:49.150,0:10:55.670 FreeBSD, people with background, only different BSDs that came out of 386BSD 0:10:55.670,0:11:00.900 It runs on Intel x86, Itanium, AMD64, Alpha, Sun Ultra 0:11:00.900,0:11:05.149 SPARC and it gives us the neat features of jail, which most of us are familiar with, 0:11:05.149,0:11:07.420 mandatory access control as MACH 0:11:07.420,0:11:10.830 and historically, had a very strong TCP/ 0:11:10.830,0:11:11.750 IP and SMP performance. 0:11:11.750,0:11:16.150 The original NetBSD, which also came from 386BSD 0:11:18.680,0:11:22.200 Over 50 hardware platforms from a single source tree 0:11:22.200,0:11:25.520 and that’s pretty much what it's known for. To be honest 0:11:25.520,0:11:31.790 I mean, I got to admit I'm an Open BSD guy, I was looking for a really cool and innovative features for NetBSD and I really 0:11:31.790,0:11:32.329 couldn’t find any. 0:11:32.329,0:11:34.940 so let them hang their head on this. 0:11:34.940,0:11:37.160 Sorry, 0:11:37.160,0:11:39.650 I know people are going to… 0:11:39.650,0:11:46.650 I know the NetBSDers is going to jump me…I can handle two of you. Okay? And this is 0:11:48.680,0:11:51.490 a list of the hardware platforms that currently supported on 0:11:51.490,0:11:53.820 including a toaster. 0:11:53.820,0:11:55.000 0:11:55.000,0:11:56.410 OpenBSD, 0:11:56.410,0:11:59.179 this is one of the old logos, this is the new 0:11:59.179,0:12:03.510 logo. It was forked from NetBSD 1.0, we won't go into the history, I know 0:12:03.510,0:12:08.929 most people know it, and it's supported by about 16 official platforms 0:12:08.929,0:12:12.530 platforms. This is about half of the most popular ones. 0:12:12.530,0:12:17.570 And it comes out with a new release every six months, generally, in May and November 0:12:17.570,0:12:20.810 1st, so if you haven’t already, pick a copy, that just came 0:12:20.810,0:12:24.880 out of the foil. It's unofficial model is secure by default 0:12:24.880,0:12:31.880 only what's needed is running on the default 0:12:32.750,0:12:35.690 And, some of their goals 0:12:35.690,0:12:38.300 and features - full disclosure, audits, 0:12:38.300,0:12:43.950 privsep, privilege separation & revocation, chroot jails, like FreeBSD, 0:12:43.950,0:12:48.910 random values wherever possible. This is probably 0:12:48.910,0:12:52.180 the most obvious example. ProPolice 0:12:52.180,0:12:58.070 Some other features that they’d given us through the years – PF, authpf, CARP, pfsyncd, 0:12:58.070,0:13:01.380 which I think some of these are probably in the 0:13:01.380,0:13:08.380 FreeBSD by now. DragonFlyBSD was a continuation of FreeBSD 4.8. Again, 0:13:08.760,0:13:11.160 DragonFlyBSD was 0:13:11.160,0:13:15.640 forked with FreeBSD 4.8 and was intended to basically 0:13:15.640,0:13:21.580 overhaul the SMP features in FreeBSD 6 and 7..5,6, and 7. 0:13:21.580,0:13:25.690 DragonFly is another example. If you look at their goals, it had some really neat technological stuff. 0:13:25.690,0:13:28.500 I can't find any features that really, you 0:13:28.500,0:13:31.830 know, mean anything. 0:13:31.830,0:13:33.130 Of course, 0:13:33.130,0:13:36.890 Tiger is an old I'm sorry, OSX 0:13:36.890,0:13:43.890 It started from the Jolitz project, but it's sort of an inbred 0:13:48.870,0:13:53.800 and then various others spearBSD, ecoBSD 0:13:53.800,0:13:58.350 and other minor BSDs 0:13:58.350,0:14:04.130 That is all about, I wanted to cover kind of the present of where we are right now, some of the myths and truths. 0:14:04.130,0:14:08.260 Why is BSD dying? Really, that’s what the title 0:14:08.260,0:14:11.750 of the project and topic is. 0:14:11.750,0:14:16.270 Well, first, because IDC said so. 0:14:16.270,0:14:21.480 Market share for BSD is, right now, at an all time low, under 1% 0:14:21.480,0:14:28.480 And, of course, Netcraft confirms these findings. Last place in the SysAdmin networking test, so we all 0:14:29.660,0:14:30.930 know that word, we're just big losers. 0:14:30.930,0:14:37.610 Because open-source projects are giving away free software. I mean, we can't possibly make 0:14:37.610,0:14:39.310 money, so that, obviously, means that 0:14:39.310,0:14:46.310 we're dying. And free software is terrible 0:14:46.390,0:14:53.390 We know the insane let me get out. Free software equals terrism. 0:14:55.120,0:14:57.910 0:14:57.910,0:15:04.910 Our inability to adapt. As you can see by this graph 0:15:09.630,0:15:15.980 Let's be serious here, people. As per FreeBSD network pages per hour search 0:15:15.980,0:15:20.520 We see Windows, obviously I mean, they are way ahead people. Come on, they’ve been doing this for a number of what? 15, 0:15:20.520,0:15:22.180 20 years. Linux is second. 0:15:22.180,0:15:24.349 They actually are showing some. 0:15:24.349,0:15:29.259 We presume that someone is doing authentication by reading user pages 0:15:29.259,0:15:35.450 The BSD is only for register, so we've got to work on that, of course 0:15:35.450,0:15:37.030 Loss of talent. 0:15:37.030,0:15:41.410 FreeBSD has lost 93% of their core developers. 0:15:41.410,0:15:45.300 Okay, come on, guys, let's go. 0:15:45.300,0:15:48.030 But not all is lost. 0:15:48.030,0:15:53.600 Fortunately, a few very small companies still use BSD in this age. 0:15:53.600,0:15:56.450 0:15:56.450,0:16:02.590 I know you probably have heard most of these. 0:16:02.590,0:16:05.780 Believe it or not, this is our premier 0:16:05.780,0:16:12.780 sponsor, and some other company that didn’t sponsor us 0:16:16.070,0:16:17.560 0:16:17.560,0:16:20.070 I should just end right there. 0:16:20.070,0:16:21.870 because we're the nearest to them 0:16:21.870,0:16:28.130 Seriously, though, the technological challenge that we have ahead of us. Virtualization, that’s a big deal 0:16:28.130,0:16:29.529 as far as the market. 0:16:29.529,0:16:33.230 Of course, developers are in the market, so, if that happens, that 0:16:33.230,0:16:35.370 happens. Although the end is really, really cool. 0:16:35.370,0:16:40.150 DRM, is obviously evil, yes, I know, I don’t care about 0:16:40.150,0:16:41.690 DRM. Run Dell. 0:16:41.690,0:16:43.980 Right? 0:16:43.980,0:16:45.310 Political challenges 0:16:45.310,0:16:48.710 Now, this has been hard to entertain, but I can't read this out in front of 0:16:48.710,0:16:50.530 people. Blobs, 0:16:50.530,0:16:52.140 binary is bad, 0:16:52.140,0:16:53.140 don’t do it 0:16:53.140,0:16:56.180 just smoke in the same crap 0:16:56.180,0:16:57.540 when it says 0:16:57.540,0:16:59.590 NDAs 0:16:59.590,0:17:01.900 and closed documentation. 0:17:01.900,0:17:06.460 How many of us here are actual core developers for one of the BSDs? 0:17:06.460,0:17:08.159 Okay, the rest of us, let's help them 0:17:08.159,0:17:09.420 out 0:17:09.420,0:17:10.120 okay 0:17:10.120,0:17:12.000 get in touch with your supplier, 0:17:12.000,0:17:16.740 let's get some documentation to these guys. 0:17:16.740,0:17:18.159 Because without the 0:17:18.159,0:17:20.100 diversity, we have 0:17:20.100,0:17:22.220 unity 0:17:22.220,0:17:24.630 and a common goal. 0:17:27.420,0:17:30.090 Thank you.