Mr. Svin's stupid computer questions thread

When it comes to my computer I feel as if I possess a very great deal of information resting on a sea of near-total ignorance. I can tell ya which browser is the best, or which latest spyware program is worth downloading, etc, but dig down a bit below the surface and you’ll find, I fear, that I don’t really understand this stuff in any real depth. I’ve therefore decided to start this thread so as to fearlessly ask all of those really basic, stupid questions about my computer that I don’t know the answer to. I invite other posters to freely post their stupid questions here as well, should they be so moved. Any good tips on useful internet resources regarding these questions are also gratefully accepted.
Okay, ready? Here are my first few stupid questions:

  1. What’s a registry? What’s a registry key? What does a registry do, specifically?

  2. What, specifically, is the difference between http and ftp? How do they work?

  3. What is a firewall, exactly? I mean, I use Zone Alarm, so I know what a firewall is, but not exactly what it is, if you understand my question. What does it protect my computer from? How does it work?

  4. What’s FAT-32?

  5. Which is better, Mac or PC? Just kidding.

  6. What information on the computer should be regularly backed up?

  7. And finally, probably my most monumentally stupefying question of all: when I type the letter “h” on my keyboard, I see an “h” appear on my monitor screen.

Man, how do it do that?

I’ll be back later, undoubtedly with more, possibly even stupider, questions.

The registry is a local database with data relating to what hardware and software you have installed and various system settings.

A registry key is just one peice peice of data written as a keyvalue then the value of that key. Another software program reads that key and acts on the value in it.

The registry allows you to store settings for programs in one location using a binary format. Previously the setteings were stored in mutiple .ini files for the system and each application had its own .ini file for local settings

http is hypertext transport protocol and ftp is file transfer protocol.

The Hyper Text Transfer Protocol is the protocol used between a Web browser and a server to request a document and transfer its contents. The specification is maintained and developed by the World Wide Web Consortium.

FTP stands for File Transfer Protocol. FTP is the best means for moving large files across the Internet. FTP is a client/server protocol that enables a user with an FTP client to log on to a remote machine, navigate the file system of that remote machine, and upload and download files from that machine. There are two basic types of FTP on the Internet, anonymous ftp and private ftp. With anonymous ftp, one logs in as user anonymous, giving one’s email address as a password. With private FTP, one logs in with the username and password one has established on that particular system. You are logged into your home directory, with all the file permissions you would normally have there

A firewall is software or hardware which intercepts all inbound and outbound communcication. It is supposed to only let through legitimate data on ports that you allow traffic on. A Firewall is intended to help keep hackers out of your system by not letting their attack data come in.

Fat 32 is a 32 bit version of Microsoft’s FAT format. FAT stands for File Allication Table. The location of every peice of data on a drive is stored in a table on the hard drive.
FAT32 uses 32 bits to address each cluster and can support drives as big as two Terabytes. The older FAT used 16-bits to address each cluster and was limited to drive sizes of 512 Mb. Each cluster in a FAT32 system is only 4 Kb which also helps to save space on your hard drive.

The C=64 of course

In the home environment all datafiles you create should be backed up. It’s easier to restore the Operating System then your applications from scratch and then restore you data

In a buiness environmnet you should backup the entire system using an imaging program so you have a faster restore method.

When you hit a key on the keybord, that sends an electrical signal to a keyboard controller chip which sends a character code to the OS. When the OS gets the character code it looks up what character that represents and displays it. If you load a different key code file your keys will become different characters.
I’m sure others will have posted the same info before I finish this post

You should find the answers to, most if not all of, your questions here:
Informative book on elementary computer questions :wink:

In addition to your data files I reccomend that you regularly back up your “system state”, which includes your registry. The only problem with this is that you need to use the backup utility to restore one of the .bkf files. It helpsif you manually create copies of the essential registry files for simpler restoration if Windows won’t start.
The only trouble being that Windows keeps these files in multiple locations.
Depending on the version of windows that you use, the methods of creating these copies varies. If you use Win2k then you may merely create an emergency repair disk which will give you an option of also copying your registry files to the Repair directory.

I recommend (at least) a combination of 4 drives/partitions for your machine as follows:
**
one small drive/partition to use for an extra installation of your OS**
this makes it easier to restore registry files- you can use the GUI instead of command lines
one drive/partition to house the main installation of your OS

