Where Can I Find Information About Ports: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
No edit summary |
||
(10 intermediate revisions by 8 users not shown) | |||
Line 1:
{{Tone}}
{{FirstPerson}}
{{You}}
== Question: Where Can I Find Information About Ports? ==
<div style="font-size:8pt">
: I have been trying to code a kernel (starting from Brandon's tutorial at osdever). I was lucky to find the ports to display data on screen, to read from a sector, to read the time ([[CMOS]]) and to reboot. Where can I find more information? I want to get into graphics mode, so that I can display images.
: The long version: So, I started with a [[Tutorials|tutorial]], writing hello world was easy. Earlier I had worked on [[Assembly|assembly]] and wrote a simple text-drawing program using [[BIOS]] [[Interrupts|interrupts]]. But, this time I faced the [[kernels|kernel]] stuff, and it used [[ports]] to display data ("Hello World"). I have yet to read the [[Documentation|documents]] properly to appreciate everything. But, anyways I went on searching and I was able to replace "Hello World" with some data on the disk, which required the knowledge of [[LBA]]. I had stumbled on cylinders etc ... the earlier way of reading sector which did not work for me. After knowing the [[LBA]] ports, and going through [[
: But, now when I want to add [[Shutdown|shutdown]], [[
: Kindly help!
Line 20 ⟶ 23:
===== Legacy Software Interfaces =====
Also, for some devices there's a legacy software interface. This is mostly limited to video cards though (the [[VGA_Resources|VESA/VBE]] interface) because the rest is too crappy{{how}} (no sane person uses the BIOS for [[Serial_ports|serial ports]], [[Parallel_port|parallel ports]], [[PS2_Keyboard|PS/2 keyboard]], [[Floppy_Disk_Controller|floppy]], or [[ATA_PIO_Mode|hard drives]]
===== Standard Interfaces =====
Lastly, for some device types there's a standard interface. This includes [[USB]] controllers (AFAIK there's only
===== Supporting Devices Is Difficult =====
Mostly, to support all devices properly (without using legacy interfaces) you need to read through thousands of pieces of documentation and write thousands of different device drivers (and no, there
===== Keep It Minimal =====
Fortunately (IMHO), for a good OS design you don't actually need to write many device drivers{{according to whom}} (a few common drivers to get things started perhaps). You only really need to design, implement and document suitable device driver interface/s, so that other programmers can easily write the device drivers later. For example, you might write one device driver for one [[ethernet]] card, and (hopefully, one day) twenty more people might use your [[documentation]] (and your first device driver, as a reference) to implement fifty more device [[drivers]] for fifty more [[ethernet]] cards.
Basically what I'm saying is that (IMHO) sane OS developers don't actually write an OS. Instead they write [[
== Question: Shutdown, Graphics, Network, and Others ==
Line 45 ⟶ 48:
===== Network Cards =====
For [[:Category:Network Hardware|network
===== Source =====
|