Getting Started and Basic Concepts

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
If you are in the IT software industry, the importance of programming is self-evident. Today I officially started my system programming journey.

Classification of software:
System software: interacts with the kernel and the core library.
Application Software: Software that provides applications.
System software: such as shell, text editor, compiler, debugger, daemon, network service, WEB service, database, etc. are all categories of system software.
Application software: I can't say enough. It is omitted here.

What are the similarities and differences between system programming and application programming?
System Programming: Programmers must be very familiar and in-depth with operating systems and hardware. Interact with the kernel and core libraries.
Application programming: In addition to the features of system programming, interact with higher-level libraries. These libraries encapsulate the details
of .

So what are the benefits of encapsulating these libraries?
1: Increase program portability
2: Enhance compatibility
3: Build a higher and stronger toolbox


System programming has three cornerstones: system calls, C libraries, and C compilers.
1: System programming starts with system calls and ends with system calls. A system call is to request services and resources from the OS, and it is a function call initiated from the user space such as VI, games, etc. to the kernel. Like READ(), WRITE() etc.
2: C library, glibc is the bottom C runtime library of linux, which encapsulates the system services of linux.
3: C compiler, gcc

At the system level, two separate sets of definitions and descriptions affect portability. API application programming interface and ABI application binary interface. Both are used to define interfaces between different modules of computer software.
API: Defines the interface for interaction between two software modules at the source code level.
ABI: defines a binary interface between two software modules on a specific architecture. Defines how the application internals and the application interacts with the kernel and core libraries.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326569763&siteId=291194637