Page 1 of 2

Humbell MBed - The Official Thread

Posted: Sun Jun 05, 2011 10:12 am
by naf456
Image
Humbell Embed OS - "We are Humble"

Current Stage : Concept
Language : Assembly, C , C++ , C#(hopefully('cause it's badass! :D))
Kernel Type : Micro
Operating System Feature's : pre-emptive,hardware multitasking.

As an end result I'm trying to Create an OS that Runs on Embedded systems, which is optimized for Game's, but can run standard applications - Basically a "TV" OS. A Good example of this is the Wii's OS (I believe it's called Gecko?) - I've played around with homebrew development on the wii - got some polygons rendering on the screen, but thought I was Really wasting my time.

Console OS's are usally different from General PC Os's like Linux and Mac, as Console os's are really just launchers that load programs from disks. - Very little of the OS is around while Games are playing, thats one reason why Games console's are faster then normal computers , and of course along with the help of ultra fast memory, and large memory Buses.

"Portability"
I want to run the kernel on Intel and ARM based embedded system's - in other words the Atom and Tegra/Cortex CPU's
I'm first however working on Intel Based CPU's, till I order my ARM Dev board :D

GAPI's?
I have no idea how OpenGL is actually intergrated into operating systems. And it's something I need to look into.
Obviously I will be using OpenES on ARM based CPU's

RoadMap?
I really want to design a media product first, which takes in input from SD and USB and provides an interface to play Video and movie files on the Media.
I recently Bought one of these TV media players, as my PS3 wouldn't play MKV's - it's a great little computer for £18.50 I paid for it - the res is spot on and with 5.1 surround sound, it's the buy of the year.
Just can't help thinking the OS on it could be better...

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 11:27 am
by DavidCooper
naf456 wrote:I don't want to be anything like them (Sitting down all day shooting some poorly animated fictional characters on an over priced console) surely that's wasting more time then studying OS development?
Couldn't agree more - I got bored with shooting things in a single week and have no desire to return to it ever again. Your friends may be normal, but normal people are weird.
What I want out of the Humble project is for it to be incredibly small in size(Under 256MB) so it can fit on tiny SSD's in the Netbooks.
256MB is actually huge. You can probably achieve everything you want to do in a couple of megabytes if you're using assembler (or ten times as much if using a compiler).
Neither do I or anyone for that matter want to wait 15 minutes to boot up a Computer....
Within 10 Seconds, I don't just want the netbook to boot, but to have fully loaded up Achilles-the integrated web browsers with full access to the internet.
Most OS designers here have the same kind of aim, but I suspect future versions of Windows will be forced to up their game now that you can get dual-OS machines which allow you to chose a simpler OS to browse the Web without having to boot Windows - it gives netbooks the kind of speed you're talking about, removing all the ridiculous delays that Windows gives you.
There are no windows-every application is to be displayed full screen ... There will be no support for multitasking as I believe this is the main reason why netbooks are so sluggish.
You'll probably want to be able to handle different screen modes with different numbers of pixels, so if your OS and apps can handle that it's little more trouble to enable them to work in just part of the screen. Don't be too quick to rule out such functionality when it doesn't cost a lot of effort to provide it. It's often really useful to have two files open and on display at the same time. As for multitasking, if you design it well it won't be sluggish - even the slowest netbook is lightning fast when it runs a good multitasking OS with many apps open at the same time. At the very least, leave room to change your mind about this and think from the outset about whether your code will still work with different processes running concurrently and also in parallel on multiple cores - I'm sure that you will want to do this later on, so don't dig yourself into a hole.
however I don't want to slower productivity, so I have came up with 'Drawers'. Drawers are the evolution of the clipboard that application's and users can use to store masses of information, like whole webpages for example.
That name sounds a bit too like underwear, but you certainly will want to have something more advanced than clipboard - you'll want to be able to copy anything out of a file with ctrl+c and directly save it as a file in its own right, as well as being able to past such a file back into the middle of another file.