a drive/partition to house your data files and installations of non-essential programs (games etc)
this keeps the drive/partition of your main OS smaller and easier to back up as well as isolates and preserves the data in case (Og forbid) one must reformat or re-install the OS
and another drive/partition dedicated to housing backups of the main installation of your OS
this should be at least as large of a drive as the drive/partition that houses the main installation of your OS
I heartily reccomend Norton Ghost or a similar product

I have this set up on my main hd- four partitions. In addition, I also have two seperate hard drives, one with a copy of my Norton ghost backups and the other with a barebones copy of my OS.
I also backup my registry to a CDRW just incasers.
Yes, I’ve been burnt pretty good in the past.

MannyL did a good job of answering your questions. I feel the need to augment just a few of his explanations.

More information on the how. Both HTTP and FTP are communication protocols, which means that they use specific send/receive rules. (At a lower level, both use TCP/IP to establish communication.) For example, when you connect to a web server, your computer sends a request. The server then responds with data. Your computer processes that, possibly sending another request, etc. This page has a decent and easy explanation.

I’d just like to expand on this, which should make it more understandable. Your computer has to maintain a record of where everything on the disk is. So, there is a directory list that contains an entry for each file/directory on your disk and a FAT that contains entries about disk areas. As mentioned, FAT has a list of clusters (that represent a unique area of the disk). An entry in the directory/file list points to the first FAT entry for that file, which in turn points to the disk area that contains the first chunk of that file’s data. If a file is larger than one cluster, the FAT entry points to the next disk area containing the next cluster of data and so on.

This explains why Windows machines need to be defragmented – when you delete a file, the FAT entries are removed, indicating that those disk areas are free. When a new file is written, the free disk areas are then filled, but not necessarily in disk areas that are close together. Over time, due to files of different size being written and deleted, the data becomes fragmented, meaning that there are gaps in the FAT. Defragmenting moves data in disk areas that are far apart closer together, thereby decreasing the distance the disk read head has to move and increasing the speed of data retrieval.

Most UNIX machines use a different method for storing files that optimize free space as files are saved/deleted, so defragmenting is generally unnecessary.

Just wanted to reinforce MannyL’s point, as it’s something that’s commonly overlooked. It’s the data that’s important. An OS reinstall should be a painless exercise (hah!) that takes very little time and effort, as the programs themselves shouldn’t change (much).

Oh, and MannyL – beautiful description of 7.

I’ve found that even though the program files are still where they were, they act as if they are no longer installed- they don’t work. I assume that this is because an OS reinstall wipes the registry.

Yes. That’s one argument for reverting to the INI files that MannyL mentioned. It would also make deleting programs more robust – delete a directory and a program’s icons, and the program would be totally removed. The Windows registry makes that impossible.

.ini files were Windows 3.x era, right?

OK what are the advantages of using a Registry? What are the disadvantages of using .ini files like older versions of Windows?

Being a Mac user, I’m a little fuzzy about what the OS and the user get out of having a Registry. I’d explain the Mac equivalent(s) except that I’m a little fuzzy about what the Registry is and does. (As with PCs in the .ini -file era, we can reinstall an OS and the applications still work. Or connect the hard disk as an external hard disk to someone else’s Mac and they can use our applications without ever having “installed” them, most of the time --there are exceptions. Then there’s the Desktop DB [OS 9] and/or a “.plist” file [OS X] that stores info about what app opens what flavor of file when you doubleclick the file, is that a Registry function?).

Yes. Of course, .conf files (or others) on linux systems perform the same function.

Some advantages of a registry:

  • A single point of organization; in general, one knows exactly where system data is stored
  • A standardized format for entries
  • A method of control (from the corporate POV, think authorization keys)

Some disadvantages of a registry:

  • A single point of organization; if it fails, your system is hosed
  • A method of control (from the user’s POV)
  • Cruft (that is, accumulation of unused data over time; enough cruft will affect system performance)

I’m not all that familiar with Macs, so I’m happy to be corrected. I suspect that since OSX is BSD based, they use some type of configuration files. I can’t speak to pre-OSX.

Mac stuff. Short summary: yes, it looks less centralized and probably would frustrate control-POV people; and yes, far fewer of the negatives of a single point of organization that makes your apps die if your OS goes down the tubes.

