Page 1 of 3

A New Direction

Posted: Tue Jun 05, 2007 8:28 am
by Alex_Ionescu
It is with great excitement (and a certain amount of nostalgia) that I would like to announce two important changes in my professional life and in the direction in which I will pursue my knowledge and work on Windows Internals. The first of these changes is my debut as an instructor for David Solomon's Expert Seminars, and the second is my departure from ReactOS, effective immediately. These plans do not change in any way my internship at Apple which will take place during the summer.

Some time ago, I had the great privilege of being approached by David Solomon, a well-known and highly regarded computer expert, teacher, consultant and co-author of Windows Internals 4th Edition (and Inside Windows 2000, 3rd Edition). For the last couple of years, David had been working with Mark Russinovich, another respected figure in the world of Windows Internals, and co-founder of Winternals and Sysinternals as well as developer of some of the most useful Windows system tools available today. Apart from working on the two books (which Mark was a co-author of), they both provided trainings and seminars on Windows internals under the "David Solomon Expert Seminars" banner. As is widely known, Microsoft realized that Mark's experience and amazing work on the NT platform through his articles and tools could provide a highly beneficial new addition to the company. The company bought Winternals last year, and hired Mark at the highest technical level in the company, Technical Fellow.

All this is history of course, and back to the matter at hand, Mark's recent new employment made him unavailable for teaching new classes, which made David Solomon start the search for a new instructor which could take on the responsibility of teaching new classes. I was highly honoured to have been chosen as this person, and accepted this unique opportunity to bring my knowledge out to many more people and to work with one of my most admired Windows experts.

With this new job as an added task on top of my already busy life, as well as with the imminent Apple internship, I was already planning to cut back on my involvement with ReactOS. However, since it became clear that my level of contact with Microsoft employees and resources would be in conflict with my work at ReactOS, I made the difficult choice of amicably severing my ties with the project. This decision took some time for me to finalize, but the various motivations behind it had started cropping up since early this year.

When I first joined ReactOS 3 years ago, the kernel was – in my opinion – highly disorganized and hodgepodge of Linux, NT 4, Wine and Windows 9x code which was very far from its actual goal of NT Driver compatibility. In fact, the development model seemed to focus on hacking NT drivers to work on ReactOS, and not vice-versa. Coincidentally, I joined the project just as the lead kernel developer, David Welch, had just burnt out and moved to other projects and goals. For the last three years, I rewrote key subsystems such as the thread scheduler, dispatcher, locking and IRQL mechanisms, HAL, executive support, object manager, process manager, I/O manager, basic VDM and 8086 support, and much more, as well as switched the project goals from NT4 to NT 5.2.

My ability to do this came from my extensive reverse engineering of the kernel in the past, reading internals books, access to the DDK/IFS, as well as using WinDBG and .pdb type information. In return for all the code and guidance I provided, the project gave me a lot in return as well, including a unique perspective of working on such a project, the ability to work in large and distributed teams, and using open source tools for Windows NT kernel development. With millions of lines of code, ReactOS is the kind of project that an 18 year old could've only dreamt work ing on. I became adept in source control repositories, regression testing, unit testing, team management, IRC administration, as well as a much better coder in C. I also made friendships of all levels with various developers, testers and users, and had a chance to mentor two students during last year's Google Summer of Code. I was able to attend and give talks on ReactOS, exhibit it, and make connections with other people in the industry, and in the open source world. Overall, it's been an exhilarating adventure.

After three years however, and with the many new responsibilities that had kept growing, my free time grew short. Additionally, my work in the kernel had almost reached completion. The parts that still need major work, in my opinion, require extremely skilled developers in those areas to ever be as close to NT as needed. They are also some of the most critical: the memory manager, the cache manager, the Power/PnP Manager, the configuration manager and the file system runtime library. With the current differences that exist, most modern WDM drivers as well as IFS drivers can only dream of running properly. Unfortunately, my knowledge in those areas was limited. I had never reverse engineered them as extensively as parts of the executive, and documentation on their guts is limited. In all honesty, they're also not parts of the system that interest me much. I could, of course, have continued working on user-mode parts of the system where my help would still bring a lot of the system forward, such as ntdll, csrss, smss, winsock and kernel32, but my interest in teaching with David Solomon and getting in touch with the developers behind NT outweighed that desire.