Nice colourful logo, by the way.

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 12:08 pm
by xvedejas
Hmm... your post looks strangely similar to one I recently made: http://forum.osdev.org/viewtopic.php?f=2&t=23634 (not a big deal just pointing out the common layout)
What I want out of the Humble project is for it to be incredibly small in size(Under 256MB) so it can fit on tiny SSD's in the Netbooks.
The SSDs on Netbooks aren't *that* tiny. They're capable of storing a large linux distro. And yeah, 256MB isn't that small. Good luck even writing enough code for an OS that large.
Neither do I or anyone for that matter want to wait 15 minutes to boot up a Computer....
You have to admit this is an exaggeration. The worst times I've seen for a netbook with an SSD have been under a minute.
There are no windows-every application is to be displayed full screen
This isn't OS design as much as window management design.
there is no file system (it's limited). ALL user files will be placed on the desktop. here you can choose to hide a certain type of file, be it music file's, video files, etc... there is still folders you can use as well, which will actually be called stacks as they 'pop' out similar to osx.
What do you mean then? That the filesystem hierarchy is limited? Surely this is still a fully functional file system that you describe.
There will be no support for multitasking as I believe this is the main reason why netbooks are so sluggish.
Any proof to back this up? I've not heard of such a claim.
Drawers are the evolution of the clipboard that application's and users can use to store masses of information, like whole webpages for example.
Again, I don't think this is much of an OS design. More like a user-interface design.
next year or so we can look back and see how much time we wasted
You need an OS design before you start making an OS. Everything you've described could probably be accomplished by some special desktop environment for linux.

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 12:51 pm
by NickJohnson
naf456 wrote:At my College we have these really slow and terrible NetBooks's (ASUS EEE pc's), Taking literally 15 minutes to get to the login screen. They run on windows 7, but are optimised for windows XP.
What I want out of the Humble project is for it to be incredibly small in size(Under 256MB) so it can fit on tiny SSD's in the Netbooks.
Neither do I or anyone for that matter want to wait 15 minutes to boot up a Computer....
Within 10 Seconds, I don't just want the netbook to boot, but to have fully loaded up Achilles-the integrated web browsers with full access to the internet.
I think what you really want is to install something more apt for a netbook on your netbook - Windows 7 is clearly too much for the hardware. I used to have an Eee, and Gentoo Linux ran just fine on it; any light Linux distribution or even Windows XP should be fine. Even if you were to finish the OS you're planning (which will likely take you years, and you will be out of college then anyway,) it will probably only be as useful as installing something like Windows 95 on your netbook: no modern apps will run on it, but it will work on slow hardware.

Basically, writing a whole OS to solve a small problem like this is like swatting a fly with a thermonuclear missile. I'm not saying that writing an OS is a bad idea, just that writing one with such a singular purpose--most of which is just GUI stuff, which could be done with a Linux WM--is. I would advise you to try writing something either a bit more general-purpose (so you learn about how more parts of an OS work) or a bit more internally radical (so you have a chance of attracting attention as a niche OS instead of competing with Linux).

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 1:22 pm
by naf456
Everything you've described could probably be accomplished by some special desktop environment for linux.
Yes, I probably could design this as a linux Distro, But the end product isn't what I want. I want To learn the toolset of building my own operating system.
This is my first operating system. I don't want it to be a Huge project with masses amount of code. I want it to be very small scale.
My plan was too gain a deep understanding with this operating system into some basic mechanics, then to build Humble 2 later on down the line, say when I'm actually in University, with Multitasking, window management and all the other fancy stuff.
The SSDs on Netbooks aren't *that* tiny
What I meant by that, is, that netbook SSD's can become tiny (Not that there tiny now)
Good luck even writing enough code for an OS that large.
Thanks. now that's one thing off my mind. :D

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 1:36 pm
by naf456
Yeah...Maybe I do need to think things through.

Re: Humble OS - The Official Thread

Posted: Sun Jun 05, 2011 2:03 pm
by Brynet-Inc
naf456 wrote:Yeah...Maybe I do need to think things through.
No way, this is just OSDev.. we frown upon people who do some initial research.

Re: Humble OS - The Official Thread

Posted: Mon Jun 06, 2011 3:04 am
by naf456
<This Post has Been Deleted>

Re: Humble OS - The Official Thread

Posted: Sun Jul 10, 2011 3:24 am
by naf456
Ignore my top post. -I was being blindfolded by exaggeration.
I lack the programming experience required by such a humble project.
And thus I am researching Game Development- something a little down my street, which is a big project to get my teeth around.
Also I ave been studying PHP, CSS, HTML, ASP, and javascript .Next to strive for is Ruby and Perl.
And once project attached to those languages are done, I will studying C, OBJ-C into more detail and probably will start my OS dev Path then(Still very unlikely).
(shame- spent so much on cork boards too :L)

PS...It would be kind, if no one else stole my name for this project : "Humble" - I kinda like the ring to it (Despite me being the least humble person here)

@berkus - BTW, I don't think you get what I wanted from humble...What I meant by my first post (although it doesn't seem clear) is that Computer are really expensive- may not seem it to you and me, but for people in LEDC countries , it is.
Out of humble, I want to beable to put it on the smallest of SSD's so it would be REALLY cheap to manufacture.
I was looking at maybe 300Mhz ARM 4, 56MB of RAM, 128MB SSD, 6 inch display - still it would be very expensive- around $50 to manufacture. -But anyway, just wanted to make that clear.

Re: Humble OS - The Official Thread

