Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

(All?) the BSDs are a kernel and userland as a single release. They don't have to worry about not breaking some program that someone might have compiled 5 years ago.


They still try not to break things, because you might be running a new kernel with old userland (this is part of the typical upgrade process), or you may have 3rd party programs that were compiled some time ago. I'm only familiar with FreeBSD; statically linked programs are usually good because old syscalls are typically maintained for a long time, dynamically linked programs will tend to be ok if you install the compat libraries.

There's been errors and exceptions of course.

I think the real benefit is they don't have to worry about people trying to run new userland with old kernels; that's explicitly not supported and stuff in base usually doesn't worry too much about it. So if netstat needs a new kernel interface to be faster, the netstat binary in the new release may not work with old kernels, c'est la vie.


BSDs do not break backwards compatibility (at least from what I know from FreeBSD and NetBSD). You _can_ disable backwards compatibility via kernel-level options and by not installing certain distribution sets -- but the default is to remain backwards compatible.

What being a kernel+userland helps with is in implementing features end-to-end: if you have to change how a certain aspect of the network configuration happens, you can do the kernel changes and the userlevel changes in unison. Which explains why you have a unique set of network tools, great documentation, a simple build system that can upgrade the machine...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: