Page 2 of 2

Posted: Thu Jul 19, 2007 1:58 pm
by Brynet-Inc
Microsoft produces? That doesn't sound right.. lol

Dex, I hope you meant "products".. :roll:

Posted: Fri Jul 20, 2007 8:43 pm
by dc0d32
Dex wrote:Also note, that you can not write your own OS using M$ products :shock: .
Thats right theres a clause in the license, that basic says you can not use it to make OS's.
Now this is in the license for MASM, but i would be suprized if its not in the other M$ products.
Do Express editions of Visual Studio impose similar license? I mean if the kernel is going to be open source & educational and not sold, what does m$ say?

Posted: Sat Jul 21, 2007 3:50 am
by Combuster
I just checked the VS6 Pro license - its free of Open Source Software and OS-limitation statements. (you are not allowed to license MASM code under the GPL either) If those limitations were still present in VS i think microsoft would lost a lot of people to GCC. They are not THAT stupid.

I don't have later editions of Visual Studio - They scrapped classic VB from those. :(

Re: Complete Newbie Interested in Writing an OS

Posted: Sat Jul 21, 2007 4:03 am
by Kevin McGuire
drndrw wrote:Hey guys. I'm drndrw and I, well want to write an operating system. Anyways I'm fairly new to programming (I just know a tiny bit of C# and some PHP) but I want to know what I need to learn and know about to write an operating system. My plan pretty much right now is to finish learning C#, and then to learn C (since C# is a simplified version of C, I think it would be easier to learn) and Assembler after that. Maybe then to learn the basics about writing a Kernel then try writing one. I know my plan is pretty whacked out and it probably won't work, but it might be worth a shot. Anyways, I'm here to ask you guys what I should do to get ready to even consider writing an operating system. I hope you can maybe give me a sane plan to get me going. Thanks :)!
The goal sheet for learning C (or C++) is to learn:
  • the difference in a pointer and integer and how the machine code behind them work; pointers to pointers..
  • linked lists (searching, adding, removing, single linked, double linked, splitting, sorting), trees, arrays, and stacks -- model stacks in the language.
  • what sections are in a object file and how they are used.
  • the build steps; difference in compiling and linking; how linking works; what symbols are and how they are used
  • build techniques for using loops and conditional expressions. (for, while, if)
  • bit manipulations, and bit ordering; big/little endianess; byte ordering; flags; binary operators (and, or, xor, not).
  • good coding style (tabbing, indention, neatness); how to correctly use header and source files; good documentation style (tabbing, indention, neatness);
  • modular programming; breaking large complex mechanisms into smaller parts that are easier to manage and fit together better which increase readability, increase maintainability, and decrease bugs.
Just some stuff I can think of pretty quickly.