On The Construction Of Dynamic And Adaptive Operating Systems