Hacker News new | past | comments | ask | show | jobs | submit login
FreeBSD gets ported to the Raspberry Pi (kernelnomicon.org)
93 points by synchronise on Aug 20, 2012 | hide | past | favorite | 31 comments



Did you actually read the blog post? I've been following it for some time now and stating it has been "ported" implies a complete system that is nearly fully operational, which it is not. You still have to serial in to get any sort of output. No keyboard. No HDMI. The title is very misleading and slightly belittling of his progress. Instead you could point out he's gotten UBOOT ported which is fantastic news all around. As well as the NetBSD folks have gotten into multi-user mode(!)


I did read the blog post, and I realise I should have chosen a better title but I can't edit it now. Besides, the more people who find out about this project the better it will be for the community.


Fantastic! FreeBSD (along with NetBSD and OpenBSD) may be one of the most under-appreciated OSes out there. I hope one day it becomes the desktop OS of choice for developers.


I'm really interested in learning more about FreeBSD as a server OS. I've been a Debian guy for a very long time and have only just recently started to force myself to play around with FreeBSD via an Amazon EC2 micro instance (free).

In other news, all of us on Mac's (OS X) are using quite a lot of FreeBSD =)


To be honest, FreeBSD lacks quite a few things to be a desktop OS for anyone else than hardcore geeks, mainly because it's not at all the main focus of the developers and maintainers. If you want something that just works, you're better off with something else.

Notably, the package managing system shows its limits for desktop, because you have much more packages and more complex dependencies when using Gnome and Kde that in just a basic server. Compiling everything is what works best of FreeBSD (binary stuff tends to have random quirks), and there are a few unavoidable monsters in graphic-land that are very painful to compile. Webkit comes to mind, I'm sure I'm missing one or two others.

Plus, the actual developments of desktop things are influenced quite a lot by linux, so you end up having to port quite a lot of internal linux things to make the most high level programs work. Browsers will rely on alsa with no alternative, network managers will rely on linux-specific tools, etc (old examples I have encountered, I don't know the exact current state of things, but there is no reason it would improve).

In the end, desktop isn't really where FreeBSD shines, because all the programs you'll end up using will be developed by and for linux users.


there is no reason it would improve

Well, except for the fact that BSD projects have people working on them to, you know, improve things.

The claim that there's too many packages is even more crazy. My linux server has more than twice as many packages installed as my OpenBSD desktop.


Of course, there are. I don't mean to criticize their work.

The problem is that most graphical applications come from a linux-focused world, and linux is moving, fast, with dozens of time the manpower that BSD projects have.

As for the number of packages, two things: 1/ I'm talking very specifically about FreeBSD, which has imo a real problem when it comes to managing binary packages. I have little experience of OpenBSD, and, as was discussed[0] the other day, it seems to be better than FreeBSD in that domain. 2/ The raw number of packages between linux and FreeBSD isn't comparable, but you can compare a FreeBSD desktop and a FreeBSD server. And I stand by my words, speaking of experience: maintaining a typical FreeBSD server with about 100 installed packages is much easier than a typical (a bit fat, actually) desktop with 600 or 700 packages.

This is just what I get from my experience of trying, repeatedly, to build and maintain a FreeBSD desktop over quite some time. Yes, it's possible, you can more or less make things work, but it's clunky, and I don't think it's worth it, unless you already use FreeBSD everywhere.

[0] http://news.ycombinator.com/item?id=4375273


I'm interested in knowing why an openbsd developer is using linux for a server. Wouldn't netbsd be more comfortable/familiar?


I'm sure there's some way to run BSD on linode, but the path of least mouse clicks put ubuntu on it. :)


I guess I'm a "hardcore geek" then. Hard to believe. I just find working with text and not using a mouse to be much faster than clicking if all I'm doing is reading and writing text.

In a true peer-to-peer network, as the internet was supposed to be, there are no "client" or "servers", just machines that can play either of those roles, aka "peers".

Just because you configure a machine a certain way does not make it a "desktop OS" or a "server". That is a label you've chosen. Configuring a machine's OS a certain way just means that's how you've configured it.

BSD is a kernel and some userland utilities.

It's a blank canvas. It can be configured to do many different things.

If computing to you means Gnome, KDE or OSX, or some other desktop abstraction and GUI flavor of the month, then it's true you'll find more people working on those configurations elsewhere than in a relatively small group of BSD contributors.

I like to think BSD is for command line connoisseurs. People who can appreciate responsiveness, organization and clean design all at the same time. People who are not offended by what appears to be simplicity. People who are comfortable with VGA text mode. People who would make graphics a priority, but not necessarily a GUI. BSD already has a working user interface.

