Sign in with
Sign up | Sign in
Your question

New Operating System

Last response: in Apps General Discussion
Share
August 2, 2011 3:54:02 AM

Alright guys, so here I am, I have had this dream since I first used Windows ME, I want to program my own operating system, now before you go and say "ARE YOU ******* CRAZY?!" no, I am not, I've compiled a complete Linux From Scratch system with bare minimum packages more than once, and even made my own adjustments. I've used just about every single operating system there is, and I still am not happy with what I see, Windows keeps coming out with "newer" "faster" "sleeker" designs, but really it hasn't changed at all. I have made sketches of the UI and what's so different about it compared to Mac OS X, Linux, and Windows. I want this to be a fresh operating system built from scratch, meaning that, I don't want to make a Linux/Unix mod and call it perfection. I am very good at Java, C, and C++ programming.

I don't really know where to start other than keep designing it in my head and sketching the layout of it. I am not going to say the name of what i want to call it, because i don't want anyone to steal my idea, for now lets just refer to it as "H". OS "H" has been with me since I first began dreaming about this. Now that you guys know about my dream/idea could someone please give me some hints/pointers on where to start programming it?

Thanks :)  this means so much to me if you can help!

More about : operating system

a b L Programming
August 2, 2011 6:21:26 AM

1. You need to learn assembler.

2. you need to learn how all the chips in a computer work - interrupt controllers, keyboard controllers, hard disk controllers, graphics cards, network cards, PCI bus, etc.

3. You'll need a lot of time and a lot of hard work to get the simplest system working.

4. You'll need to understand things like semaphores, inter-process communications, and deadlocks if you are looking at a multi-tasking OS.

5. Get hold of the programming reference books for your chosen processor (should be available for free on the manufacturers web site) and ensure that you understand such topics as the protection mechanism, interrupts, and memory paging.

There's a lot of information about OS design on the web (just "Google Operating System Design"), and a number of books on the subject, including some sample OSs. If you can find a copy I would recommend Developing Your Own 32-bit Operating System by Burgess.

It's a great hobby, but be prepared to put in alot of hard work.
m
0
l
August 2, 2011 6:25:29 AM

Thanks bro :)  I had thought/heard about assembler before, but how come i see microsoft using c, c++ and c#? and solaris using Java? I know it will be A TON of hard work, and effort, and im prepared for it, it's something i want to spend time doing as a hobby and a personal goal.
m
0
l
Related resources
a b L Programming
August 2, 2011 6:38:34 AM

I made a couple of edits to my previous post, so you may want to revisit it.

Whatever language is used to write the majority of the code (C is the most popular), you need to know assembler to write interrupt routines, to boot the system in the first place, to manage memory, and other low-level stuff.

Windows is, as you surmise, written in C, as are Linux, BSD and Solaris.

The first hurdle that you have to surmount is just to boot the processor into the correct mode to start with. It's a bit tricky finding that information for 64-bit processors but you could look at my web site (linked in my profile) for a very simple example of this.

Another thing I should add is that you will find life much easier if you use Linux as your development platform, rather than Windows, and get hold of SimNow from AMD to use as an emulator. It's slow, but has good debugging facilities. You can also use qemu, but debugging is a little more difficult. Debugging Operating Systems is a very difficult task.
m
0
l
August 2, 2011 6:45:04 AM

