Erlang/BEAM is also off the shelf solution, whose to say what's the "right amount" of abstraction a beginner should use?
If you really wanna teach a student what's happening in the computer have them use assembly or maybe C, that's pretty much the only way.