How to make an OS
So I am interested in making my own os, though I cannot figure out how, I currently have two questions, What language should I use for OS development, and any good tutorials that I can read?
I know@CSharpIsGud made a really good os, can you give me some stuff on how you learned that?
They actually wrote a guide on making an OS: https://repl.it/talk/learn/A-beginners-guide-to-OS-Dev-Part-1/33328
That is a good guide, for setting up the bare minimum of a OS.
There is much much more to an OS than just aligning data sections and compiling.
That guide just explains how to get the basic setup of the OS going.
Also, usually C is also used to develop an OS since it's low-level.
For Example: Linux
C++ is the next most "similar" language. But there isn't really any language that is "similar" to C. C is kind of a "one of a kind" language.
It's been around forever.
But, if I were to tell you a language that is roughly similar to C, I would say C++.
But most languages supports classes, high-level functionality etc meanwhile C doesn't and C is kind of the main entry point of that.
C++ was even written in C at one point(kind of trans-compiled I guess you could say). So many things(languages) used today kinda originated out of C..
I am getting too much into detail, but the most "similar" langue has to be C++..I don't see any other language being "similar" to C..
C is a middle-level language. It isn't low-level, but it also isn't high level.
You can make the C code you write low level(like writing an OS), or make it mid-level, like opening a file and writing to a file.
But, C is BY FAR not a high-level language. A high-level language is something like Java, Rust, Python etc
C is nothing compared to those languages..not even close
High-level languages are usually interpreted(like Python), and easy to read.
Low-level means it is now as readable and is often a bit more difficult to write and understand..
A low level language is something that, for example, requires memory allocation.
A high level language is something that needs no memory allocation, is garbage collected, and often times interpreted.