Computers are built for the primary function of:
Theoretically the Von Neumann Architecture provides the groundwork for this process. The Von Neumann Architecture expands on the processing portion of the computational framework above to have a CPU that processes commands and information, and 2 forms of memory to store things when needed. These forms of memory are main memory to store items currently being used, and secondary memory to store things that need to be remembered for later or when the power is shut off.
Physical computers take the architecture laid out by Von Neumann and turn it into a physical machine containing input/output devices, a CPU, and main/secondary memory.
Every single item that plugs into a machine is an input or output device. Input devices allow humans to interact with machines and the programs running on them. From the single button clicked to get a parking ticket to enter a parking lot to game controllers used to slay the best monsters in games, input devices are what allow humans to do anything with the machines seen all around the world today.
On the other hand, output devices allow humans to sense what the computer is doing. The monitor allows humans to see, speakers to hear, smellitizers to smell, haptic devices to feel. Output devices allow the humans that use machines to immerse themselves into the worlds the machines are creating through their programs.
I/O devices are nothing without a brain. The Central Processing Unit (CPU) is the chip that processes all commands. The CPU is a small chip that sits under a fan and heatsink or water block and radiator on the motherboard. The reason for the fan and heatsink or water block and radiator is with all the processing the CPU does uses energy which a generates considerable amount of heat that needs to be dispelled by the system. The heatsink or water block sits on top of the CPU to pull the heat out of the CPU into the metal in the heatsink or the coolant in the water block. For the heatsink, the fan then blows the heat away from the metal which cools the metal. For the water block, the hot coolant is pumped away and cold coolant is pumped in. The hot coolant is then cooled using a radiator and fans (similar to heatsink).
A CPU:
A CPU with a cooling fan and heatsink installed:
The large metal fins allow the heatsink to have more surface area, thus allowing them to absorb more heat. The fans then spin pushing cooling air over the metal fins cooling them, allowing for more heat to be dissipated into the now cooled metal fins. These are large and do not look the best, but they cool well and efficiently and are extremely cost efficient.
Water cooling systems are much more sleek and modern looking, and they allow for the components to be seen better in cases that have a side window. The problem with water cooling is it comes at a cost premium for not much of a performance gain unless a considerable amount of money and time is spent building the system. There are many ways to water cool computers from all in one (AIO) setups all the way to custom setups with custom bent hard tubing/LEDs/water coloring/etc. Here, a CPU has an AIO water cooling system installed in place of a cooling fan and heatsink:
The black "Corsair" part is the water block which is mounted above the CPU. The water block is made of copper and is filled with coolant. The copper pulls heat off of the CPU and into the coolant, and one of the black hoses on the block draws the coolant away from the block up to the radiator on top. The radiator has the coolant dispursed among the tiny fins that can be seen which draws the heat in the coolant into the metal of the fins. The fan on top then pulls the hot air from in the computer across the fins which pulls the heat out of the fins and across the fans, out of the case. The coolant is then pumped back into the water block using the other black hose going from the radiator to the water block.
There are also very specialized CPUs that only work in graphics called Graphics Processing Units (GPU). These processors allow for graphical computations, which involve millions of mathematical computations every second, to be performed. These computations can be performed on standard CPUs, but when they are used for graphics the resolution of the graphic is limited since the CPU is focused on computing so many other things. Thus some users opt to use a GPU to have a better graphical experience.
While the CPU processes information and instructions it needs somewhere to store all of its data and instructions, which is the work of Main Memory (Random Access Memory [RAM]). Main memory comes in sticks usually come in smaller 2GB/4GB/8GB sticks which can be combined to make larger sets of RAM for the system. Here, two 8GB sticks of RAM are shown which are combined to form 16GB of RAM total in the system:
When the computer needs to store something permanently in a file it does so in Secondary Storage (Hard Disk Drive [HDD], Solid State Drive [SSD], flash drive, etc.). Secondary storage holds all of the data that needs to persist when the computer turns off. Traditionally HDDs with spinning discs were used for secondary storage, this however proves costly when discs fail from external forces. Thus modern computers use SSDs to avoid having moving parts inside of a computer that can break from physical movement.
On the left the large steel colored box is a Hard Disk Drive (HDD) which contains a stack of disks which spin continually at a rapid rate (this one performs 7200RPM). The discs contain data which can be accessed or overwritten using a moving laser head that is also inside the metal box. On the right is a Solid State Drive (SSD) which contains small chips that contain billions/trillions of micro spots to store information that is addressed similar to RAM (just runs on a much slower basis).
All of these components are combined using wires. If the wires were however physical wires there would be wires running everywhere inside of computer towers. Instead a printed circuit board (PCB) is used to connect all of the components. The PCB is a board with layers of copper and non-conductive material which have wire traces etched into them used to simulate wires used to connect computer components together. These wire traces are known as the BUS. The PCB connecting all the computational components together is known as the motherboard, and it is the skeleton of the computer.
All over the board are sockets that can hold the components described above (most of the sockets are black on this board) each of which is connected with the wire traces etched into the board. There are also other small hardware components soldered to the board, but these components are on a level not useful to the common computer scientist (but very useful to computer engineers).
All of the components described above can be plugged into the motherboard:
To allow the components to be protected from the elements, as well as for pressure to be built to allow the fans to cool properly, the components are all arranged in a case:
The case is then closed which allows for the fans to build pressure that allows the hot air to escape the case. The built computer can then have input and output devices plugged into it which allow humans to use the computer:
The operating system is the most fundamental software system on a computer. It is the software system that controls all of the physical components of the Von Neumann Architecture, turning the physical hardware into a system that is able to store, manage, and run programs. There are many different operating systems including ones built and managed by companies, open source systems, even hobby systems built by enthusiasts. Each system runs different algorithms to accomplish the following common tasks:
I/O: Managing and recording input signals from input devices and sending output signals or data to output devices.
Process management: The allocation of cpu run time and the synchronization amongst all processes that need to be run.
Memory management: Allocating memory to programs when they need it and freeing memory when programs no longer need it.
File System: A data structure used by the operating system to control how data is stored and retrieved.
Drivers: Hardware specific software that control and operate particular devices attached to a computer.
Interrupts: Allowing the cpu to be interrupted any time a critical event needs to be processed in a timely manner.
Networking: Allowing a computer to talk to other computers.
Security: Protecting the computer from malice.
As we can see the operating system is in charge of maintaining many different aspects of the computer. It manages all of the resources in the Von Neumann architecture: recording input and sending output, managing programs running on the cpu, and managing the memory allocated to programs.
Operating systems include file systems which allow for memory to be named and grouped together. File systems transform main memory from random 0's and 1's to data and instructions that control so much of the world around us today. File systems group memory into its most basic units called a file--named collection of data stored on a computers main memory-- and then structures those files in directories--collections of files-- to make finding files easier.
The file system in Unix systems treat all secondary memory devices as a single device even when multiple devices are active. This allows for data to be stored in a tree like structure starting at the root directory /
. This tree like structure has a root folder/directory which contains more files and directories that can contain more files and directories and so on. An illustration of this structure follows:
At the base of the tree we have /
(the root directory) which contains every file and directory the system will have. There are then directories inside of the root directory which also contain directories and files, thus forming the tree like structure. The primary directory is /home/
which contains the directories for all of the users on the computer. The /home/
directory is where the user account you are currently using (and all other users) and all of its directories are located on your computer is located.
There are many different operating systems but 3 dominate the market for personal computers: macOS, Linux, and Windows. There are also operating systems for mobile phones. The 2 operating systems that dominate the market are iOS and Android. Each of these operating systems must accomplish all of the tasks detailed above, but they do them in very different ways. Below the personal computer operating systems are described.
macOS is developed, maintained, and marketed by Apple Inc. and is specifically designed for Macintosh computers. Thus, macOS can only run on Macintosh computers sold by Apple. Although the operating system is owned by Apple it has many open source components meaning the general public can see and expand upon the code for many components of macOS. Every new Mac sold comes with a copy of macOS. macOS is based on the Unix kernel (kernel is another word for operating system) meaning it is a multi-user and multi-tasking OS designed using the Unix Philosophy which can be summarized as:
Programs should do one thing and do it well.
Programs and data are stored in a unified filesystem (tree like structure).
The output of one program can be piped to the be the input of another program.
Systems should contain a shell scripting language and a command language to allow for complex workflows using the previous philosophies.
Unix is a company that was originally developed by Bell Labs in 1969, thus in order to be officially certified as a Unix operating system (as macOS is) the OS must follow strict specifications. Every Mac running macOS comes with a program called Terminal which allows for easy navigation of the file system as well as many standard programs (Linux commands) to be used on the system.
Linux is a family of open source Unix like operating systems. Linux operating systems are open source and are generally free to use on any system Mac or PC. There are many different Linux operating systems but the most popular are Debian, Fedora, and Ubuntu. Linux is a Unix-like operating system meaning it behaves similarly to that of a Unix system, but it is not an officially certified as being based on an official Unix specification. Although Linux is not an official Unix operating system it behaves very much like one but instead of being a product requiring a license to use, it is free for any to use (open source). As with macOS, all Linux distributions come with a program called Terminal which allows for many standard programs (Linux commands) to be used on the system.
Windows is the operating system developed, maintained, and marketed by Microsoft. The windows operating system is a closed source proprietary operating system which Microsoft solely controls. The code to Windows is not available to the general public, and can only be accessed by Microsoft employees and people who pay for a shared source initiative (SSI) license (which is owned by Microsoft). Windows can be run on almost any machine including Mac (using an emulator).
A major difference between Windows and Unix is the way the file system is structured. As noted above, the Unix environment treats all secondary memory devices as a single drive, allowing for data to be organized in a tree like structure to organize files and directories. Windows on the other hand treats each secondary memory drive as a separate device containing files and directories. This forces the system to use a table like structure to organize files and directories.
Each drive is a separate device in the system (or 'drawer' in the cabinet). Each drawer has a name (A:\>
B:\>
etc.) which contains its own directories and files.
Heatsink – A piece of metal that sits on top of the CPU to pull heat out of the CPU into the metal fins, which are then cooled by a fan blowing air across them.
Water Block – A copper piece filled with coolant that sits on top of the CPU and pulls heat into the coolant, which is pumped to a radiator and cooled by fans.
AIO (All-In-One) Water Cooling System – A prebuilt water cooling system that includes a water block, radiator, fans, and tubes to cool the CPU more sleekly than a fan/heatsink.
GPU (Graphics Processing Unit) – A specialized processor that handles graphical computations which involve millions of mathematical computations per second.
HDD (Hard Disk Drive) – A metal box containing spinning discs and a moving laser head used to read/write data.
SSD (Solid State Drive) – Uses chips with billions/trillions of micro storage spots, similar to RAM but much slower.
Printed Circuit Board (PCB) – A board with etched wire traces (BUS) that connect computer components together.
Motherboard – The PCB that connects and holds all computational components; the “skeleton” of the computer.
Operating System (OS) – The most fundamental software system on a computer. It controls all physical components and manages input, output, processing, memory, and files.
Process Management – The allocation of CPU run time and the synchronization amongst all processes that need to be run.
Memory Management – Allocating memory to programs when needed and freeing memory when no longer needed.
File System – A data structure used by the OS to control how data is stored and retrieved.
Drivers – Hardware-specific software that controls and operates particular devices attached to a computer.
Interrupts – Allow the CPU to be interrupted anytime a critical event needs to be processed quickly.
Networking – Allows a computer to communicate with other computers.
Security – Protects the computer from malicious activity.
File – A named collection of data stored on a computer's main memory.
Directory – A collection of files (can also contain other directories).
Root Directory (/) – The base of the tree-like structure in Unix-based file systems, from which all other files/directories originate.
macOS – A Unix-certified OS developed by Apple, runs only on Macintosh computers, includes open-source components.
Linux – A family of open-source Unix-like OSes that are free and run on almost any computer. Examples: Debian, Fedora, Ubuntu.
Windows – A proprietary, closed-source OS developed by Microsoft. Treats each drive as a separate file system.
a)
b)
c)
d)
e)
f)
and g)
?What architecture provides the theoretical framework for how a computer processes information?
What are the two types of memory in a computer?
What is the purpose of input devices?
Give 3 examples of input devices.
What is the purpose of output devices?
Give 3 examples of output devices.
What is the CPU and where is it located?
Why do CPUs need cooling systems?
What is the function of a heatsink and fan on a CPU?
What is a water block and how does it cool a CPU?
What are the advantages and disadvantages of water cooling over air cooling?
What is a GPU and how is it different from a CPU?
What kind of computations are GPUs optimized for?
What are examples of secondary storage?
How does a traditional HDD store data?
How is an SSD different from an HDD?
What is a PCB and why is it used?
What is a BUS in the context of computer hardware?
What is the motherboard?
How does the motherboard connect to other hardware?
Why is a case used for a computer?
What role does the case play in cooling?
What is the operating system’s role in a computer?
What does the OS manage in a computer system?
What are the eight core tasks of an operating system?
What is a file system in the context of an OS?
What is the purpose of a file system?
What is a file?
What is a directory?
When multiple drives are used in a Unix based machine, how are they structured?
When multiple drives are used in a Macintosh/Apple machine, how are they structured?
When multiple drives are used in a Windows based machine, how are they structured?
What is the difference between the Unix and Macintosh/Apple file systems?
What is the difference between the Unix and Windows file systems?
Who develops and maintains macOS?
What machines can run macOS?
What does it mean that macOS is Unix-certified?
What are the four core Unix philosophies?
What program in macOS allows command-line access?
What is Linux?
How does Linux differ from macOS?
Is Linux officially Unix?
What are popular Linux distributions?
What machines can run Linux*
How does the Linux file system compare to macOS?
What program is commonly used in Linux for command-line access?
Who develops Windows?
Is Windows open source?
Can Windows be installed on a Mac?
What machines can run Windows?
How does the Windows file system differ from Unix-based file systems?
What is the structure of file storage in Windows?
What are the similarities between macOS and Linux?
What are the differences between macOS and Linux?
What are the similarities between Unix/Linux and Windows?
What are the similarities between Unix/Linux and Windows?
Why might someone prefer Linux over macOS or Windows?
Why is the OS essential for using computer hardware?
How do OS differences affect file organization?
What advantages do open source systems offer?
What is meant by a “Unix-like” operating system?
What does a shell allow users to do?