I was wondering if when our OS - boot sector, kernel and shell - are ready, will the tutorials have something about setting some form of GUI or VESA modes?
Thank you, jamsinux


Moderator:Moderators
We will not cover the video and graphics tutorials until later after we have a solid kernel running. Trust me-its easier this way. While we can get into a video mode now, graphics programming can be very hard without a better foundation (ak, memory manager primarily.) I plan on covering 2d software rendering...Mabey 3d later on after the system gets more evolved.What's the timeline for the video tutorial and the interrupt one?
There can be several reasons for that, and it is not related to video, but rather your envirement setup and linker map. In some cases, the C++ runtime might generate sections that are required by the compiler (We do this in our MSVC++ tutorial.) This is very compiler dependent, however.I've started poking at video and working on the interrupts myself but I'm experiencing some very weird issues (accessing global array generates a triple fault :/ ).
We are still considering this. While VBE is a great option, it is not compatible with all systems. We might cover both VGA and VBE device programming.How will you be handling the 32bit video driver? I'm assuming using VBE3 and mapping the stuff to protected memory or is there another/better/easier way?
True enough. Will you be creating a memory manager from scratch or porting an existing one? Plan to support virtual memory and paging (I guess you'll need a filesystem for that)?Mike wrote: We will not cover the video and graphics tutorials until later after we have a solid kernel running. Trust me-its easier this way. While we can get into a video mode now, graphics programming can be very hard without a better foundation (ak, memory manager primarily.) I plan on covering 2d software rendering...Mabey 3d later on after the system gets more evolved.
Is the HAL going to be it's own dll? What will you be putting in the HAL, the HW IO, interrupts and some higher level stuff (spinlocks, semaphores)? I've just been throwing everything into the kernel, don't think I'll ever need to run it on anything else than x86.Heres the current timeline to the interrupt tutorials...
Tutorial 14 - Kernel and HAL Initialization
Tutorial 15 - Interrupt Handling Part 1
Tutorial 16 - Interrupt Handling Part 2
Hardware Interrupt devices will either be referenced from Tutorial 16, or moved to their own tutorial - Tutorial 17. It depends on how big these tutorials get. We plan on covering these in alot of detail.
I am using MSVC 2005 and it isn't related to the video stuff I am doing. I have an array of interrupt descriptors and if I access the array it generates a triple fault.There can be several reasons for that, and it is not related to video, but rather your envirement setup and linker map. In some cases, the C++ runtime might generate sections that are required by the compiler (We do this in our MSVC++ tutorial.) This is very compiler dependent, however.
If you are using GCC or DJGPP, We plan on adding those tutorials very soon that may resolve that problem.
If you are using one of these compilers, perhaps we can help you out here.
Interesting, what systems is it incompatible with? I assumed it would work pretty much on anything now since the spec was released in 98.We are still considering this. While VBE is a great option, it is not compatible with all systems. We might cover both VGA and VBE device programming.
Probably from scratch. Virtual memory and paging is a must.True enough. Will you be creating a memory manager from scratch or porting an existing one? Plan to support virtual memory and paging (I guess you'll need a filesystem for that)?
If we can port Mesa, this should work fine. Interesting ideaFor 3D might just be able to port Mesa over for OpenGL support unless you want to create your own API for it.
This was originally planned, however it would be to complex at this stage as the bootloader will require some advance topics that have not been covered yet.Is the HAL going to be it's own dll?
One of our goals with the series is to encourage good coding practices and design. While we may not port the system to more then one architecture, we should still provide interfaces and abstraction layers to allow for easier portability...This is our primary reason for doing it this way.What will you be putting in the HAL, the HW IO, interrupts and some higher level stuff (spinlocks, semaphores)? I've just been throwing everything into the kernel, don't think I'll ever need to run it on anything else than x86.
Most systems these days do support it, alot of the older machines dont though. (Im referring to machines still running Win95, Win98, etc...)Interesting, what systems is it incompatible with? I assumed it would work pretty much on anything now since the spec was released in 98.
I don't know, I think if VGA is simpler I'd prefer it as a starting point, especially as it's supported on more platforms. 800x600 resolution is plenty for a start.If the series reader demand for this is great enough, we might just skip the vga, and use VBE... What would you like?
Hello, VGA only supportsscorpion007 wrote:I don't know, I think if VGA is simpler I'd prefer it as a starting point, especially as it's supported on more platforms. 800x600 resolution is plenty for a start.If the series reader demand for this is great enough, we might just skip the vga, and use VBE... What would you like?
If you like you can do VBE or whatever it is later on, I've never heard of it myself, but I'm a noob.