x86 Bare Metal Examples
In this technical retrospective (2019), @Cieplak shares practical architectural lessons learned from running, scaling, or migrating production software under lean constraints.
Core Principles for Independent Builders:
Defaulting to simpler architectures (such as monolithic frameworks, SQLite, or managed VPS) prevents early engineering bankruptcy.
Evaluating true compute and egress costs reveals that high cloud bills can often be slashed by 80%+ through judicious re-platforming.
Code you write at 2 AM as a solo engineer must be easy to debug six months later without complex microservice dependencies.
Community Debate Themes:
HN engineers debated the tradeoffs between cloud convenience and raw server economics, database indexing strategies, and resisting premature architectural complexity.
CATEGORY Frugal Engineering →
HISTORICAL ERA Cloud & Mobile Era (2014–2019)
COMMUNITY SCORE 513 points
TOTAL DISCUSSIONS 55 comments
Using BIOS calls doesn't seem to be really "bare metal". One could use bios interrupt to read data from a disk, or also one could use memory mapping with a target device to write a device driver that could request the file. I find the second case a "bare metal" approach.
Fortunately most of the bios examples are using bios_* filenames. Rest of the files are very nice.
Do you have any hello-world examples of how to load a 64bit ELF kernel with a GRUB2 bootloader? I don't mean Linux kernel, I literally mean a simple program that only prints "hello world". Something like this [1] but in long mode.
[1] https://wiki.osdev.org/Bare_Bones ↗
Looking at the skills section on his webpage: http://www.cirosantilli.com/skills/ ↗
This seems like the most honest self-assessment I have seen of one's skills.
I'm kind of curious who's behind this Ciro Santili guy.
He(?) seems to be doing a ton of interesting github repos, a great deal of informative stackoverflow answers and who knows what else.
Also, some anti-CCP stuff in the profile?
I'll drop a question since I see Ciro Santilli is around. I want to start learning low level programming. Yet, I feel awfully overwhelmed every single time I try. Any recommendations you might have?