Anonymous user
James Molloy's Tutorial Known Bugs: Difference between revisions
James Molloy's Tutorial Known Bugs (view source)
Revision as of 04:04, 27 February 2014
, 10 years agoMinor grammatical fixes/changes.
[unchecked revision] | [unchecked revision] |
m (Minor spell check) |
m (Minor grammatical fixes/changes.) |
||
Line 4:
{{Main|Bare Bones}}
It is recommended that you follow the this wiki's standard tutorial [[Bare Bones]] before you begin with the tutorial. This ensures you get the a proper cross-compiler and use the proper compilation options. If you have already followed the tutorial, please compare your current build environment against the recommended
== Problem: Not using a cross-compiler ==
Line 57:
== Problem: __attribute__((packed)) ==
This attribute packs the associated structure. This is useful in a few cases, such as the idt and gdt code (actually just the idt, gdt and tss pointers). However, the tutorial tends to randomly attach it to
== Problem: cli and sti in interrupt handlers ==
The interrupt.s file invokes the <tt>cli</tt> and <tt>sti</tt> in the interrupt handler to disable and enable interrupts, as if the author didn't know whether the interrupt handlers were run with interrupts on or off. You can control whether they are run with interrupts on and off by simply deciding it in your IDT entry for the particular interrupt. The <tt>sti</tt> during the interrupt handler end is also useless as <tt>iret</tt> loads the eflags value from the stack, which contains a bit telling whether interrupts are on or off; in other words the interrupt handler automatically restores interrupts whether or not interrupts were enabled before this interrupt.
== Problem: kmalloc isn't properly aligned ==
Line 71:
== Problem: Paging Code ==
The paging code isn't terribly good and it is worth it to fully
== Problem: Heap Code ==
It is probably best that you write your own heap implementation.
== Problem: VFS Code ==
Line 87:
== Problem: Multitasking ==
It is strongly recommended that you write your own implementation of this and disregard the
== Conclusion ==
The tutorial isn't bad as an example, but its design
[[Category:OS Development]]
|