It's simply a matter of learning to use it.


To clarify, I do use FreeBSD as my everyday (work) OS, and in almost all my servers, and I use a very lightweight window manager (i3).

I like it that way, but it's not for everyone. Because most people are used and expect a heavyweight and shiny GUI, a modern browser, a pretty music player, autodetection of wifi networks, and that sort of things. I don't draw the line, and I don't particularly think FreeBSD should be for everyone, but, well, people have expectations, you can't just ignore that.


Coming from Ubuntu, I tried to see how I could use FreeBSD as my main desktop OS but I was rather disappointed. I was not able to set up X and I decided to try PCBSD which in my opinion proved to be not as usable as Ubuntu. What are the under-appreciated features of FreeBSD in your opinion?


The big feature for me is more a lack of one: it doesn't go shifting things under your feet. No pulseaudio, no udev, no pmount, no networkmanager. BSD is a lot better at keeping a coherent interface onto its system commands; if you've used it at any time in the last 30 years, you'll still know how to run a BSD system. A number of my ubuntu-using friends have actually given up on doing upgrades after repeated disasters; with freebsd I can upgrade in confidence that it won't break anything.

In terms of specific features, jails and ZFS are the ones that immediately come to mind. But if you want features FreeBSD is probably not the system for you; it's built with stability as a higher priority.


What's wrong with udev and pmount? Do you want to scan dmesg to see which serial port your USB AVR programmer has appeared as? Do you really want to edit /etc/fstab to mount a flash drive?

pmount and udev are both simple pieces of software that automate away common tasks. I don't understand all the hate.


>Do you want to scan dmesg to see which serial port your USB AVR programmer has appeared as?

If I only have to do it once it's no biggie. Do you want to have to rummage around in /dev to see which new name your DVD writer has been given today? I suspect that specific udev bug has been fixed by now, but I still don't feel confident that I can reboot a linux system and have my device nodes be the same ones they were before, even though I haven't plugged anything new into the USB ports since 2009.

>Do you really want to edit /etc/fstab to mount a flash drive?

I should've been clearer; if you set it to allow user-level mounting then FreeBSD will let one simply use the regular "mount" command with its ordinary arguments to mount a flash drive. No need for a new command with a new name.


I still don't feel confident that I can reboot a linux system and have my device nodes be the same ones they were before

I'm sorry to hear that? udev lets you match devices by their serial number, so there's no reason why device symlinks should be moving around on you unless you've written overly-general rules. (Expecting something like /dev/ttyUSB0 to point to a particular device is rather optimistic, of course, which is why you write a rule to make that /dev/avr_programmer or something.)


> (Expecting something like /dev/ttyUSB0 to point to a particular device is rather optimistic, of course, which is why you write a rule to make that /dev/avr_programmer or something.)

And then the rule format changes, or something. Point is I've never had a problem finding a device without udev; I don't generally hotplug things into my desktop. The exception would be flash drives, but the first one plugged in becomes da0, the next one becomes da1... it's never been an issue for me because my only use cases are "leave this drive plugged in all the time and mount it in fstab", in which case it has a stable device node in practice if not in theory, and "mount a friend's drive that I will most likely never connect again"... anyway. My experience is that for a system with the same set of devices plugged into it, multiple boots will reliably give each device the same /dev node on a non-udev system.


The first Unix server I've set up was FreeBSD. I was able to go from zero to multiple services working in a sensible manner with next to no Unix experience, using only the Handbook and Running Linux as my guides. Mind you, that was done via command line, not by clicking buttons, so I gained a lot of understanding of how things work in those 3 days.

The core system installs in couple of minutes and runs well on even the crappiest hardware.

There is not WTF stuff associated with runlevels (there are no runlevels).

You can find and install software by navigating a certain directory in the system and typing in one standard command. Great for feature discovery.

FreeBSD has the best documentation among all the software I have ever used: the Handbook, the help screens in the installer, the security emails, the upgrade notes.


The keyword for me is "desktop". I know FreeBSD might be a good server OS. My question is what features does FreeBSD bring forward for the desktop user in order to be a serious concurrent for Ubuntu, Fedora and the other desktop OS distros.(Does it have a better sound devices support ? better window/desktop manager ? Printer support ? Is it better suited for beginers/average experienced users ?)


