OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 2:27 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 15 posts ] 
Author Message
 Post subject: would someone help me
PostPosted: Sun Jul 19, 2020 9:58 am 
Offline

Joined: Sun Jul 19, 2020 9:45 am
Posts: 9
would someone help me , i like computer so much and i dream to make my own os but unfortunately i have ADHD i tried learning programming for 6 years but returned with no practical ability cause of perplexity , i want someone to reference me sources assuming i have zero knowledge , strating from scratch building my own os , and i will be thankful :)


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Mon Jul 20, 2020 8:46 pm 
Offline
Member
Member
User avatar

Joined: Sat Dec 03, 2016 3:13 am
Posts: 64
You mean start of learning programming or start of learning OS/system dev?


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Mon Jul 20, 2020 11:05 pm 
Offline
Member
Member

Joined: Wed Aug 30, 2017 8:24 am
Posts: 1593
OS development is one of the king disciplines of programming. The others being compiler development and 3D game development. It is ill-advised to try to build an OS as the very first thing. I would suggest you get familiar with C in userspace first, writing simple applications. Then slowly turn up the difficulty until you feel you are ready to work without a net.

When learning to dive, you wouldn't go to Mariana's Trench as the very first thing, would you? OS development is complicated, and as a beginner you will be quickly overwhelmed trying to keep all the things in your head. ADHD will not aid in this.

_________________
Carpe diem!


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Wed Jul 22, 2020 2:04 pm 
Offline

Joined: Tue Jul 21, 2020 6:51 pm
Posts: 1
Hello Hello, Let's start with the most important fundamentals to getting started...

How familiar are you With C programming?

I see you said you have 6 years experience, what languages have you used?

If you are very familiar with C programming, how about Assembly eg NASM? This is your hammer and screw driver to build an OS from scratch project :D


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 8:55 am 
Offline

Joined: Sun Jul 19, 2020 9:45 am
Posts: 9
Seahorse wrote:
You mean start of learning programming or start of learning OS/system dev?


i mean to start programming from scratch till building my os


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 9:01 am 
Offline

Joined: Sun Jul 19, 2020 9:45 am
Posts: 9
nullplan wrote:
OS development is one of the king disciplines of programming. The others being compiler development and 3D game development. It is ill-advised to try to build an OS as the very first thing. I would suggest you get familiar with C in userspace first, writing simple applications. Then slowly turn up the difficulty until you feel you are ready to work without a net.

When learning to dive, you wouldn't go to Mariana's Trench as the very first thing, would you? OS development is complicated, and as a beginner you will be quickly overwhelmed trying to keep all the things in your head. ADHD will not aid in this.


i just want someone to reference me sources(books) in order , so i can learn programming(assembly) from scratch till building my os as long as it's practicable


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 9:05 am 
Offline
Member
Member

Joined: Tue Feb 18, 2020 3:29 pm
Posts: 1071
I learned assembly language from http://www.tutorialspoint.com. They have tutorials for practically anything.

_________________
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 1:50 pm 
Offline
Member
Member
User avatar

Joined: Fri Mar 01, 2019 3:50 pm
Posts: 39
Location: France
The best way to learn is by practising (and it doesn't apply just to computer science, it's the same for every single domain; whether it's hobby or professional!) - Grab documentation, tutorials (although it's recommended to have textual tutorials instead of videos), example source code & even projects that uses the language(s) that you chose to learn; try to create/modify the source code and see what happens!

On the x86 architecture, I suggest you to start off by doing small programs on MS-DOS in Real Mode with NASM - The best program that allows you to emulate (and not virtualize) an x86 machine with MS-DOS is DOSBox; since it allows you to directly map folders & disk images to drive letters (for example, I can "mount" my home directory located in `/home/alex/` to drive letter C; that way I can then change my current drive to C: & thus I can access all of my files and run my assembled binaries from there!). There is a good tutorial about this software here: https://www.dosbox.com/wiki/Basic_Setup ... _of_DosBox

There is also a good website that lists all of the available interrupts in Real Mode here (yep, it's Ralf Brown's Interrupt List!): http://www.ctyme.com/intr/cat.htm (although I strongly recommend for beginners to use the "Category" section of the website instead of the "Interrupt table" section). When you choose a specific interrupt sub-routine, it tells you exactly what registers values to set & what interrupt to call; so this is really practical! :D

