Are there people out there who 100% understand how a computer works?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

HeXen

Diamond Member
Dec 13, 2009
7,837
38
91
Unless you have a job where such is useful, i don't see much real world purpose in maintaining that level of knowledge year after year.
I don't even like keeping up on all the hardware anymore, i brush up when i'm ready to build a new rig, that's about it these days. I used to know a lot more than what i can remember now, plus some stuff changes over time so.
 

irishScott

Lifer
Oct 10, 2006
21,562
3
0
So you're asking if there's someone out there who knows every detail of every piece of hardware, every piece of software, and every operating system ever created?

...
...
...

You know what? Yes. There are tons of people like that you're just an idiot for not knowing. Good question, keep it up. :D
 

ghost03

Senior member
Jul 26, 2004
372
0
76
Eh, it's not a 'yes' or 'no' question. Depends on how much detail you go into.

Are there people that understand all the general concepts at a high level? Yeah, definitely. Systems engineers make their living this way.

As you drive the detail level down though, they start dropping like flies. Is there anyone that understands every computer architecture made? Or every quantum effect going on in semiconductors? Or every electromagnetic effect that can be modeled. Absolutely not. Moreover, the collective human intelligence doesn't understand everything, either, or science and research would be unnecessary.
 

wsaenotsock

Member
Jul 20, 2010
90
0
66
I just want to take issue with a little thing here, because it has touched on an interesting topic, even though it is going a little off target of the thread.

It took a while to fully grasp how interrupts and DMA transfers are handled. Now the most confusing thing is windows services, but that's not really computers. That is Windows. Windows is the fud they put on a computer to keep you from understanding it.

There is no way anyone knows everything about windows. Not when you can have a process running on your machine and that process can be made invisible even to task manager. I know enough about windows to know that every single connected machine could be capturing screen shots at regular intervals and sending them to microsoft (or someplace worse) in a way that would be undetectable to us. Many a nerd would say "no no no that's not possible, we would see the traffic, bla bla bla". Not necessarily. There is so much traffic that any part of it could be the conduit for encrypted traffic, including low res encrypted screen shots.

Since many people make a living by inspecting packets, don't you think that someone has already broken down every sort of windows service with outbound network traffic with a packet analyzer and sifted through it? If you work in computer security, you would damned well want to know what every connection was doing. A single idle workstation doesn't generate much network traffic. And a connection that was constantly sending data would be extremely suspicious. I don't disagree that it is easy to hide malware, but I do think that any sort of phonehome service is rapidly detectable because of the pattern of sending data at regular intervals.

Let me rephrase what I think you are saying though. If an application is sending a constant data stream for some presumed legitimate purpose, there could potentially be a steganographic message or malicious device built within it, and it could be very hard to detect. I completely agree with this. If you didn't write the software yourself, you aren't going to know exactly what is going on. You can infer what it is doing with tools, but if it is designed well, you may never piece it all together.
 
Last edited:

jaqie

Platinum Member
Apr 6, 2008
2,471
1
0
Knowing every part of how computers in general work? Hell yes, that's how computers were made and are still designed. Look up macro processors for example, engineers who pre-test processor designs by building a humongous macro scale processor that operates in the KHz range, in order to work out problems with the design on a scale where you can get leads and probes into it to figure out what is going wrong when something does go wrong, always because of some kind of human error (which can include using materials which were not properly made). There are people even now which build computers entirely from scratch which are distantly similar to a Z80 or such in functionality, and program them themselves. This is getting rather a niche hobby, though.

Do these people know everything about every computer part in existence? HELL NO.

It's the difference between being able to understand completely and make a specific set of metal alloys perfectly and all the processes involved in such and doing such for every single alloy in existence... the latter isn't humanly possible, the former is absolutely necessary.
 

intx13

Member
Apr 3, 2013
33
0
0
Let me rephrase what I think you are saying though. If an application is sending a constant data stream for some presumed legitimate purpose, there could potentially be a steganographic message or malicious device built within it, and it could be very hard to detect. I completely agree with this. If you didn't write the software yourself, you aren't going to know exactly what is going on. You can infer what it is doing with tools, but if it is designed well, you may never piece it all together.

Here's an example of a protocol that you could never prove doesn't contain a hidden message, no matter if you knew the exact specification of the protocol and saw every byte transmitted between client and server.

A client connects to a server and sends a single integer. The server replies by generating that many bytes using a random number generator and sending those bytes to the client. This is a simple protocol that a client can use to fetch random numbers from some random number generator server.

Now, suppose the server and client are in cahoots and the server has a secret message to send to the client. When the client asks for n bytes, the server takes the next n bytes of the secret message, encrypts them with some pre-shared key (maybe based on a password that only the client and server know) and sends those bytes. Encrypted data is indistinguishable from random data, so anybody watching cannot prove that the data is not random. The client, however, can decrypt the message.

