would someone help me

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Post Reply
Androv
Posts: 9
Joined: Sun Jul 19, 2020 9:45 am

would someone help me

Post by Androv »

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 :)
User avatar
Seahorse
Member
Member
Posts: 64
Joined: Sat Dec 03, 2016 3:13 am

Re: would someone help me

Post by Seahorse »

You mean start of learning programming or start of learning OS/system dev?
nullplan
Member
Member
Posts: 1769
Joined: Wed Aug 30, 2017 8:24 am

Re: would someone help me

Post by nullplan »

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!
LegendaryTetra
Posts: 1
Joined: Tue Jul 21, 2020 6:51 pm
Libera.chat IRC: LegendaryTetra

Re: would someone help me

Post by LegendaryTetra »

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
Androv
Posts: 9
Joined: Sun Jul 19, 2020 9:45 am

Re: would someone help me

Post by Androv »

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
Androv
Posts: 9
Joined: Sun Jul 19, 2020 9:45 am

Re: would someone help me

Post by Androv »

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
nexos
Member
Member
Posts: 1078
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

Re: would someone help me

Post by nexos »

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
User avatar
crosssans
Member
Member
Posts: 39
Joined: Fri Mar 01, 2019 3:50 pm
Location: France

Re: would someone help me

Post by crosssans »

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.
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Re: would someone help me

Post by PeterX »

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
User avatar
Seahorse
Member
Member
Posts: 64
Joined: Sat Dec 03, 2016 3:13 am

Re: would someone help me

Post by Seahorse »

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.
User avatar
Seahorse
Member
Member
Posts: 64
Joined: Sat Dec 03, 2016 3:13 am

Re: would someone help me

Post by Seahorse »

I wish this had a like feature for crosssans post.
User avatar
crosssans
Member
Member
Posts: 39
Joined: Fri Mar 01, 2019 3:50 pm
Location: France

Re: would someone help me

Post by crosssans »

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:)
PeterX
Member
Member
Posts: 590
Joined: Fri Nov 22, 2019 5:46 am

Re: would someone help me

Post by PeterX »

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
Androv
Posts: 9
Joined: Sun Jul 19, 2020 9:45 am

Re: would someone help me

Post by Androv »

thanks to all of you , i will follow your instructions and if anything stoped me i will return to ask
User avatar
Seahorse
Member
Member
Posts: 64
Joined: Sat Dec 03, 2016 3:13 am

Re: would someone help me

Post by Seahorse »

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.
Post Reply