Once you have a bit of experience on this, you can try to make a simple boot sector that switches to Protected Mode & displays "Hello World" without using the BIOS interrupts (since you can't use them anyways, unless if you enable the Virtual 8086 Mode)! And then, you can try to do even more stuff from there :P - There is a good article on the OSDev's wiki that talks about the boot sequence, so that can be also useful for you: https://wiki.osdev.org/Boot_Sequence

Of course if you don't want to learn how a BIOS-based boot strap works, you can directly skip to how UEFI manages the boot-loading sequence (and that can be understandable since UEFI is less requiring in knowledge, see this article for more information: https://wiki.osdev.org/UEFI)

Anyways, that's what I suggest you to do but you are free to do whatever suits you the best - good luck & have fun in your operating system development journey :D


Last edited by crosssans on Fri Jul 24, 2020 2:23 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 2:08 pm 
Offline
Member
Member

Joined: Fri Nov 22, 2019 5:46 am
Posts: 590
I think crosssans has given good advice.

I would advice first writing applications - in any programming language you understand well. Be it C, Python, Basic, Pascal, C++, C#, Java etc.
Then learn C and x86 real mode (16bit) assembler. Then x86 32bit assembler. Then x86 64bit assembler. With each step x86 assembler is becoming more complicated, but the PC architecture gets more exciting I think.

I struggle with psychical illness, too. So I know about code not getting done and I don't recommend for ADHD to develop an OS. But if you really like it and really want it very much, then do it! It's not crazy to have an psychical illness. But it's crazy to choose OS development as hobby (for everybody). But I stick to it. So can you do, too, if you like.

Greetings
Peter


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 8:37 pm 
Offline
Member
Member
User avatar

Joined: Sat Dec 03, 2016 3:13 am
Posts: 64
nexos wrote:
I learned assembly language from http://www.tutorialspoint.com. They have tutorials for practically anything.


I overlooked that place before. What is your review of it? I got the impression it may have been so-so. But, hey I guess that's better than using no resource.


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Fri Jul 24, 2020 8:43 pm 
Offline
Member
Member
User avatar

Joined: Sat Dec 03, 2016 3:13 am
Posts: 64
I wish this had a like feature for crosssans post.


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Sat Jul 25, 2020 3:01 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 01, 2019 3:50 pm
Posts: 39
Location: France
I wanted to add that I have myself a slight form of ADHD with hyperactivity, yet this doesn't stop me to learn & create cool projects (such as making a kernel or writing a game engine for example; although I never finish them since I get attracted to new project ideas right away unfortunately #-o) - If you love what you do, nothing is going to block you from doing it whether there's an additional constraint or not; you just got to be patient, organized & motivated to learn and conceive new & unique things :mrgreen:

I think that the best way to fully develop a project from start to finish is to have a very, VERY clear mind about how the project is organized & implemented - and I can notice that the more I do this, the longer I will work on since I have the right objectives to fulfill. I am currently thinking on how should I implement my build system & I remarked that looking up at documentation on how each component works with each other reassures me on the complexity level of it - but that's just what I experience of course :P

Anyways, hope this will help you structure your project - I hope you'll have fun doing this :)

(Note: Thanks to PeterX & Seahorse's feedback, it means a lot to me! :wink:)


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Sat Jul 25, 2020 3:34 am 
Offline
Member
Member

Joined: Fri Nov 22, 2019 5:46 am
Posts: 590
Seahorse wrote:
nexos wrote:
I learned assembly language from http://www.tutorialspoint.com. They have tutorials for practically anything.


I overlooked that place before. What is your review of it? I got the impression it may have been so-so. But, hey I guess that's better than using no resource.

Yes, they are so-so. Not going into deep details. But good starting point. Books are better, but they cost a lot. I once and then got some precious informations from tutorialspoint.

crosssans wrote:
you just got to be patient, organized & motivated to learn and conceive new & unique things :mrgreen:

Yes, true.
I also can recommend the book "Essentialism - the disciplined pursuit of less" which says: Don't do everything, do only important things. If it isn't a clear Yes, it's a clear No. We all tend to get lost in pseudo-important stuff. And many of us get distracted by other projects which keeps them from contributing to their main project.

Greetings
Peter


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Sun Aug 02, 2020 8:35 am 
Offline

Joined: Sun Jul 19, 2020 9:45 am
Posts: 9
thanks to all of you , i will follow your instructions and if anything stoped me i will return to ask


Top
 Profile  
 
 Post subject: Re: would someone help me
PostPosted: Sun Aug 02, 2020 10:49 pm 
Offline
Member
Member
User avatar

Joined: Sat Dec 03, 2016 3:13 am
Posts: 64
PeterX wrote:
I think crosssans has given good advice.

I would advice first writing applications - in any programming language you understand well. Be it C, Python, Basic, Pascal, C++, C#, Java etc.
Then learn C and x86 real mode (16bit) assembler. Then x86 32bit assembler. Then x86 64bit assembler. With each step x86 assembler is becoming more complicated, but the PC architecture gets more exciting I think.

I struggle with psychical illness, too. So I know about code not getting done and I don't recommend for ADHD to develop an OS. But if you really like it and really want it very much, then do it! It's not crazy to have an psychical illness. But it's crazy to choose OS development as hobby (for everybody). But I stick to it. So can you do, too, if you like.

Greetings
Peter


I thought i was kind of the only one who wanted to "make my own operating system" one day.


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

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 39 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