After three years, I learned a tremendous amount of knowledge and skills while working on ReactOS, now the time has come for me to learn even more by expanding my horizons. In many ways, I had already outgrown the project, focusing more on security research, utilities and tools, articles and non-ReactOS related talks and conferences. It was time for me to step outside and take on a new opportunity with a larger audience and which would bring me many new experiences and teachings. I wish the ReactOS Project all the luck and I know that some significant new changes are on the horizon for them. I will keep watching from a distance, and I thank them for the most fun years of my life.

Posted: Tue Jun 05, 2007 8:54 am
by dreams
Good luck with the new things you are going to do, and many thanks for your work on ReactOS.

Posted: Tue Jun 05, 2007 9:02 am
by EmuandCo
Good luck and have fun :-) Thanks for everything you've done for ROS.

P.S: Perhaps you should comment the Future of TinyKRNL too. I was asked 3-4 times already if its dead or not.

Posted: Tue Jun 05, 2007 10:46 am
by Phalanx
ReactOS is loosing one of it's biggest assets! Thanks for all the work, I hope you find great success in what you do. Who knows, maybe you might end up writing a few documentations on the lacking areas which become very useful *hint* *hint* ;)

Posted: Tue Jun 05, 2007 11:57 am
by NOX86
Good luck. :)

Posted: Tue Jun 05, 2007 12:11 pm
by Lolo
What a sad news Alex... ReactOS is loosing his lead kernel developper :cry:

Now I hope and wish you the best for your future :wink:

Posted: Tue Jun 05, 2007 12:45 pm
by Headstrong
Thanks for your great work Alex

Good Luck

Posted: Tue Jun 05, 2007 12:47 pm
by gabrielilardi
Thanks for all you've done, good luck and keep on dancing!

PS: What about tinykrnl project?

Posted: Tue Jun 05, 2007 4:11 pm
by Haos
As you can read in his post, Alex did what he wanted to do here. Dont be amazed about his leave. He did what he knew best, did it well, and we should thank him for that. Now we can keep up with our work and Alex can pursue his career plans.

I think he said that he`ll stay back with Tinykrnl.

Posted: Tue Jun 05, 2007 4:16 pm
by geertvdijk
It's a shame to see you going... Good luck with your new plans though :)
And please do drop by the forums now and then :D

Posted: Tue Jun 05, 2007 5:20 pm
by Dark SavanT
Good Luck Alex. You are great man :)

Preved from Russia :)

Posted: Tue Jun 05, 2007 9:49 pm
by cmoibenlepro
That's very bad news... The departure of the lead kernel developer and one of the most active member of the developing team will most probably have a terrible negative impact on ReactOS project. Only God knows what will happen without you and if the project will survive and restart to grow as it was before... :cry:

Thanks for all what you done. And I give you all my wishes of good luck in your new projects and your internship.

Posted: Tue Jun 05, 2007 11:14 pm
by Haos
@cmoibenlepro

ReactOS existed before Alex and will exist after his departure.
It would be great if you at least tried to read his post and understand it.

He clearly stated that he had rewritten those parts of kernel that suited his interests, also said that the remaining parts still required someone else, with detailed knowledge in those parts of NT kernel. Ofc Alex is a talented developper and we could use more of him, but:

THIS IS NOT A TRAGEDY. DO NOT ATTEMPT TO MAKE IT UP AS ONE!

This project always depended on a GROUP of developpers, by making such tragedy of Alex departure, you are directly offending the others.

So if you cant understand what you read, at least try to have some tact...

Posted: Tue Jun 05, 2007 11:22 pm
by Alex_Ionescu
I don't know about that. When a soldier dies, I think the US Army considers it to be a tragedy, even though the mission depends on the entire platoon. And when a soldier deserts, there's usually a great emphasis on finding and shooting/arresting him, even though he may have deserted from an entire batallion.

I don't think downplaying my departure is something you really want to do at this point, but that's up to you :)

Just my 2 cents.

Posted: Tue Jun 05, 2007 11:27 pm
by Haos
This is not the issue of downplaying.

I would rather call it: neutralising the unnecessary up-playing.