I have developed a real os with Linux kernal and wanted to share my bitter experiences while making it so here are the basic guidelines on how to build a good Os or Virtual Machine*(that scratch oses Are).
So here is the basic Skeleton for an OS
Using this Skeleton you can.
►Make screensavers*(here is an example http://scratch.mit.edu/projects/fanofcena/868102 totally RANDOM)
►Make your Os applications unique then other OSes
►Save files and changes in an Os
►Make a faster os
►In future convert it to real os easily.
☺
Now each and every os performs a basic task that is to Act as a resource manager b/w Processor,other Hardware with Software. As if u have heard about Windows it supports many basic functions related to Hardware management like position of mouse etc. from Gods sake we have Basic Processor Manager integrated in Scratch so thats not your paining bone unless u are making something too huge . But if you are do some things like Making an array of what processes (threads ) to run in which order and giving the programmer to control the behavior of this like giving a priority control to the programmer i know it sounds too tough but once done it finally makes the OS very fast.
Basic functions as mouse pos are integrated in scratch but in an os you will need many more fast running functions then this like Killprocess<> etc so i advice you to try building an OS rather on BYOB then Scratch as a virtual machine has limited resources the BYOB compiled .exe can act as a good os and due to its fast Atomic Blocks the OS runs seemless.But as BYOB cannot save projects (changed in presentation mode )you will have to complexly program basic functions for the Programmer to make use of them (i am leaving on you how you do this)
In Jarvis (my os i made with my brother) i had gone through many problems.(It dosent have Drivers yet Runs on VGA but with Nice graphs) like making it Realtime processing making it managble and the biggest Problem was Memory allocation.
Now scratchs benifit that it is too great to process the bulk on its own but its always favorable for a scratch maker to make a list of processes running like the windows task manager this could be done by making a simple array and showing it when asked too easy for Os maker this actually helps when u are making a multitasking os and something is bugging now(plz god dont do this) it hangs u will have to restart the whole OS to repair the problem and you cannot still DEBUG it it would be b8r if a top priority process over these processes was their that can kill processes.In order to Debug.
Saving and Insallation
as per installation is concerned its too easy just by making an array of installed application and assigning a rule for broadcast to run the application.
BUT WHAT DO YOU DO IF YOU HAVE TO SAVE THE DATA that is also easy make an array called DISK DRIVE now you will have to learn some basics on memory allocation like contiguous, non contiguous memory etc . For simplicity i am taking the contiguous memory case,
Declare an Array called saved files in the first column thier should be the name of file the second for location start in Disk Drive array and final will be the location end in Disk Drive array like
In List FILES.
ABC.txt
35
39
in List Disk drive
...0.....21
...
35.This
36.is
37.an
38.Example
39.for_save_files
....
...
now this saves a file of .txt format saved in 4 memory locations as the scratch arrays are 2 dimensional it could save a lot of information .
To save data u can write.
Add <Filename.fileextension> to Files
Add(lengthofDiskDrive+1)to Files
|| add the whole data to Drive \\ leaving on you how to do this
Add(lengthofDiskDrive)toFiles
Tada ur saving file is done the same can be used for a full fledged software and a lot of thing .
as for the softwares configuration the software can write a file called *.cfg unique for every software
And using highly complicated systems you can make folders for that you will require to add the file location to the Files list.
Like
Add <Filename.fileextension> to Files
Add<fileLocation>to files\\ this could be made by you
Add(lengthofDiskDrive+1)to Files
|| add the whole data to Drive \\ leaving on you how to do this
Add(lengthofDiskDrive)toFiles
Best of luck creating your os
For further quieries on OS contact me here.
IF you make an os on this skeleton please just add a tag JARVIS skeleton in the project
Last edited by fanofcena (2010-01-31 09:47:17)
Offline
fanofcena wrote:
I have developed a real os with Linux kernal and wanted to share my bitter experiences while making it so here are the basic guidelines on how to build a good Os or Virtual Machine*(that scratch oses Are).
So here is the basic Skeleton for an OS
Using this Skeleton you can.
►Make screensavers*(i am uploading a cross os)
►Make your Os applications unique then other OSes
►Save files and changes in an Os
►Make a faster os
►In future convert it to real os easily.
☺
Now each and every os performs a basic task that is to Act as a resource manager b/w Processor,other Hardware with Software. As if u have heard about Windows it supports many basic functions related to Hardware management like position of mouse etc. from Gods sake we have Basic Processor Manager integrated in Scratch so thats not your paining bone unless u are making something too huge . But if you are do some things like Making an array of what processes (threads ) to run in which order and giving the programmer to control the behavior of this like giving a priority control to the programmer i know it sounds too tough but once done it finally makes the OS very fast.
Basic functions as mouse pos are integrated in scratch but in an os you will need many more fast running functions then this like Killprocess<> etc so i advice you to try building an OS rather on BYOB then Scratch as a virtual machine has limited resources the BYOB compiled .exe can act as a good os and due to its fast Atomic Blocks the OS runs seemless.But as BYOB cannot save projects (changed in presentation mode )you will have to complexly program basic functions for the Programmer to make use of them (i am leaving on you how you do this)
In Jarvis (my os i made with my brother) i had gone through many problems.(It dosent have Drivers yet Runs on VGA but with Nice graphs) like making it Realtime processing making it managble and the biggest Problem was Memory allocation.
Now scratchs benifit that it is too great to process the bulk on its own but its always favorable for a scratch maker to make a list of processes running like the windows task manager this could be done by making a simple array and showing it when asked too easy for Os maker this actually helps when u are making a multitasking os and something is bugging now(plz god dont do this) it hangs u will have to restart the whole OS to repair the problem and you cannot still DEBUG it it would be b8r if a top priority process over these processes was their that can kill processes.In order to Debug.
Saving and Insallation
as per installation is concerned its too easy just by making an array of installed application and assigning a rule for broadcast to run the application.
BUT WHAT DO YOU DO IF YOU HAVE TO SAVE THE DATA that is also easy make an array called DISK DRIVE now you will have to learn some basics on memory allocation like contiguous, non contiguous memory etc . For simplicity i am taking the contiguous memory case,
Declare an Array called saved files in the first column thier should be the name of file the second for location start in Disk Drive array and final will be the location end in Disk Drive array like
In List FILES.
ABC.txt
35
39
in List Disk drive
...0.....21
...
35.This
36.is
37.an
38.Example
39.for_save_files
....
...
now this saves a file of .txt format saved in 4 memory locations as the scratch arrays are 2 dimensional it could save a lot of information .
To save data u can write.
Add <Filename.fileextension> to Files
Add(lengthofDiskDrive+1)to Files
|| add the whole data to Drive \\ leaving on you how to do this
Add(lengthofDiskDrive)toFiles
Tada ur saving file is done the same can be used for a full fledged software and a lot of thing .
as for the softwares configuration the software can write a file called *.cfg unique for every software
And using highly complicated systems you can make folders for that you will require to add the file location to the Files list.
Like
Add <Filename.fileextension> to Files
Add<fileLocation>to files\\ this could be made by you
Add(lengthofDiskDrive+1)to Files
|| add the whole data to Drive \\ leaving on you how to do this
Add(lengthofDiskDrive)toFiles
Best of luck creating your os
For further quieries on OS contact me here.
My god that's . . . . . . .advanced.
Offline
Aren't there OSes that already do saving?
And isn't the idea of emulating a real linux kernel in Scratch a bit messed up?
Offline
To clear All i made an OS real one not a scratch based thing and rhy the oses now on scratch site do not save any new file wait i might upload a basic skeleton TODAY
Offline
Greatdane wrote:
I don't get it, frankly.
What are you trying to do?
Well its quite completcated I am making a real operating system and i am telling you guys how to make a good operating system.
Offline
Greatdane wrote:
fanofcena wrote:
Bumpty Bumpty Bump
Why should you bump it if nobody can understand it?
What is it supposed to do?
LOL cause i want u to understand it its actually supposed to tell u OS maker guys what making an Actual OS means And one more thing JARVIS is going to come out in 10 days
A VM and a basic rip off of MY OS anyways using that skeleton u can really built a good VM the Skeleton is Ready i am making an OS for it now
Offline
fanofcena wrote:
Greatdane wrote:
fanofcena wrote:
Bumpty Bumpty Bump
Why should you bump it if nobody can understand it?
What is it supposed to do?LOL cause i want u to understand it its actually supposed to tell u OS maker guys what making an Actual OS means And one more thing JARVIS is going to come out in 10 days
A VM and a basic rip off of MY OS anyways using that skeleton u can really built a good VM the Skeleton is Ready i am making an OS for it now
I already have a very realistic OS environment so I don't need JARVIS. I don't want to make an actual OS anyway.
Offline
in my opinion the main point is that that's what a real os looks like and that everyone else's os's are just pretenders
lol
so take that society.
Offline
I'm doing the same thing! I think we should come together for a more successful project!
Offline
08jackt wrote:
wow.
so your making an OS base using Linux...
thats advanced.
when i get alot better at C++ (Linux Uses that right? Correct me if I'm wro.ng) i'll give it a try![]()
C not C++
Offline
Hmmm... I should try this!
EDIT: Wait, I already have!
Last edited by ScratchReallyROCKS (2010-12-11 12:48:50)
Offline