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.
Basic subsystems of a PC (more detailed)?
- Brynet-Inc
- Member
- Posts: 2426
- Joined: Tue Oct 17, 2006 9:29 pm
- Libera.chat IRC: brynet
- Location: Canada
- Contact:
What's wrong with the i486? Even I still occasionally fire mine up.. along with older systems..
Personally.. I hate USB mice & keyboards because they use SMM to provide the PS/2 emulation, and that scares the hell out of me..
If you don't opt for PS/2 emulation, you have to wait until your kernel loads a USB driver.
Personally.. I hate USB mice & keyboards because they use SMM to provide the PS/2 emulation, and that scares the hell out of me..
If you don't opt for PS/2 emulation, you have to wait until your kernel loads a USB driver.
"You have to wait until a kernel loads your USB driver"
Most excellent. User input should not be running before security is in place.
Also, I believe I did mention that USB would be common to almost all external devices. If one were reasonably intelligent, they wouldn't emulate a 10 years obsolete interface - then, we still boot in 16-bit mode.
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.
- C. A. R. Hoare
- C. A. R. Hoare