I need to know more about computers

Programming, for all ages and all languages.
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

I need to know more about computers

Post by mac »

Alright, hard to explain here. Some of you may be shocked, but after 15 years of my life being into computers, I realized that I don't understand as much how they work on a technical level. :?

Now, don't get this wrong, I tried experimenting with things before like the Windows registry but I didn't do that in a while and I forget very easily. Also, I want to begin to write my own programs (Java would be my go-to sort of language when I think of something that should be beginner-friendly) and I need some resources to learn more and the documentation terms so I have a few less bumps in the road. And I also take documentation for granted very easily, it's a very nasty habit of mine. Here's the biggest part, once I get that done, I want to be able to learn how to write an OS. Is my outlook doable? Also I'm not in a hurry or anything.

And I have tried to do programming before, but I gave up right after "Hello World" because I always had other distractions going on.
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: I need to know more about computers

Post by no92 »

Usually, the path to OSdeving takes years. Good luck.

If you struggle with learning from resources on the Internet, get some printed books. :D
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: I need to know more about computers

Post by mac »

What about that kid in a thread I searched down a while ago who claimed it only took him a few years? He said he knew nothing about computers at age 12 when he started.
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: I need to know more about computers

Post by no92 »

It took me 2.5 years to get to OSdeving. I have good knowledge of C and Assembly, but I started out with PHP and Ruby. For most people here, it longer, as you have to know a lot about computers. And that's just a matter of time. So, get a Linux Distro, sit down and write C. That's the only tip i can give.
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: I need to know more about computers

Post by mac »

C? Are you sure I should go straight to C?
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: I need to know more about computers

Post by no92 »

It depends on whether you have programming experience yet. If you have it, go for C. If not, learn Ruby or Python first. But: you will have to learn C and Assembly at some point. It's not as scary as it looks though.
alexfru
Member
Member
Posts: 1111
Joined: Tue Mar 04, 2014 5:27 am

Re: I need to know more about computers

Post by alexfru »

SeanMc wrote:C? Are you sure I should go straight to C?
Straight to asm is just fine as well. Or straight to Verilog or VHDL. Or to physics. I all depends on how low you want to go. :)

Or you could learn it almost all: Digital Design and Computer Architecture, 2nd ed, Harris & Harris.
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: I need to know more about computers

Post by mac »

I just hope I'm not hopeless in my idea.
alexfru
Member
Member
Posts: 1111
Joined: Tue Mar 04, 2014 5:27 am

Re: I need to know more about computers

Post by alexfru »

SeanMc wrote:I just hope I'm not hopeless in my idea.
You are if you think you are. :)
Otherwise, keep working. Perhaps, choosing 2 more or less independent areas to work on might be a good idea. If you get stuck in one, you can switch to the other for a while.
Cjreek
Member
Member
Posts: 70
Joined: Thu May 28, 2009 2:41 pm
Location: Germany

Re: I need to know more about computers

Post by Cjreek »

alexfru wrote:
SeanMc wrote:I just hope I'm not hopeless in my idea.
You are if you think you are. :)
I agree, BUT if you don't know much about computers and you can't really program anything but a hello world program you should probably just start learn a programming language of your choice. I think for your first language it's more important that you like the language (for whatever reason that may be) than the usefulness of this language (in certain situations).
As soon as you think that you're quite good and you are still interested in OSDev you should return and try to understand OSDev related things again.

When I first tried making an OS I didn't understand that much either and I didn't understand most of the (assembly) code in the tutorials altough I already had quite a bit experience with programming and even the WinAPI.
I gave up because the barrier just was too high at this point. I returned a view years later and I brought more patience and knowledge. This time I was successful and since then (with a huge break inbetween) I'm working on my own kernel.

What I'm trying to say is: You should really like (to learn) programming and you should be good at it. Otherwise OS development will most likely just be a frustrating experience for you which probably will make you not want to (ever) dive deeper into programming and OS development :wink:
User avatar
SpyderTL
Member
Member
Posts: 1074
Joined: Sun Sep 19, 2010 10:05 pm

Re: I need to know more about computers

Post by SpyderTL »

Honestly, I think I would recommend reading through the Intel CPU documentation. This is about as low-level as you can get, as a software developer, and it will make everything else make sense. You might even start with the old 8086 CPU documentation.

Doing a little research on how computers "evolved" from calculators is also helpful. A light understanding about the CPU clock and how it makes the CPU work is also helpful.