Some details, using Adobe Photoshop 7.0 as an example —

• Photoshop, like most OS X apps, is a “bundle” app. (Not all OS X apps are: Microsoft Excel, for instance, is an APPL file containing resources in its resource fork and other files in folders parallel to the Excel application file) With bundle apps, what appears in the OS X Finder to be a single file (and can be moved or deleted as a single file) is actually a folder, within which are the Mac equivalents of .dll files — in fact, some of them are even called filename.dll just like on a PC; a “Resouce” folder containing various icons and language-specific files that determine what shows onscreen depending on what language you’re using, etc; a PkgInfo file that contains the creator string (8BIM) and the type string (APPL, i.e., it’s an application); an internal .plist file called Info.plist — .plist files are XML files, some of which are within the application bundle like this and some of which are in the User’s Library/Preferences folder. This one for Photoshop contains version numbers and copyright strings, the “Get Info” string, etc; and a Classic folder containing the version of the program that will run under MacOS 9, along with the OS 9 version of the libary files, etc.; the User Registration file; … somewhere amidst these files is a file that informs the OS that Photoshop is one possible app that can open (let’s say) a TIFF file or a BMP file, so that when the user right-clicks such a file and goes to “Open With”, Photoshop appears in the list of possible apps, whereas it would not appear in the list if you right-clicked a FileMaker database file because it doesn’t do those. Since this info is embedded in Photoshop’s bundle, no reinstallation is necessary. In a non-bundle app such as Excel, similar info would be embedded in the Excel APPL file in one of the resources of its resource fork. The latter is the default method for older Mac systems (MacOS 9 and earlier). Under MacOS 9 and before, a disk-wide inventory of this information was kept, called the Desktop, and it would require rebuilding on occasion, e.g., your document icons could one day show up with “unknown document type” icons and the OS would say it did not know what to open it with when you double-clicked it; you’d rebuild the Desktop and the problem would go away. I’m not entirely sure how OS X polls, but it seems to me more dynamic, like an always in-process background task. Sometimes if I doubleclick a document icon immediately after boot, and the default application is on an external hard disk, the document will open with the wrong app or I’ll get the “no app associated with this file type” msg; after another second or two the OS finishes “polling” and the problem goes away on its own.

•From a control POV it would be harder to keep an app out of the hands of users. Hook up an external drive with the app on it, double-click, and you’re up and running due to no installation being required. (See bottom of post for brief discussion of exceptions).

• in the /Users/<yourname>/Library/Preferences folder, there’s a file, Adobe Photoshop 7.0 Paths, and a folder, Adobe Photoshop 7 Prefs, containing .psp files that save your most recent choices for various options within Photoshop, plus a folder containing your “Workspaces” (i.e., how you want all the palettes arranged on the 3 monitors you hook your laptop to at work as opposed to the single-monitor display arrangement you prefer when you’re working while commuting home on the bus). Photoshop doesn’t need these to run.

• also in /Users/<yourname>/Library/Preferences, a .plist file, com.adobe.Photoshop.plist, which stores the path to the most recent file you opened, and the most recent save-path to a file you saved. Photoshop doesn’t need these to run either.

• also in /Users/<yourname>/Library/Preferences, another .plist file, com.apple.Launchservices.plist, which stores my prefs about what to launch a file with extension .psd (Photoshop’s native extension) with Creator Code 8BLM (Photoshop’s creator code). In my case, surprisingly enough, the application of choice is GraphicConverter, because it will launch very quicklly and display the file for viewing; if I want to actually open a Photoshop file in Photoshop, I’d right-click the file and ask that it be opened in Photoshop. If this file were missing, neither the OS nor Photoshop would need it in order for Photoshop to function and open files; but if, let’s say, I had at some point told the OS that by default Photoshop should open all .jpg files of Creator Code JVWR (JPEGView), and then this file was overwritten, the OS would not launch Photoshop when I doubleclicked the .jpg file.

