It's easy now because plenty of documentation exists of how to do it and there are plenty of open source examples, and there widely available, inexpensive or free, easy-to-use development environments and emulators and debuggers.
The original DOS boot sector was also a "filesystem and program loader", albeit one that wasn't able to do much other than find IO.SYS, load it, and run it.
There's also the fact that a modern emulator (assuming you're running as an emulator, instead of real/raw) is that you aren't constrained by memory the way real hardware implementations were either.
I keep thinking it would be cool to emulate enough of DOS and earlier x86 to just run BBS Doors directly and connections over ws(s) to make authentication and program selection a bit easier. Even if no classic BBS terminals (currently) support connecting over WebSockets, which are easy enough to bridge.
The original DOS boot sector was also a "filesystem and program loader", albeit one that wasn't able to do much other than find IO.SYS, load it, and run it.