Hard core science: 89 operating system core concepts that programmers must know

1. Operating System (Operating System, OS): It is the system software that manages computer hardware and software resources, and is also the core and cornerstone of the computer system. The operating system needs to handle basic tasks such as managing and configuring memory, determining the priority of system resource supply and demand, controlling input and output devices, operating the network, and managing the file system . The operating system also provides an operation interface for users to interact with the system.

Hard core science: 89 operating system core concepts that programmers must know

 

2. Shell: It is a program that can obtain commands from the keyboard and provide them to the operating system for execution. In the past, it was the only user interface available on Unix-like systems. Today, in addition to the command line interface (CLI), we also have a graphical user interface (GUI).

Hard core science: 89 operating system core concepts that programmers must know

 

3. GUI (Graphical User Interface): It is a user interface that allows users to interact with electronic devices through graphical icons and audio indicators.

Hard core science: 89 operating system core concepts that programmers must know

 

4. Kernel mode (kernel mode): Usually called supervisor mode (supervisor mode), in the kernel mode, the code being executed has complete and unrestricted access to the underlying hardware. It can execute any CPU instruction and reference any memory address. Kernel mode is usually reserved for the lowest level and most trusted features of the operating system. Crashes in kernel mode are catastrophic; they will stop the entire computer. Super user mode is the automatic mode selected when the computer is turned on.

5. User mode (user node): When the operating system runs user applications (such as processing text editors), the system is in user mode. When the application requests the help of the operating system or an interrupt or system call occurs, the transition from user mode to kernel mode occurs. In user mode, the mode bit is set to 1. When switching from user mode to kernel mode, it changes from 1 to 0.

6. Computer architecture: In computer engineering, computer architecture is a set of rules and methods that describe the functions, organization, and realization of a computer system. It mainly includes instruction set, memory management, I/O and bus structure

Hard core science: 89 operating system core concepts that programmers must know

 

7. SATA (Serial ATA): Serial ATA (Serial Advanced Technology Attachment), which is a computer bus responsible for data transmission between the motherboard and mass storage devices (such as hard disks and optical drives), mainly used in personal computers .

8. Multiplexing (multiplexing): Also called sharing, it mainly indicates the management of time and space in the operating system. When resources are reused, different programs or users take turns to use it. The first of them starts using the resource, then the other one, and so on.

9. Mainframes: Mainframes are a type of computer, usually known for their large size, storage capacity, processing power and high reliability. They are mainly used by large organizations for mission-critical applications that require large amounts of data processing.

Hard core science: 89 operating system core concepts that programmers must know

 

10. Batch processing (batch system): Users of batch processing operating systems do not directly interact with the computer. Each user prepares work on offline devices such as punch cards and submits it to the computer operator. In order to speed up the processing speed, the jobs with similar requirements are batched together and run in groups. The programmer leaves the program to the operator, who then processes the program with similar requirements in batches.

11. OS/360: OS/360, officially known as the IBM System/360 operating system, is a discontinued batch operating system developed by IBM for its new System/360 mainframe released in 1964.

12. Computer multitasking: refers to the ability of a computer to run multiple programs at the same time. The general method of multitasking is to run a piece of code of the first program and save the working environment; then run a piece of code of the second program to save the environment; ... restore the working environment of the first program and execute the next program A piece of code.

13. Time-sharing: In computing, time-sharing is a system that simultaneously shares computing resources among many users through multiple programs and multiple tasks

14. Compatible Time-Sharing System: The earliest time-sharing operating system, designed and implemented by the Computer Center of Massachusetts Institute of Technology.

15. Cloud computing: Cloud computing is the on-demand availability of computer system resources (especially data storage and computing capabilities), without the need for users to directly actively manage them. This term is commonly used to describe data centers that are available to many users on the Internet. The large clouds that dominate today usually have functions distributed from a central server to multiple locations. If the connection to the user is relatively close, it can be designated as an edge server.

