# System without Linux compatibility



## JochenF (Jan 7, 2015)

Hi,

I want to set up a system without Linux compatibility modules (like HAL), a pure FreeBSD system. How can I know which packages/ports are for Linux compatibility, so I can avoid them, or uncheck the relevant config options?


----------



## SirDice (Jan 7, 2015)

HAL isn't a Linux compatibility module. In fact it has nothing to do with Linux. Most applications, though developed on Linux, are not specifically for Linux. But all these applications are compiled and built for FreeBSD and run natively on it. True Linux compatibility is done through linux(4) and the emulators/linux_base-c6 port. Any port name that starts with linux- is a Linux application that runs on FreeBSD using the Linux emulation layer. Everything else is built to run on FreeBSD natively.


----------



## JochenF (Jan 7, 2015)

I learned from some other threads that HAL is for detecting devices in Linux, and this is done through DEVD in FreeBSD. This is one of these threads:
https://forums.freebsd.org/threads/howto-minimal-freebsd-desktop.35308/

In my first steps with FreeBSD I also learned that none of the classical desktop environements (Gnome, Xfce, LXDE, KDE) work well on FreeBSD, because they rely heavily on functions that are only available on Linux (procfs, pulseaudio, ...). In none of these DEs I was able to mount some usb flash drive through their filemanagers, I always got strange error messages.

These restrictions are the cause why PCBSD developed their own DE Lumina. See topic 4 in this faq: http://blog.pcbsd.org/2014/04/quick-lumina-desktop-faq/

I dont't want to hassle with all this Linuxisms, so I want a clean desktop which is based on pure BSD.


----------



## SirDice (Jan 7, 2015)

JochenF said:


> I learned from some other threads that HAL is for detecting devices in Linux, and this is done through DEVD in FreeBSD.


Strictly speaking this isn't quite true. HAL was supposed to be a Hardware Abstraction Layer for applications. Applications talk to HAL and HAL talks to the hardware. That way applications can be made OS independent as it's HAL that takes care of the OS depended bit. Although a good idea in principle it was poorly implemented which is why everybody wants to get rid of it.

Unfortunately many desktop environments seem to gravitate towards Linux and therefor contain a lot of Linux specific features. On FreeBSD you either live without those features or find ways to work around them. If you don't want any of that there really isn't much you can install. Almost everything these days is more or less "infected" by Linux specific features. Some ports have FreeBSD specific patches to work around it, while other ports simply disable the feature completely.


----------



## JochenF (Jan 7, 2015)

I still think it's possible to get rid of most Linuxisms. I have setup a simple desktop using Openbox, Tint2, Cairo-Dock and Compton. I found a good automounter solution for usb drives that only uses devd. I learned that BSD uses OSSv4 for sound, not ALSA and not Pulseaudio. Mixing all these Linux things in causes lots of trouble. I also found a volumewheel applet for tint panel, that works fine with FreeBSD mixer.

It is possible to avoid most of these Linux things, but it is a hard way, and it is even harder not knowing "what is Linux, and what is native BSD?".


----------



## bsdkeith (Jan 7, 2015)

Learn how to use the command line and a lot of things you thought were essential soon become redundant.
Build up your FreeBSD system with only what you want.


----------

