Required Knowledge: Difference between revisions

m
make Assembly an absolute requirement
[unchecked revision][unchecked revision]
mNo edit summary
m (make Assembly an absolute requirement)
Line 8:
# '''Language and Vocabulary''': You need to be able to read and write (technical) English at a competent level. Virtually all technical documentation is in English, and most of the resources you could find on the web (like this Wiki and the [http://forum.osdev.org forum]) are, also. Using incorrect terminology will make you look foolish and confuse the people willing to help you.
# '''Language and Vocabulary, pt. 2''': Most operating systems featured on this site, as well as most of the code snippets and examples, are written in [[C]] (or [[C++]]). Even if you choose to use another language (like [[FreeBASIC]] or [[Pascal]]), C is the ''lingua franca'' of programming, and you should be competent in making heads and tails of it.
# '''Assembly''': You should have knowledge about the low-level language [[Assembly]]. Read a book. Take a course at school. At least read some tutorials, and writeWrite some user-space code to familiarize yourself with it. You ''will'' need it, even if you plan to write most of your operating system in a higher-level language.
# '''Programming experience''': Learning about programming with an OS project is considered a bad idea. Not only should you know the language in which you will be developing inside out, you should also be familiar with version control, debugging, etc. - in short, you should have written quite a few user-space programs in that language successfully before trying OS development.
# '''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.)
Anonymous user