Required Knowledge: Difference between revisions
convert first- and second- person pronouns
[unchecked revision] | [unchecked revision] |
m (Added information about WSL) |
(convert first- and second- person pronouns) |
||
Line 1:
{{FirstPerson}}
'''Beginners in OSDev are strongly recommended not to skip this.'''
Writing an OS is ''not'' a beginner's task. In fact, writing an OS is usually considered the most difficult programming task.
Developing an OS requires these knowledge:
# '''Basic Computer Science''':
# '''Language and Vocabulary''':
# '''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++]]).
# '''Assembly''':
# '''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.
# '''Programming Practices''': You should know how to write both code and user documentation, and be prepared to carefully document all aspects of your code and design, even if the project is purely for your personal use. Also, you should learn and use suitable [[Code Management]] practices, including setting up and using an off-site repository (e.g. Savannah, GitHub, GitLab, Heroku). These two practices alone will--not may, but ''will''--save you a great deal of trouble in the future, ''if'' you follow them.
|