编程的本质是什么?

2025-12-06 15:27:56
推荐回答(1个)
回答1:

  过去的Unix编程是没有系统不系统之分的。即便是开发 X Window也是在系统级(system-level)编程,看到系统的所有API。现代的操作系统编程有所谓[系统级编程],使用与[应用编程]不同的API(System programming API) 。
  从编程的形式和耗费心力上,系统编程与应用编程没有本质区别,这也意味着一个经验丰富的应用程序员转向系统编程难度不大。系统编程与应用编程的不同在于:
  第一,系统编程更接近硬件;系统程序员必须熟悉硬件环境和操作系统环境;相对的,应用程序员更多是熟悉应用的环境;第二,系统编程使用的函数库和库函数调用方法与应用编程有一些不同。比如,在调用系统调用(syscall)时使用所谓的陷入方式,也就是软中断方式。
  二,系统级接口(system-level interface)到底是什么?又如何编写Linux的系统级应用?内核和C库具体提供了什么给我们?如何编写优质代码?Linux又有什么已知的陷阱?Linux的系统调用是如何实现的?What neat system calls are provided in Linux compared to other Unix variants? How does it all work? Those questions are at the center of this book.
   三,系统调用]就是用户空间与内核之间的函数接口,目的是为了给用户空间的程序请求内核服务和资源。与其它很多操作系统相比,Linux实现的系统调用少很多。比如,Linux为I386体系实现了300个左右的系统调用,而 Microsoft Windows据说实现数以千计的系统调用。Linux内核的不同平台实现在系统调用上存在差异,不过90%的系统调用是相同的。