For a desktop OS, I'd only recommend it for experienced users and those who are willing to hit lots of walls and keep going. You will have a harder time getting almost everything running. For sound, you may have a lot of headaches if you don't like parsing logs for errors, scouring man pages and tweaking config files many times before finding a mix of settings that works. At least that was my experience the second time I tried to use it as a desktop OS (the first time, I gave up before I got to sound). Maybe try PC-BSD, which is aimed at providing a user-friendly FreeBSD desktop experience. FreeBSD does not implement lots of features or aim to be the first to support new hardware.

I have used it as a desktop OS for a few years, and it was definitely a learning experience for me. It was a great one though, because the experience helped me land my first job right out of college in a shop that extensively uses FreeBSD.

But TBH, you should probably just use it for servers ;)


It does not have drivers support as good as Linux. Though I found that most peripherals work as intended. The desktop/windows managers are the same as in Linux world - Gnome, KDE, Xfce and Lxde. Most softwares which work on linux will work on FreeBSD too like Python, Ruby, Java. On top of that, FreeBSD has Linux binary compatibility. So, technically, you can run anything that runs on Linux. But, I found that google tools or gigantic packages like eclipse do not work on FreeBSD (or I don't know how to make them work). The best thing about FreeBSD is what is best about distros like Arch Linux. They have rolling release. So, you don't have to distupgrade every year and face some weird upgrade problems. Another thing is FreeBSD is much stable (like Debian), which has the same advantages and disadvantages. The cutting-edge stuff does not appear in FreeBSD ports/packages till it is thoroughly tested. Third advantage is FreeBSD is a whole Unix OS in contrast to Linux being a kernel. So, you don't have a lot of variety like in Linux world, which is again a good thing and a bad thing. Most sys admins have experience only in a debian or red-hat distro. So, it will be difficult to find somebody if you are using a distro like Gentoo or Arch or Slackware. In BSD world, there are only two server-based OSes - FreeBSD and OpenBSD, which are similar (at least not as different as debian and red-hat). Finally, FreeBSD is closer to its Unix-roots than Linux. I find that FreeBSD people believe that if you have good documentation, people will be comfortable with command line. Linux world is more about making it more newbie friendly with nice GUIs. (Hence the dominance of Ubuntu).


My typical question is what does "desktop" even mean? Yes, BSD can run a window manager. It can run cups (though perhaps not the binary driver that counts as support for your $20 inkjet. I recommend, for many reasons, dropping the $100 it takes to get a laser printer with an ethernet port). It's POSIX and X11.

You may have trouble with flash, but didn't you get the memo? Flash is dying. :)


It's not a good desktop system. Furthermore, I don't think that's a priority of most FreeBSD users or developers. If you aren't comfortable in minimal environments, you should be using a more user-friendly system like Ubuntu/Mac/Windows.


I completely agree.

The handbook is brilliant, FreeBSD is the first non-windows OS I've ever installed. Back then I didn't have an internet connection and did everything with the Handbook alone.

Compared to ubuntu (or really most linux distros, or even PCBSD) it's of course much more complicated, but I really understood what I was doing and how stuff worked.

If you really want to understand how a un*x system works, I really recommand that you give it a try (I've heard similar testimonies from people installing Slackware as well, but FreeBSD's handbook is really stellar).

Beyond that, of course it's not Linux so the hardware support is sometimes sub-par, so I use Linux on the desktop these days. It's still my OS of choice for my servers tho and I wouldn't trade it for anything else.


After Linux/Ubuntu 10.10 upgraded to 12.04 and I saw the default window manager/Desktop Environment has suddenly changed from A to Z! (From GNOME to Unity) That's something which never happens in FBSD, and this is one of the reasons I still use FBSD because I know by each release there will be various improvements but not any unwelcomed and frustrating surprises.


Well, geom, ZFS and dtrace are generally features that people like a lot. Also, the BSDs are quite lightweight, which makes them nice for such hardware.

Linux has competing technologies such as btrfs and SystemTap, but they may not be as mature.


How would that affect the BSD projects? Do you think they would be able to maintain the same quality control (which even with a relatively small number of contributors is still a challenge) if they had the same pressure to change things day in and day out that GNU/Linux has?

I have my doubts. And I would guess I'm not alone. If there were a way we could "test" it and then revert back if the effects were terrible, I'd be all for it.

But if BSD became like Linux or OSX, and there was nothing to replace the space it fills, I would lose my interest in computers.


So this means that we can run Pfsense in the Raspberry Pi ?


Wouldn't you want at least two NICs for that?


Could always use one of those USB Ethernet adapters.


Not yet, but soon.




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

Search: