HELP: Books for self education?

All development related issues welcome

Moderator: Moderator Team

Post Reply
GeorgeTheMad
Posts: 4
Joined: Sat Sep 16, 2006 11:32 pm

HELP: Books for self education?

Post by GeorgeTheMad »

This massage is for the developers of ReactOS.

Can you tell me, which kind of education do I need to participate in coding ReactOS? I have been programming in standard C for 4 years now, but I suppose there is much more one has to learn before jumping into OS coding.

It would be great to have a list of books, links and other resources for self education (maybe a page on the wiki in the future?). That would be very useful for any newbie.

Thank you for your help!

Harteex
Posts: 224
Joined: Fri Nov 26, 2004 9:21 pm
Location: Sweden
Contact:

Post by Harteex »

I'm not a dev but afaik Windows Internals is a good book.
http://www.amazon.com/Microsoft-Windows ... F8&s=books

Though, you might be able to help anyway, with other areas of ROS.

GeorgeTheMad
Posts: 4
Joined: Sat Sep 16, 2006 11:32 pm

Books

Post by GeorgeTheMad »

I've found http://www.reactos.org/wiki/index.php/Suggested_Reading but what about books on reverse engineering?

Ged
Developer
Posts: 925
Joined: Thu Sep 29, 2005 3:00 pm
Location: UK

Post by Ged »

reverse engineering is not encouraged.
In fact, if you reverse a Windows component, you are then banned from directly working on that component in ReactOS.

You must implement components by reading external sources of information (e.g. Windows Internals or probert) and writing test cases.

If you do reverse a component, you can write documentation of your findings, which another dev can then use to implement the said component. This is known as 'clean room' reverse engineering, which is the _only_ acceptable form.

GeorgeTheMad
Posts: 4
Joined: Sat Sep 16, 2006 11:32 pm

Reversing

Post by GeorgeTheMad »

I know, its illegal to steal code directly from reversing.

But what's the problem with understanding and re-implementing something?
Why is it better if its done by two persons rather than one.

GeorgeTheMad
Posts: 4
Joined: Sat Sep 16, 2006 11:32 pm

Reversing

Post by GeorgeTheMad »

Maybe its to ensure there is absolutely no stolen code?

Ged
Developer
Posts: 925
Joined: Thu Sep 29, 2005 3:00 pm
Location: UK

Post by Ged »

if you directly view the asm, you're classed as being tainted.

oiaohm
Posts: 1322
Joined: Sun Dec 12, 2004 8:40 am

Post by oiaohm »

Ok Legal status on this gets a bit warped.

Depend on where you are in the world depend on what is legal or illegal.

This is where it gets warped.

Some countrys clearly define that all reversing has be done threw clean room others don't. Clean room is the two person method.

Disasm and rebuilding the new code by one programmer is permited in some countrys. This is not a good method. It too hard to prove that the code is not tainted.

Tainted code is illegal if permission is not given for reversing or licence permits reversing or recovery. Tainting normally happens when coder think they are having a bright idea and insert a asm section exactly the same as they have seen. No matter how good of a coder. Any Coder can make this mistake. Any coder who thinks they will not make this mistake is not being trueful to themselfs and risk getting them into trouble.

Ie single person disasm of a GPL program that the source code is lost for some reason would be perfectly legal in most countrys. It is not always Illegal. For the case of reactos. Reactos does not have permission from Microsoft to reverse. So what Reactos developers can do is limited without taking risks.

Also if there is only one good way to do something and it requires asm. You can be stuck too. Because you cannot copy. Without the permissions.

Basicly a one person disasm and rebuild has many risks that can cause legal problems.

Two person the coder is free to do what is required bar look at the asm at any time. The disasmbling person has rules. The disasmbler is responisable to keep the coder as arms lenth from the asm. Ie the documentation cannot have code snippets in it say this is how the function is. All code has to be test cases produced by the disasmbler. So the disasmbler still gets to code. Just not for the active part.

Note that Microsoft allowing Windows code to be in books is a good way of tainting all coders.

Please only reverse when required. No point reversing a section if docs are good enough or tests cases can solve the problems. Its only locking a coder out from doing something useful.

Test case method is classed as black boxing.

Any one person can use the black boxing method. black boxing is where you build test cases look at resualts and try to guess what is going on inside.

Black boxing is slower than asm reversing at times. But if you cannot find another programmer and don't have legal permission to disasm. Black boxing is completely safe.

Now the Audit is just making sure everything is documented correctly and above board. It also being a great problem finder.

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 0 guests