Supporting Operating Systems Projects using the uMPS2 Hardware Simulator