Computers
- Memory
- Volitle, or temporary
- nonvolitle or perminant
- Can hold 0 or 1, a bunch of times over
- bit {0,1}
- byte 8 bits
- Word - processor dependant, most are 32 - 64 bits
- Kilobit is about 1000 bits , exactaly 210 = 1024 bits
- Megabit is 220
- A gigabit is 230
- Substitute byte for bit, and get storage sizes, multiply by 8.
- Cache memory
- Memory is much slower than the CPU, so there is small fast memory
between the two called cache.
- Sometimes it is split, some for instructions, some for data
- D-cache, I-cache
- Sometimes there are more than one layer of cache, this is then
L1-cache and L2-cache
- CPU
- This is what does the actual work.
- Divided into a number of parts
- ALU - Arithmetic Logic Unit - does the math
- Clock
- CU - Control Unit - decides what to do next
- MMU - memory management unit - interacts with memory
- Registers - limited amount of very fast memory
- Fetch-Execute Cycle
- CU tells the MMU to get an instruction from memory
- MMU gives the instruction to the CU
- CU decodes the instruction
- CU tells MMU to fetch data if necessairy and send it to ALU
- CU tells the registers to send data to ALU,
- ALU does whatever
- CU tells ALU what to do with the results
- See me in 312 for a much better description.
- Many different types, and styles
- Each has it's own machine language, assembly language
- Secondary storage
- Disks, zips, floppies, cd, ...
- Removable or non-removable
- Attached or perhaps networked
- Very slow, and inexpensive.
- I/O devices
- Peripheral Devices
- Computer Hardware: The physical components of the computer
- Software : the coding that makes things work. The set of instructions.
- PC-Workstations-Mini-Mainframe-Super Computer
Software
- Operating System - A program that manages the resources of the computer
- What is running on the CPU right now.
- Who has access to memory, disk, keyboard, ...
- CSCI 380
- Utilitiies
- Programs that you need, but aren't the OS Propper
- Compiler, editor, linker, network software ...
- Sometimes an operating system is both the OS propper and the utilities
- Applications
- Other programs that are not necessairy for the operation of the computer
- Web Browse, Word, Excel, Powerpoint ...
- Some things we will care about this semester
- LINUX-UNIX
- A family of OSs
- Brief History
- LINUX and a very brief history
- Why linux and not windows?
- FTP
- An utility and a protocol
- Transfer files between computers.
- Telnet
- An utility
- Log onto a remote computer
- PuTTY
- A utility
- Much like telnet, but it works.
-
home page
- If you plan to work from home, you should get this if you
have windows installed.
- There is also a nice ftp client there as well
- Editors vs Word Processors
- The job of a word processor is to make "pretty" documents
- Different fonts, pictures, text, ...
- Many people use these for many tasks.
- Often the results are saved in "strange" formats
- Usually very sufficsticated.
- The job of an editor is to put things where you want them
- And to put what you want there.
- Usually somewhat primitave in some sense
- Text based, not wysiwyg
- Keystrokes, limited mouse ability
- There are large number of editors available in *NIX
- ed, vi, ... the original
- emacs
- joe
- joe
- For a programmer, an editor is a basic tool, it is much like a
hammer for a carpenter.
- You should learn how to use your editor, it will take some time,
but it will be well worth the investment.
- Compilers
- We will use g++
- This is installed on our linux machine (cslab41)
- It is fairly standards compliant
- But your code must run on cslab41.
- So if you develop your code in VisualC (or anything else) it must
run on cslab41.
- Open Source to Commercial Software
A quick history of C, C++
- BCPL or B
- C, AT&T Bell Labs, Dennis Richie
- ANSI C
- x++ add one to x.
- Object Oriented
- Bjarne Stroustrup, AT&T Bell Labs
- C++
- ANSI C++
- A word on standards