
Announcing NetBSD 7.0 - skreuzer
https://blog.netbsd.org/tnf/entry/announcing_netbsd_7_0
======
Tepix
Congratulations to the NetBSD team!

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.

~~~
rjsw
The Orange Pi Plus isn't supported.

------
akavel
I'm not sure if I understand well the "rump kernel"/"anykernel" idea as
implemented in NetBSD. Could anybody please help me with that - specifically,
how this differs from a microkernel?

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?

~~~
joveian
There is a difference between what is possible to do with rump kernels and
what NetBSD is currently doing with them. The basic point is to be able to use
the same code in different contexts, so in theory you could use rump kernels
in implementing a microkernel. However, AFAIK NetBSD currently uses it for
(optionally) running filesystems in userland (so you can mount potentially
corrupted file systems without crashing the kernel) and for testing. Your (b)
is a separate thing that has always been possible in NetBSD (there is also
loadable kernel module support). More things could be made to work as userland
drivers easily but could still require glue to make it actually work. I don't
understand the details but there are multiple ways to make the glue and it can
be easier if you are trying to get NetBSD drivers to run in NetBSD userland.

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.

~~~
akavel
Uh, so only FS for now? That's sure nice, and a nice start, but I really
thought there's more to it. Thanks for the clarification & and details.

 _(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.

~~~
joveian
I just saw this so not sure if you'll actually see this response, but rump
kernel doesn't imply Xen or such, that is just a common thing people want to
do with them. It just means kernel drivers that can be used outside the
kernel. Anykernel refers to a kernel that can be used that way with minimal
differences and without modifying individual drivers. So rump kernel is
"libkernel" and an anykernel is one way to get a rump kernel.

There is a FAQ with more information at:
[https://github.com/rumpkernel/wiki/wiki/Info:-FAQ](https://github.com/rumpkernel/wiki/wiki/Info:-FAQ)

I'm pretty sure that Antti created these terms, so it is an authoritative
definition :).

~~~
akavel
Thanks. The problem is, I actually have already read the appropriate sections
of the FAQ & some rumpkernel.org pages, but I'm still confused. (I've written
my original question out of frustration that things didn't become clear after
all the reading.) I'm starting to think it may be best to dive in and try
reading the "book" referenced in the FAQ (i.e. the Antti's PhD paper). Seems
actually very approachable for a regular non-sciency engineer, from first
looks. And/or maybe the "tutorial" I've found at
[https://github.com/rumpkernel/wiki/wiki/Tutorial:-Getting-
st...](https://github.com/rumpkernel/wiki/wiki/Tutorial:-Getting-started)

------
bitmadness
Anyone here use NetBSD? If so, what are your thoughts? Lack of USB 3.0 support
is a turn-off for me... Will probably go with OpenBSD instead.

~~~
bch
I am, and love it.

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](https://en.wikipedia.org/wiki/Rump_kernel)

[1]
[https://www.netbsd.org/gallery/presentations/mbalmer/fosdem2...](https://www.netbsd.org/gallery/presentations/mbalmer/fosdem2012/kernel_mode_lua.pdf)

[2]
[https://news.ycombinator.com/item?id=4117803](https://news.ycombinator.com/item?id=4117803)

[3]
[http://www.netbsd.org/gallery/products.html#darwin](http://www.netbsd.org/gallery/products.html#darwin)

~~~
keithpeter
OK, what is laptop support like? I may try a test install over the weekend.

~~~
bch
I've historically run on Thinkpads.

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!

[0] [https://www.pkgsrc.org/](https://www.pkgsrc.org/)

[1] [http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/README-
all.h...](http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/README-all.html)

~~~
keithpeter
Thanks for reply. I shall indeed try an install and see what I can get from
pkg_add. OpenBSD works fine with suspend functionality on the X61s.

~~~
bch
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. They're leaders in the accelerated gfx and wireless. I'm used to
thinking of the project being more focused on hardening applications.
Certainly NetBSD has benefited from the work done in Open, by way of the
famous *BSD cross-pollination.

I hope you enjoy Net even a fraction as much as I do.

~~~
stock_toaster

      > 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.

~~~
keithpeter
OpenBSD with xfce4 and toad for user mounting of USB sticks is most useable as
a desktop on a core-duo thinkpad.

------
jmsdnns
Reminder: Apple's airport hardware typically runs NetBSD. The airport extreme
is a good example.

------
too_late
I am so excited! I have been waiting to have an excuse to spend some time with
BSD, Lua kernel scripting is definitely going to be something I mess with this
weekend.

Awesome!

~~~
cliffwarden
Have you seen any info on where to get started with the Lua kernel scripting?
This sounds like too much fun!

~~~
GmeSalazar
Hey,

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/...](https://github.com/gmesalazar/kerneltest/blob/master/kernel/patches/luactl-
openlibs.patch) [2]
[https://github.com/gmesalazar/kerneltest/](https://github.com/gmesalazar/kerneltest/)

