A teaching operating system to get a deeper knowledge in the design of system software