If you’re brand new to C, check out Dartmouth’s C Programming: Getting Started course, which is free through EDX. Once you complete that course, you can take the next course in the series: C Programming: Language Foundations. Then, move on to subsequent courses like Modular Programming and Memory Management and Pointers and Memory Management.
This open-source book, if read in its entirety, can give you a solid enough understanding for building an operating system. [2] X Research source The Art of Assembly Language is a highly-recommended book about assembly available both on and offline. You should also do a lot of research on the type of processor(s) on which your operating system should run. The manuals for processor architecture can easily be found using a Google search (“Intel Manuals,” “ARM manuals,” etc. ).
Bare Bones is a tutorial that helps you write your first simple 32-bit kernel. After completing the tutorial, the next step is to use Meaty Skeleton to structure your own operating system. Linux from Scratch is an online book that walks you through creating your own Linux operating system. Operating systems from 0 to 1 is a free book about creating various operating systems from start to finish.
Consider developing with a team of other programmers. Having a team of developers working on the project will cut the development time significantly. Add your project goals, plans, and questions to your public repository so it’s easy for others to help you.
GCC (the Gnu compiler). If you’re using Windows, you can install it in Cygwin or MinGW. Binutils is a collection of tools used for manipulating object files. Again, if you’re using Windows, you can install it in Cygwin. A good text editor. Vim and emacs are commonly used in UNIX environments. Windows users can use Notepad, or check out Notepad++ for a multi-tab upgrade. Perl and/or Python. One or both are recommended for string manipulation.
You will not have a full system in two weeks. Start with an OS that boots, then move on to the cool stuff.