The networking aspect will likely be the trickiest, but if you’re already interested in administrating a VPS you can absolutely do it.
- Have an ISP that doesn’t block inbound connections. So far both Comcast and Verizon have been cool to me in that regard.
- Configure your router to always give your host machine the same internal-network IP address.
- Configure your router to forward any relevant ports (TCP/80 for insecure HTTP, e.g.) to the internal address you assigned to your host.
- Go to ifconfig.me or similar to ascertain your public Internet IP address.
- Buy a domain (Namecheap has been good to me for a decade) and change its
A
record to point to that address!
Not hard, but not exactly uncomplicated either.
You’re absolutely right, you could take any binary that runs under an OS and set up a bootloader to execute it directly without an OS.
The problem is that all programs, even ones in C, rely invisibly and enormously on the OS abstracting away hardware for them. The python interpreter doesn’t know the first thing about how to parse the raw bytes on a hard drive to find the location of the bytes that belong to a given file path. Files and filesystems are ‘fake’ when you get down to it, and the OS creates that fiction so each program doesn’t have to be customized per PC setup.
So, ironically, to be able to truly kernel hack in python like you want would require writing tons of C to replace all OS hooks (like
fopen
to interact with a file, e.g.) with code that knows how to directly manipulate your hardware (speaking PCIe/NVMe to get to the disk, speaking GPT to find the partition on the disk, speaking ext4 to find the file in the partition, e.g.).OSes are complex as hell for a reason, and by retrofitting python to run on bare metal like that would require recreating that complexity in the interpreter.