Computer Systems
Computer hardware
Computer (computer): Commonly known as computer, is a kind of can receive and store information, and according to the program stored in its internal to the massive data automatic, high-speed processing, and then the processing results output of modern intelligent electronic equipment
Development history:
First generation computer (1946-1957) tube age
Second generation computer (1958-1964) transistor era
Third generation computer (1965-1970) IC era
Fourth generation computer (after 1971) LSI era
In 1946, the world's first computer, ENIAC (Electronic Numerical Integrator and Calculator), was born at the University of Pennsylvania and was developed by the US oberding weapons proving ground to meet the computational trajectory needs. The use of 17,468 tubes, covers an area of 170 square meters, weighs 30 tons, consumes 174-kilowatt, costing $ more than 400,000. 5,000 addition or subtraction operations per second
Cpu
Main frequency: The clock frequency of the CPU (CPU clock speed), is the operating frequency of the CPU operation (1 seconds in the number of synchronous pulses) short. The unit is Hz. In general, the higher the frequency, the faster the CPU, due to the internal structure is different, not all the same clock frequency CPU performance is the same
FSB: Operating frequency of the system bus, CPU and external (motherboard chipset) Exchange data, instruction operating clock frequency
Octave: The multiplier is the difference between CPU FSB and main frequency.
The three relationships are: frequency = FSB x octave
Cache: High-speed switched memory. CPU cache is divided into primary, level two, level three cache, i.e. L1,L2,L3
Memory bus speeds (memory-bus speed): Typically equivalent to CPU FSB, refers to the speed of communication between the CPU and level two (L2) cache and memory
Address bus width: Determines the physical address space that the CPU can access
Array cards
RAID Card:
It is used to establish and reconstruct raid, detect and repair multi-bit errors, and error detection of disk automatically. RAID chips allow CPU resources to be freed
The role of the array card (RAID card)
The array card makes a number of hard drives as a whole, a system managed by the array controller, according to certain requirements.
Array cards are used to improve the performance and reliability of the disk subsystem
Array Card parameters
Supported RAID levels
Array Card Cache
Battery protection
Computer hardware Components
Server
Server servers are a kind of computer, a high-performance computer that provides a variety of services to client computers in the network, and the server, under the control of the network operating system, provides its attached hard drives, tapes, printers, and expensive dedicated communication devices to the customers ' sites on the network, as well as to provide centralized computing for network users. , information dissemination and data management services
Server By application function can be divided into:
Web server, database server, file server, middleware application server, log server, monitoring server, program version control server, virtual machine server, mail server, print server, domain control server, multimedia server, Communication Server, ERP server, etc.
Servers are categorized by form factor:
Tower servers, rack servers, blade servers
Server classification
Depending on the CPU architecture, the server is divided into two main categories:
Non-x86 server: Using RISC (thin instruction set) or epic (parallel instruction code) processor, and mainly with UNIX and other dedicated operating system of the server, the instruction system is relatively simple, it only requires the hardware to perform a very limited and most commonly used part of the order, The main CPUs are Compaq Alpha, HP Pa-risc, IBM Power PC, MIPS MIPS and Sun's SPARC, and Intel's epic Itanium processor. This kind of server expensive, system closed, but good stability, strong performance, mainly used in finance, telecommunications and other large enterprises of the core system
x86 server: Also known as the CISC (complex instruction set) architecture server, which is commonly referred to as a PC server, it is a PC-based architecture that uses Intel or other compatible x86 instruction set processor chip servers. Currently the main Intel Xeon E3,e5,e7 series, the price is relatively cheap, good compatibility, poor stability, security is not too high
Storage Fundamentals---Storage network
Storage network:
DAS-----Directly attached storage (direct attached Storage)
NAS-----Network-attached storage (attached Storage)
SAN-----Storage Area Network (Storage zone Networks)
Direct storage (directly attached Storage).
The storage device is tightly connected to the host
Low management costs and simple implementation
The storage-time is directly attached to the server, so there is a limited store share
? The CPU must simultaneously complete both disk access and application operation, so it is not conducive to optimizing the CPU's instruction cycle and increasing the burden of the system.
Network-attached storage (attached Storage):
Interconnection between multiple file servers via LAN, file-based protocol (NFS, smb/cifs) for file sharing
Centrally manage data to free up bandwidth and improve performance
? can provide cross-platform file sharing capabilities
Poor reliability, suitable for LAN or smaller networks
Storage Areas Network (Storage area Networks,san)
The use of high-speed fiber-optic network linked servers and storage devices, based on a variety of advanced protocols such as SCSI,IP,ATM for storage sharing
? The server and the storage device both perform their duties
? Use Fibre Channel to transfer data to achieve a high-to-many, highly stable storage environment between servers and storage devices
? Complex implementation, high management costs
Operating system
Os:operating System, software program for general purpose
Hardware Drivers
Process Management
Memory management
Network management
Security management
File Management
OS classification:
Server Os:rhel, Centos,windowsserver,aix
Desktop Os:windows 10,windows 7,mac Os,fedora
Mobile device Os:andriod,ios,yunos
Development interface Standard
Abi:application Binary Interface
The ABI describes the underlying interface between the application and the OS . allow compiled target code to run without changes in systems with compatible ABI
Api:application Programming Interface
API defines the interface between the source code and the library , so the same source code can be compiled in any system that supports this API
Posix:portable Operating System Interface
A series of API standards defined by the IEEE on the operating system
POSIX-compatible programs can be compiled and executed on other POSIX operating systems
Run Program format:
Windows:exe,. dll (dynamic link library),. lib
Linux:elf,. So (Shared object),. A
Library function and System call
Users space: User spaces
The running space of the user program. For security, they are isolated, and the kernel is unaffected even if the user's program crashes
Only simple operations can be performed, system resources cannot be called directly, and system call must be passed to the kernel to issue instructions
Kernel spaces: Kernel space
is the running space of the Linux kernel
Arbitrary commands can be executed to invoke all resources of the system
Example:
Str= "www.baidu.com"//User space
x = x + 100//User space
File.write (str)//switch to kernel space
y = x + 200//switch back to user space
The first and second rows are simple assignment operations, which are performed in user space. The third line needs to write to the file, it is necessary to switch to kernel space, because the user cannot directly write the file, must be arranged through the kernel. Row four is the assignment operation, switch back to user space
User and kernel space
Programming languages
Low-level language
Machine language: 0 and 1
Assembly language: Corresponds to machine one by one, unique hardware-related code, driver development
Intermediate Language: C
System-level applications, drivers
Advanced Language: Java,objective-c,c#,python,php,go
Application-level program development
Compatible with CTSS
Compatible time-sharing system Multics
In order to further enhance the function of mainframe, so that the host's resources can provide more users to use, so in 1964, by Bell, Massachusetts Institute of Engineering (MIT) and singular company (GE US General Electric Company) jointly launched the Multics (multi-Channel information systems) plan , the purpose of the Multics program is to enable large hosts to support more than 300 terminal connections at a time. However, the plan continued to be studied, but at the end of the 1969, due to a slow schedule and a shortage of funds, Bell Labs opted out.
Gnu
? GNU (GNU is not Unix)
? 1984 was initiated and created by Richard Stallman
The goal is to write a large number of free software compatible with UNIX systems
? Official website: http://www.gnu.org
? GPL (GNU general public License)
Freedom Software Foundation: Free Software Foundation
Allow users to arbitrarily copy, transfer, modify and republish
Software that is re-released based on free software modification is still subject to the GPL
? LGPL (Lesser general public License)
? LGPL is looser than the GPL, allowing all source code not to be disclosed
? GNU operating system: Hurdhirdof unix-replacing daemons
Linux distributions
Slackware:suse Linux Enterprise Server (SLES)
openSUSE Desktop
Debian:ubuntu,mint
Redhat:RHEL:RedHatEnterprise Linux
Release a new version every 18 months
CentOS: Rhel-compatible format
Kirin: Winning software
Fedora: Release a new version every 6 months
ArchLinux: Light weight and simplicity
Gentoo: Extreme Performance with no traditional installation program
Lfs:linux from scratch homemade Linux
Android:kernel+busybox (tool Set) +java virtual machine
Linux Branch Reference website:
http://futurist.se/gldt/
http://www.mindpin.com/d3js-demo/linux/
Linux kernel
Open Source Agreement
The world's Open source license, there are probably hundreds of
GPLv2, GPLv3, LGPL (lesser): general Public License copyleft
Apache:apache
Bsd:bsd
Mozilla
Apache
MIT
The philosophical thought of Linux
Everything is a file (including hardware)
Small, single-use programs
Link programs to accomplish complex tasks together
Avoid confusing user interfaces
Configuration data is stored in text
Linux Computer Basics