How exactly you modify an OS depends on what you want to change.. OS's these days are large, complex and with A LOT of modules and components. One way of modification would be to replace the OS's native applications like notepad, mspaint, task manager and so on. Most modern OS's also come with the ability to customize colors, fonts, size and much more without having to modify anything else than configuration files, registery values or other forms of configuration data. If you want to modify the OS kernel/core on the other hand, this will require a great deal of skill and experience depending on what you want to accomplish. And like proxx said, Microsoft Windows is precompiled and installed as binary files and has a closed source code. The only way to modify the windows kernel is by reversing it and modifying it that way. Unix/Linux on the other hand can be modified as much as you want in the source code and compiled.
Anything open source, like Linux, are most of the time licensed under so called open source licenses and will most of the time not get you in any trouble when modifying things. However, I am sure Microsoft dosent want you to poke around in their stuff. But then again, who gives a shit.
'Fully renovate an OS' is an ambiguous term. Again, what do you want to modify and why?
As for languages needed or presented in OS's: Assembly, C, C++, .NET (Windows) and its probably a good idea to know bash, batch (windows) and powershell.
Final words: Dont reinvent the wheel. And start small.