31268 - Web Systems

Introduction to UNIX

Operating system (OS)

A program that manages the computer's resources and presents a UI

User interface (UI)

GUI

Graphical User Interface; Computer interface with graphical desktop. They provide better graphics and user friendliness, but are often resourse intensive and limit options.

CLI

Command Line Interface; Computer interface with a text prompt. Often gives user more access, however may be more difficult to use, inconsistent among different platforms, and lacks graphics.

User

Account on a UNIX system

Root

Administrator account on a UNIX system

Editor

Application that modifies text based files

UNIX

Class of operating systems that pioneered computing systems

UNIX permissions

Each file has a flags for various classes of user (user, group, other) on their permissions (read, write, execute)

drwxrwxrwx

Database Management System

Software that provides controlled access to database records

Risk assessment

Accounting for possible security threats to a sytstem in current context

Operating Systems

Mainframe

Large corporate computer made for mass processing of data

Hardware

Kernel

Central OS software loaded into a protected region of memory that is used as an interface to link processes to hardware input and outputs, including:

Application

User programs

Service

Background application, a daemon

Shell

The connection between a user and device through either a command line interface (CLI) like a console or a graphic user interface (GUI) like a desktop.

WIMP

Windows Icons Menus Pointer device; interface that has said attributes of GUIs

Batch file

File run by a CLI that runs scripting commands

Scripting language

Imperative language that may be untyped (variables not given a type) and have inconsistent syntax. Such examples include bash and zsh.

POSIX

IEEE 1003; Portable Operating System Interface; standards of system and user APIs for portability among UNIX systems

FS

