Chimera Linux: a Linux distribution based on FreeBSD userland and LLVM
chimera-linux.org
chimera-linux.org
My experience managing many different flavors of *nix has been that the GNU utils are far superior, so I don’t understand wanting to replace them.
My first guess is this is targeted at embedded use, but that’s pure conjecture.
I'm not saying I like or understand this, but I have seen this attitude among a few in the community.
Similar to why some people want to use a musl libc userland. For some people, it's the licensing, for others it's about the design and simplicity of implementation.
But having used busybox utils on a daily basis I truly do not understand how people can use them daily and not go insane. The GNU utils are so much faster and more feature-filled. To me, reducing bloat makes sense for something running forever in the background. Interactive stuff ought to be as feature-filled as possible, stuff in the background as lean it can.
I realise others have different views about this, but I think I hew fairly closely to the mainstream thought about bloat.
There's a continuum here, and that's what makes this project interesting to me. Busybox is very minimal, because of its purpose of having "all that you need" in the smallest single statically linked executable possible.
The BSD userland is different, though. It isn't trying to be small for the sake of being small, but simply being simple. BSD utilities aren't nearly as spartan (in my experience) as, say, busybox, but they remain simple.
I'm not sure if I'd try to run this distribution "in anger" on anything, but I'm definitely gonna give it a spin, since I prefer the BSD userland, and am "stuck" with Linux because of device drivers. That's probably just my own bad tastes, though ;)
Busybox is meant to be used in embedded Linux systems, often found in routers, printers, cameras and etc. In those systems every megabyte of flash memory counts and every cost counts. Busybox (GPL license) encapsulates the whole non graphics userland in a single binary. An non-GPL alternative to it is Toybox which is used on Android since this tool has BSD license. Alpine distro was also designed for embedded systems, but it is now being used in containers due to the distro small footprint.
Whether or not he agrees with the viewpoint he's paraphrasing is of no importance to me. I want to understand the point of view of people who think that way, in their own words. I have no interest in him filtering and watering it down to make it more palatable to you.
If it is "pollution" to you, that means it is an inconvenience and an obstacle to you executing your goals. The GPL has not been built to frustrate anyone except those who impinge on the fundamental set of Software freedoms. Part of that is the ability to have access to the source code of any tools you are reliant on.
So no, it isn't just assumptions. If you're frustrated by GPL, then either you're pissed because it thwarts your designs to create a captive userbase, or you're part of the legal/exec team trying to see if you can get away with the same. So which is it?
I'm a late enough arrival that I experienced the world with few other options than closed source programs and toolchains, and I'm not about to go chasing back after it. In fact, I'd be happy to see GPL go down in flames because we all finally came to our senses and ceased this IP nonsense in it's entirety to begin with.
(Also your point is a bit flawed, only AGPL really saves you from the Amazon situation.)
I wouldn't be so sure, for this kind of tooling it's not like the software is exposed behind some API of some sort. When Amazon is renting you a virtual machine with those installed on top, are they distributing the software? It's not clear cut at all.
Any hobbiest who writes free software for the community’s benefit is doing the same community a disservice when they allow private corporations to profit from the community’s work without recompense or sharing their work back to the community. The corporations also get to use the community’s work to redirect effort away from the community to their own product and platform.
I'm not sure why this is frequently brought up in the context of the GPL. The GPL says nothing about that and has never held that as a concern at all. Communities who were using GPL with that intent have seemingly always been mistaken. From the text of the GPL: "the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program." It doesn't say anything about disallowing private corporations from profiting without recompense. If you want to force companies to pay you, you're better off with a closed source license.
Edit: The lack of enforcement of GPL is a different story, but you can trace that directly back to the very same community, including the FSF, who seem to have decided years ago that enforcing the GPL is not worth it anymore for some reason.
From Wikipedia’s summary of the essays:
The author proposes Free software licenses (mostly GPL) as a solution to social issues created by proprietary software and described in essays.
https://en.wikipedia.org/wiki/Free_Software,_Free_SocietyEdit: Since the license itself is vague on what those "social issues" actually are aside from sharing and changing the program, in my experience projects will tend to use it for whatever they feel like. Sometimes this is aimed towards community building but often isn't. To me the community building aspect mostly happens outside of these legal decisions, for example: closed source programs can have a community too, sometimes that community might even be hosted in the same places such as github.
you know that in case of actual litigation, judges will not only look at the actual text, but also at the intent surrounding it, right ?
It's absurd to expect the word "community" to appear in the text of the GPL: it's a legal document, non a manifesto.
I'm not sure why you're saying this? I don't expect that word to appear in the text.
It also seems mostly not possible to prove or disprove that "almost every person involved knew." Did you mean this as a personal anecdote with the people that you knew? If so, that's probably great for you and your community, but apparently those who were writing the legal document that governs said community didn't agree. Sadly it is possible for there to be oversights from day one.
Facebook, Apple, Amazon, Netflix, Microsoft, Google...
Linux is a great success story of the GPL, its ubiquity has forced corporations to tolerate it and reciprocally contribute back to the community.
But fear not, Fuchsia already did its first deployment into production.
While I mostly use commercial software, I definitely appreciate having had the opportunity to get Walnut Creek CD-ROMs with an OS that saved me 1h trip to fight for a vacancy on the university computer center.
386BSD (of which FreeBSD is based) is an independent lineage to GNU and was released under the BSD licence. Thus also independent to GPL. In fact for a period in the early to mid 90s, it was BSD which was used as the free "UNIX" with Linux seen largely as a hobbyist platform and Hurd little more than a pipe dream.
Linux might have since become the dominant POSIX server platform but to argue that GPL was the saviour of open source is a gross misunderstanding of the history of open source (and UNIX).
The reason Linux "won" was ironically because it was seen as more of a hacker OS. It was used more by kids because it was more fun to hack around with. Those hackers then grew up, got proper jobs in IT and continued to use what they were already experienced in...Linux.
Is there a non-gnu c compiler? I could only find: https://github.com/386bsd/386bsd/tree/2.0/usr/src/usr.bin/gc...
People tend to forget that Linux was a small project that provided a gpl kernel for the GNU system - not the other way around (hence GNU/Linux, Android/Linux, GNU/kFreeBSD etc).
Had Linux not happened, most likely I would still be deploying Solaris into production.
Solaris is dying because of Linux coming into the scene and Sun's mismanagement, being bought by Oracle that most cares about Unbreakable Linux, this wouldn't have happened in an alternative universe without Linux.
Plus it was only one example of UNIX, others could be given that were affected in similar ways.
FreeBSD, OpenBSD and others are surviving, hardly getting any upstream changes from Apple, Sony or plenty of others that take profit of the license, beyond some charity whenever they feel like, this isn't thriving.
It is no surprise that all POSIX clones competition against Linux on the IoT space, by those vendors not keen in upstream updates for Android, are using MIT/BSD and Apache licences.
Maybe this isn't up to my standards, yet it is what I believe.
Honestly by the late 1990's Linux was what was being requested by a lot of employers, with Solaris being the most common system it was displacing (in my experience). BSD simply wasn't even on the radar for most employers/employees.
Apple not wanting to include GPL software doesn't make a lot of sense to me, since they still release the source code of the low level components as the Darwin project. And still they include some GPL software.
In other words:
- if you don't publish the modified software, you don't need to give the changed code to anyone
- if you distribute the modified software to a single entity, you only need to give the changed code to that single entity (and they absolutely do not need to publish it)
- etc.
I know people mostly view this through the eyes of large public projects, forks, etc., but there more to it then that.
And the linux kernel itself is licensed as GPLv2, so they aren't avoiding the GPL completely.
In addition to being full participants in the community, contributing our work back gives us a lot of other advantages. These include a wider audience for code review which improves code quality, much, much, much easier integration of fixes and features from upstream, the ability to collaborate with people from other employers, the ability hire contractors who are familiar with our code, etc.
Note that I don't speak for my employer.
If those systems were GPL everyone would reap the benefits
GPL3 prevents TiVoization. If you want to make a "TiVo" without other people dictating what you can do with your effort, GPL3 is a nonstarter. The easiest thing to do is swap the userland for something with a better license.
Rich autocrats like RMS promoting snowball's chance unreasonable utopianism, an giveaway, noncommercial self-righteousness is fine when you don't have to feed a family or keep 100 workers feeding theirs too. Such purity is a luxury of the privileged and those with nothing else better to do.
[1] https://clang.llvm.org/docs/SafeStack.html
it's not targeted at embedded, but it is an experimental project for the time being (the motivation is a split between "because i could", "i wanted to provide polished ports of BSD software" and "i wanted to experiment with making a better package build system")
GNU/GPL is carrying around emotional baggage of scars that its users were afflicted with at the hands of closed systems. Yes, maybe this strategy is protecting them from being hurt in the same way again in the future. But it's also closing the door on potential relationships. Love and trust requires opening yourself up to being hurt, yes, but that doesn't necessarily mean you should give up on it.
Maybe the swing back towards more openly-licensed software is an artifact of people forgetting the harms done in the past, or maybe it's an indication that GPL is an overcorrection and it's time to evolve again.
The choice of Python for writing the package management tool is curious. Besides the fact that writing such a tool from scratch is a large undertaking in and of itself. I wish more Linux distributions just adopted a transactional tool like Guix instead of rolling their own. Doing upgrades safely and being able to rollback easily is a huge benefit for end users that it's hard to believe more distros haven't adopted it. We shouldn't have to reinvent the wheel every time.
Sure you could lift code from other tools that do a good job. That's the point, if you start from scratch you have to recreate all that effort (which is considerable).
it's also not actually a package management tool per se (that's handled by apk-tools) but really just a build system (it creates apk repositories) similar to ports, void-packages, etc.
i'm also a Void Linux developer, and the new system is based on my experiences with xbps-src (trying to avoid its problems)
I was immediately confused.
It’s basically a linux kernel but a bsd userland & filesystem layout. That’s not strictly true in practice but close enough. Their other guiding ethos was to minimise package maintainer patches so you’d get more vanilla software than in other distros.
Having said that, i run FreeBSD 13 for a nas / firewall at home (only really so i don’t lose the muscle memory) but the bsd init system feels distinctly utilitarian to me in comparison to systemd / launchd (macos) or even smf (solaris - RIP).
As a developer systemd is very attractive, you get so much useful functionality for free, socket management, privs, capability management - stuff that you usually want to use but would rather outsource than write yourself.
[1] https://wiki.archlinux.org/index.php?title=Initscripts/rc.co...
"Linux version 5.13.0+ (x@x) (Debian clang version 13.0.0-++20210418105309+a0898f0cecc7-1~exp1, LLD 13.0.0) #6 SMP Thu Jul 1 10:22:40 CDT 2021"
True, but there was a large effort to clone in LLVM nearly all the GCC extensions and quirks that the Linux kernel requires, so that nowadays the Linux kernel can be mostly compiled also with LLVM. See https://bugs.llvm.org/show_bug.cgi?id=4068 and its long list of dependencies to get an idea of what had to be done.
Also, Nick Desaulniers and team from Google work on fixes to the toolchains and kernel to keep it that way. [1]