Learning to develop OS from scratch