On Jul 30, 2009, at 12:49 AM, James Tabor wrote:
If I'm not mistaken, we already imported wine code at the beginning
did we not? I'm looking at the commit logs and it does look we
started with wine. We need to keep it separated before it is too late.
Oh it's already too late. Ah, we missed that one.
On Wed, Jul 29, 2009 at 1:10 PM, Ged<gedmurphy@gmail.com> wrote:
Current win32 subsystem progress is too slow. We need something
now before
it's too late.
One of the main things that's holing us back and stopping new devs
from
getting involved is out lack of compatibility and stability.
Good reason to keep it separated.
That's what being suggested. However Alex said a different opinion,
that the rewrite could happen in-place. But apriori that takes more
effort, because one needs to take into account compatibility, prevent
breakages (Jim knows how hard it is).
Ripping our win32k out from trunk will not help with it's development.
Do you think we will get more developers that say "yay there's 2 win32
subsystems, that's exactly what I was looking for"? Ripping it apart
won't help. And if there's something that can break trunk, we can do it
in a temprary branch and merge it back as soon as it's ready and
tested. Proper testing is obligatory. But how do you expect probems to
be detected when you don't even have that code in trunk? How do you
expect people will fix bugs in it when the code is somewhere outside
trunk? Please stop telling it's an advantage for win32k devs, cause
it's not.
Though still I don't see what a "proper" win32 subsystem architecture
means. I know the crystal clear, well thought through, not changed
much over years design of an NT kernel. But with win32 subsystem,
there is no such crystal clearness.
Timo, James - please, tell me your opinions about that. So far, the
only "proper" things from a real win32 subsystem are the win32k
syscall interface (ros still uses its own variant of it, with similar
function names, but different parameters, etc - but that's what being
fixed) and internal structures documented by Timo (great work indeed).
It's fine so far, but having NT API and NDK is not all what's needed
to build a good and proper kernel. There is something called internal
architecture. What do we have of a proper internal architecture in
gdi32, user32 and win32k.sys now in trunk?
P.S. no flamewars please, those are fully valid question, fully
serious, and no offence to anyone is intended.
There's a lot more. The structures and syscall interfaces are just the
bottom. You can use the syscall interfaces for native api testing to
make sure you know what is the kernel's part is and what is gdi/user's
part. Then you can use the structures together with WinDbg and memory
dumps and back traces to do very detailed analysis of the inner
workings of functions without disassembling anything. It tells you
where objects are allcoated from, where objects come from and where
they point to. Looking at the symbol names tells you a great detail of
the inner workings, too. I have added backtraces from font drivers to
the wiki. That probably tells you more about the internal font driver
architecture than all books. Combine all these methods and you get a
lot more detailed knowledge about the inner architecture. The rest is
reasoning and extrapolation.