10 ms·
Putting out the hardware dumpster fire
- villson 3y ago[flagged]
- binkHN 3y agoFrom the abstract: > The immense hardware complexity of modern computers, both mobile phones and datacenter servers, is a seemingly endless source of bugs and vulnerabilities in system software. > Classical OSes cannot address this, since they only run on a small subset of the machine. The issue is interactions within the entire ensemble of firmware blobs, co-processors, and CPUs that we term the de facto OS. The current “whac-a-mole” approach will not solve this problem, nor will clean-slate redesign: it is simply not possible to replace some firmware components and the engineering effort is too great.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- samtho 3y agoOne long-term project I’m planning is actually a fully open source desktop computing platform. While originally meant as a learning project, I realized a few years ago Ben Eater[0] has done this in a way far superior to anything I could create myself, so I started focusing on very basic hardware, beginning with power supplies. My goal ultimately is to select a processor that is as close to open source as possible, design a motherboard around it, make it fast enough to be suitable for general purpose uses, design a PSU, daughter boards (hot swap SATA backplane, I/O ports), a few PCIe x16 lanes, and ultimately a custom graphics card. Designing the motherboard is surprisingly easy, the way PCIe is setup makes routing high speed connections fairly straightforward, and most I/O chips are just some sort of bus input and the interface output. The hardest part is finding the ICs that actually have good documentation not locked behind an NDA, or have good alternatives as one of my criteria is that every chip I select must have a pin-for-pin drop in replacement available. 6gbs SATA is the hardest one to source. I suspect this problem only will compound if I ever get to creating a graphics card. [0]: https://eater.net/ https://eater.net/
- jamesmunns 3y agoThis is something I'm also working on, but using off the shelf hardware for now and working on the OS first[0]. I'm going for something lower spec and portable for now, mostly because there are a fair number of relatively well documented RISC-V processors these days (the single core, 1 GHz C906 CPU inside the SoC probably technically counts as open source!), where it seems feasible to write drivers. I'm not sure it would be a wonderful "full desktop" solution (it's close to the original Pi Zero in terms of performance), but I hope to target larger chips as the OS gets more mature. The i.MX8 they mention in the research paper is actually one of the ones I've considered, it's also used by the MNT Reform (definitely worth a look if you haven't seen it before, and are designing your own larger scale computer!), and the Librem 5 (which I got after many years of waiting, and don't have a ton of use for right now). I actually would like to eventually play around with treating all the "hardware bits" inside of the computer, like the wifi chip, graphics card, etc., more like a distributed system than black boxes, but this generally comes down to writing a lot of the firmware myself (luckily this is a hobby/research project, so "non viable" solutions are still on the table). The more immediate goal for me is something portable, and comparable to a palm pilot/blackberry in terms of performance and capabilities. The current hardware will likely have an ESP32C3 for wifi (32-bit RISC-V), the main D1 CPU (64-bit RISC-V), and an RP2040 (32-bit Arm Cortex-M) for keyboard and IO, so I'll be able to test out some of my "network of tiny computers that make one small computer" ideas. [0]: https://onevariable.com/blog/mnemos-moment-1/ https://onevariable.com/blog/mnemos-moment-1/
- samtho 3y agoI love this concept and is why my current designs are littered with E-keyed M.2 ports and the only real I/O is on my board are USB-C and a few USB-As. The advantage is that I can supplement built-in peripherals with USB devices until I build them.
- colineartheta 3y agoDoes the Talos II not fit this already?
- 3y ago
- mikewarot 3y agoHere's a Usenix presentation by the last author, Timothy Roscoe, from August, 2021 on YouTube. [1] He makes a very compelling case for greatly expanding the concept of an operating system into all of the hardware in a given computing environment. [1] https://www.youtube.com/watch?v=36myc8wQhLo https://www.youtube.com/watch?v=36myc8wQhLo
- imiric 3y ago> He makes a very compelling case for greatly expanding the concept of an operating system into all of the hardware in a given computing environment. I haven't watched the presentation, and just glanced at the paper, but while I see how this would be an improvement, I'm not sure if giving operating systems all that power would be an absolutely good idea. While I certainly don't trust the firmware that runs on my devices, in most cases it's self-contained to the device itself. Modern operating systems are themselves a dumpster fire of security issues and spyware, built by corporations who realized they can also profit from their user's data, and they take advantage of that in subtle and nefarious ways. Even Linux distros aren't safe, and users need to be under constant vigilance that the software they're running isn't actively tracking or exfiltrating their data. These are much larger and widespread threats than any ones caused by firmware. I think the solution must involve a radical simplification of hardware, and a migration towards open source platforms. RISC-V looks very promising in this regard, and, coupled with a reasonably secure OS, is the best path towards safer computing.
- ForOldHack 3y ago"Dumpster fire?" You are too kind. It's a cesspool, and a leaky one a that. Mostly Microsoft fault, and it has been now known to be getting worse.
- mikewarot 3y ago>Mostly Microsoft fault, It's the lack of capability based security, and a common tragic misunderstanding of what it is, that is the root cause of this dumpster fire. This effects all operating systems in common use, including all versions of Linux, Mac OS, Windows, etc. Imagine if your only choice to buy an ice cream cone was to give the other person full access to your checking account, forever. That's what phones do, and as a result, we've learned to call that a "capability" Imagine taking out a $5 and handing it over to pay for that ice cream... the most you can lose, ever, is $5. That is what capability based security does. You interactively chose what side effects you'll allow (by picking bills out of your wallet), at the time of purchase. For desktop apps, like an office suite, all you have to do to port code over is change the calls to file selection dialogs (which return a list of file names) to "powerbox" calls (which return handles), then use those handles instead of directly opening the files. The user doesn't see any difference in behavior, but they are now firmly in control of things, instead of your program.
- acuozzo 3y agoI thought that when the Intel Management Engine implementation details (hidden Minix!) were released that it would only be a matter of time for a "Full FOSS" movement within enthusiast communities. I was wrong, it seems. There hasn't even been a push for an affordable 802.3ab gigabit ethernet card with an FPGA.
- mistrial9 3y agoits not a democracy -- you discovered the implementation that is convenient to the towers of executive authority; there is no change just because it is more widely known, in fact, increased boldness in tracking activity in real-time and building dossiers on users for "ads" is growing, along with the stockpile of money available to implement that.
- StillBored 3y agoEthernet card built from a FPGA or one with an FPGA on the side? Because in both questions your talking about the fact that there are basically three companies providing FPGAs and none of them seem particularly interested in killing their high margin markets. Worse the "DPU" crowd are largely selling about $100 worth of compute for $3k+ because it has an attached 100G port. OTOH I assume the next step for the icestorm/etc folks once they actually have a reasonable toolchain working on the lattice parts is to actually find a company willing to produce a low cost open FPGA and write the backend bits to work with the toolchain. Similarly there are various open ethernet mac projects floating around, although AFAIK none of them actually have been fabbed into something a random consumer can buy. So much of this is really just the broken VC model in the US, no one is interested in funding stable but low margin businesses when they can gamble on high risk/reward ones. And banks won't loan people money without some kind of collateral. I suspect you have to look to China/etc at this point for to fill in the "sell a crapload with little margin" business (ex: lenovo). Making it sorta inevitable that they steamroll everyone, because if there is one truth in the tech field, its the guy with the most volume tends to win long term. Along those lines, the Si consolation has really been a negative in may aspects of the market. If one could still buy current generation PCIe switches for less than the price of an entire computer it would still be possible to find motherboards that have shared device bandwidths (aka a half dozen x4 m.2 slots, or three x16 slots that aren't electrically just x4s) all hung off a x16 gen4/5 slot. Which is really the scam here, at least in my case I have a number of Gen3 parts which would all work great behind a single Gen4 x16 port with a switch port but instead I have to waste gen4 slots on gen3 devices.
- nightowl_games 3y agoI like the boldness of the title and the simple clarity of the writing. Academic papers are frustrating to me in that they seem to use esoteric language in order to create a veneer of importance, sometimes above trivial real content. This stands against that trend and harkens back to papers of old.
- dclowd9901 3y agoI know it’s probably asking too much but I wonder what the world would look like if academic papers were actually fun to read. Brian Greene is probably considered a pariah around here but I really enjoyed reading his book The Elegant Universe.
- feoren 3y agoI'm not sure. Imagine if life-critical safety documents were "fun to read". Or material safety data sheets. Or assembly instructions for heavy machinery. Or even code. All of this stuff needs to be extremely clear, precise, and readable by professionals. That's not the same as being "fun to read", and certainly not by laypeople. You can't really know whether an academic paper is clear, precise, and readable unless you're a professional in the sub-discipline the paper was written for.
- Hermitian909 3y ago> they seem to use esoteric language in order to create a veneer of importance, It's kind of true, but also I think the real answer is that you're not the target audience. A lot of time you use esoteric language because part of the problem being solved for in these conversations are: 1. what are useful and meaningful abstractions? 2. which abstractions are seeing uptake? 3. Who gets credit for the abstraction? This mean papers are very often introducing new terminology as part of an exploratory conversation. Communication is optimized for the people engaging in that process. As time passes most of these terms fall into disuse and the field circles around a few winners which then pass into the wider world. This stage is much more approachable and this content is what most of us are used to consuming.
- jpleger 3y agoI think one of the primary reasons that it is such a dumpster fire is there traditionally hasn't been an "open" ecosystem in the hardware world, though now they are being forced towards that direction kicking and screaming. Every part of the hardware ecosystem has traditionally been done in closed, NDA ridden environments and only over the last 5-10 years has that even started to change. Designing chips has required NDA-based PDKs. Designing complex PCBs has required closed-source EDA tools. Interacting with any of the IC peripherals often requires binary or non-redistributable firmware. Hell, even with the modern "open" switch architectures, like Trident3, you can't get software or detailed datasheets from broadcom without an NDA. Same thing with some of the ARM based stuff like with the Raspberry Pi.
- kevin_thibedeau 3y agoMost electrical components have traditionally had open datasheets. It is only a relatively recent phenomenon that mass market ICs are locked behind NDAs.
- sitzkrieg 3y agoi only hit NDA on secure element chips and similar things. 99% of my embedding work is plain ol mcus w reams of datasheets available. i do not do pc stuff tho
- slaymaker1907 3y agoOne common component where things are really secretive is with flash storage. This is because the underlying physical components are pretty commodified, and the software/firmware (like block virtual addressing) is where brands actually distinguish themselves. It's kind of unfortunate since there's a lot of really cool stuff you could do with more control over the hardware like reducing the size of a failing disk to extend its life instead of complex wear-leveling techniques.
- jrockway 3y agoIf I'm ever going to get on the conspiracy theory bandwagon, it will be on two topics: 1) Return to office. 2) Why we need a dedicated CPU and DRAM attached to flash memory. You can garbage collect and wear level in your OS if you want to. Manufacturers say "no, we have a super secret secret sauce that nobody else could possibly improve upon". Uh huh, sure.
- derefr 3y agoAre vertically-integrated SoCs (Apple Silicon, NVIDIA Tegra, etc.) subject to the “OS only controls part of the hardware” problem? I always figured that in these systems, there would be power-efficiency and BOM-cost pressure to “de-vendor” the SoC by replicating IP-core functionality with logic merged into firmware or a few larger service cores — or even kernel daemons run on the efficiency cores of the application processor. I would expect e.g. the fan controllers on these systems to be a part of the PCH’s event-loop logic, rather than its own little microcontroller with its own little firmware. If this doesn’t happen—why doesn’t it?
- topspin 3y ago> or even kernel daemons run on the efficiency cores When (not if) the kernel scheduler locks up while the fans are slow/stopped at the same moment some scheduled user process begins driving 250W+ through a CPU the isolated fan controller (not to mention isolated thermal throttling logic, also independent of the OS) has great value. > If this doesn’t happen—why doesn’t it? Hardware evolves faster than operating systems and has complex requirements of which operating systems are oblivious, and there is no world where device manufacturers and consumers will tolerate being gated on operating system evolution. These complications have to run somewhere so independent processing elements appear and grow. This pattern delivers ever crucial compatibility by hiding new complications from legacy operating system interfaces. The only path I can imagine that would change this paradigm requires a.) greatly increasing the reliability and security of operating systems to the point where they can be trusted not to fail and damage hardware or corrupt things and b.) generalizing all known and future hardware and operating system interfaces such that hardware drivers (which, due to the more rapid evolution of hardware, do not enjoy the long term maintenance cycle of operating systems) can be highly portable, both across platforms and forward. Both of these requirements are "Hard" as in we have only begun to achieve this in primordial ways.
- derefr 3y agoYou don’t seem to be paying attention to the words “vertically integrated” in my question — which were the whole point of my question. Apple creates both the OS and the hardware for their phones. So why shouldn’t the hardware microcontroller firmware for the hardware they create (or commission and constrain the design of), run as one or several RTOS blobs that ship as part of the OS on one or several shared MCUs? Let me put it this way: in x86, the motherboard has a power controller, but the CPU also has its own power controller. But on a vertically-integrated SoC system, I would expect there to be only one power controller, that controls power for the CPU, the other cores on the SoC die, and the various other components on the logic board. And I would expect that power controller, whether standalone or integrated into the CPU, to be running first-party code written by the system integrator (who is also the designer of the logic board, the SoC, the CPU in the SoC, and the power controller itself) rather than running code written by some vendor who was writing it in a “this chip could be used in many different builds, so it must be designed defensively for badly-integrated systems” manner.
- zackmorris 3y agoI've noticed the trend of ever-increasingly complex hardware with little or no change in performance since the 90s, and ranted about it extensively since I joined HN. I think we're past considering the problem from a technical perspective and need to look at the conspiratorial forces involved. To me, the problem is one of monopoly and corporate thinking. When Intel and AMD make most of the chips, we end up with a Coke vs Pepsi mentality. There may be a hundred other hungry manufacturers, but without access to capital they'll never get enough traction to scale. Around 2000, FPGAs were set to go mainstream and let us design CPUs of our own, but Xilinx chose to keep them proprietary so they never evolved. It's unfortunate that the company most capable of thwarting the status quo is the one propping it up. But they were trendsetters, that's how it's going with all things tech now. Then Nvidia mostly monopolized the GPU industry and sent us down the SIMD rabbit hole. So we can process large vector buffers at great personal effort ..and that's about it. What I and I think a lot of people probably want is a return to big dumb processors. Something like a large array of RISC-V cores with local memories connected via content-addressable memory and copy-on-write that presents a symmetric, unified address space that can be driven with traditional desktop programming languages. Had a CPU like this kept up with Moore's law, we would have had a 10 core machine in 2000, a 1,000 core machine around 2010 and a 100,000 core machine today, reaching between 1 million and 10 million cores by 2030. Which shows just how incredibly slow CPUs are vs what they could be. The situation is so bad that I've all but given up on things ever improving. I mostly think about getting out of programming now and going back to living a normal life in the time I have left. Because the writing is on the wall: SIMD will deliver a narrowly conceived notion of neural network AI that's "good enough" and will stop all further evolution of CPUs. We'll miss out on the dozen or so other approaches like genetic algorithms and be forever separated from simple brute-force methods that "just work". The AI will soon be like Mrs. Davis and the vast majority of people will be face-down in their phones, then connected neurologically. The arrival of WALL-E and Idiocracy will coincide with the destruction of the natural world by 2100 and that will be that. The argument really comes down to centralized control vs distributed resilience and freedom. It's pretty obvious which one we have right now, and that it's getting worse each year. Now I look on each headline with growing weariness, picking up on which mistakes will be doubled down on, which kool-aid they want us to drink this time. Because without the intervention of at least one successful internet lottery winner, or a concerted effort by thousands of hobbyists, there's simple no viable path from where we are now to where we could be, making the vast majority of the work we do a waste of time in the face of the potential we might have had. It's hard to write anymore without sounding like a fringe lunatic projecting frustration on a world that is blissfully unaware that anything's even wrong. I'm probably wrong for doing so. Just another reason to probably get out of this business.
- mitchbob 3y ago[pdf]
- yafbum 3y agoI'm not sure what fire has been put out here. IMO, a more convincing proof for the usefulness of this approach would be that it allows to find whole new classes of exploitable vulnerabilities that can then be corrected ahead. That's how static code analysis tools typically demonstrate their value. Without such proof, the description that they make of a hardware platform is mentally interesting but not clearly useful.
- chubot 3y agoOn an Android phone, Linux is effectively an application runtime. This is a good way of putting it, and it’s sad Our OS is no longer open source -- they built the real one underneath
- haskellandchill 3y ago"A key result of this work as applied to existing hardware will be whether it is possible to assign less-than-complete trust to any of the black-box components in an SoC, or whether current HW design practices are incompatible with building secure, correct systems." Having been exploring this research area for a while I fear it is the latter and there is no clean formal model that will apply to real hardware as currently construed.
- mschuster91 3y ago> The immense hardware complexity of modern computers, both mobile phones and datacenter servers, is a seemingly endless source of bugs and vulnerabilities in system software. I'm a bit torn here. On one side, I'd really love to have equipment that can be proven to be bug free in theory or in practice. On the other side, often enough the only thing allowing me as an user to actually use a computing device for things that have not been intended by the manufacturer - everything from running my own software over running pirated games to using ad and tracking blockers - are (serious) security bugs, or when one uses the manufacturer-provided options to load their own software, the device irrevocably bricks parts of itself like Samsung's Knox environment does after rooting your phone, which breaks a ton of stuff - most notably Netflix DRM or Google Pay.
- throwaway32908 3y agoI'm basically on the "other side", I know some people have genuine security concerns but still find it amusing when people complain about devices being "obsolete" once they no longer receive updates, when I avoid them like the plague because all they ever do is remove intended and unintended freedoms. But maybe we're in a trap, because we can use hacks to do what we need, it's not worth the effort of switching from Android etc. But if these hacks were fully gone, alternatives would find it easier get off the ground. Have to hope so because we're going to find out, these systems are only getting more secure and locked-down with time.
- Aerbil313 3y agoI’ll go as far as to say this approach is also doomed to fail. We gotta standardize and rewrite from scratch everything, both hardware and software otherwise the current mess will never be tidied up.
- RecycledEle 3y ago30 years ago, I said "When Moore's law finally stops, we will go back and clean up all the kludges we committed to over the decades." Then I realized that was how we would know that Moore's law was dead - when we started cleaning up our mess. I'm sorry to say we are there. Just after Mr. Moore himself died, his law died.
- KennyBlanken 3y ago> Indeed, these cores and their firmware usually explicitly sandbox Linux on a corner of the chip (the “application cores”), preventing it taking any meaningful role in managing and securing the platform. On an Android phone, Linux is effectively an application runtime. The reason Linux is sandboxed into a corner of the system on an Android phone is because the phone is more interested in not trusting you than it is not trusting the SIM chip's processor, cellular radio, etc. Google don't want you: * getting unrestricted access to digital content they or others sell and make available on the platform. Hollywood won't let them sell movies on Play Store if Google can't guarantee you won't be able to make a copy of the files on the device, or output HDMI to a recording device. Ditto for Netflix. Ditto for record companies/RIAA. Ditto for magazines and newspapers. The list goes on. Your smartphone, no matter what anyone tells you otherwise, is primarily designed as a media consumption device. Its secondary purpose is a cloud services consumption device (Google or Apple) and last on the list is "a device for you to use however you want." For example, on iOS, the Files app and any file save dialog always defaulting to your iCloud folder, and the inability to set a default save location, is not even remotely an accident. Apple forces you to, every single time, select somewhere else if you don't want to save to iCloud. * disabling the methods they use to track you or opting out of the data collection they perform wholescale and continuously. * disabling the methods application publishers use to track and collect data about you.