Posted: Fri Nov 09, 2007 7:22 am
What a wonderful line of questioning. I personally believe that your supported hardware choices depends on your target audience.
By the time your OS is finished, it will be at least a year or two from now if you finish it. In that time, you will your OS to still be relevant. The problem with designing something for the future is that we cannot be certain about what it holds, we can only hypothesize based on hearsay and rationale.
Of interest is that most hearsay now goes that in the next two years we'll be seeing:
USB 3.0 (and eventual abandonment of almost all other device port types)
OLEDs
more multi-core, multi-chip SMP
increased bandwidth, instruction pipes, latency and prefetch
more microSD
Wireless USB
possibly LinuxBIOS might support enough motherboards to be usable.
These things suggest that we continue to separate and ignore bootloading (and hope for linuxbios), continue to try to avoid BIOS interrupts, prepare for USB 3.0 and being able to run all devices off it, prepare for multiple high resolution displays, and concern ourselves greatly with caching and thread safety.
Things like PS/2 drivers are less important, as even now we can use a USB keyboard and mouse which will ease transition down the road. Things like programming for the PIT and PIC are bad, because we need the I/O APIC anyways for SMP, so we should really be using the LAPIC timer or similar (APIC and PIT don't play nice together) We should be trying to move away from ISA and towards PCI as much as possible, and we should most definitely be aware of SMP, cache coherency, and event-based programming because that's where the hardware's going.
Too many folks here are still stuck on coding i486. Welcome to the 21st century.
By the time your OS is finished, it will be at least a year or two from now if you finish it. In that time, you will your OS to still be relevant. The problem with designing something for the future is that we cannot be certain about what it holds, we can only hypothesize based on hearsay and rationale.
Of interest is that most hearsay now goes that in the next two years we'll be seeing:
USB 3.0 (and eventual abandonment of almost all other device port types)
OLEDs
more multi-core, multi-chip SMP
increased bandwidth, instruction pipes, latency and prefetch
more microSD
Wireless USB
possibly LinuxBIOS might support enough motherboards to be usable.
These things suggest that we continue to separate and ignore bootloading (and hope for linuxbios), continue to try to avoid BIOS interrupts, prepare for USB 3.0 and being able to run all devices off it, prepare for multiple high resolution displays, and concern ourselves greatly with caching and thread safety.
Things like PS/2 drivers are less important, as even now we can use a USB keyboard and mouse which will ease transition down the road. Things like programming for the PIT and PIC are bad, because we need the I/O APIC anyways for SMP, so we should really be using the LAPIC timer or similar (APIC and PIT don't play nice together) We should be trying to move away from ISA and towards PCI as much as possible, and we should most definitely be aware of SMP, cache coherency, and event-based programming because that's where the hardware's going.
Too many folks here are still stuck on coding i486. Welcome to the 21st century.