入门和基本概念

<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
若从事IT软件行业,那编程的重要性就不言而喻了。今天正式开启我的系统编程之旅。

软件的分类:
系统软件:是与内核与核心库进行交互。
应用软件:提供应用的软件。
系统软件:如shell,文本编辑器,编译器,调试器,守护进程,网络服务,WEB服务,数据库等都是系统软件的范畴。
应用软件:说不完。此处省略。

那系统编程与应用编程有哪些共性和区别呢?
系统编程:程序员必须非常熟悉和深入了解操作系统和硬件。与内核和核心库进行交互。
应用编程:除了有系统编程的特性外,还要与更高层的库进行交互。这些库是把操作系统和硬
件的细节封装起来了。

那封装这些库的好处是什么呢?
1:增加程序的可移植性
2:增强兼容性
3:构建更高更强的工具箱


系统编程有三大基石:系统调用,C库,C编译器。
1:系统编程始于系统调用,终于系统调用。系统调用就是向OS请求服务和资源,是从用户空间如VI,游戏等向内核发起的函数调用。如READ(),WRITE()等。
2:C库,glibc是linux最底层的C运行库,封装了linux的系统服务。
3:C编译器,gcc

系统层上,两组独立的影响可移植性的定义和描述。API应用程序编程接口和ABI应用程序二进制接口。都用来定义计算机软件的不同模块间的接口。
API:定义了两个软件模块之间在源代码层交互的接口。
ABI:定义了两个软件模块在特定体系结构上二进制接口。定义应用内部及应用与内核与核心库如何交互。

猜你喜欢

转载自wangqinghan.iteye.com/blog/2306288