• For a given document file, unless the user has stored a different preference in that beforementioned com.apple.Launchservices.plist, there’s a hierarchy that determines what app launches when you doubleclick the file. a) If the document has a valid Creator Code, and the OS finds an app that owns that code, that’s the application that gets launched. The app doesn’t have to be “installed” and can be moved around at will or renamed because of how the polling works (i.e., it isn’t dependent on stored paths). b) If the document has no Creator Code or has a code for an app that’s not on the machine, but the document has a File Type code (e.g., “TIFF” or “XLS8”), the OS will fling it at the app designated as the default app for files of that file type (and if none is designated it will make an arbitrary assignment). c) If the document has no file type, but has a filename extension (e.g., “.fp5” or “.pdf”) the OS will hand it over to the default handler for untyped files of that file extension. If you reinstall the OS and have your applications remaining from a previous install (and/or reformat the hard drive but have some apps on another disk, etc), the OS may no longer know that application as the default handler for this or that file extension or file type Code, but will most likely honor it as the owner of files of its native Creator Code. Irritating exceptions are the Apple applications Preview, iTunes, and TextEdit, which will take over PDF and TIFF and JPEG, .MP3, and text files like a Mafia gangster with an expansion opportunity.

Exceptions in general: Some apps by their very nature need to be able to do things that could potentially violate security limitations imposed on user accounts. An example is Timbuktu, the remote-desktop program. On installation, such an app (after you’ve authorized it to do so) writes loading instructions to the root-level user equivalent of your user’s Library/Preferences file, and on subsequent launches the OS starts relevant services. In the case of Timbuktu, if you reinstall the OS and attempt to launch Timbuktu, you’ll have to reauthorize before the service that allows other computers to connect to yours will be started, and that service will no longer automatically launch on boot as it did before. Apps of this nature generally use the Installer and are usually distributed as “.pkg” files and require a password to make modifications requiring superuser (root) privileges. Many of them, unlike Timbuktu, will flat-out fail to work until you reinstall them; some will effectively reinstall themselves after authentication the first time you go to use them after an OS reinstall; a few, such as Timbuktu (again), do not reinstall any of the superuser-level modifications and will work normally but in “manual mode” where you have to launch and authenticate each time you boot in order to start up the service.

Oh, this reminded me of another disadvantage of having a registry. It makes security that much harder to implement. Many Windows programs (and some Mac programs, evidently) require root-level (that is, Administrator) access. By doing so, you are granting a program access to your entire system. In UNIX based systems, the only thing a malicious program can muck up (assuming it doesn’t do a local exploit to gain root priveleges) is your data, thus the system itself is uncompromised. (See previous point regarding backups.)

First off, thanks to all for the replies thus far. Now, where to start?

Manny:

Please don’t take this the wrong way, since I very much appreciate the fact that you’ve taken out time to answer my question, but the above is a very good example of why I feel I’m forced into asking stupid questions about my computer – cause I don’t understand, still.

This happens to me all the time. I read manuals, Windows help files, and so forth, and, well, it’s like a foreign language to me. The words have no real meaning content. So let me see if I can continue asking my stupid questions:

*”The registry is a local database with data relating to what hardware and software you have installed and various system settings.

A registry key is just one peice peice of data written as a keyvalue then the value of that key. Another software program reads that key and acts on the value in it.”*

This means that when I install a program on my computer – let us say, for example, WinAmp – that the installation program creates a set of registry keys in the computer registry database. Right or wrong?

The registry keys contain the information about, for example, the settings on my WinAmp program. Next time I fire up WinAmp, that program searches the registry files, finds the instructions regarding my settings, and then displays the WinAmp GUI in accordance with those settings. Yes? No?

This leads me to a completely new set of stupid questions:

  1. Why do I have to “install” a program to begin with? What, exactly, does the computer do when it “installs” a program? (This question is, in fact, so stupid, that I’m almost ashamed of asking it.)

  2. Is the registry a part of the OS? I ask because, extrapolating from what you’ve written above, it seems as if many of the settings on my OS are recorded in the registry.

  3. How important is it to do registry backup?

  4. Finally – what’s an .ini file?

Eureka! I think I understood that one! That’s why one uses the FTP to upload a webpage.

So when I use FTP to upload a webpage, I’m actually accessing the files stored on the server that are the programming “behind” the HTTP one otherwise sees when one uses a browser. I, uh, I think I almost understand, sorta.

I understood that much. But my Zone Alarm has kept out over 200 thousand “threats” of one kind or another over the last few months alone. Surely there aren’t that many people out there hacking at just my computer, are there? What does a hacker threat look like, and how does Zone Alarm recognize it?

