Page 1 of 1

One task system v.0

Posted: Tue Jun 11, 2013 12:19 pm
by duke3d
Hi, im a french student passionnated in Mathematics and Physics.

Introduction: I need a special OS for scientific and personal use who only do what you want to, I'm then searching for this kind of system but i admit that i have difficulties to find one because an OS is not design to this.

The system will be :

-the lightest (few mos max): I want to boot from an usb key
-the much as possible compatible (2004-nowadays) Intel and AMD processors: If i want to put my usb key on any computer that i cross.

The system will not forcely:

- be secured: Only I will use it !
- have a desktop like in windows: A console will be perfect !

Various real life applications :

- For overclockers, in fact they don't want to be slowed by the operating system.
- To test the specific electrical consumption of an instruction.
- To improve the efficienty of my calculus methods and modelisations and searching algorythms.

As I'm fast sure that that kind of system doesn't exist, i want to devellop my own.

So the question is : Is that possible ? I have an experience in C and (TI b.... i must hide it :)) programming. I know how works a processor (the only way i have to understand things is to imagine that i have to invente the thing and then it forces you to meditate on the problem and then you have a better understanding of the solution) and i have knowledge about assembly but in fact my only problem is that i don't know the standard, the Compatible pc norm...

Let's take an exemple :

I want to change the colour of one particular pixel in the screen always without passing by any bios interrupts, functions or misc... How to ? I want to change the volume, How to ? And i don't want to create my own keyboard, my own screen, my own motherboard... MY OWN MOUSE ! I need books, links... to be able to use plenty a compatible PC with only my own code from A to Z in assembly.

I just want to start slowly, by example a programm who boots on a particular machine, then display Hello word ! with a ring of the system bell, all during 10 secs, then shut down, but USING ONLY MY ASSEMBLY CODE WITHOUT ANY INTERRUPT OR CALLED FUNCTIONS...

Assets:

-I have time
-I'm determined
-I thirst for controll (in my programming i mean)

So i admit that i am a little beginner, but i can't wait anymore, passing by libs, interrupts is really boring, you have bugs that you cannot solve, you are limited. I'm not afraid of complexity.

Example in C: to compute sinus : unsigned / signed ... ? Tied of that C language, i think i want to create my own.


Conclusion:

Do you have links, books, ideas, suggestions, advices ?

Re: One task system v.0

Posted: Tue Jun 11, 2013 12:26 pm
by IanSeyler
Build onto BareMetal OS - www.returninfinity.com/baremetal.html

The only problem is the USB requirement at the moment.

Re: One task system v.0

Posted: Tue Jun 11, 2013 12:58 pm
by Yoda
Doesn't FreeDOS meets all your requirements?

Re: One task system v.0

Posted: Tue Jun 11, 2013 1:11 pm
by DavidCooper
One of the problems you're going to come up against if you build your own OS for this is that you don't automatically get the highest possible speed out of the machine by writing a simple operating system. You talk about overclocking, but if you run a simple OS you'll most likely have the speed of processors reduced instead to avoid coming close to overheating anything, and system management mode will keep taking processor time away from your OS to manage that for you, doing so according to it's own ideas of what's best for you, such as maintaining a low level of power consumption. Maybe you should read up on ACPI to get an idea of the mountain you'd need to climb.

Re: One task system v.0

Posted: Tue Jun 11, 2013 2:47 pm
by bluemoon
To solve a problem efficiently you would adopt parallel computing algorithm, which means multi-threading and thus requires a decent scheduler.
It is very difficult for beginner OS developer to beat a commercial grade OS on this aspect.

Furthermore, as David pointed out, to utilize the machine power there are lots on sensors to monitor, CPU boost, cache, etc.

Bottom line, a simple OS won't be quick, otherwise who need a complex OS?
duke3d wrote:I just want to start slowly, by example a programm who boots on a particular machine, then display Hello word ! with a ring of the system bell, all during 10 secs, then shut down, but USING ONLY MY ASSEMBLY CODE WITHOUT ANY INTERRUPT OR CALLED FUNCTIONS...
Practically, IRQ only use less than 0.1% of CPU time, the handling of event depends on what happened.
Anyway, you won't notice the difference by disable interrupt during your 10 seconds calculations.

You can however taste this on commercial OS by setting your program to very high priority, so that 99% of the time is scheduled to your program.

Re: One task system v.0

Posted: Tue Jun 11, 2013 3:37 pm
by sortie
I suggest you read the Bare Bones article on the Wiki. It is the first step to making an operating system.

If your goal is to get a task done then I simply recommend creating a minimal Linux system that runs only the programs you desire. This will clearly meet your goals, except that you didn't make it entirely yourself.

Writing to the screen in bitmap graphics mode on all computers and being widely compatible and supporting sound and ... - it is a lot of work. Very few hobby operating systems will get that far.

Note how you currently say "I can do without Feature X" right now, but when you finally get your system working, you may well realize that you really want Feature X. Most of my design decisions were based on my laziness, but when I finally got things working, I craved much more. Don't make the mistake of thinking you will never need something, if you actually want it.

Re: One task system v.0

Posted: Tue Jun 11, 2013 5:17 pm
by VolTeK
duke3d wrote:Mathematics and Physics
Further explain this passion and what you have done with it.

Re: One task system v.0

Posted: Wed Jun 12, 2013 6:58 am
by duke3d
Thx for answers.

I will try what's sortie said.