I absolutely support this approach. I've actually been advocating this
half a year ago.
You can develop the individual layers / components more independently.
Prerequisite is a stable and complete interface between the layers. Then
breaking one component doesn't neccessarily mean breaking the whole.
More developers will also make more noise. Recompiling the whole OS due
to a small fix in some user mode app seems to be an archaic method. The
build times won't decrease and the number of commits per day (hopefully)
also won't decrease. A layered structure also in the sources would help
to decrease build times and avoid breakages or at least make them less
fatal.
"make ntdll_clean" + "make bootcd" ...Will lead to a relink of all
usermode stuff. Did someone change the ntdll exports? Probably not.
Can I exclude all dlls from build? No way. The apps require the import
libs. Exclude all apps? No, some dlls require explorer to be built.
I highly suggest seperating the import libraries from the dlls and keep
them in a seperate sdk. That would be the first step of unlinking the
modules.
The sdk should only be modifies very conservatively, because it can
cause full rebuilds.
Then a seperation in layers / components would be great. The core (like
MinWin), the win32 core, Highlevel dlls, networking, audio, tools.
Just my 1st 2 cents
Timo
PS: yes, kjk, I know it won't work ;-)