okay thanks, hey could you add me as a friend on here? for future refrences? and i am using linux, i kind of prefer linux over windows, but windows has the most applications built for it, and so you're saying pretty much ALL operating systems are written in C? or just most of them? and thanks but for now im using an intel E6850 for my cpu, if that has anything to do with my OS. If i put in about 4-8 hours each day in this OS, how long do you think it should take till it's ready? (i know im the one who will decide if it's ready or not, but what i mean is a guess for a good timeframe) and i found a copy of the book and got it for my ipad (ebooks)
m
0
l
August 2, 2011 6:47:02 AM

Or add me as a contact to your email? i think that would be better..
m
0
l
a b L Programming
August 3, 2011 7:36:58 PM

From your original post, what you want is to code a new shell, not necessarily the OS itself. Yup it's 2 different things, that is why you can use KDE, Gnome or no GUI on Linux.
m
0
l
August 3, 2011 9:19:42 PM

ohhhh okay but what if i were to want to make a new Desktop Enviroment? or completely different UI?
m
0
l
August 3, 2011 9:21:56 PM

i think it would be really cool to have a DE that could run html for the design

so you won't have to completely reprogram it
m
0
l
a b L Programming
August 3, 2011 11:03:32 PM

boss_nate said:
ohhhh okay but what if i were to want to make a new Desktop Enviroment? or completely different UI?
Yup, I think that it's "only" the shell. This is still a tremendous job, but of a different nature.

If you want to make something completely new, you might have to create a complete new "XWindow-style" layer and unless you make something that is compatible with an existing graphical API (like WxWidget), every application will not only need to be recompiled, but recoded to work with the framework. Lack of application will kill any OS.
m
0
l
August 3, 2011 11:07:01 PM

Okay thanks, so in linux if i were to lets say keep the kernel (maybe strip it down) and make a diffrent ui where/what would i have to edit or create to make a new ui? or Desktop Enviroment? Thanks for the help

:) 
m
0
l
a b L Programming
August 3, 2011 11:15:41 PM

boss_nate said:
i think it would be really cool to have a DE that could run html for the design

so you won't have to completely reprogram it
I think that is what ChromeOS tries to do.

HTML is only a presentation layer language and was originally made to support very static interfaces (think of it as PDF for example). JavaScript (not Java), made it possible to to have a bit more dynamic interfaces through jQuery and DHTML techniques (you can make very impressive stuff with that however, all things considered). Moreover I think HTML 5 added lots of dynamicity to the language.

Before you do a full-fledge shell/OS, you might want to create some basic "proof of concept" prototypes and see if this is feasible and is also usable.
m
0
l
a b L Programming
August 3, 2011 11:24:44 PM

boss_nate said:
Okay thanks, so in linux if i were to lets say keep the kernel (maybe strip it down) and make a diffrent ui where/what would i have to edit or create to make a new ui? or Desktop Enviroment? Thanks for the help

:) 
Mmm, my knowledge doesn't run THAT deep, but maybe you could contact the Gnome or KDE team to see if they can give you a little kick-start (they are all open-source so you can always download the source code). I don't know how tied they are to the XWindow "standard" (not even sure what it is to be honest), but you could always try to contact that team too. If you want something more html/web based, looking at Chromium (ChromeOS) could also be an option.
m
0
l
August 3, 2011 11:35:58 PM

Zenthar said:
I think that is what ChromeOS tries to do.

HTML is only a presentation layer language and was originally made to support very static interfaces (think of it as PDF for example). JavaScript (not Java), made it possible to to have a bit more dynamic interfaces through jQuery and DHTML techniques (you can make very impressive stuff with that however, all things considered). Moreover I think HTML 5 added lots of dynamicity to the language.

Before you do a full-fledge shell/OS, you might want to create some basic "proof of concept" prototypes and see if this is feasible and is also usable.



By "proof of concept" you mean that i should sketch the os out? I was thinking of HTML because it would be easy to create designs/layouts as html isn't THAT hard you know? and i know exactly how i want it to function i want it as small and as basic as possible with a pack manager that will basicly install the packages itself and the ui isn't anywhere near what kde gnome or xfice look like
m
0
l
a b L Programming
August 4, 2011 12:10:44 AM

