Why hasn't anyone built an entirely free computer yet?
Hello everyone,
I've been wondering, why has no one built an entirely free (as in freedom) computer yet? For humans to be unable to share each other's knowledge to build one of the most important technologies ever created for society, how is it that we have yet to have full knowledge about how our systems operate?
I get that companies are basically the ones to blame, and I know there are alternatives like the Talos II by Raptor Computing, but still, how do we not have publicly available full schematics for just one modern computer? I'm talking down to firmware-level stuff like proprietary ECs, microcode, hard drive/SSD firmware, network controllers, etc. How do we not have a fully open system yet?
Also on top of what other folks are saying, making a complete modern computer is really fucking hard.
No one is making a 3ghz CPU in their garage. Maybe folks are assembling stm32, or pis, or whatever into their own pcbs, but the machines that make the chips just aren't hobby level yet. You just have to buy some stuff.
Maybe that's not your point. Maybe you're okay with the processor being closed because it is fucking hard to make.
Beyond the hardware now we're talking making your own drivers and shit. There are resources out there like zephyr, but there's millions of devices that aren't covered.
Try writing your own SPI interface for an established MCU and a common periferal. Make sure you include crc, don't skip it. Maybe skimp and do i2c. It's fucking hard.
Absolutely, creating a complete modern computer is an incredibly complex task. Building a 3GHz CPU from scratch is a monumental challenge, and even assembling components like stm32 or Pis requires a level of expertise. Developing your own drivers, dealing with various peripherals, and ensuring compatibility is tough shit.
However, once the software is written and released under a Free Software license, it will be there forever. As you've already stated, it's hard, but not impossible. I share your hope that one day we will reach the point where such endeavors become more feasible.
Years and years ago I built my own 16 bit computer from the nand gates up. ALU, etc, all built from scratch. Wrote the assembler, then wrote a compiler for a lightweight object oriented language. Built the OS, network stack, etc. At the end of the day I had a really neat, absolutely useless computer. The knowledge was what I wanted, not a usable computer.
Building something actually useful, and modern takes so much more work. I could never even make a dent in the hour, max, I have a day outside of work and family. Plus, I worked in technology for 25 years, ended as director of engineering before fully leaving tech behind and taking a leadership position.
I've done so much tech work. I'm ready to spend my down time in nature, and watching birds, and skiing.
Some people are trying (RISC-V for instance) but as others pointed out it's really really hard, especially if you want to make the whole computer free and open source.
First you need an architecture for pretty much all components if you want it to be truly free (how the CPU, ram, motherboard, etc. work, on paper).
Then you need to manufacture these components, and making a modern CPU is insanely complex, even more so when you have a brand new architecture.
Then you need software (firmware, drivers, etc.), and again, on a new architecture, stuff will work differently than it does on existing stuff. So people need to learn how to work on your platform to make software. And obviously you need to make it available to people by selling it somehow.
It's technically doable but the investment (both monetary and humanly) would be massive and not really something anyone can start on their own as a hobby.
This bird's-eye view of the process really sells it short. "making a modern CPU is insanely complex" doesn't even scratch the surface of chip fab.
I mean, some guy did make his own lithography setup in his garage, and last we heard he had managed to fit 1,200 transistors on the same chip. This is just a few transistors shy of the 6,000,000,000 transistors in Intel's Rocket Lake die.
So if you want your PC to do much beyond blink an LED, you need an industrial photolithography machine. And of course, that entails a clean room, specialized HVAC and sanitation equipment (Intel's clean rooms have less tolerance for contaminants than hospital clean rooms). Then it's only a matter of getting the rest of the chip fabrication machines (because the process requires more precision than a human hand). And materials that have extremely specific proportions and purities.
And so it only costs a few hundred million dollars to just make a cpu. And even that was still just glossing over some of the most ridiculous, precise, specialized and esoteric marvels of science and engineering humanity has ever come up with.
Now it's just a matter of just making all the other parts.
It's sad but true. I'm just so baffled as to why? Wouldn't anyone just be curious to figure out how stuff works? Think of all the brilliant minds out there who are being cut off simply because of corporate greed. Not only that, but they're deemed as criminals for making it do something it wasn't intended to do (e.g. Xbox 360 w/ RGH). I just think we're wasting so much potential to make the world a better place. And we can already see the love behind just using and creating software while following the Free Software philosophy.
My goal is to help people, maybe you or anyone else might be interested, to get to actually USE their computers, understand how they work, etc.
The creator of Libreboot, Leah Rowe, and I are making support for the Dell Optiplex 9020 MT. It's a Haswell motherboard that supports a i7 4790K, 32GB DDR3 RAM, you can also use a 2080 SUPER (or anything else), without the need for any proprietary BIOS firmware (eventually, we still need to reverse engineer 1-2 blobs). It has internal flashing capabilites, so no need to buy flashing equipment, all you need is an insulated screwdriver to short one of the SERVICE_MODE pins, which unlocks the flash chip basically. This allows you to flash the firmware through the OS, which makes it 10x easier for anyone to start using Libreboot. The motherboard you can buy on eBay right now for about $20, or you can buy the whole PC for like $100-$120. Still though, isn't enough but it will be a step in the right direction.
The fact of the matter is that actually producing any modern technology takes a massive amount of work, and up til this point, no one has gathered enough motivation and free time to do it all for any modern hardware just out of pure altruism. There's a reason why companies have to pay hundreds of engineers a huge amount of money to get anything developed; those people are not going to do this incredibly difficult work just for fun and moral satisfaction. It's easy to point the finger at corporate greed for some things being locked down, and to be clear, there's plenty of valid criticism to go around, but it has to be at least considered that most of this stuff would never have been developed in the first place if it wasn't for those same companies. Your average person is not going to assemble a motherboard from parts and schematics.
Wouldn’t anyone just be curious to figure out how stuff works?
To this point, quite frankly, no. Average people simply do not care about this very much. They want to just turn on their magic internet box, get their work done, play their games, consume their media, and move on without any further fuss. The fact of the matter is that most people have no clue what a BIOS is, could not care less if it was proprietary or not, and have zero interest in learning about flashing them or why they would ever want to do that.
Why haven't you? Same thing applies for everyone else.
If you had the skill to make an actually useful modern computer you probably work somewhere like that as your job, and you sure as shit don't want to do that at home too. Especially since you'd probably never make any of your monetary investment back, let alone paying for your time.
To add to what has already been said about it taking a large effort, the follow up question is then, why don't governments fund all this effort publicly through taxes, like what is done with roads, scientific research, education, healthcare?
Well the short answer is that high-performance computing specifically is a strategic resource. Publicly funding roads only benefits the country doing the funding, so that is an easy decision to make. Meanwhile, much of the publicly funded scientific research has minimal to no strategic value (or may only be of value in states capable of that investment in the first place), so this is also an easy decision to make. But giving away technological investments in strategic ressources to rival states is a pretty bad move.
They absolutely do fund development like this. But they keep it for themselves until such time that it no longer gives them a competitive edge.
For example, when the US sells tanks or planes to other countries, those export versions have much less fancy equipment on the inside. Or in pure science like cryptography, you can assume that when the NSA publicly approves of an algorithm, they're confident that they can break it if they really need to (either because they inserted a backdoor, have identified a weakness they can exploit, or just have no use for it any more themselves).
I saw a snake-oil kickstarter for one of these about ten years ago.
I used to use the Trisquel forums, Trisquel being a fully-free operating system and at the time the only one that could be installed by a total novice. There was a guy there, Chris, who was heavily involved with the company ThinkPenguin. Chris seemed genuinely passionate about free software and actually seemed pretty genuine when plugging his products, he'd point out the specific points where his products failed to be fully free and sometimes give examples of competitors who could do better and some justification for why he didn't feel it was realistic for ThinkPenguin to match that. I had some respect for him and some of the stuff he wrote on that forum really helped me understand the movement better.
Anyway, like ten years ago someone made a post about a kickstarter for a new company called Purism, which was fundraising to build a fully free high-end laptop I think by the end of that calendar year. A couple hours later the CEO of Purism (his name was Todd) found his way to that thread and explained to us how exciting this was and he intends to use Trisquel as the operating system and we should totally support this financially, blah blah blah. He's giving lengthy replies to every single comment made in that thread. At some point Chris writes an extremely extensive response about why every detail Todd has promised does not seem realistic, including recognizing from the kickstarter photos exactly which computer Todd intended to use as a base and why he felt that choice made no sense. I didn't really understand any of the details here to be honest, but yeah. Todd gives a one-sentence reply to Chris' post where he addresses zero of Chris' points and instead simply tells us that Chris is slandering his project because Chris is afraid of seeing a competitor succeed and doesn't actually care about free software.
At that point I didn't really need to understand the finer points to figure out which one of the two was more reliable. It was so blatantly transparent that Purism became a running joke in the forums.
Todd obviously ended up backtracking on virtually everything, using a brilliant scheme of weakening the promises in the kickstarter description over and over and over and dodging questions about that. He made a bunch of petitions to the FSF to certify his stuff on the grounds that their certification requirements (all those details initially promised for his laptops) were unrealistic to achieve. No shit. He also created an online (change.org? not sure about that) petition to Intel, which was sure-fire going to work, I'm pretty confident Intel did remove their management engine because I definitely would have heard more about that if Intel inexplicably decided to ignore that change.org petition.
Oh yeah, and on top of that, because Trisquel was the only FSF-endorsed distribution that was realistic for general-purpose use, he also ended up blowing a bunch of the funding to make his own distro (called "PureOS") because if he stuck with using Trisquel his customers could easily end up on a forum where his products weren't taken seriously.
Anyway, his initial kickstarter got like $600,000. He did release a laptop which was functional but not really different from things other companies like Los Alamos and ThinkPenguin had been doing for a while. A few years later he promised a fully libre phone and I think got even more for that than the laptop kickstarter. Last I heard only a very tiny fraction of the orders had actually been filled, and people were upset about that because it was already a few years late and also the company was desperately trying to remove all evidence that full refunds on request had been promised for the first couple years of preorders. Also the phones remained like six times as expensive as the (at the time) new pinephones and only functional for people who were extremely generous with how they define the word "functional".
I'll admit I did find some entertainment in this, but overall this shit was really depressing because not only could the funding Purism got have gone to other projects, but, more significantly, everyone who got scammed will be much more hesitant about supporting libre projects in general.
edit: Just checked /r/purism, the sidebar reads "PLEASE! Read at least 10 posts here before considering whether to place a Librem order! :) System76 is also a great alternative for Linux laptops." Sounds like a community of happy customers.
This covers just the basic cpu instructions, no proprietary extensions, no architecture of additional necessities like a gpu, no proprietary firmare for the gpu or anything else. The instruction set of Arm, x86 or whatever is not a secret though. The freedoms in risc-v are mostly concerning the manufacturers, which can build chips using this instruction set without paying any royalties. From a consumer point of view, that at most means one can at most choose from a more organically grown landscape of risc-v chips. Which in turn bears the risk of ending up in a situation, where all we have is a vast jingle of cluttered proprietary extensions, that make it harder to write libre drivers for than it is for Arm today.
Don't get me wrong, risc-v is absolutely amazing! But in terms of freedomness, it would take a manufacturer to extend the spirit of open hardware to the complete SOC - and the basic instruction set is pretty much the smallest piece in that.
and that is the problem building higher performance requires more advanced lithography and that is expensive and until recently was not even an option for a hobbyist (without taking a mortgage on their house).
Given current stagnation, you need only wait about 10 years for that viable option.
The technology required to make a modern computer is, to say the least, not easily accessible. There are very few places we're chips are made. A handful on the planet. I mean in large quantities.
Otherwise you have laboratories mostly that have the tools to make the chips.
It is technically possible to make a free computer. But it will be much more expensive and much worse. So why bother?
People are kinda working on it. The hardware isn't FOS but openPOWER and people like this guy: https://www.devever.net/~hl/ortega are making foss firmware possible.
I think because such an undertaking would require a wide breadth of extremely specialized knowledge. It would require intense coordination of many experts to work together over many years, all to design something that:
Will eventually be obsolete within a few years
Is outside the realm of replicability for individuals (I never heard of anyone with a nanometer-scale photolithography room in their house)
Item 1 is OK for hobbyists, who might value open source over new-ness, but item 2 all but guarantees that only big corporations can actually get involved. They don't care about free and open source. They just want a computing platform that their engineers can develop a product for. As long as there's enough documentation for their goals, open source is irrelevant.
The power of modern computing comes partly in how it enables abstraction. You don't need to understand the physics of electrons through a transistor to write a video game. Overall, the open source community has generally converged on the idea that abstracting away the really hard stuff is an acceptable tradeoff.
I actually disagree with point 1 to an extent. The startup work for such a machine would indeed require a lot of effort, but once that groundwork is in place, wouldn't that make it easier to maintain momentum and release a successor?
I guess it would depend on whether or not the project spawns a dedicated community that lasts for a long time. Without a wide pool of knowledgeable contributors, I think it would be hard for an original team to both support the one design while also developing the next iteration.
Not to bring it up as a whipping boy, but let's take the case of Wayland, which is "just" a software protocol. It was started back in 2008, and is still under active development. As more projects support it, more edge cases are coming up, which is why new features are added to the protocol all the time. In those 15 years, they've had to adjust to technologies that didn't exist back in 2008, like widespread adoption of 4k HDR displays, or Vulkan. Now imagine that, but with every aspect of a computer. In 2008, DDR3 RAM was just a year old. Today we're on DDR5 and you (probably) can't buy a new machine that takes DDR3. PCIE 2 was the latest shit in 2007. Now I see that PCIE 7 is planned for next year.
A global corporation can support old products while also developing new technologies because they have unfathomable labor and capital at their beck and call.
I think that free software can keep up with proprietary offerings because the barrier to entry is relatively low. You just need free time and a source control client. I think it would be different if your project toolchain involved literal tools that cost millions of dollars.
Would microcontroller count? Arduino Uno got the entire schematics out in the open. Even the core component, the ATMega processor is pretty well documented.
Investment... It's a bit too simple to just say money, but investment wraps it up better. Chips may not be open source, but they are physically there to be taken apart and reproduced. That's what a lot of those Chinese knockoff chips are (baring the ones where the designs are outright stolen). The only thing that stops you from doing the same thing as those bootleg fabs is being willing to soak time and resources into the project. It's just a big project. Like a Bloomfield i7 (which is old and fairly large) has 731 million transistors in it...
Traditionally the barrier to enter the hardware market has been absurd but fabrication has come a LONG way and the libre-computer movement is having a hayday right now! Lots and lots of interesting hardware and specifications are coming out. RISC-V is going to be massive once the toolchains, compilers, and binaries are more mature and faster hardware has come out.