Before you continue read, I have studied and used the intel x86 docs and have written several drivers for windows and I'm fed up with the lack of privacy and bad system design both windows and unix have, so I've decided to make my own, anonymity and privacy-focused OS..
I've found the barebones tutorials pretty outdated and I'm hoping for guides(not tutorials) on how to make an extremely simple OS, not a kernel with barely any explanation...
Also, how do you write without the textmode buffer, and do some graphics..
These barebones tutorials are copy-and-paste-ish and read a manual...then come back later type of wiki..
I'm a hard(and smart) working person, and I'm wondering if you're OSes have nvidia GPU support? Last time I read something about how it's hard to get detailed documentation and someone claimed they have it, but it's illegal for them to give it out..
Questions and errors in the wiki
Re: Questions and errors in the wiki
Hi,
If your goal is to build an operating system designed well from the ground up, you should not be thinking about graphics for a long time. What you should be thinking about is the build system, targets, and general architecture. I.e. you may end up with over 100kloc before any graphics support. Sure, you can easily switch to a video mode with VBE or GOP and play with it -- but that isn't putting design and engineering up front.
With that said though... all video cards map legacy VGA RAM into the address space at a fixed location. Likewise, the default video mode is VGA Mode 3 or Compatible upon bootup. Writing to text-mode technically depends on the configuration of the VGA register space, however by default it is at 0xb800:0 in [character:attribute] pair. For graphics, you would typically call the firmware (VBE or GOP) and obtain the pointer to the linear framebuffer, map it into the address space, and write to it. Setting the video mode without the firmware would require device specific code.
Intel is nice when it comes to getting documentation: its why I tend to stick with them. Other companies you may have to pay for documentation or just may be out of luck. You may also be able obtain chipset documentation from Intel which can be useful for embedded devices in laptops.
Tutorials are great for getting your foot in the door. However they all have to simplify greatly in order to emphasize the topic being discussed. One of the "walls" is stepping away from tutorials and researching on your own: learning from other operating systems, the Wiki (which has a lot of the specifications and standards) and walking your own path (i.e. going micro-kernel even if all tutorials are monolithic.)
If your goal is to build an operating system designed well from the ground up, you should not be thinking about graphics for a long time. What you should be thinking about is the build system, targets, and general architecture. I.e. you may end up with over 100kloc before any graphics support. Sure, you can easily switch to a video mode with VBE or GOP and play with it -- but that isn't putting design and engineering up front.
With that said though... all video cards map legacy VGA RAM into the address space at a fixed location. Likewise, the default video mode is VGA Mode 3 or Compatible upon bootup. Writing to text-mode technically depends on the configuration of the VGA register space, however by default it is at 0xb800:0 in [character:attribute] pair. For graphics, you would typically call the firmware (VBE or GOP) and obtain the pointer to the linear framebuffer, map it into the address space, and write to it. Setting the video mode without the firmware would require device specific code.
Intel is nice when it comes to getting documentation: its why I tend to stick with them. Other companies you may have to pay for documentation or just may be out of luck. You may also be able obtain chipset documentation from Intel which can be useful for embedded devices in laptops.
Tutorials are great for getting your foot in the door. However they all have to simplify greatly in order to emphasize the topic being discussed. One of the "walls" is stepping away from tutorials and researching on your own: learning from other operating systems, the Wiki (which has a lot of the specifications and standards) and walking your own path (i.e. going micro-kernel even if all tutorials are monolithic.)
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
Re: Questions and errors in the wiki
If you want to do extremly simple OS I recommend to you to try write OS with drivers for text mode and keyboard. How to start to do it, depends on your actual knowledge.I've found the barebones tutorials pretty outdated and I'm hoping for guides(not tutorials) on how to make an extremely simple OS, not a kernel with barely any explanation...
Writing driver for every graphic card is work for ten human lifes. Fortunately, there are standards, supported by every computer how to switch to graphic mode and how to use it. For legacy boot it is VBE.Also, how do you write without the textmode buffer, and do some graphics..