OSDev.org

The Place to Start for Operating System Developers
It is currently Fri Jul 10, 2020 6:52 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3
Author Message
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 22, 2014 2:07 pm 
Offline
Member
Member
User avatar

Joined: Wed May 15, 2013 5:49 pm
Posts: 44
Location: Berlin
I'm surprised nobody has yet mentioned the plethora of free university courses available online these days. This is a huge leg up over us old-timers who had to learn this stuff by ourselves, mostly offline and from scant information sources, back in the day.

SeanMc wrote:
So I understand: The CPU retrieves data from memory (RAM) in a specific address or location with a sequence of numbers, breaks it down into instructions and performs the execution of the instructions. Operations performed are arithmetical and control operations. Is this right? Feel free to correct me or add.


Consider enrolling in Stanford's free, self-paced, online Computer Science 101 (CS101) class:

http://online.stanford.edu/course/compu ... self-paced

The course teaches computing from the ground up, with zero experience assumed. Several friends of mine have found it helpful.

In case you should find the course too basic, though, there is no shortage of more advanced courses. Look over on Coursera and edX in particular, or an aggregator such as Class Central. (Warning: in my experience, edX courses tend to be rather more demanding than Coursera, so don't enroll just on a whim.)

_________________
Developer of libc11


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Tue Nov 25, 2014 1:42 pm 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 1632
Location: Athens, GA, USA
I second what Arto says, though my usual go-to site for such things is MIT OpenCourseware. The material is tough, but still accessible and very well presented on the whole. The introductory EECS material can be found here.

(Of course, I am biased, as I personally like the older Abelson-Sussman Lectures, which teach a full course in programming in about 20 hours, using Scheme as the development language. Most people aren't as enthralled by this as I am, however.)

A few books you might want to look into include Think Python for basic programming, Assembly Language Step-by-Step for an introduction to low-level programming, C Primer Plus for the requisite C knowledge, Linkers and Loaders for the executable file format details, and Computer Organization and Design (which I would accompany with MIPS Assembly Language Programming as a reference) for the hardware concepts. That should keep you busy for a couple of years, and be enough to keep your interest going as well. Along the way, you should also learn about source control systems such as Git and how to use them, how to use a virtualizer such a VirtualBox, and how to use a basic debugger, among other things.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
μή εἶναι βασιλικήν ἀτραπόν ἐπί γεωμετρίαν
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 need to know more about computers
PostPosted: Tue Nov 25, 2014 2:15 pm 
Offline
Member
Member
User avatar

Joined: Wed May 15, 2013 5:49 pm
Posts: 44
Location: Berlin
Schol-R-LEA wrote:
I second what Arto says, though my usual go-to site for such things is MIT OpenCourseware. The material is tough, but still accessible and very well presented on the whole. The introductory EECS material can be found here.

(Of course, I am biased, as I personally like the older Abelson-Sussman Lectures, which teach a full course in programming in about 20 hours, using Scheme as the development language. Most people aren't as enthralled by this as I am, however.)


I, too, taught myself computer science from the Wizard Book and the OpenCourseWare materials, so I would second this notion.

That said, that's rather more advanced than the introductory Stanford course that I mentioned, and also (last I checked) doesn't have a MOOC-style classroom format (that would be edX, instead of OCW), just a lot of independent files to download and try and organize one's personal curriculum around. However, MIT's CS curriculum could be considered the gold standard, so can't go wrong there in case you're able to follow the materials.

_________________
Developer of libc11


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Fri Nov 28, 2014 4:45 am 
SeanMc wrote:
I want to be able to learn how to write an OS

You can pick an OS project and join it. There are plenty of OSes, so you have a choice. There are even some OSes in different than C or asm languages.

After joining you can make little steps of enhancing existing code, making it better (and you can define what the "better" is). One advantage of such approach is almost instant result you can play with. After you have your "better" piece of OS you can run it and see what to do with it to make it even better. Next you can try to convince other developers to include your code in the OS sources, but do not expect a quick success here. Instead - you can expect some comments about your code and what the guys think the "better" is. If such comments will not kill you then you are on the way of making a really great OS :)


Top
  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 29, 2014 4:36 am 
Offline
Member
Member
User avatar

Joined: Fri Dec 15, 2006 5:26 pm
Posts: 437
Location: Church Stretton Uk
SeanMc wrote:
C? Are you sure I should go straight to C?


There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628

_________________
The continuous image of a connected set is connected.


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 29, 2014 6:03 am 
Offline
Member
Member
User avatar

Joined: Wed May 15, 2013 5:49 pm
Posts: 44
Location: Berlin
mathematician wrote:
SeanMc wrote:
C? Are you sure I should go straight to C?


There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628


While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.

_________________
Developer of libc11


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 29, 2014 6:31 am 
Offline
Member
Member

Joined: Tue Mar 04, 2014 5:27 am
Posts: 1012
Arto wrote:
mathematician wrote:
SeanMc wrote:
C? Are you sure I should go straight to C?


There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628


While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.


It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 29, 2014 6:42 am 
Offline
Member
Member
User avatar

Joined: Wed May 15, 2013 5:49 pm
Posts: 44
Location: Berlin
alexfru wrote:
Arto wrote:
While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.


It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)


One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:

Clang is rather more useful than GCC in this regard, defaulting to "-std=gnu11".

_________________
Developer of libc11


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sat Nov 29, 2014 6:57 am 
Offline
Member
Member

Joined: Tue Mar 04, 2014 5:27 am
Posts: 1012
Arto wrote:
One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:


They have to learn -Wall -Wextra -Werr -O2 first. :)


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sun Nov 30, 2014 4:22 pm 
Offline
Member
Member
User avatar

Joined: Wed May 15, 2013 5:49 pm
Posts: 44
Location: Berlin
Arto wrote:
alexfru wrote:
It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)


One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:

Clang is rather more useful than GCC in this regard, defaulting to "-std=gnu11".


Incidentally, I was glancing through the GCC 5.0 release notes today, and the very first listed item (under "Caveats") is:

https://gcc.gnu.org/gcc-5/changes.html wrote:
The default mode for C is now -std=gnu11 instead of -std=gnu89.


So, as of next year, Clang and GCC both will default to C11 with added GNU extensions. About time, I say. Certainly it will (and perhaps very subtly) break some builds of old crufty code bases, but really, it's overdue.

_________________
Developer of libc11


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Sun Mar 08, 2015 8:25 pm 
Offline
Member
Member

Joined: Tue Sep 23, 2014 6:12 pm
Posts: 144
Thank you for all this advice. I will admit that I'm not as technical-minded as one may think, but one thing experimenting with Linux did teach me a lot about reading manuals and documentation, something Windows made me take for granted.

I want to understand it more, because I really crave having the ability to control my computer with code.


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Tue Jul 23, 2019 4:42 pm 
Offline
User avatar

Joined: Fri Jul 19, 2019 1:24 pm
Posts: 3
Location: /home/
It's been nearly five years since OP started the thread. I'm curious to know if he or she made any progress.


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Wed Jul 24, 2019 12:01 am 
Offline
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 3845
Location: Chichester, UK
Have you checked that person's other posts (after that thread)?


Top
 Profile  
 
 Post subject: Re: I need to know more about computers
PostPosted: Wed Jul 24, 2019 8:48 am 
Offline
User avatar

Joined: Fri Jul 19, 2019 1:24 pm
Posts: 3
Location: /home/
I didn't think to! I'll do that.

I was hoping for a quick summary :lol:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 1 guest


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