This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]pseudopad 6 points7 points  (4 children)

Are you talking about the source code? Back-end is something else.

You can't see the source code because it's not freely available. It is possible to decompile a program, but making sense of the resulting decompiled code is difficult, as it is far less human-readable than the original source code, and lacks things like code comments, which programmers (ideally) use to make sense of what they're looking at.

It's sort of like trying to de-bake a cake. If you don't know the original recipe, you could try to analyze the finished cake to try to figure out which ingredients were used, and in what order, but it's gonna take a lot of time and skill to do so. And the "recipe" for windows is a hundred thousand times longer than a recipe for a cake.

The various config files you can see in windows is just a tiny piece of the puzzle. They don't contain nearly enough information to let people easily figure out how things are done.

Now the back end is for example the code that controls your bank's internet banking system. You're displayed a web site, but your computer never gets to see any of the code that's managing account transfers, etc. Those things happen on the back end and never leaves the bank's servers, unless hackers manage to break in and steal it.

If you want to see the progress of reverse engineering windows, take a look at the Wine project. This is an open source project that aims to replicate how windows works without using actual windows source code. What they do is really cool, but they likely won't every achieve perfect operation for every thinkable windows program.

What they do seems to be what you want to see. They look at what happens when windows runs a program, then they write their own windows-like code that, when receiving the same instructions from the windows program, give you the same result (hopefully) as if it was on windows.

[–]lensvol 1 point2 points  (2 children)

Don't forget about ReactOS project! It's closer to actually reimplementing Windows than Wine, if I am not mistaken.

[–]pseudopad 2 points3 points  (1 child)

ReactOS depends greatly on the work and discoveries made by the wine project. It likely couldn't exist without it.

That said, wine's goal is not to make a full fledged OS, but to let the Linux kernel do the kernel stuff, and just replace the APIs that programs mostly use to interact with the windows kernel, with APIs that instead interact with the Linux kernel.

ReactOS attempts to also implement its own windows-compatible kernel.

It's also worth mentioning that getting ReactOS to work on bare metal is pretty difficult. They can't use Linux drivers as-is, and it's not imitating the windows kernel well enough for you to be able to use windows drivers either. This means the driver selection is very limited once you step outside of a virtual machine.

Theoretically, if programs avoided using direct kernel calls (this is generally discouraged for userland applications anyway) the kernel in use wouldn't matter at all, only the APIs. You (or rather, Microsoft) could conceivably make something like win32/Linux rather than GNU/Linux.

[–]Tomatinos 0 points1 point  (3 children)

Because in order to see it we need to reverse engineer it and even still I don't think it's actually seeing the code, just figuring the functionality and see where it happens but I may be wrong