His vision for a 32-bit DOS drop-in replacement can be split into four different parts:
- A 16 bit bootloader that sets the stage for 32-bit, it would also act as a monitor (I guess he means like the feedback you get on-screen with Ubuntu Server, FreeDOS etc. He gave Minix as example)
- The Kernel itself: the essential hardware drivers (but only the ones necessary at boot time), memory manager, virtual filesystem layer and a WM86 process manager
- The remaining 32-bit drivers as loadable kernel modules
- The 16-bit DOS compatibillity layer, which gets called when the kernel wants to do VM86 stuffWe won't need a fully fledged DOS emulation layer, just one for the BIOS. But it would be certainly possible to have one.
We got an email with a few ideas and suggestions about the kernel. Now, I have some comments on this myself. But I'm going to use this initial post as a recap of his email and I'll post a reply (which may take a few minutes to write) right after this one with my own comments about this.His vision for a 32-bit DOS drop-in replacement can be split into four different parts:
- A 16 bit bootloader that sets the stage for 32-bit, it would also act as a monitor (I guess he means like the feedback you get on-screen with Ubuntu Server, FreeDOS etc. He gave Minix as example)
- The Kernel itself: the essential hardware drivers (but only the ones necessary at boot time), memory manager, virtual filesystem layer and a WM86 process manager
- The remaining 32-bit drivers as loadable kernel modules
- The 16-bit DOS compatibillity layer, which gets called when the kernel wants to do VM86 stuffWe won't need a fully fledged DOS emulation layer, just one for the BIOS. But it would be certainly possible to have one.
He also explains that the kernel, will need an interval timer (the PIT in our case) if it wants to support the pre-emptive multitasking. The timer should call the scheduler, the scheduler should handle the time-of-day and not by the handler of the ISR itself.
Screenshot:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------The updating and maintaining of the task queue(s) can be run as seperate tasks. And note the word 'task' not process (task is strictly kernel level, process is user level).Then there are a few other (smaller) suggestions:
- update time-of-day by task scheduling, not the interrupt handler
- we store time-of-day in different fields, another way would be using a single counter and convert the count (e.g. microseconds) to human-readable format
- clock may drift: one way to solve would be to use the RTC (Real Time Clock) of the PC regularly to update system time
test dword [tSystem.configBits], 000000000000000000000000000000100b
jz .stickWith25
Secondly, we should just select the things we want on it. It probably won't be a folder, but just a page with pictures and some description.
Should we name it 'Dochub' or 'Documentation hub'?
Secondly, we should just select the things we want on it. It probably won't be a folder, but just a page with pictures and some description.
On Wednesday, July 11, 2018 at 5:11:15 PM UTC-4, Maarten Vermeulen wrote:Should we name it 'Dochub' or 'Documentation hub'?It could be either. Maybe DocHub sounds a little too GitHub-y?