Page 1 of 1

Network OS C++

Posted: Tue Mar 15, 2011 1:54 pm
by Wolftein
I had an idea two days ago, i don't know if it's a good one or not.

1 Step)

Loader Load Kernel Template (Kernel.bin) From (HD, Floppy, ETC)
Loader Load Basic Filesystem, Basic Memory Manager, Basic Network Driver From (HD, Floppy, ETC)

2 Step)

Kernel -> Gather system information. (Arch, Policies, Etc)
Kernel -> Connect To The Main Site(Internet) -> Download Each Kernel Module for the system.
Kernel -> Load each Module(Driver) from the Main Site.
Kernel Optional -> we cache the modules in the HD.
Kernel -> Start the kernel.

-----------------------------------------
Kernel.bin is coded in C++ with interfaces for the modules.
Example of a Module.

Code: Select all

class MemoryManager : public Module
{
    bool isVirtualPresent() = 0;
    bool allocatePhysical( void* buffer, unsigned long length ) = 0;
    ....
};
Example of a Kernel Main.

Code: Select all

main()
{
   MemoryManager* SystemMM; // This pointer will be valid after the Module is loaded
   
   SystemMM->allocatePhysical(...);
}

Re: Network OS C++

Posted: Tue Mar 15, 2011 2:49 pm
by Wolftein
berkus wrote:And this achieves what exactly?

Superlong startup times? Failure to start if no internets available? Or?

Enlighten me.
1 ) Automatic Updates of the Modules before the system start.
2 ) Automatic choose best policies and best module for the current system.
3 ) Not need to recompile all the kernel for each arch.
4 ) Can fit in a small device with limitations. By doing step 2
5 ) Easy to mantain and debug.
6 ) Not need to copy the entire os for each device. just need to copy the loader and base kernel.
7 ) The entire loader and kernel can fit inside an floppy or any device. Then after it boots can be copy into the HD and all the modules can be copy too.
8 ) Can keep tracks of device that boot with the OS.
9 ) Also you can add a login and password or an Serial Key, and if the (Login, Serial Key or Password) is already in or is invalid, the System will fail booting. (Not download the modules)

Re: Network OS C++

Posted: Tue Mar 15, 2011 3:43 pm
by Tosi
Wolftein wrote: 1 ) Automatic Updates of the Modules before the system start.
Can be done at startup, once networking is initialized, separately from downloading each module. That way you only have to update modules that have changed since the last boot, saving bandwidth.
2 ) Automatic choose best policies and best module for the current system.
Can either be determined at compile time, or at boot time without needing to connect to the internet.
3 ) Not need to recompile all the kernel for each arch.
Somebody has to compile it for each architecture, and store it on their webpage.
4 ) Can fit in a small device with limitations. By doing step 2
The entire kernel, modules, and drivers still need to fit in RAM at least.
5 ) Easy to mantain and debug.
This sounds like a nightmare to debug to me, especially since you can't be sure if the host system will even have networking.
6 ) Not need to copy the entire os for each device. just need to copy the loader and base kernel.
Yeah, you will be copying the entire OS every boot time instead of just once.
7 ) The entire loader and kernel can fit inside an floppy or any device. Then after it boots can be copy into the HD and all the modules can be copy too.
Why try and fit the kernel into a floppy disk if a hard drive is already present?
8 ) Can keep tracks of device that boot with the OS.
You can do this already, the BIOS tells you the boot device.
9 ) Also you can add a login and password or an Serial Key, and if the (Login, Serial Key or Password) is already in or is invalid, the System will fail booting. (Not download the modules)
You could do this without networking.

Almost all of this could be done without requiring the user to connect to the internet and download a huge amount of files on every boot.

Re: Network OS C++

Posted: Thu Mar 17, 2011 5:45 am
by jal
Wolftein wrote:I had an idea two days ago, i don't know if it's a good one or not.
Ever heard of PXE?


JAL