Friday, July 23, 2010

A slight detour...

By now you should have at least basics in how to write a small program - at
least a small game, perhaps. But computers are not just based on software -
they also work with hardware. In order to continue with more advanced
topics, I think it's time to go over some hardware basics. Along the way,
I'll introduce you to some basic things that computer science and
engineering studetns learn about the subject at hand. let's begin by
examinng the history behind computers.

Our discussion starts with a very word that we use everyday: a computer.
Historically, a computer meant a person who keeps track of records or an
individual who was very good at calculations. In modern sense, a computer is
a device that stores, retrieves and processes information. This could be
text files, multimedia applications and even keeping track of sattellites on
space. In simple terms, computers can be thought of as a large calculator
that works with numbers, text commands and so forth (mostly because early
computers were based on calculators).

The first computers appeared around mid-1940's with the development of
ENIAC, a large electronic computer used for large calculations. Mostly these
were used in military and research labs for decoding enemy codes and so
forth.--Source: Wikipedia article on computers. Since then, numerous
advancements allowed engineers to develop smaller yet faster computers and
using punched cards, tape drives and other means of storing information.
Later, with the development of Arpanet (a modern grandfather of Internet),
communication between computers became practical, thus what we now call
internet was born. These days, computers are a lot smaller, faster and ever
connected to the Internet thanks to advances in processor technology, more
secure memory and wireless means of communicating with others.

There are numerous types of computers. They vary in size, speed and intended
use. The top of the line computers in the world are called "supercomputes,"
designed for processing huge number of information at once, such as weather
forecasts, game engines for chess and so on. Then there are minicomputers,
then finally what we call computers, or more technically called
microcomputers. Still, there are specialized computers such as embedded
computers, computers designed for special tasks e.g. network routers, kiosks
and so forth and others. Even cell phones are computers themselves - a
special computer which allows people to send and receive calls, communicate
via text messages and so forth.

So how are these terms interconnected? Computers, or computer systems, are
organized into various layers, including software, hardware, operating
system and so forth. Let's examine these layer in more detail.

A computer hardware is the physical characteristics of a computer. This
includes computer case, processor, memory, disks and other devices such as
sound cards and network ports. A processor, or so-called Central Processing
Unit (CPU) is responsible for carrying out instructions for a computer
system, such as getting new commands, process it, output it and get another
instruction (a series of commands for a CPU to perform). The memory is used
to store running programs and files that a software (program) needs to work
with. there are numerous kinds of memory, including RAM (Random-Access
Memory) which is used as a temporary storage, hard disks (a magnetic disk
used to store files and folders even when the computer is off) and optical
discs such as CD's DVD's and blueray Discs (BD). These are called primary
(RAM) and secondary storage, respectively. I'll talk more on that later when
i discuss memory types. Other peripherals perform specialized functions,
including allowing a computer to connect to the Internet, processing sounds
and so forth.

However, computer systems are not just limited to the hardware above - there
are other devices that needs to work together with a computer to allow users
to work with it. These include keyboards, mouse, monitors, printers and so
forth. These are collectively called "input/output devices", or I/O
peripherals. I'll discuss more on this concept when we get into file
operations.

Before we end, let's discuss different memory types that a computer use to
process data. As discussed above, there are numerous storage options
availible, including physical memory (RAM), hard disks and so forth. The RAM
is used to store running programs and data that these programs use, such as
audio files, documents, spreadsheets and files to be checked by antivirus
programs (yep, computers are vulnerable too), as such, it is known as
primary storage device. However, there is one huge disadvantage: Even though
RAM (Random-Access memory) is faster than hard disk, RAM stores information
only when computers are turned on, so when power is off, anything that is
stored on RAM is gone; this is called volatile memory. I'll come back to RAM
and its organization much later when I go over pointers and so-called memory
addresses.

As opposed to drawbacks of RAM, a secondary storage device, such as hard
disks, CD's and so on are used to store programs and files even when
computers are turned off - logically enough, it is called nonvolatile
memory. A hard disks use magnet coded disks (on a disk platter) for storing
information, hence they are called mechanical. This allows many characters,
or bytes of information to be stored on these disks. An optical media, such
as CD's store information on a specially coded plastic discs, and a newer
memory type called flash memory uses electronic cells to store data.

In the next post, I'll discuss more about storage capacity and the meaning
behind my previous statement about different CPU's knowing their own machine
language.
// JL

No comments:

Post a Comment