Page 1 of 1

First Post!!

Posted: Sat Jun 20, 2009 7:41 pm
by Wizecoder
I have officially joined the OS Dev community!! :D

First a bit of background. I have been programming in c++ for about 2 years now, mainly in game development. About a week ago i started looking into OS dev and found the forums and wiki here.

At the moment i don't have much of a plan of what i want my operating system to do but some of the main things i am thinking of so far are things like an easy to use file system(seperates the files that make the programs function from the files that are outputed by the programs), and an easy way to install other operating systems on the same system(sortof like bootcamp). Thoughts, suggestions?

I also have a couple questions. First, how would someone give the OS user the ability to develop with Opengl? Second, my development setup that i am thinking of so far is Cygwin, and NASM, using Notepad++ for editing all on windows vista. Any thoughts on this? Third, about how well would i need to know assembly(tutorials please) and c++ to develop an OS?

Thanks and expect more questions in the future. :P

Re: First Post!!

Posted: Sat Jun 20, 2009 8:12 pm
by VolTeK
Congrats, welcome to the forum. note that before you ask any questions check the wiki or google any questions before asking questions here, the wiki is the second option before going to the forum.

but please, put announcement posts like this one in the anouncements catagory.


enjoy your stay

Re: First Post!!

Posted: Sat Jun 20, 2009 8:21 pm
by 01000101
Moved to the Announcements forum.

Welcome to the forums! Most questions can be answered in the Wiki (link in the upper right-hand corner of the index page).

Re: First Post!!

Posted: Sat Jun 20, 2009 8:28 pm
by Wizecoder
I have been reading the wiki quite a bit already but the questions i am asking either are not on the wiki or are just to see if anyone has a personal opinion on any of it. Sorry if any of those questions shouldn't have been asked.

Re: First Post!!

Posted: Sat Jun 20, 2009 8:42 pm
by Brendan
Hi,
Wizecoder wrote:I have officially joined the OS Dev community!! :D

First a bit of background. I have been programming in c++ for about 2 years now, mainly in game development. About a week ago i started looking into OS dev and found the forums and wiki here.
Welcome to the forums!
Wizecoder wrote:At the moment i don't have much of a plan of what i want my operating system to do but some of the main things i am thinking of so far are things like an easy to use file system(seperates the files that make the programs function from the files that are outputed by the programs), and an easy way to install other operating systems on the same system(sortof like bootcamp). Thoughts, suggestions?
There's already an easy/standard way to run multiple operating systems on the same computer. The problem is that (regardless of how this is done) different OSs need to cooperate to avoid messing each other up, and some people (Microsoft) don't want to cooperate and deliberately make stupid decisions (like setting the RTC to local time as default, and not providing an option to avoid trashing the MBR when the OS is being installed) to make running multiple operating systems (including different versions of Windows) harder.
Wizecoder wrote:First, how would someone give the OS user the ability to develop with Opengl?
OpenGL is just a library. You'd write an OS, then write video drivers, GUI, etc, then write an OpenGL library. If the video drivers, GUI, etc are designed with OpenGL in mind then the OpenGL library might be a thin layer on top of the OS's video interface; and if the video drivers, GUI, etc are designed with something else in mind then the OpenGL library might be more complex. For example, if the video interface is a very simple "blit_my_buffer(unsigned char *address_of_my_buffer);" thing then you'd need to implement a full 3D rendering pipeline in the OpenGL library.
Wizecoder wrote:Second, my development setup that i am thinking of so far is Cygwin, and NASM, using Notepad++ for editing all on windows vista. Any thoughts on this?
I'd recommend using whatever you're most comfortable with.

However, IMHO Cygwin is an attempt to get a square peg (standard Unix tools like GCC, G++, LD, BASH, etc) to fit in a round hole (Windows), and it might be fun to try the same square peg in a square hole (e.g. try running standard Unix tools on a Unix clone like FreeBSD or Linux).
Wizecoder wrote:Third, about how well would i need to know assembly(tutorials please) and c++ to develop an OS?
You don't need to know much assembly at all, and it's probably easy to find some inline assembly snippets that do everything you need (assuming you build your OS on top of something like GRUB). The hard part is understanding the CPU - things like different operating modes, how paging works, how caching works, etc (where you'll end up spending months reading through CPU manufacturer's manuals and/or tutorials, etc even though you don't need to use assembly).

I've never used C++, but from what I've heard you need to write your own run-time support code before you can use some of the more advanced C++ features. If you're nice, we'll let you read about using C++ in our secret book of elite knowledge. :)


Cheers,

Brendan

Re: First Post!!

Posted: Sat Jun 20, 2009 10:39 pm
by Troy Martin
Brendan wrote:If you're nice, we'll let you read about using C++ in our secret book of elite knowledge. :)
And what a wonderful secret elite book it is!

Welcome to the forums! The wiki is always open for you to read (and edit, if you join the wiki usergroup) and contains a decent amount of elite knowledge. Other great reference materials are the all-holy Intel Developer's Manuals. Google "Intel Manuals" for them. They're arranged into five volumes (1, 2A, 2B, 3A, 3B) to make downloading quicker, but it's probably a good idea to grab them all while you're at it :)