@daily_btc_lore | Daily Bitcoin History Threads
July 13, 2011 | 15 years ago today
The Kernel Hacker Who Built Bitcoin's MinerThe Kernel Hacker Who Built Bitcoin's Miner
A 3am Post on BitcointalkA 3am Post on Bitcointalk
On July 13, 2011, at 03:02 in the morning forum time, Con Kolivas opened the official CGMiner support thread on Bitcointalk (https://bitcointalk.org/index.php?topic=28402.0). What he announced was a GPU miner written in C, running on Linux, Windows, and OSX, and, as the post put it, "provided entirely free of charge by the programmer in his spare time."
Plenty of miners were circulating in mid-2011. This one would outlast every generation of hardware it ran on.
Dynamic IntensityDynamic Intensity
The headline feature was something Kolivas called dynamic intensity. To understand why it mattered, remember what mining looked like in 2011: your miner and your gaming rig were the same machine. There was no dedicated hardware. The GPU crunching SHA-256 all night was the same one you needed for a game or a video the next evening.
CGMiner handled this automatically. The moment your GPU was needed for a game or video playback, the miner throttled itself. When the computer went idle, it scaled back up to full hashing. No manual switching, no killing the process before you sat down to play.
Under the hood, CGMiner ran the phatk OpenCL kernel with the BFI_INT, BITALIGN, and VECTORS optimizations of the era. But the users in the thread praised something far less glamorous: it could restart dead GPU threads on its own. In a world of miners that silently hung and wasted hours of electricity, that self-healing quality earned replies calling it the "best one so far," reliable and low overhead.
"Are You the Linux Kernel Scheduler Guy?""Are You the Linux Kernel Scheduler Guy?"
Then someone in the thread did a double take and asked the question: "are you the linux kernel scheduler guy?"
He was. "Yes, I am the linux kernel scheduler guy, -ck."
Kolivas was the author of BFS, the Brain Fuck Scheduler, a set of Linux kernel patches devoted to one thing: desktop responsiveness. Making sure the machine you were actually sitting at felt fast, no matter what was churning in the background. And this wasn't even his profession. His day job was anesthesiology. An Australian anesthesiologist who rewrote how Linux schedules your desktop, writing Bitcoin mining software on the side.
Responsiveness, Applied to MiningResponsiveness, Applied to Mining
Once you know the BFS backstory, dynamic intensity stops looking like a mining feature and starts looking like a signature. The same obsession that drove years of kernel patches, the conviction that the computer should yield to the human using it, is exactly what a miner that steps aside for your game is.
CGMiner went on to add FPGA support, and then ASIC support, hardware categories that did not exist when it launched. It became the standard mining software for years. Not bad for a side project posted at 3am.
Part of an ongoing series on Bitcoin history. Follow @daily_btc_lore on X for daily threads.