Hello!
#1
Posted 03 January 2008 - 07:06 PM
My name is Alex Ionescu and I was invited by Nuno to join this awesome community, something that I've been wanting to do on my own for some time!
My interests in Windows are probably well-known by most of you so I'll stick to boot stuff, which I haven't usually talked about:
- I've always been obsessed with code size, started out by writing guides on how to make tiny VB programs, making the smallest possible PE files in assembly, finding the best compiler optimization switches to make tiny C code, finding the best file packer tools, etc.
- As an extension to that, I've also always really wanted a tiny OS -- my first experiments started with the Mini95 (I believe that was the name) .cab file that came on the Win95 Setup CD, which was the tiny Windows 95 setup interface and drivers that loaded when you installed Windows.
- More recently, I started a project called TinyKRNL to re-implement the Windows 2003 core and make an OS bootable until "native" mode (no GUI, no Win32). It was based on reverse engineering and ReactOS, and used actual win2k3 files while their equivalents were being reversed. The project is now shut down, but a tool that remained is the Native CLI (command line interface) which I wrote, a very bare-bones equivalent of the DOS command line, but written so that the kernel can execute it as a user-mode native program. I've seen this binary re-released on another forum, saw lots of people were interested, and I'm about to re-release the source code for it (the latest).
(If you don't know about my other background (ReactOS/Kernel Development), feel free to Google my name)
Anyways, I'm excited to see other people interested in some of the same things, and although I'm extremely busy these days, hopefully I can find some time to snoop around these forums once in a while! My blog address is http://www.alex-ionescu.com and as for the NCLI, I'll post a thread on that once I'm ready...
Thanks again to Nuno for inviting me
#2
Posted 03 January 2008 - 08:00 PM
jaclaz
#3
Posted 04 January 2008 - 02:08 AM
#4
Posted 05 January 2008 - 02:29 PM
Here are the couple of things I'd like to work on (with my schedule, please realize progress could be erratic -- weeks of silence, days of coding).
1) Boot to NCLI - AeroXP seems to have been doing a good job with the environment itself, I want to work on my NCLI itself which has the ability to befome a much better tool than the recovery console (the console is a hacked up, closed source smss that uses a special driver to do screen output, the NCLI is something everyone can work on and much easier to improve).
Towards this goal, two related projects of mine will be useful -- the NDK (Native Development Kit) which is a set of headers allowing the proper building of native apps... this is 99% completed and used by ReactOS so it's tested, and the NDL, the Native Development Library, which I started working on months ago but never finished.
The idea behind the NDL is to hide some of the more complex native APIs away, and to provide a wrapper library around some of them. This would include memory functions, thread/process functions, screen output and keyboard input, etc. Maybe even sound and networking in the future. My knowledge of AFD.sys and PortCls.sys internals means we could be playing music or serving FTP files from the NCLI, one day
2) Boot to Win32 - The idea here is to boot to a real cmd.exe, with the least amount of DLLs and apps required. I'd like to see just smss, csrss, winsrv, basesrv and kernel32, user32, gdi32 and advapi32 for now. I'm not sure if anyone has already done this (no Winlogon -- it brings in way too many DLLs), and I do believe it may required some modified DLLs to work. Instead of Winlogon, an equivalent of WinInit.exe would be required to finish setting up the last parts of user-mode (Winlogon doesn't only do logon, it also handles the current control set, finishes initializing the registry, and sets up some Win32k stuff).
My main priority will be the development of #1, since that provides the smallest (yet functional, with enough coding in NCLI) NT environment. I was doing some experiments last year where I even managed to get a native app to display a window on the screen, this is without csrss, user32, gdi32 or any other user-mode DLL.
#5
Posted 05 January 2008 - 03:57 PM
2) Boot to Win32 - The idea here is to boot to a real cmd.exe, with the least amount of DLLs and apps required. I'd like to see just smss, csrss, winsrv, basesrv and kernel32, user32, gdi32 and advapi32 for now. I'm not sure if anyone has already done this (no Winlogon -- it brings in way too many DLLs), and I do believe it may required some modified DLLs to work. Instead of Winlogon, an equivalent of WinInit.exe would be required to finish setting up the last parts of user-mode (Winlogon doesn't only do logon, it also handles the current control set, finishes initializing the registry, and sets up some Win32k stuff).
Dietmar just accomplished something like that:
http://www.boot-land...?...ic=3717&hl=
It's in a VERY EARLY preliminary stage, but it's a start.
Have you got any idea for a minlogon replacement?
Is there a way to modify ReactOS winlogon into a minlogon?
jaclaz
#6
Posted 05 January 2008 - 04:12 PM
Dietmar just accomplished something like that:
http://www.boot-land...?...ic=3717&hl=
It's in a VERY EARLY preliminary stage, but it's a start.
Have you got any idea for a minlogon replacement?
Is there a way to modify ReactOS winlogon into a minlogon?
jaclaz
No, ReactOS has a full-blown WinLogon alternative, that won't work in Windows, and isn't fully complete (but does more than what it should). It would have to be coded by hand.
I looked at the file list...it's a great start, but I was thinking to have a lot less files than that (like I said, it probably requires modified files).
#7
Posted 05 January 2008 - 05:02 PM
My main priority will be the development of #1, since that provides the smallest (yet functional, with enough coding in NCLI) NT environment. I was doing some experiments last year where I even managed to get a native app to display a window on the screen, this is without csrss, user32, gdi32 or any other user-mode DLL.
Very interesting... Can I see a screenshot?
#8
Posted 05 January 2008 - 09:33 PM
Very welcome here!
I think you can become an enhancement of this forum!
Peter
BTW: This 'welcome' is rather egoistic!
Currently I'm trying to go into the secrets of native API / ntdll.dll. I also looked into soucefourge's tinyKernel. But unfortunatelly the CVS did not lead to any source
Maybe you can help me in my nativeEx_BSOR project to give me enough knowledge to write an smss.exe as menu for different final apps.
#9
Posted 12 January 2008 - 02:37 AM
@Alex
Very welcome here!
I think you can become an enhancement of this forum!
Peter
BTW: This 'welcome' is rather egoistic!
Currently I'm trying to go into the secrets of native API / ntdll.dll. I also looked into soucefourge's tinyKernel. But unfortunatelly the CVS did not lead to any source
Maybe you can help me in my nativeEx_BSOR project to give me enough knowledge to write an smss.exe as menu for different final apps.
Hmm, why is egoistic?
TinyKRNL is gone, what remains will be replaced by NCLI. Your idea about a menu is really great, perhaps that should be the initial smss.exe, and use the NCLI's "Execute another program" code to run different programs. I will try working on that this weekend.
I'm thinking of using Google Code as a repository, and having an SVN server... I just finished teaching this week so I'll start on this right now.
Aeroxp: I'll get a screenshot for you when I can find my code again -- shouldn't take too long!
#10
Posted 12 January 2008 - 04:40 AM
#11
Posted 12 January 2008 - 07:51 AM
Also wanted to mention that you probably wont see a response from Nuno untill later in in mid-February. He is off to finish some of his studies.
http://www.boot-land...-out-t3656.html
#12
Posted 12 January 2008 - 08:05 AM
PS:NCLI seems not open source.
#13
Posted 13 January 2008 - 04:58 AM
haha,Alex
PS:NCLI seems not open source.
http://code.google.c...ive-nt-toolkit/ is where I will upload everything and manage the project from. It will be GPL 2.0.
Here's that picture you asked for, aero... I realize it's not much but it works
#14
Posted 13 January 2008 - 05:19 AM
Awesome!
#15
Posted 13 January 2008 - 08:13 AM
http://code.google.c...ive-nt-toolkit/ is where I will upload everything and manage the project from. It will be GPL 2.0.
Here's that picture you asked for, aero... I realize it's not much but it works
Well done!!
#16
Posted 20 January 2008 - 11:16 AM
Another romanian on the forum
Welcome, Alex !
#17
Posted 01 June 2017 - 03:09 PM
Hi all,
I want to program a native executable. Maybe with native-nt-toolkit : https://code.google....ive-nt-toolkit/
But the project is down ? It is juste possible to download NDK.zip where is NDL.zip ? and SAMPLE ?
Where can i download a full version ? or a similar tool kit ?
Thanks !!!
#18
Posted 01 June 2017 - 06:10 PM
cool
best regards
Blacky
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users