File System; Manages files and directories in an OS (starting from / in Unix-like, and C:// in DOS-based)

LFS

Logical File System; Files, directories and partitions in a FS

PFS

Physical File System; Physical representation of stored data on a disc

DFS

Distributed File System; File system on a server

Tree

Like in discrete mathematics, it's a graph with no circuits. Each tree has its root and each leaf (node other than root) has a parent other than the root

Disk physical structure

- Track; Rings on the discs
- Heads; Read and write discs
- Cylinder; Collection of all discs
- Sector; Portion of a track

Formatting

Initialising the PFS

Disc logical Strucure

- Partitions; Divisions of disk for independant storage
- Directories; Table that locates blocks of files on a disc
- Blocks; Unit of disc space measured by operating system (512 bytes), allocated to files

File Allocation Methods

Inode

Block with metadata (size, owner, permissions, timestamps etc) that is used to reference other blocks with pointers

Process

Program being run

Concurrency

Running several processes at once, can be done through:
- Multiprogramming; waiting in queue to be processed
- Multitasking; set timer for all processes to share CPU time (TDMA)
- Multithreading; Running a process on several threads
- Multiprocessing; using several CPU cores to execute processes at the exact same time

Process states

The state of the program, such as:
- Created; Loaded into RAM
- Waiting; Waiting to be processed by CPU
- Blocked; Waiting for a resource to be available
- Stopped; process is terminated by Arnold Schwartznegger

Interrupt

Action that changes state of process

Sheduling

CPU's method of allocating time to processes

Queue

Method of processes being handled by a thread, where one process is executed while other are in waiting in some order

IPC

InterProcess Communication; act of two processes sharing data

Pipeline

Bash symbol that makes the output of a process the input for another process

Methods of IPC

Resource

Memory or hardware that a process may need access to

Resource contention

When to processes try to access same resource at the same time, which is not allowed

Deadlock

When two processes try to access a resource, which prevents them both from doing so, and they are both stuck. Specifically, it occurs when there is mutual exclusion of a resource (resource can only be accessed one at a time) and a process holds one resource that the compteting process wants, but wants the process that the competing process has (hold and wait). To break deadlocks, either let the OS decide based on an arbitrary process (avoidance/prevention) or break deadlocks when they are found (detection/management)

Address

Location where a byte of memory is stored

Physical Address

Representation of memory address as it appears on the storage device

Virtual Address

Representation of only the memory that a process can access in its optimum order, an abstraction of all available memory in an ideal order for referencing in assembly

Page

Block of memory in virtual memory represented as a file called a page that can swap from being on RAM to swap space if the RAM is being overloaded. The OS defines this behaviour

Paging

The act of swapping a rarely used page file from RAM to swap space to free the RAM

Thrashing

When a program requires more time paging than running applications

Virtual memory

Physical RAM plus interpreting a fraction of a HDD or SSD as RAM

Swap space

Place on drive where virtual memory exists (remember your old computer couldn't run Minecraft without it? Fun times...)

Locality

Tendency of CPUs to use certain values of memory

The web

Confidentiality

Allowing access to files to authorised personell only

Integrity

Protecting accuracy & completeness of information and processes through

Availability

Ensuring constant access to a system

Authentification

Ensuring user is correct, by questioning based on something the user know, has, or is

Security attacks

Encryption

Obfuscation system to make reading messages only possible with a key. These functions are one (plaintext) to one (encryption)

Keys

Used to encrypt and decrypt, private key used to decrypt and public key used to encrypt

SSL

Secure Socket Layer; certificate based protocol that ensures data confidentiality, integrity, and authentification

Hash

Giving a code on data to enforce integrity, these functions are many (plaintext) to one (hash)

Non repudiation

Verifying someone

Web server

Program that hosts webpages on a network

HTML

Language that defines structure of a webpage

CSS

Language that defines formatting of a webpage

Tag

Element in HTML

Engine

HTML viewer

Computer Science

Base conversion algorithm

To binary:
- Bp = ⌊D/2p-1⌋ mod 2
- Bp is the pth digit of the binary number (right to left)
- D is the decimal number
To decimal:
- D = ∞∑p=1 Bp*2p-1
- Bp is the pth digit of the binary number (right to left)
- D is the decimal number

Memory

CPU

Processor of a computer that has a defined instruction set. It has the following sub units:

Fetch-Execute model

EBCDIC

Data representation for characters used in IBM mainframes, usually through punch cards

ASCII

7 bit system for binary numbers to represent letters

ISO-8859

ASCII extension to include Latin extended, Cyrillic, Arabic, Hebrew, Greek and Thai scripts

Unicode

Expansion of ASCII to 16+ bits comes in many variations:

File extension

Code at end of a file showing file type (.exe, .sh, .app etc)

Magic Number

First few bytes of a file that exposes file type

Bit depth

The amount of bits used to represent the color of each pixel; standard RGB with a byte for each color intensity has a bit depth of 24 since \(3B=24b\)

Logic operators

See Discrete Mathematics for the following

Java logic

Lazy logic

Logical Shift Right

Shifting all bits in a binary number to the right, the innermost bit wraps to the end

Arithmetic Shift Left

Shifting all bits in a binary number to the left, the outermost bit wraps to the beggining

NOT

Inverting all bits

Networking

LAN

Local Area Network

Network

Collection of computers connected to allow for resource sharing

Connection Methods

Networking Devices

Physical Topologies

Logical Topologies

WAN

Wide Area Network; network covering large geographical aream such as an Australia-wide network, or the internet, often made up of ISPs

MAN

Metropolitan Area Network; Another word for WAN

Routing protocol

Rules of routing that decide how messages are transmitted

Two Tier

Client-server architecture that acknowledges two types of clients:

Three Tier

Client-server architecture that acknowledges three types of clients:

Peer 2 Peer Architecture

Alternative to client-sever architecture, where clients can be servers too, like in torrenting and mining. It is useful as using idle computers is a powerful processing resource

Packet Switching

Sending data as small packets through different routes and reconstructing the data on arrival

Basic P2P

All clients are equal

Hybrid P2P

Use of a central server for indexing which resource is on what device

Web applications

Applications used on top of networks for more complex functions and presentation, such as email applications, browsers, torrenting applications, messaging applications, file sharing applications and more

Email

Messaging protocol created in 1972 when UNIX was developed

6 degrees of separation

Idea that all people are acquainted to the rest of the world through at most 6 people

Internet Protocols

Port

Specific address from 0 to 65565 for each protocol

URL

MIME

Multipurpose Internet Mail Extensions; Allows for sending binary data through email

XML

eXtensive Markup Language; used to store data in an unambiguous format in a syntax similar but more stricter than HTML