boss_nate said:
By "proof of concept" you mean that i should sketch the os out? I was thinking of HTML because it would be easy to create designs/layouts as html isn't THAT hard you know? and i know exactly how i want it to function i want it as small and as basic as possible with a pack manager that will basicly install the packages itself and the ui isn't anywhere near what kde gnome or xfice look like
By prototype I mean contained small-scale versions of the different aspects you want to implement like a new point-and click paradigm or gesture support (I'm not quite sure of what you are planning so hard to pin-point relevant examples).

I'm a professional developer and I worked with HTML/jQuery, Java (Swing and Eclipse framework) and C++ (Win32 and WxWidget under Windows) and HTML is by far the one for which it is the most complicated to do stuff like resizing, drag/drop, ... stuff we usually take for granted. It's not THAT hard, but not that simple depending on what you want to do either.
m
0
l
August 4, 2011 12:43:26 AM

That's true with lots of programming languages, i do C C++ C# Java swing and i love eclipse i haven't done much html just tiny bits and pieces well i could upload some pictures of the DE i plan to make/create if that would help you know what i mean?

I know it will take a LONG time but i wanted to know where i should start exactly, cause i do love linux it's by far the best, but it's just too much compiling for people, my OS that i have in my design it's practically like linux (filesystem mount points and stuff like that) it would have just a different look to it, and i wanted to change the file extensions that would work in my OS like the packages that i want to be made installable *.pkg and the executables (programs) *.xxx <- haven't decided on an extension for it yet but you get the point right?
m
0
l
a b L Programming
August 4, 2011 1:32:16 AM

If it's really just the look of it you want to change, then maybe there would be a way to do some advanced skinning instead or create your own skinning engine both being MUCH less work than actually making a whole shell. Again, I cannot give much help on the matter, the GUI shell is probably what I know the least about Linux.

Just found this BTW.
m
0
l
August 4, 2011 3:00:18 AM

Yeah i looked at that link and i noticed it wasnt what i wanted i was talking about full fledge totally different look like there wont be a taskbar i wanted an orb as a like "dock" basically like the start menu on windows etc but it would be in the shape of an orb that would be scroll able till you found the menu/program you wanted or folder, then you could also search for anything, but i did want to do the file type association changing, and there would be like a window bar manager that if you wanted to minimize a program it would be docked into that area of the screen, it's a little complex for text but once i photoshop a design i like i will send you a link to it, so you can tell what i should do from there, :)  but that skinning thing is kind of what i want as well, just not needed at the moment (i've used them before though)
m
0
l
a b L Programming
August 4, 2011 10:58:31 AM

boss_nate said:
Yeah i looked at that link and i noticed it wasnt what i wanted i was talking about full fledge totally different look like there wont be a taskbar i wanted an orb as a like "dock" basically like the start menu on windows etc but it would be in the shape of an orb that would be scroll able till you found the menu/program you wanted or folder, then you could also search for anything, but i did want to do the file type association changing, and there would be like a window bar manager that if you wanted to minimize a program it would be docked into that area of the screen, it's a little complex for text but once i photoshop a design i like i will send you a link to it, so you can tell what i should do from there, :)  but that skinning thing is kind of what i want as well, just not needed at the moment (i've used them before though)
As I said, I'm not that knowledgeable about linux GUI, but make sure you study the skinning thing thoroughly because I think some of theme are far more powerful than "skinning" would let believe.
m
0
l
August 5, 2011 2:16:31 AM

Zenthar said:
As I said, I'm not that knowledgeable about linux GUI, but make sure you study the skinning thing thoroughly because I think some of theme are far more powerful than "skinning" would let believe.


Yeah, i think i understand it though, stay tuned if it's okay i will make a ROUGH and i mean ROUGH sketch tomorrow on what the gui windows and Desktop environment look like in my OS :) 
m
0
l
a b L Programming
August 5, 2011 2:26:50 AM

boss_nate said:
Yeah, i think i understand it though, stay tuned if it's okay i will make a ROUGH and i mean ROUGH sketch tomorrow on what the gui windows and Desktop environment look like in my OS :) 
No problem, I get notified when new messages are posted on this thread.
m
0
l
August 5, 2011 2:28:03 AM

Okay, I will post a link to it when i get it all done thanks!
m
0
l
August 6, 2011 11:10:08 PM

Alrighty I have made the window UI (doesn't look very different from mac or windows lol but it's all i could come up with at the time, (i need some images/icons for the close and window management icons) ) i made a background i like it, i will posts the links, im still designing the dock and such (dock menu, program tabs etc.)
m
0
l
a b L Programming
August 7, 2011 12:18:31 AM

boss_nate said:
Alrighty I have made the window UI (doesn't look very different from mac or windows lol but it's all i could come up with at the time, (i need some images/icons for the close and window management icons) ) i made a background i like it, i will posts the links, im still designing the dock and such (dock menu, program tabs etc.)
No problem, take your time :) 
m
0
l
August 7, 2011 12:36:41 AM