Hard core science: 89 operating system core concepts that programmers must know

 

16. UNIX operating system: UNIX operating system is a powerful multi-user, multi-tasking operating system that supports multiple processor architectures. According to the classification of operating systems, it is a time-sharing operating system.

17. UNIX System V: is a branch of the UNIX operating system.

18. BSD (Berkeley Software Distribution): a derivative system of UNIX.

19. POSIX: Portable Operating System Interface. It is the general term for a series of interrelated standards defined by the IEEE for running software on various UNIX operating systems.

20. MINIX: Minix, is a mini version of UNIX-like operating system.

21. Linux: Finally, the famous Linux operating system is here. It's too powerful to explain it, everyone knows it.

Hard core science: 89 operating system core concepts that programmers must know

 

22. DOS (Disk Operating System): Disk operating system (abbreviated as DOS) is a computer operating system that can use disk storage devices (such as floppy disks, hard drives, or CDs).

23. MS-DOS (MicroSoft Disk Operating System): An operating system developed by Microsoft Corporation of the United States, running on Intel x86 personal computers. It is the most famous one in the DOS operating system family. Before Windows 95, DOS was the most basic equipment in IBM PCs and compatible computers, while MS-DOS was the most commonly used DOS operating system in personal computers.

Hard core science: 89 operating system core concepts that programmers must know

 

24. MacOS X, how can you lose the Apple operating system? macOS is a graphical user interface operating system launched by Apple, and is the main operating system of the Macintosh

Hard core science: 89 operating system core concepts that programmers must know

 

25. Windows NT (Windows New Technology): It is the core of a pure 32-bit operating system launched by Microsoft in 1993.

26. Service Pack (SP): A collection of program updates, repairs and/or enhancements, released in the form of an independent installation package. Many companies, such as Microsoft or Autodesk, usually release a service pack when the number of fixes for a program reaches a certain number.

27. Digital Rights Management (DRM): It is a tool or technical protection measure (TPM) is a set of access control technologies used to restrict the use of proprietary hardware and copyrighted works.

28. x86: x86 is a complete instruction set architecture, originally developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. Use memory segmentation as a solution to deal with more memory than ordinary 16-bit addresses can cover. 32-bit is the default number of x86 bits. In addition, there is also an x86-64 bit, which is a 64-bit extension of the x86 architecture and is backward compatible with 16-bit and 32-bit x86 architecture.

29. FreeBSD: FreeBSD is a UNIX-like operating system and the development result of the FreeBSD project.

30. X Window System: X Window System (X11, or X for short) is a window system for bitmap display, which is very common on UNIX-like operating systems.

Hard core science: 89 operating system core concepts that programmers must know

 

31. Gnome: GNOME is a desktop environment composed entirely of free software. Its target operating system is Linux, but most BSD systems also support GNOME.

Hard core science: 89 operating system core concepts that programmers must know

 

32. Network operating systems: Network operating systems are dedicated operating systems for network devices (such as routers, switches or firewalls).

Hard core science: 89 operating system core concepts that programmers must know

 

33. Distributed operating systems: Distributed operating systems are software on a collection of independent, network, communication and physically independent computing nodes. They handle jobs served by multiple CPUs. Each individual node has a part of the specific software of the global collective operating system.

Hard core science: 89 operating system core concepts that programmers must know

 

34. Program counter: The program counter is a register in the CPU used to indicate the position of the computer in its program sequence.

35. Stack register (stack pointer): Stack register is a register in the computer CPU, its purpose is to track the call stack.

36. Program Status Word: It is a collection of 8-byte (or 64-bit) long data maintained by the operating system. It tracks the current state of the system.

37. Pipeline: In the computing world, a pipeline is a set of data processing elements connected in series, and the output of one element is the input of the next element. The elements of the pipeline are usually executed in parallel or time-divided. Usually a certain amount of buffer storage is inserted between elements.

Hard core science: 89 operating system core concepts that programmers must know

 

