I would eventually like to get into writing my own very simple command line OS but I am looking for maybe somewhere to start. I know C++ but I am not an expert at it and I was wondering if someone could point me in the right direction to getting in to OS development such as smaller projects that I could take on and stuff. The OS that I would write would be architectured to only run on one type of CPU, so It would not be like windows or anything. Also should I be getting into assembly or anything aswell.

I would eventually like to get into writing my own very simple command line OS but I am looking for maybe somewhere to start. I know C++ but I am not an expert at it and I was wondering if someone could point me in the right direction to getting in to OS development such as smaller projects that I could take on and stuff. The OS that I would write would be architectured to only run on one type of CPU, so It would not be like windows or anything. Also should I be getting into assembly or anything aswell.

Most of it will be written in C probably, though with some Assembly. You are potentially biting off something very big to chew. I don't think there is such a thing as a "simple" OS. It's very wise that you are going to make it command line instead of graphical. Adding a GUI complicates things tremendously. Check out MINIX. It's gotten bigger than it used to be, so it might even be worth trying to get an earlier version.

http://www.minix3.org/

I'm sure there are smaller ones out there, but not by much. You might want to tackle making an emulator from within a command-line program first (i.e. the user can type "ls" or "pwd" or whatever and you make the system calls and do the commands from within the program). That's far less work than writing an OS. I'd start with that, then install MINIX with the minimum options and really get to know the code. Then, after you think you have that semi-mastered, start your own.

when you say make system calls, I know that if it was a console app for windows I would be making calls to the winapi but that won't really be relevant to my own OS since it will not have a Windows API so do you mean making system calls directly to my CPU or something and wouldn't that involve assembly?

when you say make system calls, I know that if it was a console app for windows I would be making calls to the winapi but that won't really be relevant to my own OS since it will not have a Windows API so do you mean making system calls directly to my CPU or something and wouldn't that involve assembly?

I'm saying that if it were me, I wouldn't write my own OS yet because currently that project is too big for me to tackle. I'm saying to use Linux or Windows or whatever as the Operating System, write a command line program that makes system calls, and see whether you find that difficult or not. That's a far easier project. I don't know your experience or programming skills. Maybe you can go straight to writing an OS, but I don't think most people can. I certainly can't. I'm suggesting an intermediate project that could could take days or weeks to finish rather than months or years, which is what I think it would take to write an Operating System.

I have written several Windows Console apps utilizing the Windows API and the C++ STL but that is calling functions and stuff from inside another OS and I'm thinking is it possible to go deeper and make a call right to the CPU within the windows console instead of to the WinAPI. any help is appreciated. I am pretty sure it requires assembly but I am wondering if assembly and C or C++ can go hand in hand.

This article has been dead for over six months. Start a new discussion instead.