Okay thanks :)  the dock is different than you would think i'd have to show you it when it's done
m
0
l
August 8, 2011 1:11:55 AM

Okay I have finished the Full GUI of the OS i want to design, yes it's a rough sketch of it i know i tried to make it semi-presentable which it is, there are a few tweaks i want to talk about, the orb, the orb is like a planet basically, it has moons, the little circles around it, the "moons" act like the windows 7 start menu, they are links to programs and there will be at most 7 "moons that will float around the orb. the dock (has docked windows in it) will be almost like mac os x's but it won't hold applications that you can launch, that's the orb's job, there are two different sizes of the orb, one is bigger than the other, (havent decided on an exact size yet but it's relatively close to it) and the dock i think may be a little too thick (i kind of messed up my photoshop's default image settings but i will fix it later) i just wanted to give you, or anyone who reads this an idea of it.

Links:

Smaller Orb: http://imageshack.us/photo/my-images/32/fulldesktopenvv...

Larger Orb: http://imageshack.us/photo/my-images/801/fulldesktopenv...

Please tell me what you think of it, and what you'd like to see changed, thanks bud ohhhh and fyi the "moons" will have the app's icon instead of the grey color and the color can be changed if they want inside the OS. :)  Hope this will help!!!
m
0
l
a b L Programming
August 9, 2011 12:55:28 AM

I guess the "docking" is the smaller window area on the right? As for the orbs, I get what the smaller are for. but what is the use of the big one? If there are at most 7 moons, how do you access your other programs?

Just questions as I'm trying to get a better "dynamic" perspective of the UI.
m
0
l
August 9, 2011 2:21:32 AM

I know what you mean Sorry i couldn't answer them in my last post i was being rushed by my friend. anyways, the dock is the sidebar to the right that your minimized programs go to, (like the windows and linux taskbar). they get smaller as you have more and more programs minimized. the bigger orb basically brings up your utilities (Games (if anyone even decides to make a game for my system) Tools, word processing, network, or administration type programs) the big orb is like basically a button to bring up the window with all the installed programs you have and it acts like a planet for the moons.

and thank you for asking these questions i know im not good at explaining everything at once, and since you can't really see the OS and UI of it yet, it does suck to have to type it all out.

Thanks again! :) 
m
0
l
August 9, 2011 2:24:57 AM

I also think that the "docking" area should be smaller, it just seems too large
m
0
l
a b L Programming
August 9, 2011 10:23:12 AM

boss_nate said:
I know what you mean Sorry i couldn't answer them in my last post i was being rushed by my friend. anyways, the dock is the sidebar to the right that your minimized programs go to, (like the windows and linux taskbar). they get smaller as you have more and more programs minimized. the bigger orb basically brings up your utilities (Games (if anyone even decides to make a game for my system) Tools, word processing, network, or administration type programs) the big orb is like basically a button to bring up the window with all the installed programs you have and it acts like a planet for the moons.

and thank you for asking these questions i know im not good at explaining everything at once, and since you can't really see the OS and UI of it yet, it does suck to have to type it all out.

Thanks again! :) 
Ok so the big Orb would be a bit like the Windows "All programs" and the smaller ones would be the "Quick Launch" ones?
m
0
l
a b L Programming
August 9, 2011 3:29:37 PM

BTW, I don't know how flexible it is, but if you want to try prototyping your UI in Windows, you might want to take a look at Rainmeter. This small article was published on LifeHacker about it today.
m
0
l
August 9, 2011 8:00:05 PM

Zenthar said:
Ok so the big Orb would be a bit like the Windows "All programs" and the smaller ones would be the "Quick Launch" ones?


Yes that's pretty much like it :)  and i took a look at rainmeter and the article that followed and it seems quite interesting, but does it cover linux? because i would like to make my OS fully Distributable, but i prefer the linux file system over the mac, or windows versions... They just don't have the feel that I like /: (Also linux seems to be the most powerful system, but windows is the most commercialized/: )
m
0
l
August 19, 2011 11:56:50 PM

Hi, I'm back. So after I had been thinking a while, would it be possible to modify the linux desktop environment, then call it my own after stripping linux down to the bar minimum and changing some kernel process and such? or does the EULA prevent me from doing so?
m
0
l
!