this is my very first post, and I hope not to look silly with this (probably) very trivial question, but I looked around on the internet and in the forums for some hours and I haven't found an answer.
UPDATE: I wrote the kernel as in the Bran's Kernel Development Tutorial without disabling the APIC and it worked without problems. This means that the Local APIC adds features but can be used without changing any code if ignored.
I am trying to write my own long mode os, just for fun, and I am trying to understand the exact role of the Local APIC and of the I/O APIC.
I know that in recent intel processor there is a Local APIC that can be used to do fancy things with interrupts like waking a sleeping thread and communicating between cpus. What I cannot understand is:
- is it enabled when booting up (I think the answer to this one is yes)? If so, can I write code in the same way as not having any APIC?
- if it is enabled when booting up but I have to know about it, do you know any tutorial or guide on how to get the same functionality of a 8259A PIC? (at least for now, until I have my OS booting up and handling IRQ properly)
- is the I/O APIC enabled at boot? I think that the answer to this question is no, so that a standard 8259A PIC communicates with the Local APIC through one of the interrupt pins of the cpu.
Thank you in advance,
Emanuele T.