OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Apr 19, 2024 6:33 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: I want to learn how to make an operating system.
PostPosted: Thu Mar 30, 2017 4:28 am 
Offline

Joined: Thu Mar 30, 2017 4:25 am
Posts: 1
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.


Top
 Profile  
 
 Post subject: Re: I want to learn how to make an operating system.
PostPosted: Thu Mar 30, 2017 8:36 am 
Offline
Member
Member
User avatar

Joined: Thu Jul 12, 2012 7:29 am
Posts: 723
Location: Tallinn, Estonia
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.

_________________
Learn to read.


Top
 Profile  
 
 Post subject: Re: I want to learn how to make an operating system.
PostPosted: Thu Mar 30, 2017 9:55 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 1925
Location: Athens, GA, USA
john1000 wrote:
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.

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:

Then you should read up on the core technologies for the platform. Assuming that you are targeting the PC architecture, this would be:

I strongly suggest that you read through the first two set of pages in detail, and preferably at least go through the third part briefly, before doing any actual development. At this stage, I expect that there will be so many unfamiliar ideas and terms that you will be too confused to proceed, anyway; this is natural, and happens to pretty much everyone reading these things for the first time. If you think you did understand it the first time, read it again, because you didn't - no one does, no one can, get it that fast.

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.


Top
 Profile  
 
 Post subject: Re: I want to learn how to make an operating system.
PostPosted: Thu Mar 30, 2017 12:35 pm 
Offline
Member
Member

Joined: Tue Sep 23, 2014 6:12 pm
Posts: 144
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 96 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group