Websites, mobile apps, desktop apps and mobile OSes are developed and updated using the desktop OSes, which I would call the ‘master OS’. But who updates the ‘master’? How do the devs upgrade Windows 10 to Windows 11 using Windows 10?
I have some experience in computing but software development for operating systems is completely mysterious for me. I have had this question ever since I learned about software development in general.
I saw Apple say how they use the Macs to build all of their other products and softwares, but they never answer how they build macOS itself. I understand how these companies could design an upgraded or a brand new computer by designing its new architecture as well as the circuitry and the components underneath with the help of a program like CAD. What I don’t understand is how they upgrade their existing software they themselves work in, especially when it has completely new features the old one doesn’t have. I feel like this is similar to a person performing a brain surgery on himself.
I would really appreciate if someone could ELI5 but only dumb it down enough for a person that understands how to really work with computers and knows the general theory of programming , like an amateur or the family IT guy.
Microsoft at least used to famously “eat your own dog food “ during development of new Windows versions. This means that the developers themselves had to install the latest build and then use that while continuing development. This could lead to longer delays when crucial parts didn’t work.
AFAIK this trend started with David Cutler (legendary developer) and the development of the original Windows NT. You still need a fair bit of building blocks developed individually before you have something large enough to assembly to a build.
In those days, they sat mostly on OS/2 while developing parts for the kernel and boot system etc. Then some specifically precarious items to roll into the build and have everyone start using was networking, file system, and graphical interface. Bugs here hampered everyone (like, how do you create a new build of windows with new parts when networking / sharing files doesn’t work?).
Today I’ll imagine more development is performed on VMs so that it’s much less noisy when stuff doesn’t work. I’m sure at lot of developers still willingly or not install the version they are working on. However, it will probably be a little later with more working parts, and not updating every day etc.