You should be able to get through all of the information in a few days, so I'd say that it is well worth the time.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
Cjreek
Member
Member
Posts: 70
Joined: Thu May 28, 2009 2:41 pm
Location: Germany

Re: I need to know more about computers

Post by Cjreek »

@SpyderTL: Honestly I don't think this is a good idea. This is a pretty heavy lecture for someone with essentially no previous knowledge about programming and computers. I don't think he can get much out of it at this point.
And I have tried to do programming before, but I gave up right after "Hello World" because I always had other distractions going on.
What is your goal? Do you want to learn programming? Do you want to make your own operating system? (I assume because you are asking in this forum) or do you just want to know more about computers for no other reason than curiosity?

If one or more of the first 2 points apply to you than you MUST learn how to program. Nobody can keep you from getting distracted. You yourself have to make sure you don't get distracted and keep learning. Programming and especially OSDev require much patience and practice. You can't learn/do either of those things in just a few hours or days.

So if you can't get past "Hello World" without being distracted there's no chance you'll ever be able to programm anything (which means you won't be able to write your own OS at all). Either you really WANT to learn programming/make your own OS and you learn what you need to know or you can't do it.

This was a tough piece of text, I know.
But it's the truth. And I'm not sure if you even know what you want to do.
Your posts sound like: "I want to make an operating system. I don't know anything about programming and I don't want to learn it. How can I make an OS nonetheless?"
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: I need to know more about computers

Post by AndrewAPrice »

Cjreek wrote:Your posts sound like: "I want to make an operating system. I don't know anything about programming and I don't want to learn it. How can I make an OS nonetheless?"
Someone could make a 'Game Maker' for operating systems. Pick what features you want and how it should work, drag and drop GUI components. "Make an Operating System without any coding!"
My OS is Perception.
User avatar
eryjus
Member
Member
Posts: 286
Joined: Fri Oct 21, 2011 9:47 pm
Libera.chat IRC: eryjus
Location: Tustin, CA USA

Re: I need to know more about computers

Post by eryjus »

SeanMc wrote:Also I'm not in a hurry or anything.
I think this will be your biggest benefit. If you are looking for instant gratification in development, OS development is not for you.
SeanMc wrote:C? Are you sure I should go straight to C?
Learn how to read C and really understand it. As you go through your development, you will reference other code. You will find much of what you reference is written in C. Really understand it to the bits and bytes -- i.e. what does that addition operation do to the flags register? How would that change if the integers are unsigned rather than signed?

I would pick another language and learn it as well. Pick a procedure oriented language and an object oriented language. Know the difference between the two and their strengths and weaknesses. Learn assembly -- and learn to read the compiled assembly output. You will be building a strong foundation upon which to build your OS development skills.

Also, OS development is in itself a large research project. Set your expectations properly on this. You will be reading -- A LOT. You will be reading documentation, some good and some bad. If you cannot get over you aversion to reading documentation, you will have a hard time with OS development.

This time is not lost in your OS development path. Ask questions, and then go find the answer. Think about what you want your OS to do. Develop a design. Revise the design. Put your design on paper.
SeanMc wrote:... I gave up right after "Hello World" because I always had other distractions going on.
Finally, you will not succeed in your first attempt at any task. Get used to it -- it's a fact of life. You will spend more time debugging than writing code.
ker2x wrote:my development process :
0x00) ok, what's next ?
0x01) OMGWTF!?
0x02) read documentation
0x03) OMGWTF!?
0x04) BBQ? :(
0x05) read documentation
0x06) OMGWTF!?
0x07) read documentation
0x08) Haaaaaaaaa :oops:
0x09) write some code
0x0A) OMGWTF!?
0x0B) read documentation
0x0C) write some code
0x0D) Mmmm....
0x0E) write some code
0x0F) Doh !
0x10) write some code
0x11) AWWWWW YEAH! =D>
0x12) GOTO 0x00
I wish you luck!
Adam

The name is fitting: Century Hobby OS -- At this rate, it's gonna take me that long!
Read about my mistakes and missteps with this iteration: Journal

"Sometimes things just don't make sense until you figure them out." -- Phil Stahlheber
no92
Member
Member
Posts: 307
Joined: Wed Oct 30, 2013 1:57 pm
Libera.chat IRC: no92
Location: Germany
Contact:

Re: I need to know more about computers

Post by no92 »

OSdeving is the most advanced and complicated thing you can do in computer science. Get into it with something else.
Post Reply