No matter how long you sat in front of Wireshark and looked at packet dumps of this protocol, you would never be able to determine when the server was sending random data and when it was sending encrypted data.

Now imagine that you can embed this random number generation feature into some other protocol. For example, maybe your favorite VOIP program needs to fetch random numbers. Any protocol with this capability contains the ability to transmit hidden messages that cannot be detected by anybody listening.
 

wirednuts

Diamond Member
Jan 26, 2007
7,121
4
0
Unless you have a job where such is useful, i don't see much real world purpose in maintaining that level of knowledge year after year.
I don't even like keeping up on all the hardware anymore, i brush up when i'm ready to build a new rig, that's about it these days. I used to know a lot more than what i can remember now, plus some stuff changes over time so.

yup. people used to tell me they got a new video card... they would be all excited and I would just say "what model is it?" and I get a blank stare in return. it would turn out to be some crippled memory thing too :( but the box looked awesome so...

these days though? I don't even know what the best card is, let alone the best value. its not like it used to be though, there just isn't the variety of hardware we used to have. nowadays, you basically get what you pay for.
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
Hmm so there are people who understand the hardware fully, christ that must take some brainpower, i cant even begin to fathom how on/off switches can form the stuff im looking at on screen. I had a look at some assembly code once and it was gibberish to me :eek:

I don't know if ill ever need to as a wannabe java developer but ive always liked to at least have a vague idea of how things work.

It's all about using layers/levels of abstraction so you don't have to worry about too much complexity at once. Take some transistors, group them into logic gates (~2-8 transistors). Take some logic gates, group them into blocks that perform simple functions (such as data storage elements, arithmetic functions, multiplexors, etc). Those blocks can be assembled into a simple processor. If you jump back to C from Java, it's relatively easy to translate simple programs into assembly after you learn a few key pieces of how assembly works (particularly the "stack"), and turning assembly into machine language is basically just a lookup table.

The complexity shows up when you want to do things better (faster, smaller, cheaper, etc). You can earn a PhD working at any level of abstraction (from looking at how people use computers down to physics); no single person will know all that much about every level of abstraction, but many people have some expertise in one level, a good understanding of the nearby levels, and a basic grasp of the rest of the them.

There are likely people here who could give you a pretty good introduction to any of the levels that you find particularly interesting.

edit: I forgot about "From NAND to Tetris", which gives you a primer in every level of abstraction from basic logic to real programs.
 
Last edited:

nightspydk

Senior member
Sep 7, 2012
339
19
81
How computers work?

How do you work? I input some information, lets say 2x=y and at some point I ask you what is y? So you are just a memory unit.

I input in a computer the same and the same comes out. IF I do not input the variale nothing comes out, so..

The larger question is what makes you different from a scilicon unit?

It is worth a thought.

My dad always said you are like a bag. We put stuff in and you come out the other end a product of what we put in in the first place. :)
 

aarontpx

Senior member
Apr 3, 2013
240
0
76
Just thinking about how comps actually work and even a small thing like how the cursor is able to move around the screen leads to more questions which again lead to more questions, the complexity behind the thing as a whole seems pretty staggering.
This is your reward for thinking.
 

nightspydk

Senior member
Sep 7, 2012
339
19
81
Well basics. It's just math my friend. Do a bit of programming and all will be revealed. The pixels on the screen are just dots on a universe and you are the masterplayer determining what will happen on those dots under a circumstance.


When you have been there and found it is just math, read my former post. It is not that complicated. Like I said nothing comes out of it that you haven't put in in the first place. :)
 

adt002

Junior Member
Mar 25, 2013
9
0
0
I believe that there will be someone know this at all in the world. Must have some one.
 

PhIlLy ChEeSe

Senior member
Apr 1, 2013
962
0
0
Well basics. It's just math my friend. Do a bit of programming and all will be revealed. The pixels on the screen are just dots on a universe and you are the masterplayer determining what will happen on those dots under a circumstance.


When you have been there and found it is just math, read my former post. It is not that complicated. Like I said nothing comes out of it that you haven't put in in the first place. :)


I always sucked in math in high school, algebra no thanks I'll pass. Then I had a job where I needed to know what was going on inside the software, I set out and learned that on my own. I am for the most part a parts swapper, I couldn't tell you how much past a resistor works. But I'm damn good at narrowing down and finding the a source of trouble.
The phone home theory I would think happens when your number goes out side of your home (IP) and it is collected from there, to let some guru know hes back @ Anandtech forums. :ninja:
 

007ELmO

Platinum Member
Dec 29, 2005
2,046
36
101
I need to bump this so people can laugh at the first reply to the OP. xD
 

lakedude

Platinum Member
Mar 14, 2009
2,778
529
126
I have a much better understanding of computers than most of the general public.

Got some transistor level stuff, logic gate stuff, and high level (Fortran, Pascal) programming in EE school.

