
- •Ssd2: Introduction to Computer Systems contents
- •Prerequisites
- •Course Textbook
- •Hardware/Software Requirements
- •The purpose of ssd2 is for students to
- •Students successfully completing ssd2 will be able to
- •1.1 Overview of Computer Systems
- •1.1.1 Components of a Computer System
- •Hardware System
- •Software System—Operating System Software and Application Software
- •Network System
- •1.2 Evolution of Computer Systems
- •1.2.1 Brief History
- •1200S—Manual Calculating Devices
- •1600S—Mechanical Calculators
- •1800S—Punched Cards
- •1940S—Vacuum Tubes
- •1950S—Transistors
- •1960S—Integrated Circuits
- •1970S to Present—Microprocessor
- •Pace of Advancement
- •1.2.2 Applications of Computer Systems
- •In Education Multimedia-Facilitated Learning
- •Simulation-Based Education
- •Intelligent Machine-Based Training
- •Interactive Learning
- •In Business Supply Chain Management
- •Project Management
- •Customer Relationship Management
- •Sales and Marketing Using Electronic Commerce
- •Manufacturing Research
- •In Entertainment Movies
- •Video Games
- •1.3 Data Representation in a Computer System
- •1.3.1 Bits and Bytes
- •Data Representation Using Binary Digits
- •Increasing Need for Bytes
- •1.3.2 Number Systems
- •Decimal
- •Hexadecimal
- •Learning Exercise
- •2.1 Processor and Memory
- •2.1.1 Processor Basics
- •Processor
- •Instruction Execution with the cpu
- •Performance: Factors and Measures
- •Types of Processors
- •2.1.2 Types of Memory
- •Cmos Memory
- •Summary
- •2.1.3 Lab: Benchmarking (Optional)
- •2.2 Peripherals
- •2.2.1 Connecting Peripherals
- •Expansion Slots and Cards
- •Usb and FireWire
- •Comparing Different Ports
- •2.2.2 Buses
- •2.2.3 Input/Output Devices
- •Input Devices
- •Cameras
- •Digital Camcorders
- •Scanners
- •Output Devices: Monitors and Projectors
- •Crt Monitors
- •Lcd Monitors
- •Projectors
- •Output Devices: Printers
- •Ink Printers
- •Dye-Sublimation Printers
- •Laser Printers
- •Comparing Printers
- •2.3 Storage Devices
- •2.3.1 Disk Controller Interfaces
- •Ide Interface
- •Eide Master/Slave
- •2.3.2 Mass Storage
- •How Mass Storage Devices Differ from ram
- •Disk Drive Reliability
- •Optical Media: cDs versus dvDs
- •Magnetic Media
- •Optical versus Magnetic
- •Solid State
- •Comparing Storages
- •2.4 Putting Together the Hardware Components
- •2.4.1 How Components Work Together
- •2.4.2 Lab: Researching a Computer System
- •2.4.3 Lab: Online Configuration
- •2.5 Improving Computer Performance
- •2.5.1 Moore's Law
- •2.5.2 Bottlenecks
- •Bottlenecks—Slowing a Process
- •Typical Bottlenecks
- •Eliminating Bottlenecks
- •2.5.3 Throughput and Latency
- •Unit 3. Operating System Software
- •3.1 Structure
- •3.1.1 Layers of Software
- •Layers and Process Management
- •Encapsulation and Abstraction
- •Layers of Software
- •3.1.2 The bios: Life at the Bottom
- •The Role of the bios
- •Changing bios Settings
- •3.1.3 Process Control
- •3.1.4 Lab: The Task Manager
- •3.2 Device Management and Configuration
- •3.2.1 Interrupt Handling
- •Interrupts
- •Interrupt Priority and Nested Interrupts
- •Traps and Faults
- •3.2.2 Hardware Attributes
- •Installing Drivers
- •Changing a Driver's Configuration
- •3.2.3 Configuration
- •3.2.4 Lab: Device Management
- •3.3 Resource Sharing
- •3.3.1 Virtual Memory
- •Managing Memory
- •Relocation
- •Virtual Memory
- •3.3.2 File and Printer Sharing
- •Printers
- •3.4 File Systems
- •3.4.1 File Organization
- •Folders
- •Shortcuts
- •File Names and Types
- •3.4.2 File Allocation Table and nt File System
- •Clusters and File Allocation Tables
- •Nt File System
- •Unit 4. Application Software
- •4.1 Software Basics
- •4.2 Using Software Systems
- •4.2.1 Lab: dos Commands
- •4.2.2 Lab: Macros
- •4.2.3 Lab: Embedding Application Objects
- •4.3 Batch Script Files
- •4.3.1 Advanced Command-Line Functions
- •Dos Command Syntax
- •Review of File System Commands
- •Wildcard Characters
- •Redirection and Piping
- •4.3.2 Batch File Commands
- •Batch Files
- •Commands
- •4.3.3 Lab: Creating a Batch File
- •Example of a Batch File
- •Example of a Batch File with Arguments
- •4.4 Databases
- •4.4.1 Lab: Searching the Library of Congress
- •4.5 Software Engineering
- •4.5.1 Issues in Large-Scale Software Development
- •The Software Development Process
- •Define or Redefine the Problem
- •Plan a Solution to the Problem
- •Code the Solution
- •Evaluate and Test Everything
- •4.5.2 Open Source Model
- •Free Software
- •4.5.3 Tools for Software Creation and Management
- •Editors
- •Compilers
- •Debuggers
- •Integrated Development Environments (idEs)
- •Unit 5. Network Systems
- •5.1 Internet Basics
- •5.1.1 Mime Types
- •5.1.2 Internet Languages
- •JavaScript
- •5.2 Local and Wide Area Networks
- •5.3 Communication Strategies
- •5.3.1 Client-Server Framework
- •5.3.2 Peer-to-Peer Connectivity
- •5.4 Data Transfer Technologies
- •5.5 Internet Architecture
- •5.5.1 Routers and tcp/ip
- •Internet Protocol
- •Routers
- •Transmission Control Protocol
- •5.5.2 Domain Name Service
- •Domain Name Service
- •5.5.3 Connectivity
- •Conventional Analog Phone Lines
- •Isdn: Integrated Services Digital Network
- •Cable Modem
- •XDsl: Digital Subscriber Line
- •Dedicated High Speed Lines
- •5.5.4 Internet Service Providers
- •Unit 6. Computer Security
- •6.1 Security Threats
- •6.1.1 Intruders: Who, Why, and How?
- •6.1.2 Identity Theft and Privacy Violation
- •Password Cracking
- •Packet sniffing
- •Social Engineering/Fraud
- •Spoofing
- •Port Scanning
- •6.1.3 Malicious Software
- •Trojan Horse
- •Prevention
- •Detection
- •Counter Measures
- •6.1.4 Denial of Service
- •Network Connectivity
- •Network Bandwidth
- •Other Resource Consumption Attacks
- •Distributed Denial of Service Attack
- •Prevention
- •6.2 Security Technologies
- •6.2.1 Encryption
- •Substitution Cipher
- •Transmitting the Key
- •Private Key Encryption Scheme
- •Public Key Encryption Scheme
- •Hybrid Encryption Schemes
- •6.2.2 Applications of Encryption
- •Hard Drives
- •Dvd Movies
- •Cellular Phones
- •6.2.3 Authentication
- •Strong Passwords
- •Smart Cards
- •Biometrics
- •Digital Signatures
- •Digital Certificates and Certificate Authorities
- •Ssl Protocol
- •6.3 Prevention, Detection, and Recovery
- •6.3.1 Firewall
- •Application Gateway
- •Packet Filter
- •Application Gateway versus Packet Filter
- •Intruder Attacks Prevented by Firewall
- •Setting up a Firewall
- •6.3.2 Intrusion Detection Tools
- •Intrusion Detection Systems
- •Network Monitoring Tools
- •Anti-Virus Software
- •6.3.3 Data Recovery
- •6.3.4 Summary of Security Tips
Anti-Virus Software
Virus attacks can spread quickly and are costly and time-consuming to fix. Researchers at CAIDA estimate that Code Red worm infected 359,000 computers in less than 14 hours. [CAIDA] Therefore, it is worth the investment to install anti-virus software on all servers and workstations within the protected network to guard against malicious code attacks.
In general, an anti-virus software program searches through files (or memory) for indications of malicious code using a virus profile (sometimes called "signatures") provided by the vendor. Anti-virus software programs can also remove viruses from files, isolate files that cannot be cleaned, and discover Trojan horse programs and worms. Some anti-virus software can recover data deleted by viruses.
Because new viruses are discovered daily, the effectiveness of anti-virus software is dependent upon having the latest virus profiles installed on your computer. Some virus tool vendors provide subscription services or other distribution facilities to help customers keep up to date with the latest viral signatures.
Strengths of anti-virus software:
Protect users from email borne malicious code that can go unnoticed by IDSs and firewalls
Can detect a network-propagated virus infection
Weaknesses of anti-virus software:
Must be updated frequently
Does not protect against all network-based exploits
Two popular anti-virus programs are Norton Anti-Virus and McAfee Anti-Virus toolkits. Click on either of these links to explore their virus information libraries.
More information about viruses and anti-virus software can be found on the CERT Computer Virus Resource page.
You can also read an article on "Malicious Code Propagation and Antivirus Software Updates" from the CERT incident notes page.
6.3.3 Data Recovery
In case of a security breach where your data is compromised, tampered with, corrupted, or deleted, you need to be sure you have a backup, or a copy of your data to restore your computer system. Data that can be compromised include files, application programs, and the operating system. Backing up your data is one of the most important actions in securing your computer system. Having a backup of your data not only mitigates data loss caused by intruder attacks, backups also help recover from losses caused by unintentional deletion of data, software malfunction, hardware malfunction, and natural disasters.
In general, you should back up your system:
Periodically (for example, monthly, weekly, every other day, everyday) depending on how frequently your data changes
Before you make potentially irreversible changes to your data such as changing file structures, deleting large amounts of data
Before installing hardware or software components that may alter your data
Backups should be kept on a removable medium or stored at a remote site in case of natural disasters or physical destruction of computer equipment. When performing virus scans or data integrity checks on your system, be sure to perform it on your back ups too. It is important that the backed up data is not compromised or corrupted.
There are various backup methods.
Full backup
A copy of all your data
Differential backup
A copy of all the data that changed since the last full backup
Incremental backup
A copy of all the data that changed since the last full, differential, or incremental back up. Note that the first incremental backup is also a differential backup from the full backup.
Selective backup
A copy of only selected data
Below is a chart comparing the relative time consumed for each method, and a suggested time frame for performing each backup scheme.
Backup Method |
Relative time |
Suggested backup period |
Full backup |
*** |
every week or every other week |
Differential backup |
** |
mid-way between full backups |
Incremental backup |
* |
mid-way between differential backups |
Selective backup |
* to** |
when selected data is changed |
Table 1 Comparing backup methods
To understand how these backup methods work better, let us visit some scenarios.
Example 1: organization that does a full backup every Friday at 5 P.M. and a differential backup every Wednesday at 5 P.M. Incidence: data failure on Thursday at 6 P.M. Data recovery method: restore data from last Friday's full backup and then Wednesday's differential backup. Data loss: data after Wednesday's differential backup and before data failure Thursday- about 25-hours worth of work on the machine |
Example 2: organization that does a full backup every Friday at 5 P.M., a differential backup every Wednesday at 5 P.M., and an incremental backup every other day at 5 P.M. Incidence: data failure on Thursday at 6 P.M. Data recovery method: restore data from last Friday's full backup, then Wednesday's differential backup, and finally Thursday's incremental backup. Data loss: data after Thursday's incremental backup- about one hour worth of work on the machine |
Notice that it may take more time to recover data if many incremental backups were done, but the amount of data lost would be less. When determining how often you should backup your data, ask yourself how many hours worth of work on the computer are you willing to risk losing? For example, if your answer is 24 hours, then you should back up everyday. If your answer is 48 hours, you should back up every other day. When choosing a backup method, keep in mind the relative amount of time each backup method takes to complete when you would conduct the backup. For example, a full backup would take the longest amount of time; therefore, they are usually performed during hours when the computer system is not being used as much. At the minimum, full backups should be performed on a regular basis.