Announcing NetBSD 7.0
blog.netbsd.org
blog.netbsd.org
The new blacklistd sounds interesting, are the plans to make it available on other operating system as well?
Is anyone using NetBSD on a "Orange Pi" board (AllWinner A20, it's mentioned in the release notes so I guess it will work)? What about the "Orange Pi Plus" (AllWinner H3)? These boards offer a lot of performance for the buck.
My current idea is that I can take the current NetBSD kernel and:
a) for some (any? or only some?) hardware subsystems, ask the kernel (by some switch/config? where?) to run drivers in userspace, in "microkernel-like" way (and thus they reboot transparently in case of failure/bug/crash?), at some performance cost;
b) compile out/disable (? by some preprocessor directive?) some subsystems of the kernel, so that I get a "smaller" kernel e.g. for embedded machines which don't have video-card/GPU hardware;
and probably also combine the both above approaches together - i.e. build a reduced kernel like in (b), and then optionally run any missing subsystems/drivers like in (a).
Is that correct? Or am I wrong?
For "b", rump kernels don't support "compiling out". Rather, the idea is to "link in" only what you need, as in "don't need file systems in that particular application? well don't link in VFS then".
I'm not sure if you're right or wrong, but maybe the rump kernel FAQ at http://wiki.rumpkernel.org/Info:-FAQ will straighten your thoughts. In the regrettable case that it doesn't, you can always suggestion additional questions.
You can also use rump kernels to make an application that runs directly on Xen, KVM, or hardware or that e.g. uses NetBSD file system code on Linux (or Cygwin) userland. Much of this still need some work to do what you want, but less than writing the drivers from scratch, much less maintining them. rumpkernel.org is starting to have packages for some applications. This doesn't require otherwise using NetBSD.
(I remembered that Haiku got network drivers from some WhatsitBSD, so I thought those are maybe there too, but it seems it was FreeBSD actually, so just some confusion of mine. So no microkernel there, it seems. Bummer.)
As to running on Xen etc, that was what I seemed to vaguely remeber as what rump kernels mean, so I was really confused and surprised to slowly find out that the NetBSD usage of the term seems to diverge quite substantially, as far as I can (or can't?) understand. Hmph.
There is a FAQ with more information at: https://github.com/rumpkernel/wiki/wiki/Info:-FAQ
I'm pretty sure that Antti created these terms, so it is an authoritative definition :).
It's not without flaws, but it's compelling enough that I live with its shortcomings.
What do I like ?
1) One codebase that supports 57 targets. This code is well exercised.
2) Nice balance of conservatism and progressiveness. Seems well-rooted in tradition, but still progressive/interesting with things like the RUMP kernels[0], Lua kernel interface[1], etc.
3) Plays well with others. It's probably out-and-about more than people realize. I once had a printer that had NetBSD as its OS. Original Apple airport units[2] were NetBSD (as is a good amount of MacOS X userland[3], apparently) -- but as an explicit product (i.e.: using it directly by choice), it's nice, and it interacts well enough with other systems as well. It's got a simple httpd in the base, and ftpd, ssh, etc for swapping files in/out in an emergency. It will read FAT filesystems, or ext2,3(,4?), it runs firefox, etc. (admittedly, I don't care too much about high-level end-user software, and depending on what you think you need, you might be better served elsewhere -- including moving to Windows or MacOS X).
4) I've used NetBSD as my principle OS since 1.6 (2002). It has supported my work, taught me things, and kept my interest. If you're interested in seeing what it's about, you should install it and give it a good try.
[0] https://en.wikipedia.org/wiki/Rump_kernel
[1] https://www.netbsd.org/gallery/presentations/mbalmer/fosdem2...
I've had accelerated Intel integrated gfx, working wireless (Intel Centrino 4965/5000/1000, 1000/2000/6000, 7260/7265/3160), tuneable CPU frequency...
If you've got the luxury of some medium that you can do a test install on, just do it. The install is text-based and really simple, so you shouldn't get hung up there. I assume you'll want X11, so you'll run "X -configure" to generate an xorg.conf. Grab the pkgsrc[0] framework to build 3rd party apps from source, or, use pkg_add(1)[1] (I don't know what's currently available for NetBSD7 in terms of pre-built packages; quick check shows at least some packages are, and they're _probably_ the most popular ones)
#netbsd on freenode.net IRC is your friend, too.
Good luck!
[1] http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/README-all.h...
I hope you enjoy Net even a fraction as much as I do.
> Ya, OpenBSD has done some pretty remarkable work on the
> laptop front, and I find it interesting, because it's not
> where I would have guessed they'd be interested.
My guess is this stems from the very strong dogfooding culture the OpenBSD devs seem to have. If most/all of them are running OpenBSD on their main systems, and some subset of those folks use laptops as their main systems, then I am sure they are motivated to make it not a shit experience.Awesome!
I saw the slides and everything when they were first discussing this, but I havent seen any docs for actually using it yet.
Good things take time, though.
You might also try the irc, I'm away or I'd go ask 'em for ya.
The manpages for lua(4) and luactl(8) may be of help.
lua(4) is the device driver which allows you manage Lua states in the kernel through an ioctl interface. With luactl(8) you can create and destroy states, load and execute scripts, and require modules.
Example:
1. Load lua(4) driver modload lua 2. Create a Lua state in the kernel luactl create s0 3. Load and execute a script named hello.lua luactl load s0 ./hello.lua 4. dmesg
A Lua state is created empty. In order to load the standard libs (base, string, table, ...) into that state you'd need to do a luaL_openlibs(). Even though the libs are compiled into lua(4), you can't easily load them with luactl. [1] is a patch that adds a 'openlibs' command to luactl. After you apply it and recompile luactl, you can do that:
luactl openlibs s0
Btw, we've ported Lua test suite to the NetBSD kernel in this year's GSoC. Part of the work was on porting parts of the standard libraries which were not available in kernel Lua (e.g., os, io, math). Take a look at [2].
Let me know if you need any help. My email address is my HN username at gmail.com
---- [1] https://github.com/gmesalazar/kerneltest/blob/master/kernel/... [2] https://github.com/gmesalazar/kerneltest/