How do I start? For real.
Posted: Sat Aug 08, 2015 3:39 am
solved
The Place to Start for Operating System Developers
http://f.osdev.org/
There are. More than just a few. And even more somewhere else in the internet. I'm sorry to say this but if you didn't found a single tutorial you've not googled for a single minute.thehardcoreOS wrote:there are some lines of code with some text no real tutorials, just some random pages.
DaviUnic wrote:the wiki
Do you see the difference?thehardcoreOS wrote:the forum
You sound more like an unguided projectile.Getting Started wrote:Hopefully the basic fact that operating system development is a complicated and on-going process does not discourage you. The truth is, operating system development is truly unparalleled since it requires the utmost amount of patience, (...)
Good start.thehardcoreOS wrote:I am using Windows 8.1 and right now I have some basic bootloader that displays hello world message.
Yes, there are some. And you can find many others by googling something like this - "operating system development tutorial".thehardcoreOS wrote:Are there any real tutorials from ground up or I'll just have to figure it all myself.
It depends on the environment.thehardcoreOS wrote:How do I set up my working environment?
Yes, you definitely can.thehardcoreOS wrote:Can I use Visual Studio 2013 and notepad++?
For the bootloader to load anything it needs to be able to read from your bootable media (HDD or USB). Reading from the media is simple if you use BIOS services (you can google about BIOS and it's services). Most probably your bootloader was written for the legacy boot mode (instead of UEFI), so, the BIOS calls are really the first place to start for you.thehardcoreOS wrote:The main question is how to make my bootloader load the kernel (written in C/C++). I don't want to use asm for the kernel but rather c/c++.
Yes, you need to extend any program for it to do something new.thehardcoreOS wrote:Do I need to extend my bootloader so I can load c/c++ kernel.
Here I see you do not understand your development environment. Yes, the C based development environments represent a great mess of ugly pieces, but if you have selected C as your preferred language then you should master your C based environment. You can google about "c toolchain" for example. Or (and it's better) you can read general information about compiler, linker, IDE, scripts and all other parts of your environment. The main idea is - you must understand what happened when you start some build. If you know what exactly is the result of the build (including executable file layout, library invocation method and many more) then it is possible to determine how the built code can be invoked from your bootloader.thehardcoreOS wrote:Then I need some linkers right?
Well, if you really understand how to invoke your kernel from your bootloader, then it's not all your troubles. There are such things as hardware devices. The monitor (where you see the GUI) is just exactly such thing. And to be able to show anything on it you need to understand how it works. After you have required knowledge things become as easy as is the case with the kernel invocation from your bootloader.thehardcoreOS wrote:Then I would add some GUI code to my kernel right?
The theory is the same thing as high level languages. It shows you just an overview of the universe. There are stars and planets and they are moving governed by the gravity. It's very simple. But when you try to make your first landing on a planet, the troubles begin to waterfall on you. It's just because the planet isn't a smooth ball and your space ship can't penetrate it without experiencing some damage. So, it's better to understand the characteristics of your space ship and the planet.thehardcoreOS wrote:I know the theory but it is kind of hard to connect all that. Please help me. I have experience with high level languanges btw.
Because Windows doesn't come with free and more or less standard low-level dev tools and ports of those tools to Windows are (have been) known to have limitations and issues (e.g. CygWin, MinGW, etc)? And it's fairly easy to install Linux in a VM these days and develop there with the VM running atop of Windows.thehardcoreOS wrote:Why are there so many linux related stuff (wiki page)? 90% of the world population uses windows as their default os.