My work sent me to a great school where I learned how to program a simple processor in a very low level language, filling a big hole in my education.

I learned to program some graphics in BASIC on my own.

I like to play with alternate OS like Linux.

I have read tons of articles on Tom's and Anandtech about hardware.

I've worked for several companies fixing computers and electronics.

Even with all this background I know very little compared to many on these forums, barely even scratch the surface really.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Yes. One day junior year as a Electrical Engineer with a focus is computer I realized. I know the physics behind transistors. I know the steps to design transistor circuits into logical functional blocks. I know the process of assembling logical blocks (think adder, register, timer, etc) into a chip. I know how the chip fab process works (chemical deposition and lithography). I know how the firmware works (op codes/instruction sets defining circuit behavior). I know how assembly relates to instruction sets. I know how code is compiled to assembly/machine code. I know how code is leveraged to build and operating system. I know how chips are designed to interact with the each other system (interrupts, ports, modem, USB, keyboard). I know how the TFT or CRT monitor works. I know how the keyboard works.

There are people out there.

Don't get so full of yourself. You still only know general abstractions. I studied Computer engineering myself. I know enough to know that I really don't know everything and that it is impossible to know everything about how a computer works.

For example. How does USB work? It is a serial connection, yes, but how does it work? Once you start digging into the protocol you realized that it is very complex and something that, honestly, nobody learns unless they are specifically developing a USB device. There are TONS of parts like that, and new ones every day.

The HDMI specifications, the DVI specifications, the PCI-E specifications. The list goes on. Sure, I would expect any junior+ level EE or CE would be able to learn it, but I don't expect that they know it.

And that is just an area that I'm familiar with. For every level of Computer stuff, there are examples like that where highly specialized knowledge is put into play.

Sure, I could tell you, generally, how everything fits together from the ground up. But I would not be so bold as to say that I understand EVERYTHING 100%. I know I don't, and I know I never will. (And if I ever do, it means computers have stopped progressing).
 
Last edited:

nightspydk

Senior member
Sep 7, 2012
339
19
81
I always sucked in math in high school, algebra no thanks I'll pass. Then I had a job where I needed to know what was going on inside the software, I set out and learned that on my own. I am for the most part a parts swapper, I couldn't tell you how much past a resistor works. But I'm damn good at narrowing down and finding the a source of trouble.
The phone home theory I would think happens when your number goes out side of your home (IP) and it is collected from there, to let some guru know hes back @ Anandtech forums. :ninja:

That's software man then there is the hardware. I think very few people know every detail about that, so i guess no should have been my answer in the first place. :p

The thing about computers is that if you learn something, you find yourself even less knowledgeable. It seems to be never ending, but that maybe also the thing that draws people to it. :)

edit
The software is quite simple when you have had the pleasure of doing some programming like I said. Not that I'm a guru, but it's really not much more that if..then..goto whatever in a better piece of wrapping. Everything though is simple at one point.

How the hardware interacts etc... That's very complicated.
 
Last edited:

Maximilian

Lifer
Feb 8, 2004
12,604
15
81
Don't get so full of yourself. You still only know general abstractions. I studied Computer engineering myself. I know enough to know that I really don't know everything and that it is impossible to know everything about how a computer works.

For example. How does USB work? It is a serial connection, yes, but how does it work? Once you start digging into the protocol you realized that it is very complex and something that, honestly, nobody learns unless they are specifically developing a USB device. There are TONS of parts like that, and new ones every day.

The HDMI specifications, the DVI specifications, the PCI-E specifications. The list goes on. Sure, I would expect any junior+ level EE or CE would be able to learn it, but I don't expect that they know it.

And that is just an area that I'm familiar with. For every level of Computer stuff, there are examples like that where highly specialized knowledge is put into play.

Sure, I could tell you, generally, how everything fits together from the ground up. But I would not be so bold as to say that I understand EVERYTHING 100%. I know I don't, and I know I never will. (And if I ever do, it means computers have stopped progressing).

See that's why i asked this initially, every part of a computer is incredibly complex and to know how it works at the most basic level without using abstraction and being able to explain from that base level up seems like an incredible amount of knowledge for a single person to have.

@ Those who think i meant every piece of hardware in existence, no, obviously that's not what im asking. If you want me to be specific which i guess i should since this is the highly technical subforum a standard desktop x86 machine in 2013 is what i am referring to when i say "a computer" in the OP.
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
So basically, this thread = the more you know, the less you know. :awe:

:) honestly, that was probably the best part about a degree in CE. There were just so many subjects about things that I never would have even looked at had it not been for my education. It showed me a whole new world of mathematics, science, and physics that I was woefully ignorant of as a "know it all" teenager.

You say it in jest, but it is so true. Even with such a specialized field, I still feel like there is a ton that I don't know about my own field. (Which makes it all the more fun. Especially when you do start to bump into areas that are at the limit of our current understanding).