Posted: Sun Jul 10, 2011 7:19 am
by bluemoon
naf456 wrote:-A system is as strong as it's weakest link. GUI may not be the most overall item you are concerned with, but it should be. When talking about an end user, they don't care about what memory segmentation your using- they just want to get to an application to do something- be it an Internet browser or a word processor.
End user does not know about in deep technical detail, but they usually assume the products to have a good technology background.
You simply couldn't use a bad architecture design which is a direct cause of in sluggish softwares.
And with the End user- what defines the operating system, is the layout of how the widgets are positioned.
And in turns, it is the marketing dept defines how and what the end-user expects.
I've seen one example OS on here which has a blue task bar, with a green start button and windows shape- exactly the same as WinXP- what's the point?!?! why not just use WinXP- it's certainly be less buggy then a hobby OS.
Product_differentiation
Anyway- We as OS developers, Have a Key Advantage over Microsoft- We are new...people like new.
I disagree with the Wiki- Rome wasn't built in a day, neither was it built by a single man!!
I believe if everyone worked together on this Forum, we could make one HELL of a Micro$oft Spanking B!tch of an OS!
Scientifically, you need to study people's theory before you agree or disagree them. Drawing conclusion before actually knowing it is what we called religion.

EDIT: I don't meant anything bad with religion, religion is good so I should re-phase the above with:
Drawing conclusion before actually knowing its intent is not how scientific reasoning works.

So, I don't like M$ but I have to disagree with the following reasons.
Being new is not a key advantage over Microsoft. They have products, experience, money, and they have new brand, new products, new people.

People like new is not always true, it all depends on marketing - microsoft advantage.

Re: Humble OS - The Official Thread

Posted: Sun Jul 10, 2011 10:41 pm
by MDM
If you want to make something cheap you're going about it wrong in my opinion. You instead need to figure out how to make a cheap embedded system with an OS for that system. People in places that can't afford laptops generally can't afford netbooks and use small embedded system type computers.

Re: Humble OS - The Official Thread

Posted: Tue Jul 12, 2011 4:14 pm
by naf456
Thanks...I'll take any information into consideration.

Also I Have been thinking about File compression- getting a normal file, taking out the duplicate statemets in the code, and 'mapping' it out to become a smaller file.

-I was hoping for opinions on this subject, as in integrating it into the O/S.
Every file will be compressed, and 'unzipped' at runtime.
I have also been thinking about the problems this could cause.
ie Unzipping a file means the uncompressed file and the actual files will be stored in memory at the same time- this is wasting precious system resources.
Also, Unzipping big files takes a long time, thus application load times may become unrealistic.
-it's just an idea- I'm trying to be more lateral

as in my previous post I am studying game engine development to gain the coding skill required for this project. -first starting off High level development with DirectX framework and OpenGL, then exploring Graphics rendering pipeline and the registers I can play with, within the lower levels.
I hope it will make me more used to low level programming and learn even more about the Windows operating system - however I believe this topic is for another forum :L

Re: Humble OS - The Official Thread

Posted: Tue Jul 12, 2011 6:57 pm
by MDM
Real time compression/decompression is not a realistic goal for a netbook or an embedded system, or even most modern computing systems.

I'm not sure if learning about the windows OS in depth is worth it. I'd suggest Tanenbaum's book on Minix or some such thing. The main thing about learning the lower level programming is really getting a grip on the structure and execution of low level programming, assembly, and C. Learning low level game programming can certainly help towards that goal, although I know many game programmers who have many gaps in their knowledge of low level programming.

I also would recommend reading up on hardware, specifically processors (and more specifically 80386+).

Re: Humble OS - The Official Thread

Posted: Thu Jul 21, 2011 12:05 pm
by naf456
@MDM

Yes, But I need to learn the C/C++ libraries better along with Templates, linked lists, binary trees and alike.
Also A Game engine is simple in the same consideration as building an Operating system.
Again-Also a game engine can get as complex as I want it, where as an operating system will/has started off at an unenforcible learning curve for me as I don't have the required programming skill to feasibly operate a CPU in a lower levelled state.

I'm soon going to purchase an xGameStation kit to develop for.
These are embedded system used as Game Console's with similar characteristics to the Programming when providing functionality to the needed algorithms I need to compute for building a basic operating system.

The xGameStation kit can also require you to build up the PCB board, working with hardware even further and understanding the true science of how it works. In other words, it will be truly an amazing experience.
I do recommend you do take a peek if not familiar with Hardware Development: http://www.xgamestation.com/view_product.php?id=32

Hopefully now I can get back to DirectX :D

EDIT: Man I hate OS development...I soo desperately want to start, but I just don't get how to structure things like GDT entries in code... Why you use char pointers to define it's offsets? I never get it?
I'm reading a book "Game Data Types and Algorithms" Which hopefully will flatten out the bumps...

Re: Humble OS - The Official Thread

Posted: Thu Jul 21, 2011 2:18 pm
by guyfawkes
[off topic] I bought one of those kits "xGameStation" some years ago, you have lots of fun play with it and learning at the same time.