38. Superscalar: Superscalar CPU architecture refers to a type of concurrent operation that implements instruction-level concurrency in a processor core. This technology can achieve higher CPU traffic under the same CPU frequency.

39. System call: Refers to a program running in the user space requesting a service that requires a higher authority to run from the operating system kernel. The system call provides the interface between the user program and the operating system. Most system interactive operations require running in kernel mode. Such as device IO operation or inter-process communication.

40. Multithreading (multithreading): refers to the technology of concurrent execution of multiple threads from software or hardware. A computer with multi-threading capability can execute multiple threads at the same time because of hardware support, thereby improving overall processing performance.

41. CPU core (core): It is the brain of the CPU. It receives instructions and performs calculations or operations to satisfy these instructions. A CPU can have multiple cores.

42. Graphics Processing Unit (Graphics Processing Unit): also known as display core, visual processor, display chip or graphics chip; it is a kind of specialized in personal computers, workstations, game consoles and some mobile devices (such as tablet computers, smart phones) Etc.) on a microprocessor that runs graphics operations.

Hard core science: 89 operating system core concepts that programmers must know

 

43. Storage architecture: The top-level storage has the highest speed, but the smallest capacity, and the cost is very high. The lower the hierarchy, the slower the access efficiency and the larger the capacity, but the cheaper the cost.

Hard core science: 89 operating system core concepts that programmers must know

 

44. Cache lines: In fact, the cache is divided into fixed-size blocks, whose size is based on the size of burst read or burst write cycles.

45. Cache hit: When an application or software requests data, a cache hit occurs first. First, the central processing unit (CPU) looks for data in its nearest memory location (usually the main cache). If the requested data is found in the cache, it is treated as a cache hit.

Hard core science: 89 operating system core concepts that programmers must know

 

46. ​​L1 cache: The first level cache is a built-in storage library in the CPU chip. The L1 cache is also called the main cache. It is the fastest memory in a computer and is closest to the processor.

47. L2 cache: L2 cache storage library, built into the CPU chip, packaged in the same module, or built on the motherboard. L2 cache is provided to L1 cache, which is provided to the processor. L2 memory is slower than L1 memory.

48. L3 cache: The three-level cache is built into the memory bank on the motherboard or in the CPU module. L3 cache provides data for L2 cache, and its memory is usually slower than L2 memory, but faster than main memory. The L3 cache is provided to the L2 cache, which in turn is provided to the L1 cache, which in turn is provided to the processor.

