Hi
I want to learn how to make an operating system. I am trying to learn Assembly but it is so confusing. Where can I start? I've read the wiki. I tried some tutorials but they are very confusing. I am a beginner. I know some Java and C. Please help me out.
Thanks
John.
I want to learn how to make an operating system.
Re: I want to learn how to make an operating system.
Read compiler output in assembly by feeding it C programs (you know C), and looking what comes out - then reading about what each instruction is for in the Intel manuals.
Ignore the OSdev part for now - assembly itself is a long enough project to grasp. Write assembly language programs for your existing OS for a while first.
Online translator - https://godbolt.org
Manuals - http://www.intel.com/content/www/us/en/ ... 25384.html
Tutorials - http://asmtutor.com
Good luck.
Ignore the OSdev part for now - assembly itself is a long enough project to grasp. Write assembly language programs for your existing OS for a while first.
Online translator - https://godbolt.org
Manuals - http://www.intel.com/content/www/us/en/ ... 25384.html
Tutorials - http://asmtutor.com
Good luck.
Learn to read.
- Schol-R-LEA
- Member
- Posts: 1925
- Joined: Fri Oct 27, 2006 9:42 am
- Location: Athens, GA, USA
Re: I want to learn how to make an operating system.
No, you don't. You might think you do, but that's inexperience talking. You have no idea what you are getting yourself into, and it is likely that the result of trying this early in your career would be to put you off of programming entirely. A novice programmer attempting an OS project is something akin to a toddler trying to run a Triple Marathon. It is one of the four hardest types of programming projects one can attempt (the others being a relational database engine, a 3D rendering engine, and a professional-grade language compiler for a new language). It is the sort of thing that usually comes toward the end of one's career, as a capstone or masterwork, not at the beginning.john1000 wrote:I want to learn how to make an operating system.
Most programmers never get anywhere near that level of skill, experience, and knowledge, no matter how long they have been working in the field; most never learn enough about low-level programming to even understand what it requires.
That having been said, I doubt I have persuaded you on this; I got the same rant over 20 years ago and it didn't slow me down, either. My best advice is to spend some time reading up on the subject, a little at a time, while getting more basic programming skills under your belt.
If you haven't already, I would strongly recommend reading the introductory material in the wiki:
After this, go through the material on the practical aspects of
running an OS-dev project:
- What order should I make things in
- Code Management
- How kernel, compiler, and C library work together
- Using Programming Languages other than C
- Real Mode, especially the section on memory addressing, and Segmentation
Memory Map, Detecting Memory and A20 Line - BIOS, and Boot Sequence
- Interrupts
- Bootloader and Rolling Your Own Bootloader
- FAT and SFS
In addition, you need to read at least two different books on the topic of operating systems. This is non-negotiable - the wiki does not and cannot have all the information you need, nor can any single book.
While this is a lot of reading, it simply reflects the due diligence that any OS-devver needs to go through in order to get anywhere. OS development, even as a simple project, is not amenable to the Stack Overflow cut-and-paste model of software development; you really need to understand a fair amount of the concepts and principles before writing any code, and the examples given in tutorials and forum posts generally are exactly that. Copying an existing code snippet without at least a basic idea of what it is doing simply won't do. While learning itself is an iterative process - you learn one thing, try it out, see what worked and what didn't, read some more, etc. - in this case a basic foundation is needed at the start. Without a solid understanding of at least some of the core ideas before starting, you simply can't get very far in OS dev.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
Re: I want to learn how to make an operating system.
Schol-R-LEA: Do you assume he isn't a beginner by posting Wiki links? What was your point?
And seeing you speak on it, I don't think I belong here either.
And seeing you speak on it, I don't think I belong here either.