I recently started using OpenBSD on my circa 2001 Pentium 3 rig for fun. It has 384MB of RAM and no SSE2.
I use i3wm for the desktop (1024×768×80Hz on a CRT), urxvt for terminal, netsurf for browsing (no JS), leafpad for GUI editing, and VLC for streaming music.
For coding the CPU supports the latest versions of Go and Python3, but Node/TypeScript no longer works since it now requires SSE2.
It's surprisingly snappy and fun to use, I can even post to hn from here. :)
I'm running a Debian VM on my M1 Mac (it's a mess to cleanup dependencies and tooling after a project on macOS). I also use i3wm and before launching Firefox, the whole OS consumed only 300 MB of ram. In the past I use Arch with i3wm to have enough free ram (on a 8GB laptop) for Android Studio and Firefox. Some people are angry with Apple for their 8GB offering, but it would be great to imagine what can be done with less and the operating system being just an operating system, not an application suite.
It may have started that way but now it is used to install and manage applications and it makes it really easy to do so. There is even a Linux version of homebrew now
Are you saying you're using a debian VM on your Mac as a daily driver? Running i3wm and Firefox and ultimately living in Linux, but on your Mac? Does that mean you never have to use MacOS much (beside upgrading the host mac OS, and launching the VM right after boot)? If that's your setup I would love to hear more about it, the pros and the cons.
This was exactly my setup for like 4 years a few years ago.
MacOS was the host and it was immediate boot into Debian VM and it was my main machine I used to dev every day.
Pros and cons: I switched to parallels vm software from virtualbox because it just seemed to run a LOT smoother which meant the machine ran dramatically cooler. I think this was due to the graphics driver - higher frame rates and no display glitches
I’m not a gamer but very occasionally I like to play older strategy games - this I did outside the Linux vm, since high performance graphics wasn’t good inside the vm as one would expect.
I allocated like 90% of the system RAM (machine was an Intel Mac with 64GB of ram) to the vm
Once inside the booted machine running full screen it felt native, I would forget I was in a vm
Bridged networking so other machines on my lan can ssh in,
It's not my setup and it's fairly recent. I love some of the Mac software (Bear, Things, Dash, Doppler) and the Mac hardware. But dealing with project dependencies and tooling is a pain on every OS I've been. SO I bought Parallels (issues with graphic in UTM), configured a base OS, and clone it for each project. So personal workflows are still macOS-centric, but dev workflow is Linux.
I could do what you said, but the apps are nicer than Linux ones. But I still care about data portability (it's trivial to export data in all the app I use) so it's more a want, not a need.
Surprisingly, the images open just fine on this machine! Imgur sends me the actual .png and not the HTML wrapped version that requires JS. Maybe they look at the agent to decide what to send.
It’s a ton if you avoid things Poettering was involved in (anyone remember when Pulseaudio came out and its memory use when idle was insanely high? AFAIK that never got better, we just all got more memory; Systemd’s similar), don’t run a “modern” DE, and don’t use webapps.
That’s a lot of “ifs”, but that really should be quite a bit of memory.
In fact you can’t even really run Firefox or Chrome with a single light page on that, now. In one of the minimalist WebKit browsers, yes, but probably only 2-3 tabs and no webapps.
I'm really torn. A while ago I made the decision to abandon linux and use a BSD as my daily OS. In almost every way I prefer FreeBSD over OpenBSD, except when it comes to the source code. The clarity of OpenBSD source seems unmatched, and for me that's really important as I have picked up interest in contributing to the kernel of the BSD I choose. Also in some naive way it gives me a warm feeling knowing that the code of my operating system is in tip top shape.
Zoom is a shockingly CPU consuming program. I know people have to use it, that’s been the case for me too, but it was easier to make sure I had a plug handy when using Zoom than trying to make it run well.
I think a review that use based around Zoom battery life is about as useful as one based around short circuiting the battery terminals.
Teams hogs power as well. I get about 4h on my 16” MBP M1 Pro. When in a teams call it also significantly impact single core benchmark results of the app I’m working on.
So maybe power drain is inherent in conferencing tooling? Is teams even utilising the hardware decode/encoding paths? When in a call Teams consistently consumes a full single core.
While videoconferencing does take some resources, the fact of the matter is both zoom and teams are poorly written web apps packaged into “desktop applications” and that’s where most of the utilization is coming from
Poor coding criticisms apply to almost every massively popular software. At this point it almost seems like a requirement to make it not too fast as to reduce user frustration and mental share by proxy.
I don’t know Teams, but Zoom has to do some image processing (it has some face cleanup tech which is weird because everybody knows a programmer’s power-level is directly correlated to how disheveled and tired they look), and also some audio filtering (need to filter out keyboards).
But, I mean, Discord manages to do the latter for pretty cheap, and the former is stupid optional vanity stuff anyway.
The conclusion I come to is that Zoom is a badly written program that would never have seen the light of day if we weren’t suddenly launched into WFH around 2020. That program is like the third worst thing that happened that year.
I have an old X201 with OpenBSD. My setup on that machine is deliberately "gimped" with all ads and most JS blocked to make webpages load acceptably fast, and with the `apmd` enabled and hw.setperf at 10-20.
With a 3rd party 9-cell battery, I can easily get 4.5-5 hours runtime like this. I think the biggest power draw at this point is the display, since it's an older and less energy efficient panel.
Granted, most of my usage is either SSH'ing into another machine or X11 forwarding apps from another machine. I think with hw.setperf dialed up, SMT enabled, and the blockers turned off I'd be lucky to get 45 minutes of runtime...
I've switched to Alpine Linux for anything with a battery. OpenBSD ran very well on my X220, X230, and T430 but there's a 2-3 hour difference in battery life during normal usage that's hard to pass up.
If you've never played around with Alpine, check it out! You'll find the installer... very familiar!
X201 i5?
I installed OpenBSD latest on mine and was impressed by the battery life contre toute attente.
Fvwm with some essential tray apps and we're good!
If Jupyter Lab ran on this setup, I'd be a total convert.
In terms of hardware, I installed coreboot and replaced the wlan with something modern from China. I plan to upgrade from 2 GB to 8 GB but hard to find compatible SO-DIMM these days. It would be bloody awesome to upgrade the display to FHD but that looks... complicated, we'll see.
But I love working with an OS where I understand everything.
Very nice! It's impressive how much can be squeezed out of these Thinkpads. I daily drove an X230 until earlier this year, it's only a bit faster than the X201 and I basically used it in the same capacity - a jump box to other machines. The keyboards and form factors of these laptops are top tier though.
Any electron app will be using a Linux build of the Chromium browser, whether this will run on a BSD variant will depend on how well any Linux emulation layer works, OpenBSD has removed their Linux emulation layer.
I trimmed down my linux machine more and more, but I still need linux for some usages (I stream and use OBS for one). But I use OpenBSD on a dozen of servers I manage, it is rock solid for many (not all) usages.
I really like those simple desktop environment where you have a good understanding of the machine you are using. I do use ranger as file manager, it is heavier than walk, but it is very capable and scriptable while staying quite simple.
It's Vim vs Ed. The shell is all powerful but sometimes it's easier to yyhpl (select the file for copying, then paste a symbolic link in the parent directory) than typing the commands to do so even with shell completion. Sometimes having visual feedback is good. But a GUI FM doesn't bring that much. I spend as much time with Ranger as Finder on macOS.
Are there any good lightweight file managers if one did want to use a GUI? Using the shell is second nature to me but sometimes it's nice to browse with a mouse.
However, if you use a desktop manager such as Xfce, the file manager (Thunar in this case) is built in and can be configured with traditional double window arrangement.
Different tools have different strengths. There is some stuff you can do in a graphical file manager that would take you significantly longer to do on a shell.
I always begin with a Debian minimal install (on bare metal though, not on Qube): no GUI. Just a minimal install, disk encryption/LUKS and booting to a text console. From there I install X, the awesome WM (a tiling WM) etc. It feels very light (despite the systemd monster of a PID1 and overreach spreading its tentacles everywhere around the system).
Needless to say: when I'm on my wife's Ubuntu desktop, it feels very heavy compared to my very minimalistic Debian / Xorg / tiling WM.
Every now and then I poke my head back into GUI Linux-land to see how it’s doing (never any better, it seems) and the last time I found much to enjoy about the experience was when I tried out Void Linux on a “weak” Asus chrome box—probably 6-8x more powerful than the laptop I used in the early and mid ‘00s, but webshit makes that feel slow, no mainstream web browser was usable at all, only stripped-down WebKit browsers were sorta OK.
It’s got that sense of actually knowing WTF your machine is doing that’s so hard to come by these days, but isn’t masochistically awkward to use (I ran Gentoo for a long time :-) )
If Macs ever go to shit, Void’s my current frontrunner for a Linux distro if I can’t get FreeBSD working ok on a laptop.
GUIs on Linux seem mostly fine in the sense that you can just use a tiling WM and terminals. Now you have a computer that you can use properly. You mostly use one terminal full screen, but if you have to you can pop open another one and they’ll arrange themselves nicely. Tmux can do this of course, but sometimes you have a nice tmux layout all set up and don’t want to mess with it.
Plus you can also open a web browser if you want to goof around and comment on HN.
And you’ll even have X installed if somebody manages to find some use for non-terminal programs (unlikely but we should admit the possibility).
Recently, I managed to get fbterm working decently on my linux; this way I can read pdf, watch movies, write code, browse parts of the web, and if I manage to get Qutebrowser working on fbterm, I'll be able to do proper web browsing without X!
On Linux, because it encounters far more problems that require fiddling to repair (or old school Windows-like solutions—“reboot and hope it goes away”).
I specifically find complex Linux distros very unpleasant. If they worked really well, that wouldn’t be the case. Simple ones where I know what each process ps outputs is doing, and where its config file lives, are… well, they don’t do as much automatically, obviously, so they’re not as nice as a Mac, but at least I can fix them when they act up without going on a damn odyssey.
Actually that makes sense. I'd never want a Mac because I want to always know what my machine is doing and what's on it. I also use Linux as my daily driver and haven't had the bad luck you've had with desktops. Even if I did or had though, I couldn't go to a mac because I think I value always knowing what my machine is doing more than avoiding infrequent crashes. If the crashes were too bad on Linux I'd o for a severely neutered and caged Windows 10 install.
I try one or more of the big distros every couple years, and ran Ubuntu as my main for the few years it was good. They’re terrible. Second-to-last time I tried Fedora they’d decided to make Wayland the default for the graphical installer without having a check for which video card you had, so it had a framerate of like 2fps on my quite-powerful hardware. Probably the worst showing any distro’s ever made, for me.
A Linux so small that I understand what everything’s doing is about the only kind I can tolerate. It’s too messy and janky for the hands-off “just works”. Always was, really, I just didn’t recognize how much time I was losing to it until I experienced not having that time-suck then tried to go back—death by a million cuts.
Last time I tried KDE in Fedora, I could make multiple apps crash just by attempting drag & drop onto them. JFC. A program crashes, like, maybe once a year in the world I’m used to. I’m not sure the average has even been that high.
I’ve run, for meaningful lengths of time, perhaps eight or nine distros on probably twenty of my own desktop and laptops systems plus in some VMs (it’s far and away best-behaved on a VM under Windows or Mac) over a period of 25 years and it’s always been pretty glitchy and crashy. Fewer whole system crashes than, say, WinXP and earlier… but more graphical system crashes or corruptions forcing a restart of the windowing system, which is just as bad if you’re working in a GUI environment. Lots of application crashes or weird glitches, including in major programs like file managers.
I will note that I didn’t realize how much I’d gotten used to working around or working past problems without even noticing I was doing it, until I was no longer using graphical Linux regularly. I am 100% sure I’d have delivered a huge underestimate of the crap I was putting up with, had someone asked me before I switched. Only when trying to go back was it clear what I’d been doing.
I literally had a crush yesterday on a fresh Fedora 40 KDE spin after I tried to move a tab from one Firefox window to another. After just a few days of using that system I already accumulated few crashes. These things happen, sadly.
I have to laugh when I read blog posts about how people go to great strides to run a "minimal" and lean OS, to then only come to find out that 95% of what they do is in a web browser.
At that point, the OS doesn't even matter any more if it's all web/cloud-services.
I'd go exactly the opposite direction: If the browser is the only important thing, surely it's best to have as little overhead to running that browser - every byte of memory wasted on something else is a byte the browser could have used (and it needs enough of them!), every running process uses time and battery that the browser could have taken, every additional package/program/library is security risk on top of the secure(ish) sandbox where your real (web)apps are running.
One more reason to make it minimalist. The built in security already makes OpenBSD slow, so installing anything unnecessary will slow it down even more.
> The built in security already makes OpenBSD slow,
OpenBSD doesn't really have any security stuff that impacts performance. They're claims to security are primarily based on reasonable default configs and auditing older code.
I have to laugh when security conscious people think their browser is secure. I use TTY almost exclusively. But for a minimal desktop one should really look into stumpwm
Out of bounds memory access in V8 in Google Chrome prior to 120.0.6099.224 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page. (Chromium security severity: High)
If 90% of your activity is in the browser, then even if your sandbox was 100% isolated from other processes, 90% of your activity is still exposed, no?
And why are you confident in sandboxing? Just like in real life, it is only a rudimentary defence.
Every browser tab has its own sandboxed process. And to top it off, at least in Chrome every site (second-level domain) and iframe has its own sandboxed process.
Nice list. Now you need a RCE exploit and a chained breakout exploit thought. That's a lot of cash.
Given this and that the process isolation also protects against meltdown/spectre type attacks, I think we can agree that this type of fine-grained sandboxing is a requirement for secure software, no?
However, next to no software is using fine-grained sandboxing. From the top of my head only qmail, djbdns and gatling come to mind, none of them are for end-users.
So what end-users software does actually approach or surpas browsers in this regard?
Then lets not pretend that a browser is sufficiently secure for people considering using OpenBSD. Given the fact that by its nature a browser runs untrusted unreviwed code on your device it does a pretty good job of making it difficult to exploit, but it is irresponsible to say that its sandboxing cant be bypassed when clearly it can.
Anyone made the jump from Linux to OpenBSD on a laptop as their daily driver? If so, any tips or suggestions for making such a change? What did you find the biggest benefit to be?
There's a userspace frequency scaler (https://tildegit.org/solene/obsdfreqd) that increases my battery life to well beyond what I actually need. I easily get 6-8 hours on my Thinkpad X1 Nano (previous generation). This is not even close to the M series Macbook battery lifes, but works well enough for me.
I do not run heavyweight stuff though, but that's with WiFi, cwm/dwm, Emacs, compilers (go, cc) and Chrome. I've had a bit of trouble with Firefox performance, so having to use Chrome has been my biggest hurdle.
git clone git://bitreich.org/privacy-haters
doas cp privacy-haters/chromium/default /etc/profile.d/chromium.sh
doas chmod +x /etc/profile.d/chromium.sh
Logout and login again. Of course, run UBlock Origin under Chromium. Go to the settings and enable most ad blocking subscriptions, but don´t use AdGuard and Easylist at the same time, they often use the same ban lists.
I made a deliberate effort to, and realized I was making an expensive mistake and cut my losses. The (user-interactive) performance difference between modern Linux and minimalist, "correct" OpenBSD, on normal x86 laptop hardware, is night and day. No reasonable of amount of system tuning could work-around that. It was the wrong tool for me, with the wrong tradeoffs.
My suggestion is don't—or at least think deliberately and dispassionately about tradeoffs. UX latency really sucks.
(The painful thing is that almost none of it seems to be OpenBSD's fault—it's all the desktop applications that demand 10x more hardware resources than they legitimately need, and then degrade unacceptably when layers that actually should be less optimized, like OS things that have a safety & correctness tradeoff, do make that valid tradeoff...)
OpenBSD doesn't have bluetooth support. I'm on linux as my daily driver, but have started playing around with OpenBSD and FreeBSD on my antique thinkpads.
I've recently switched to OpenBSD as a workstation desktop using Xfce. Chromium and Firefox (ESR) are the browsers. Emacs is used for many things (authoring, calendaring, contacts, email, IRC, task tracking, etc.). LibreOffice gets used for the balance. That covers most workstation activities. All the web sites that I care about work. The performance is good enough. With OpenBSD, there's some assembly required. I don't mind that. The right way to approach OpenBSD and its ports collection is as a toolkit. You have to use the tools provided, to make the solution you want. I'm already running OpenBSD servers. It was just easier to use OpenBSD for the destktop as well.
I'm guessing, but I would say it has something to do with the fact they're using a VPN: you may want to route packets between your physical and virtual interface.
The only people who should be using OpenBSD as a desktop are the developers. For anyone else I think the choice to do so would be a result of being contrarian and little else.
I guess users could be hobbyists and maybe want to play with some of the few unique things OBSD offers like pledge and unveil and whatnot, but it has significantly worse graphical performance and isn't built with desktop use in mind at all.
You can make it work, and maybe it wouldn't be that much work for hobbyist users with specific and limited needs, but generally it's no where close to being the right tool for the job.
Though I prefer FreeBSD, I always thought OpenBSD was an excellent, no-nonsense desktop operating system. I much prefer it to any Linux operating system I’ve used, and over the last 25 years I’ve pretty much used them all.
please don’t discourage people from trying things out for themselves.
I'm not discouraging people from trying anything for themselves. I wholeheartedly encourage people to try everything and have their own experiences. I was simply stating my opinion and IMO some cold hard facts.
OpenBSD is just minimal and clutter free, but it's not like there are not Linux distros with basically the exact same traits - Slackware, Void and Alpine are all incredibly comparable.
My only real point was that OBSD has much worse graphical performance because it isn't a priority. Most of the developers are probably the types that pride themselves on not using a GUI as though that was something impressive.
IMO, given two no-nonsense desktop operating systems, I think the one with significantly better graphical performance among other things like app support, makes far more sense.
OpenBSD is not "minimal". It is a fully fledged operating system. The linux distros you mentioned are not at all comparable. You are making a lot of assumptions about OpenBSD that are simply false.
So yeah, that's probably a good example. That guy is a technical enough user that he knows his needs well and can solve issues he may have that non-technical users would be unable to.
But most of the reasoning behind what he lists as advantages or for using it can apply to Linux also.
Let's look at the points:
> It’s uncompromising. It’s not a people-pleaser or vendor-pleaser. Linux is in everything from Android phones to massive supercomputers, so has to include features for all of them. The OpenBSD developers say no to most things. Instead of trying to make it do more, they keep it focused on doing what it does with more security and reliability. It’s uncompromising. It’s not a people-pleaser or vendor-pleaser. Linux is in everything from Android phones to massive supercomputers, so has to include features for all of them. The OpenBSD developers say no to most things. Instead of trying to make it do more, they keep it focused on doing what it does with more security and reliability.
The Linux kernel can be compiled with everything disabled aside from what is strictly needed, and there are plenty of uncompromising distros. Saying "Linux has more choice and supports more things" isn't really a point against it, and therefore not a reason to use OpenBSD.
> They review and remove code as often as they add. If something is unused, unmaintained, or unnecessary, they’ll axe it. If it’s unwieldy, they’ll make a small simple replacement. For examples, see doas, OpenSMTPD, httpd, and LibreSSL. This is great for security, too. The more code, the more chance of a bug that could compromise your entire computer. The less code, the better. Each new release seems to be getting leaner by removing old cruft. No other operating system does that.
No other OS removes old cruft? I'm not even sure listing doas an example of a 'small simple replacement', when it was a hobby project of an OBSD developer to fix some personal issues. And actually modern Sudo was pretty much developed by a different OBSD developer. So an OBSD developer writing a replacement for a different OBSD developer's tool because it was too unwieldy isn't that great a point IMO.
> Great documentation is a top priority. The built-in man pages are amazing. So if you’re stuck on anything, searching the man pages on your own computer is going to give you a better answer than searching Google. (This makes it nicer to work offline, too.)
Plenty of other distros or projects have fantastic documentation to, just not in man pages. On some linux systems documentation will be in info pages rather than man pages, but these days I mostly read what I need in a browser. And I've never really run into an issue with a lack of documentation either when without internet or any of the distros I use. Specifically here Sivers is basically arguing that the man pages in particular are better, and well, many developers and systems have moved on from man pages.
> The installers are amazing. The initial installation takes like five minutes. Hit [Enter] to the defaults, make your username and password, and it’s ready to go. Then the software installer is ideal, too. Just pkg_info to search for something and pkg_add to install it in seconds. (Which also installs all of its documentation, too.)
I mean, it's just a basic installer, no different from NetBSD, Slackware or Alpines.
> Everything is rock-solid and just works. Hardware I couldn’t get working in Linux just works on a first try with OpenBSD. And because they don’t stay cutting-edge, keeping a cautious pace, it keeps working and doesn’t break. The whole system is carefully planned and consistent, instead of a hodge-podge of bits and pieces.
There are plenty of distros and if you like kernel forks that the exact same is true for.
> It’s all free and run by helpful volunteers. If you searched ports, but some application you need is missing or out of date, just contact the maintainer and offer some assistance or money to help get it updated or added. I’ve donated $3850 to the developers to help improve the OpenBSD port of Node.js, Elixir, Erlang, Anki, Ledger, and Qutebrowser.
And this is true for any FOSS OS.
Look, I like operating systems like OBSD....Slackware was my daily driver for many years, now I use alpine. I value lack of nonsense, lack of clutter and the ability to pretty much know every file on my system, every process, and know what it's doing - no obfuscation or bs. I get all of that, but none of the alleged strengths particular to OBSD that Sivers mentions are really convincing points. He could easily be running a similar OS and be just as happy, or happier since he would have much better performance.
I tried running OpenBSD on my desktop but kept running into issues where my display would freeze after 10-15 minutes. I assume it was because of my nvidia-gpu
I use i3wm for the desktop (1024×768×80Hz on a CRT), urxvt for terminal, netsurf for browsing (no JS), leafpad for GUI editing, and VLC for streaming music.
For coding the CPU supports the latest versions of Go and Python3, but Node/TypeScript no longer works since it now requires SSE2.
It's surprisingly snappy and fun to use, I can even post to hn from here. :)
Screenshots:
https://i.imgur.com/shozUbO.png
https://i.imgur.com/F22p3Z8.png