49. RAM ((Random Access Memory): Random access memory, also called main memory, is an internal memory that directly exchanges data with the CPU. It can be read and written at any time, and is fast, usually as an operating system or other running The temporary data storage medium of the program. RAM can write (store) or read (take out) information from any specified address at any time when it is working. The biggest difference between it and ROM is the volatility of data, that is, once the power is off The stored data will be lost. RAM is used in computers and digital systems to temporarily store programs, data and intermediate results.

50. ROM (Read Only Memory): Read-only memory is a type of semiconductor memory. Its characteristic is that once data is stored, it cannot be changed or deleted , and the content will not disappear because the power is turned off. In electronic or computer systems, it is usually used to store programs or data that do not need to be changed frequently.

51. EEPROM (Electrically Erasable PROM): Electrically erasable programmable read-only memory, a semiconductor storage device that can be rewritten multiple times electronically.

52. Flash memory (flash memory): It is a form of electronically erasable programmable read-only memory that allows memory to be erased or written multiple times during operation. This technology is mainly used for general data storage, as well as data exchange and transmission between computers and other digital products, such as memory cards and U disks.

53. SSD (Solid State Disks): Solid State Disks are computer storage devices that mainly use flash memory as permanent storage.

Hard core science: 89 operating system core concepts that programmers must know

 

54. Virtual address (virtual memory): Virtual memory is a mechanism for computer system memory management. It makes the application think that it has continuous available memory (a continuous and complete address space), but in fact, it is usually divided into multiple physical memory fragments, and some are temporarily stored on external disk storage, when needed Perform data exchange. Compared with systems that do not use virtual memory technology, systems that use this technology make it easier to write large programs, and use real physical memory (such as RAM) more efficiently.

55. MMU (Memory Management Unit): Memory management unit, sometimes called paging memory management unit. It is a kind of computer hardware responsible for processing memory access requests from a central processing unit (CPU). Its functions include the conversion of virtual addresses to physical addresses (ie virtual memory management), memory protection, and control of the central processing unit cache .

Hard core science: 89 operating system core concepts that programmers must know

 

56. Context switch: context switch, also known as environment switch. It is a mechanism for storing and rebuilding the CPU state. When you want to exchange processes on the CPU, you must first store the current process state, and then read the process state back to the CPU.

57. Device driver: A device driver, or driver for short, is a program that allows high-level computer software to interact with hardware. This program creates an interface between hardware and hardware, or hardware and software. , Through the bus or other communication subsystems on the motherboard to form a connection mechanism with the hardware, which makes it possible to exchange data on the hardware device.

Hard core science: 89 operating system core concepts that programmers must know

 

58. Busy waiting (busy waiting): In software engineering, busy waiting is also called spin. It is a condition that uses a process to repeatedly check whether a condition is true. This mechanism may be to check whether a keyboard input or a lock is available .

59. Interrupt (Interrupt): Generally, after receiving asynchronous signals from peripheral hardware (relative to the central processing unit and memory), or synchronous signals from software, the processor will perform the corresponding hardware/software processing. Sending out such a signal is called an interrupt request (interrupt request, IRQ). The hardware interrupt causes the processor to save the execution state through a context switch (mainly register information such as the program counter and program status word); the software interrupt is usually an instruction in the CPU instruction set in a programmable manner Directly instruct this kind of operating information switching and direct the processing to a section of interrupt processing code. Interrupts are particularly useful in computer multitasking, especially in real-time systems.

60. Interrupt vector: The interrupt vector is located in the interrupt vector table. The interrupt vector table (IVT) is a data structure that associates the interrupt handler list with the interrupt request list in the interrupt vector table. Each entry in the interrupt vector table (called an interrupt vector) is the address of the interrupt handler.

Hard core science: 89 operating system core concepts that programmers must know

 

61. DMA (Direct Memory Access): Direct memory access. Direct memory access is a memory access technology in computer science. It allows the internal hardware subsystems (computer peripherals) of certain computers to directly read and write system memory independently without the intervention of the central processing unit (CPU).

62. Bus (Bus): Bus (Bus) refers to a standardized way of exchanging data between computer components, that is, providing data transmission and control logic for each component in a universal way.

63. PCIe (Peripheral Component Interconnect Express): Officially referred to as PCIe, it is an important branch of the computer bus. It follows the existing PCI programming concepts and signal standards, and builds a higher-speed serial communication system standard.

64. DMI (Direct Media Interface): Direct Media Interface, an Intel dedicated bus, used for the connection between the South Bridge chip and the North Bridge chip on the computer motherboard.

65. USB (Universal Serial Bus): It is a serial bus standard that connects computer systems and external devices, and it is also a technical specification for input and output interfaces. It is widely used in information communication products such as personal computers and mobile devices, and expanded To photographic equipment, digital TV (set-top box), game consoles and other related fields.

Hard core science: 89 operating system core concepts that programmers must know

 

66. BIOS (Basic Input Output System): It is the firmware that runs hardware initialization during the power-on boot phase and provides runtime services for the operating system. It is the first software that runs at boot time.

Hard core science: 89 operating system core concepts that programmers must know

 

67. Hard real-time system (hard real-time system): Hard real-time means that you must absolutely complete tasks before each deadline. Few systems have this requirement. For example, nuclear systems, some medical applications (such as pacemakers), a large number of defense applications, avionics, etc.

68. Soft real-time system: The soft real-time system may miss certain deadlines, but if it misses too many, its performance will eventually decrease. A good example is the sound system in a computer.

69. Process: The program itself is only a description of instructions, data and its organization, and the process is the real running instance of the program (those instructions and data). If the process may be related to the same program, and each process can run independently in a synchronous (sequential) or asynchronous manner.

70. Address space: Address space is the effective address range available for programs or processes in memory. In other words, it is the memory that the program or process can access. The memory can be physical or virtual, and is used to execute instructions and store data.

71. Process table (process table): The process table is a data structure maintained by the operating system. Each entry in the table (usually called a context block) contains information about the process, such as process name and status, priority, and register And the semaphore it may be waiting for.

72. Command-line interpreter: It was the most widely used user interface before the graphical user interface was popularized. It usually does not support the mouse. The user inputs instructions through the keyboard and the computer executes the instructions after receiving the instructions.

Hard core science: 89 operating system core concepts that programmers must know

 

73. Interprocess communication (interprocess communication): Refers to some techniques or methods for transferring data or signals between at least two processes or threads.

74. Superuser (superuser): also known as an administrator account, refers to a special user used for system management in the field of computer operating systems, and its actual name in the system varies from system to system, such as root, administrator With supervisor.

75. Directory: In a computer or related equipment, a directory or folder is a virtual container equipped with a digital file system. A group of files and other directories are stored in it.

76. Path (path name): A path is a general expression of the name of a computer file or directory, which points to a unique location on the file system.

77. Root directory: The root directory refers to the top-level directory in the computer system, such as C drive and D drive in Windows, and / in Linux.

78. Working directory: It is a computer term. The directory where the user is located in the operating system. The user can access files under this directory with relative file names.

79. File descriptor: File descriptor is a term in computer science, an abstract concept used to express references to files.

80. inode: the abbreviation of index node, the index node is the information contained in the UNIX system, which contains detailed information about each file, such as node, owner, file, file location, etc.

81. Shared library (shared library): A shared library is a file containing object code. During execution, multiple a.out files may use the object code at the same time.

82. DLLs (Dynamic-Link Libraries): Dynamic-Link Libraries, which are a way for Microsoft to implement the concept of shared function libraries in the operating system. The extensions of these library functions are .DLL, .OCX (library containing ActiveX control) or .DRV (old system driver).

83. Clients: Clients are computer hardware or software that access the services provided by the server.

84. Servers: In computing, servers are computer programs or devices that provide functions for other programs or devices, called servers

85. Client-server architecture: The client-server architecture is also called the client/server architecture and the C/S architecture. It is a network architecture that distinguishes the client from the server. Each instance of the client software can make a request to a server or application server. There are many different types of servers, such as file servers, game servers, etc.

Hard core science: 89 operating system core concepts that programmers must know

 

86. Virtual Machines (Virtual Machines): In the architecture of computer science, it refers to a special kind of software that can create an environment between the computer platform and the end user, and the end user is based on the virtual machine software The environment created to operate other software.

Hard core science: 89 operating system core concepts that programmers must know

 

87. Java virtual machines (Java virtual Machines): Java virtual machines have their own complete hardware architecture, such as processors, stacks, registers, etc., as well as corresponding instruction systems. JVM shields information related to specific operating system platforms, so that Java programs can run on multiple platforms without modification only by generating object code (bytecode) that runs on the Java virtual machine.

88. Object file: An object file is a file containing object code, which means machine code in a relocatable format that cannot be directly executed. There are multiple formats of object files, and the same object code can be packaged in different object files. Object files can also work like shared libraries.

89. C preprocessor: C preprocessor is a preprocessor for C language and C++ language. It is used to pre-scan the source code before the compiler processes the program to complete operations such as header file inclusion, macro expansion, conditional compilation, and line control.

Guess you like

Origin blog.csdn.net/yelvgou9995/article/details/108603662