Toward Ubiquitous Operating Systems: Lessons from the Field