Required Knowledge: Difference between revisions

m
no edit summary
[unchecked revision][unchecked revision]
No edit summary
mNo edit summary
Line 12:
# '''UNIX experience''': You will soon notice that many of the tools used in OS development are developed for Unix, and later ported over to Windows. The Linux kernel is often used as reference or example for how things can be done, and many of the hobby operating systems have some resemblance to Unix. Having some experience with the Unix command line (bash or ksh) is a minimum. ([[Cygwin]] provides an easy-to-install Unix command line for Windows.)
# '''Toolchain''': You must know the behavioral details of your compiler, assembler, linker, and make utility. You should have the documentation of the tools you use at hand, and refer to them ''before'' asking the community. Rest assured that any possible beginner's question about [[GCC]], [[GAS|GNU as]], [[NASM]], [[LD|GNU ld]], [[Visual Studio]] and [[GRUB]] has been answered twice over. Search before you ask.
# '''Emulators and Virtualizers''': Familiarity with tools such as [[Bochs]], [[VirtualBox]], [[QEMU]], or [[Virtual PCMicrosoft_Virtual_PC]] is key to having a reasonable turn-around in development, and provide a buffer between your real hardware and your test system. While these can be learned for the specific purpose of OS dev, you will certainly want to be aware of what they are and where to get them before beginning an OS project.
# '''Executable Formats''': Kernel space programming has many ''additional'' requirements unknown to application development. Being able to parse executable binaries is one of them (you ''do'' want your OS to load and execute applications, do you?) Make yourself familiar with [[:Category:Executable Formats|Executable File Types]], their internal structure, and how a linker generates them.
# '''The Platform''': You should have studied the manuals for the processor you will be programming for. They contain the information you need to design your kernel in the first place. Asking for information that can easily be obtained from these documents will only give cause to "Read The (...) Manual" responses, or simply RTFM.
Anonymous user