我从不了解系统编程的含义。给出的通常定义是“ ...执行接近Os的操作或扩展Os的功能...”。
是否直接使用Windows API而不是使用某些库来说明文件I / O是否使其成为系统程序?正在编写Android OS系统编程吗?如果我写了一些东西会通过类似Android上的app之类的控制台公开linux内核,我是否在进行系统编程?如果我正在编写控制洗衣机的软件,是否正在编写系统程序?
我是编程的初学者,这使我无休止。请解释与“应用程序编程”的对比。
我从不了解系统编程的含义。给出的通常定义是“ ...执行接近Os的操作或扩展Os的功能...”。
是否直接使用Windows API而不是使用某些库来说明文件I / O是否使其成为系统程序?正在编写Android OS系统编程吗?如果我写了一些东西会通过类似Android上的app之类的控制台公开linux内核,我是否在进行系统编程?如果我正在编写控制洗衣机的软件,是否正在编写系统程序?
我是编程的初学者,这使我无休止。请解释与“应用程序编程”的对比。
Answers:
系统编程(或系统编程)是对系统软件进行编程的活动。与应用程序编程相比,系统编程的主要区别在于,应用程序编程旨在产生向用户提供服务的软件(例如文字处理器),而系统编程旨在产生向计算机硬件提供服务的软件(例如磁盘碎片整理程序) )。它需要更高程度的硬件意识。
您可以问自己几个问题,以便在决定该问题时有所作为。
troff
尽管TeX和TeX 几乎位于人们通常使用的工具链的底部,但它们几乎没有任何变化就可以移植到几乎任何系统,因此它们是应用程序。TeX将其输出写入到的文件系统(例如UFS或VFAT)处于临界状态。如果文件系统非常出色,则可以将其移植到其他操作系统上,但是通常人们只是接管了很棒的想法,并为自己的OS编写了自己的文件系统。那就是文件系统软件。对于您的问题,编写Android OS绝对是系统编程。编写使用Windows API调用的程序就是应用程序编程。它不像使用跨平台库(例如SDL或OpenGL)那样具有可移植性,但原则上可以移植,它是第三方代码,并且在用户空间中运行。公开Linux内核状态的控制台应用程序是一个有趣的思想实验。我肯定会说它涉及系统编程,因为您必须了解很多有关Linux的结构(请注意,“ Linux”仅是内核,而不是发行版)才能编写,甚至可能要使用它!