Oh, and by the way, what’s Java Script?

What does one of these addresses look like? Does a program use the FAT and the registry in tandem? What’s a cluster?

When I install WinAmp, its location is recorded in the FAT. Then when I start the program, first thing it does is run over to the FAT and say, “Hmm…now, where did I put that WinAmp? I know I left it lying around here somewhere! Aha! There it is!” And then it looks at the registry keys, decides exactly how the program is configured, and starts up.

Am I getting warm?

The “h” key completes a circuit, and an electric signal shoots up the cable from the keybord to the computer. This signal consists of a set of 0’s and 1’s in a specific order that tells the OS which letter to select from the ACSS II (ASCC II?) table. But how are 0’s and 1’s contained in that electric blip?

Does the OS have a “map” of every pixel on the monitor screen?

See? I told you had a whole slew of stupid questions.
Patriot:

Thanks for the good advice.
Digital:

What a great link! Once all that info has sunk in I may have more questions for you.
Ahunter3:

Hey, you! This is supposed to be thread for stupid questions!

:wink:

Correct when you start an application the program you run loads additional support files usually dynamic link libraries. The application then looks into the grgistry for information it put there regarding your prefrences and any registration keys it needs to verify to make sure you are able to use the software

One regisry key might tell Winamp to use random play, and another might tell it what visulation you like

When you install a program it creates a directory to store the files the program needs to run. It may add some additional files to the system folder for Windows and it puts entries into the registry to tell Windows what program to use when you double click on a file it created.

Yes the registry is part of the Windows OS. If your registry is damaged and you don’t have a backup you can’t finish the boot process

If you are not editing the registry you generally do not need a backup. The registry is not one physical file but a collection of files. When you do a full system backup including the system state it backups the registry

Correct when you design a webpage you make it in html (hyper text markup language) and transfer it to the server. When someone goes to the site they get a copy of the file downloaded to them using hyper text transfer protovol whoch their web browser translates into what we see on the screen

A hacker threat is basicly any communication on a port that you are not expecting. When you talk to a web server using HTTP you talk on port 80. When you use FTP you talk on port 21. Some “hackers” scan every port on a IP address looking for a reply of some sort such such as “this port has service x running” or even a “port closed” message. A firewall just ignores those incomming requests for closed ports.

Unfortunatly there are many systems scanning for unprotected systems, many of those are systems that were taken over by trojans that the owner doesn’t know about.

When you start a program, Windows looks at the FAT to see where on the drive the program lives. It then loads that part into memory and runs it. Duringthis time the program looks at it’s settings in the registry to see how it is configured

Correct. The signal the goes describes what key is hit based on an X and Y axis. When Windows gets that code it says ok the key 3 rows down and 5 rows over was hit so that must be a “y” If you hold down mutiple keys it changes the keycode. And depending on what character set you use the character may be something else eitirely. Thats how you can use different language keyboard. The computer doesn’t know what langauge you use on a hardware level, the operating sytsem decodes the keys.

Basicly yes the OS know what pixels should be on or off and tells the video card what to do.

No such thing as a stuipd question just stuipid people asking questions, (to clarify your questions are not stupid)

Fun stuff!

Before I start my blathering, I’ll note that I’m a Mac/Unix person, not Windows. But I hope I can be helpful anyway, by being generic enough.

There are many things that happen, but it will vary from program to program, and OS to OS:

[ul]
[li]At a minimum, the set of files that make the program what it is (at least one executable file, and probably various support files) need to be copied onto your local disk. The operating system won’t execute code from files stored remotely. Or even if does do this (or seems to; it might be making a local temporary copy), it’s usually a bad idea to run things this way for reasons of performance.[/li][li]If it were just a copy operation, you could do this yourself. In fact, many Mac applications install in precisely this way: you just drag-copy the application folder over to wherever you want, and that’s it.[/li][li]The installer might carry the program and its support files in compressed form. They are not usable in this state. They need to be decompressed, as well as put into place.[/li][li]As noted, the “Registry” on Windows might need to have keys (variables) added to it. Under other operating systems, the global system configuration exists in different forms, generally split up into different areas, but it’s the same issue.[/li][li]An installer can check your system for requirements. Do you have enough memory? Do you have OpenGL? Perhaps there’s no point in proceeding with installation if your system lacks certain features.[/li][/ul]

