Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Dex wrote:Also note, that you can not write your own OS using M$ products .
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?
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.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
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.