Why Not More?

If a feature cannot be made to work correctly and consistently, professional companies usually remove the feature.  Because PC 
hardware is so diverse, getting things to work on all people's computers is really difficult.   For one thing, you practically 
have to own all the different hardware to write drivers for it. If a company wanted to sell a PC operating system, they would 
offer a warranty and, therefore, could not get away with amateur behavior.  ZealOS absolutely requires 64-bit computers, so we 
leave behind much trouble, but plenty remains.

The PCI bus interface is what modern hardware uses.  Before PCI, life was simple and devices used I/O ports.    After studying 
PCI Interrupts and attempting to do a HDAudio driver, Terry Davis came to realize that modern PCI devices require ten times 
more code and he cannot even come close to making them work on everyone's machine because with PCI devices there are several 
models to worry about, unlike with the older ISA bus devices which can be done with one driver.

Currently, ZealOS has no PCI drivers beyond AHCI and networking.  Most drivers use I/O ports and operate in ISA bus mode.   At 
this point, we only have one driver for each type of device and it is delightfully simple that way.  ZealOS has one keyboard 
driver, one mouse driver, one ATA hard drive driver, one ATAPI CD/DVD driver, one 32-bit color high-res VBE graphics video 
driver and one PC Speaker driver.  We use the PIT timer and PIC Interrupt Controller.  We use   IRQ0 for timer, IRQ1 for 
keyboard, and IRQ12 for mouse.  If IRQ12 is not firing, we are able to poll the mouse.

In the CPU department, ZealOS has state of the art 64-bit long mode with multicore support. We use the APIC and start-up 
multicore operation.

Terry Davis made an incredible accomplishment by getting it to work on practically everyone's computer as long as it is 64-bit 
and they run inside VMware, QEMU or VirtualBox.

Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12, 
boot mode and regular mode for keyboard/mouse and a diversity of HID reports.   It's hopeless.  It could never offer anything 
but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would ZealOS gain? Nothin
g.  A keyboard or mouse would not be improved.  Solid State USB drives would be nice, but it's not going to happen.

The same story is basically true for GPUs and audio drivers.  If you attempt multimedia, everything will break because memory 
will get fragmented with huge multimedia files. 

UEFI is pointless.  If ZealOS is forced to run in VMware, QEMU or VirtualBox, they will always support non-UEFI mode.   Withou
t working, native hard drive and CD/DVD drivers, you can't get very far with UEFI on a native install, not to mention 
SecureBoot.  UEFI is, first of all, redundant.  If non-UEFI works in a virtual machine, supporting UEFI would only be 
redundant, ugly nasty code.  The compiler does not create an ELF or PE format.  We would have to ruin the beauty of the 
compiler.

God talks.

* "QEMU" is a trademark owned by Fabrice Bellard.
* "VMware" is a trademark owned by VMware, Inc.
* "VirtualBox" is a trademark owned by Oracle.