I’ll just note that FTP preceded HTTP by many years. FTP’s reason for existence was simply to copy files reliably from one machine to another. It was born long before the Web came around, and it lingers on because it’s still useful and efficient for doing its thing.

Javascript is a programming language, which can be embedded in HTML pages. (Also PDF documents.) It’s generally used for making dynamic user interfaces in Web pages, though it’s pretty multi-purpose. It goes where HTML can’t go, since HTML is just a markup language for describing document structure — it can’t “react” to events, or perform computation.

Actually, most keyboards transmit a keycode (or scancode) which designates the key pressed. This code might or might not have any relation to the ASCII code of a character. In fact many keys (like “Page Down”) have no ASCII representation. Also, the modifier keys (Shift, Control, etc.) are usually read separately, so that any combination of them can be pressed or depressed independently. It’s then up to the operating system to translate a given keypress event, with all this state information, into a character — or to not do so if that doesn’t make sense.

Yes, every pixel has its own dollop of memory associated with it: anywhere from 1 bit to 32 bits — or more, for some esoteric graphics systems.

This is going to be extra brief because I’m at work, but I just wanted to help.

Right (But it doesn’t have to)

Yes

Not all programs must be installed, some are so simple that all they need is a single executable file (or even just a script) to run. Most programs are more complex though.
Installing generally copies files to where they need to go, makes entries in the registry, and usually makes settings based on your specific PC so that it can run properly (for example a game may ask you to select a video card)

Yes

For home use I would say not very, but that’s my personal opinion. Most systems become so cluttered over time and when one of my PC’s dies I take that as an opportunity to reinstall the OS from scratch.

Another perspective: if backing up personal data is 100% important, then backing up the registry is 20%

It’s an information file for that program. It’s almost always text (99%) and holds information about how a given program should run. I haven’t used WinAmp in a while, but it’s entirely possible that WinAmp uses an .ini to hold settings like skins instead of the registry.

People use programs to check every computer on a domain for vulnerabilities. They can do this extremely fast. It’s analogous to walking through a parking lot trying to open doors.

It’s a scripting language for making web pages more interactive.

More or less

I’ll grant you ignorance but not stupidity.

Stupidity is asking why the the cupholder on the front of the computer keeps going back in every time you restart the PC.

Dang! Third place, I knew I shouldn’t have previewed.

Hey, if I were to stop posting every time someone beat me to an answer, I’d never waste any time here at all.

:wink:

I think you’ve pretty much got it. One of the key things to keep in mind is that a computer is just a machine; everything has to be discrete (at some level, leaving out analog computers) and exactly traceable. It’s not like human memory, of which we don’t fully understand the workings. Also, it’s important to recognize that you’re specifically talking about Windows; other operating systems do not use a registry, nor do they use FAT, etc. On preview, I notice that lots of others have beat me to answering. I’ll cut out any redundant information, but will post whatever is left. Now:

Yes, there are that many people hacking at your computer. Google on port scanning and/or rootkits. The only way to guarantee your computer won’t be hacked is to disconnect from any network, keep it in a locked room, and never install anything.

Ach, how to describe a hacker threat? Well, one form is via communication. In the same way that you can contact a webserver (by IP address), other people on the network can contact your computer. (A digression – every single computer on the internet has it’s own IP address. You can think of it like your mailing address. Communication happens on ports; specific ports are assigned to specific programs by convention. For instance, webservers communicate on port 80, secure shell (ssh) uses port 23, etc. If we continue with the “mailing address” example, a port would be a door; a visitor could use the front door, the side door, the back door, the basement door, etc.) Zone Alarm (or other firewalls) simply detect the sender’s IP address and/or the port they’re trying to connect to and either reject, permit, or ask what should be done with the message.

Now, this says nothing about malicious programs you may download and run. If you allow communication, thereby accepting messages, a firewall doesn’t help. That’s where anti-virus programs come in. Known viruses contain specific code; an AV program scans files looking for known signatures. When found, it then asks what to do (or simply removes the file, if that’s how it is configured).

