5 ms·
Is there anything which might catch the eye of a regular linux user? (FreeBSD users would like to point out ZFS, jails etc., OpenBSD users usually point out pf/
by webaholic 12y ago
Is there anything which might catch the eye of a regular linux user? (FreeBSD users would like to point out ZFS, jails etc., OpenBSD users usually point out pf/security and DragonFlyBSD users point out Hammer FS and an inviting community).
- bch 12y agoThat's a thoughtful question. Let me ramble... 1) I'd say the "fit and finish" is remarkable. But everybody probably likes what they've got with their OS, so maybe that's not worth much. 2) If you're into firewalling/networking, it does have the venerable ipf, OpenBSDs pf, and the shiny-new npf for packet filtering -- and the network stack that held the Internet "land speed" record. Twice[0] 3) there is remarkable kernel research that is going on, that research makes the kernel available to YOU[1][2] 4) pkgsrc is topnotch. And others use it too, so like the famously portable OS, the 3rd party software is tested in the realworld on disparate machines.[3][4] 5) The community is small enough, friendly enough, and smart enough that it's simple to get into and has a high signal-to-noise ratio.[5] 6) Other interesting security[6], virtualization[7] 7) Good documentation, good code (forged by years of portability -- getting code running on so many different architectures doesn't happen by accident, and the lessons are carried on. And to be clear, unlike Linux, the NetBSD code that runs on (eg) a Vax is from the same codebase than runs on an 8-way amd64... versus (afaik) Linux where ea. target is pretty much a rewrite.) 8) I could go on... if you have more questions, don't hesitate, or better, drop in on #netbsd IRC channel on Freenode[8]. [0] http://www.netbsd.org/gallery/research.html#internet2-landspeed http://www.netbsd.org/gallery/research.html#internet2-landsp... [1] http://netbsd.gw.com/cgi-bin/man-cgi?lua+4+NetBSD-current http://netbsd.gw.com/cgi-bin/man-cgi?lua+4+NetBSD-current [2] https://wiki.netbsd.org/rumpkernel/ https://wiki.netbsd.org/rumpkernel/ [3] http://pkgsrc.joyent.com/ http://pkgsrc.joyent.com/ [4] https://github.com/minix3/pkgsrc https://github.com/minix3/pkgsrc [5] https://www.netbsd.org/community/ https://www.netbsd.org/community/ [6] http://en.wikipedia.org/wiki/Veriexec http://en.wikipedia.org/wiki/Veriexec [7] http://en.wikipedia.org/wiki/NetBSD#Virtualization http://en.wikipedia.org/wiki/NetBSD#Virtualization [8] irc.freenode.net Edit: Match my parens, s/to/too/, link to freenode.
- caf 12y agoAnd to be clear, unlike Linux, the NetBSD code that runs on (eg) a Vax is from the same codebase than runs on an 8-way amd64... versus (afaik) Linux where ea. target is pretty much a rewrite. That is not really an accurate way to characterise how the different Linux target architectures are supported in the source. As you would expect, the vast majority of the code is in fact shared.
- justincormack 12y agoNo it is not entirely accurate, but the Linux situation is very frustrating, with some functions not being supported in different architectures, random different header differences (ugh, mips) etc.
- bch 12y agoAgreed -- and people are proud (NetBSD) or defensive (Linux) of the characterization I made -- and while of course every single line isn't re-written, and presumably Linux kernal devs will talk to ea. other, or perhaps one person maintains multiple architectures and therefore gets automatic code/idea sharing, NetBSD goes through pains to make sure all the supported platforms' origin is the one, single repository that is NetBSD.
- caf 12y agoThat's really not how it is. For example, here the one single implementation of the madvise() syscall in Linux: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/mm/madvise.c?id=v4.0#n458 http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... This entire file is compiled on all architectures with MMUs (madvise() is pointless on architectures without MMUs and hence without virtual memory). Everything architecture-specific in this file is abstracted away by macros like PAGE_SIZE and PAGE_SHIFT.
- feld 12y ago> ... held the Internet "land speed" record. Twice[0] "SUNET has transferred around 840 GigaBytes of data in less than 30 minutes, using a single IPv4 TCP stream, between a host at the Luleå University of Technology and a host connected to a Sprint PoP in San Jose, CA, USA." Come on, everyone knows Sprint doesn't have that much bandwidth. I bet they were faking speed test results again. grin
- justincormack 12y agoThe other answer here is very comprehensive and accurate. I first got interested because it has a good test story, the tests are built with the system and you can just run them. FreeBSD has ported some of this now, but without the rump kernel (which lets you run the kernel you are testing in userspace) it is not nearly as effective. Now we have it set up so you can compile kernel plus libraries plus userspace into a single binary (in a few minutes of build time) I am looking at more test strategies - kernel+userspace fuzzing for example should be possible. The Coverity scan score for NetBSD is 0.32, vs Linux at 0.66, and that is including the whole base system (gdb has a lot of problems) - the project has been working on this type of issue for ages. The codebase is easy to use elsewhere, it is used in lots of other operating systems eg Minix, Android, QNX, Genode - the portability really helps here, it is not just different architectures but you can cross compile from any other operating system, and it supports both clang and gcc as system compilers (and partial support for pcc).
- feld 12y agoFreeBSD can test the kernel virtualized in bhyve instead of needing a rump kernel.