Dmitry Grinberg created a remarkably minimal Linux computer using just three 8-pin chips: an ATtiny85 microcontroller, a serial configuration PROM, and a voltage regulator. The ATtiny85 emulates a RISC-V CPU, running a custom Linux kernel compiled for this simulated architecture. While performance is limited due to the ATtiny85's resources, the system is capable of interactive use, including running a shell and simple programs, demonstrating the feasibility of a functional Linux system on extremely constrained hardware. The project highlights clever memory management and peripheral emulation techniques to overcome the limitations of the hardware.
Dmitry Grinberg, a prolific hardware hacker, has meticulously documented the creation of an extraordinarily minimalist yet functional Linux computer using only three 8-pin integrated circuits. This project, driven by a pursuit of extreme minimalism and a desire to push the boundaries of what's possible with limited resources, showcases a deep understanding of both hardware and software.
The heart of this diminutive system is the ATtiny85 microcontroller, a remarkably versatile chip despite its limited pin count. Grinberg cleverly leverages the chip's internal peripherals and carefully crafted software to overcome the challenges posed by the scarcity of input/output pins. A significant achievement is the implementation of a USB interface using bit-banging techniques, meaning the ATtiny85 directly manipulates individual data lines to emulate the complex USB protocol without dedicated hardware support. This allows for communication with a host computer.
Storage is provided by a second ATtiny85, configured as a Serial Peripheral Interface (SPI) flash memory chip. This chip holds the Linux kernel and root filesystem, essential components for any operating system. The use of a second microcontroller for storage, rather than a dedicated flash memory chip, contributes to the project's extreme minimalism.
The third and final component is a 74HC595 serial-in, parallel-out shift register. This chip expands the limited output capabilities of the main ATtiny85, providing additional control lines necessary for managing the system's various components and interfacing with the external world. It essentially acts as a pin expander, crucial for tasks like driving a display or managing other peripherals.
Grinberg's approach involves running a specialized, highly optimized version of the Linux kernel, tailored to the extremely constrained environment of the ATtiny85. The user interface is a simple command-line interface accessible through the emulated USB connection. While the resulting system is not powerful enough for complex tasks, it successfully boots Linux and provides a functional command-line environment, demonstrating the impressive feat of running a full-fledged operating system on such limited hardware. The project highlights the power of ingenuity and resourcefulness in pushing the limits of embedded systems.
Summary of Comments ( 104 )
https://news.ycombinator.com/item?id=43586654
Hacker News users discussed the practicality and limitations of the 8-pin Linux computer. Several commenters questioned the usefulness of such a minimal system, pointing out its lack of persistent storage and limited I/O capabilities. Others were impressed by the technical achievement, praising the author's ingenuity in fitting Linux onto such constrained hardware. The discussion also touched on the definition of "running Linux," with some arguing that a system without persistent storage doesn't truly run an operating system. Some commenters expressed interest in potential applications like embedded systems or educational tools. The lack of networking capabilities was also noted as a significant limitation. Overall, the reaction was a mix of admiration for the technical feat and skepticism about its practical value.
The Hacker News post titled "An interactive-speed Linux computer made of only 3 8-pin chips" generated several comments discussing the project and its implications.
Several commenters expressed fascination and admiration for the project's minimalism and ingenuity. They praised the creator's ability to achieve a functional Linux system with such limited resources. Some described the project as "amazing" and "impressive," highlighting the technical skill involved in making such a constrained system work.
A significant portion of the discussion revolved around the practicality and potential applications of such a minimalist system. Some questioned the real-world usefulness of a computer with such limited capabilities, while others envisioned potential applications in embedded systems, education, and as a platform for learning about low-level computing. One commenter suggested it could be useful for teaching computer architecture.
The choice of chips and their specific roles in the system were also discussed. Commenters inquired about the functionality of each chip, with particular interest in how the system managed memory and peripherals. The creator's choice of an ATtiny85 microcontroller, coupled with an FTDI chip for USB connectivity and an SPI flash chip for storage, sparked conversations about the trade-offs between simplicity, cost, and performance.
Several commenters delved into the technical details of the project, discussing topics such as bootloaders, memory management, and the limitations imposed by the chosen hardware. They explored the challenges involved in running Linux on such a resource-constrained system and speculated about potential optimizations and improvements. One commenter highlighted the significance of using a microcontroller designed for lower power applications compared to a previous iteration using a different microcontroller.
There was also some discussion about the definition of "interactive speed." Some commenters pointed out that the system's performance was likely limited, with potentially slow response times. They debated whether the term "interactive" accurately reflected the user experience.
Finally, some commenters drew parallels to other minimalist computing projects and discussed the broader trend of pushing the boundaries of what's possible with limited hardware. They shared links to similar projects and resources, fostering a sense of community and shared interest in minimalist computing.