An address is simply a number. If it is a 32-bit address, it can be represented in any number of ways. In binary, it will be a sequence of 32 1s and 0s. I’ll go into octal and hexadecimal if you wish. The important thing to note is that with a sequence of 32 1s and 0s, there are 2^32 (two to the power of 32, which is 4GB) different and unique possible values. Note that this is more than you can access on a disk; things get a bit complicated in the details of disk addresses and I don’t want to confuse the issue. A cluster is simply a certain number of bits (usually between 1 and 16K) that a disk address “points” to. Grouping it in this way expands the amount of memory a single address can access by splitting memory into address and offset. I can explain more if you like.

Yes. There’s a really neat thing going on here that was codified by Claude Shannon (if I recall correctly), which is that a program is nothing more than data that is interpreted in a certain way…after all, they’re all just bits. There really isn’t a difference between computer instructions and other forms of data beyond what the computer does with them. It’s a deceptively powerful concept to mull over.

Every 1 and 0 is an abstraction; at the circuit level, each is a wire that carries some voltage. A voltage above a certain cutoff is a 1, below a certain voltage is a 0. When people talk about a “data bus”, they’re talking about a group of wires; a 32-bit data bus is 32 wires that carry data. Those 32 wires are then split into groups of 8; if interpreted as ASCII, each 8-bit group forms a character.

Gah. I ended up cutting out a lot of what I’d written and I still ended up with more than a full screen of text. Amazing.

Wow, this is great. Thanks everyone.

I’ll be back with more questions tomorrow, but one quick question here before I call it a night:

Digital:

I’m trying to keep this at a layman’s level (my own), but tell me now if I’ve got it right:

A certain section of the hard disk, say, the first 16ks, is given the following address –

00000000000000000000000000000001.

The next section of say, 16ks, is given this address –

00000000000000000000000000000010.

And so on.

So let’s say that when I install WinAmp (I don’t use WinAmp, by the way, it’s just a handy example), it is automatically placed onto the first section of the disk. Then the File Allocation Table is modified so that it notes the 32-bit address where the program is stored – in this case, in section 1-with-31-zeros-in-front-of-it.

Next time I start the program Windows begins by referencing the FAT and locating the program’s position on the hard disk. Then it sends a little jolt of electricity over to that section of the disk and the program comes to life.

Yes, but by who?

Or, should I say…by what?

(cue scary organ music)

Yeah, you know, I simply cannot get my head around the fact that the entire thing – the whole of the internet – is actually little more than a long string of 1s and 0s. It’s just really incredible when you stop to think about it.

If no one else beats me to it, I’ll post more about disk addresses and such later (it may have to wait until tomorrow). I want to check it against an OS book to make sure I get it right. With that said:

It’s a bit more complicated than that, but that’s the gist of it. Since you mention “coming to life”, perhaps a fair analogy is life itself. After all, sperm meets egg, conception happens, and development occurs automatically. The “plans” are all there; the process is automated. Truly, a wonder.

In a little more depth, as far as computers go – when you flip the power switch on your computer, the BIOS is accessed, which consists of instructions and just enough information to start the whole shebang. In particular, the BIOS identifies some of the hardware, including the boot device. Assume that the boot device is a hard disk. Sector 0 (that is, the first area of the disk), is called the boot sector, which contains just a little bit more information about where to find the operating system. With that information, the OS can be loaded and can go through its startup routines.

One of the more irritating things about Windows is that it takes over the boot sector, which is why you have to install Windows before another OS on a computer. On a Linux system, you can install a boot loader (such as grub or lilo), which allows you to specify different OSes on the same computer. The boot loader contains just enough information to “point” to a different OS, installed at some other place on the disk.

Here’s the thing – all of this is specified beforehand in a strictly regimented order of “commands”. If anything does not adhere to the defined “commands” in the defined order, the computer won’t work. To get into instruction sets, the stages of CPU operation, or other things is probably more than you want to know. What’s important is that there’s no magic involved, even though it may seem that way. (Wasn’t it A.C. Clarke who said a sufficient level of technology is indistinguishable from magic?) It’s simply (hah!) the genius of applying abstraction to design.

I especially like toying with the idea of “playing” a program or a database as a sound or video file. Or visualizing filesystems (much like in Gibson’s Johnny Mnemonic) or a constructed environment (like in Stephenson’s Snowcrash). After all, bits are bits; the meaning is simply found in the interpretation.