Beginning OS Developer... Advice.
Beginning OS Developer... Advice.
I am a beginning in programing and OS Development in computers. I do understand a good majority of how everything works on a computer. I am a so called "Computer Geek". But I would love to create my own OS for a change. Any Software, Tutorials, Programming Languages I should know etc... I would like to have some advice, maybe someone could tell me the steps involved.
What I want to do:
I want a OS that can run all Unix, Linux, Mac, and Windows apps. That way if their is a cool Mac program and you want to use it you can use it on my OS.
Thanks. .
What I want to do:
I want a OS that can run all Unix, Linux, Mac, and Windows apps. That way if their is a cool Mac program and you want to use it you can use it on my OS.
Thanks. .
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
I will do that. Thanks . I want some advice from someone who has made a OS before.Solar wrote:Please check the sticky thread "Book Recommendations" and the "Wiki" link above (the one with the yellow flower beside it).
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Programming Languages
Yes, I have a very basic representation of C. I have heard of the other languages and know what most of them do but the only problem is I need to learn them. Needless to say I need to learn them .
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
-
- Member
- Posts: 134
- Joined: Sun Oct 24, 2004 11:00 pm
- Location: North Dakota, where the buffalo roam
Re: Beginning OS Developer... Advice.
First piece of advice: Pick more attainable goals. Especially if you have limited programming experience, start with simple things. Learn about multitasking, memory models, file systems, IPCs, protection mechanisms, libraries, system calls, and a bunch of things I've forgotten to mention, then come up with a design that suits your taste. Your initial ideas are unlikely to work, but as you learn more about the specifics of how OSes work, you should be able to come up with more workable ideas.87ASC wrote:I want a OS that can run all Unix, Linux, Mac, and Windows apps. That way if their is a cool Mac program and you want to use it you can use it on my OS.
You will need strong understanding of a programming language like C, which you should have before you even begin if possible (everything will go much faster if you start with this knowledge). You should also have an understanding of basic algorithms and data structures.
Good Luck.
Re: Beginning OS Developer... Advice.
Thanks.rexlunae wrote:First piece of advice: Pick more attainable goals. Especially if you have limited programming experience, start with simple things. Learn about multitasking, memory models, file systems, IPCs, protection mechanisms, libraries, system calls, and a bunch of things I've forgotten to mention, then come up with a design that suits your taste. Your initial ideas are unlikely to work, but as you learn more about the specifics of how OSes work, you should be able to come up with more workable ideas.87ASC wrote:I want a OS that can run all Unix, Linux, Mac, and Windows apps. That way if their is a cool Mac program and you want to use it you can use it on my OS.
You will need strong understanding of a programming language like C, which you should have before you even begin if possible (everything will go much faster if you start with this knowledge). You should also have an understanding of basic algorithms and data structures.
Good Luck.
I just now made a simple PASCAL program. So I know some PASCAL now.
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Does anyone know of the steps to make a OS?
For example (I know this is not right):
1. Create GUI
2. Create Boot Sector
etc...
For example (I know this is not right):
1. Create GUI
2. Create Boot Sector
etc...
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
I would recommend making a basic kernel that boot and prints something on the screen. Then you can work on IRQ events, and such. Then make a simple memory manager and task switching. After that i recommend making a command line and IO reading. Then make it flawless and work on a GUI.
Of course, you don't have to take all of that advice, in fact you may completely ignore it. This however is that plan I was recommended by several sources and I am following that plan now as well
I hope it works for you!
Of course, you don't have to take all of that advice, in fact you may completely ignore it. This however is that plan I was recommended by several sources and I am following that plan now as well
I hope it works for you!
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Do you know of a website that will show you how to create a basic kernel. Also what programming language should I use. Think I could use PASCAL.piranha wrote:I would recommend making a basic kernel that boot and prints something on the screen. Then you can work on IRQ events, and such. Then make a simple memory manager and task switching. After that i recommend making a command line and IO reading. Then make it flawless and work on a GUI.
Of course, you don't have to take all of that advice, in fact you may completely ignore it. This however is that plan I was recommended by several sources and I am following that plan now as well
I hope it works for you!
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
In my OS I am using C and assembly. I don't know very much assembly but you can find code in websites...
osdever.net has a lot of helpful stuff.
http://osdever.net/tutorials.php?cat=3&sort=1 these are some nice kernel tutorials
http://osdever.net/tutorials.php?cat=1&sort=1 this is some stuff on how to get started
Hope it helps...
osdever.net has a lot of helpful stuff.
http://osdever.net/tutorials.php?cat=3&sort=1 these are some nice kernel tutorials
http://osdever.net/tutorials.php?cat=1&sort=1 this is some stuff on how to get started
Hope it helps...
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Thanks, this well help alot .piranha wrote:In my OS I am using C and assembly. I don't know very much assembly but you can find code in websites...
osdever.net has a lot of helpful stuff.
http://osdever.net/tutorials.php?cat=3&sort=1 these are some nice kernel tutorials
http://osdever.net/tutorials.php?cat=1&sort=1 this is some stuff on how to get started
Hope it helps...
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Oy gewalt!
I'd rather you ventured for small application projects instead of OS-Deving first. It'd save you a lot of frustration.
Second, it should go in this order:
Lowest Level - Stack switching, GDT, IDT, paging handling, irq handling
memory management - physical, virtual & at least kernel heap manager
task switching & task management - keeping a list o' tasks & switch between them
IPC: message passing f. ex.
device management - device drivers (video stuff starts here)
file system stuff (VFS, File system drivers)
user land applications - loading&running of executables
networking stuff (Sockets, Tcp UDP ICMP Ip ARP ethernet at least)
user land library (kernel library/user library)
gui (a gui service which does the screen composing & dealing out of window buffers&sending of events to clients - and a gui library, which is responsible for all the client side stuff: drawing, handling of events, management of controls & containers)
and of course applications and little programs which use your kernel.
This is not at all an exhaustive list. You can of course add/leave out things.
I hope this helps you to split down your big goal into smaller subgoals which in sum achieve what you want. It is important in big projects to split up the task into smaller items which are easier to design/implement. In fact, it comes down to plain project management and process design.
Stay safe & keep your use cases in mind.
I'd rather you ventured for small application projects instead of OS-Deving first. It'd save you a lot of frustration.
Second, it should go in this order:
Lowest Level - Stack switching, GDT, IDT, paging handling, irq handling
memory management - physical, virtual & at least kernel heap manager
task switching & task management - keeping a list o' tasks & switch between them
IPC: message passing f. ex.
device management - device drivers (video stuff starts here)
file system stuff (VFS, File system drivers)
user land applications - loading&running of executables
networking stuff (Sockets, Tcp UDP ICMP Ip ARP ethernet at least)
user land library (kernel library/user library)
gui (a gui service which does the screen composing & dealing out of window buffers&sending of events to clients - and a gui library, which is responsible for all the client side stuff: drawing, handling of events, management of controls & containers)
and of course applications and little programs which use your kernel.
This is not at all an exhaustive list. You can of course add/leave out things.
I hope this helps you to split down your big goal into smaller subgoals which in sum achieve what you want. It is important in big projects to split up the task into smaller items which are easier to design/implement. In fact, it comes down to plain project management and process design.
Stay safe & keep your use cases in mind.
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
How can I thank you guys enough. This is awesome and great information .distantvoices wrote:Oy gewalt!
I'd rather you ventured for small application projects instead of OS-Deving first. It'd save you a lot of frustration.
Second, it should go in this order:
Lowest Level - Stack switching, GDT, IDT, paging handling, irq handling
memory management - physical, virtual & at least kernel heap manager
task switching & task management - keeping a list o' tasks & switch between them
IPC: message passing f. ex.
device management - device drivers (video stuff starts here)
file system stuff (VFS, File system drivers)
user land applications - loading&running of executables
networking stuff (Sockets, Tcp UDP ICMP Ip ARP ethernet at least)
user land library (kernel library/user library)
gui (a gui service which does the screen composing & dealing out of window buffers&sending of events to clients - and a gui library, which is responsible for all the client side stuff: drawing, handling of events, management of controls & containers)
and of course applications and little programs which use your kernel.
This is not at all an exhaustive list. You can of course add/leave out things.
I hope this helps you to split down your big goal into smaller subgoals which in sum achieve what you want. It is important in big projects to split up the task into smaller items which are easier to design/implement. In fact, it comes down to plain project management and process design.
Stay safe & keep your use cases in mind.
Beginning OS Developer.
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490
Have any suggestions for my post here:
http://www.osdev.org/phpBB2/viewtopic.php?t=12490