Unix编程到底是什么意思?[关闭]


10

我以为我了解Unix编程一词的含义,但是现在,在内核/ C编程上下文中阅读它之后,我觉得需要澄清该术语的含义。

我不清楚这是否意味着:

  1. Shell编程
  2. Unix编程工具,
  3. Unix命令行工具的特定编程方式/模式(例如,与“ Unix shell编程”的管道方式一致),或者
  4. 其他的东西。

2
您必须提供一些上下文。你在哪里读到这个表达?出于上下文,我想说这意味着要为Unix OS进行编程。
lgeorget 2014年

6
这个问题似乎与主题无关,因为它是关于基本英语的。
吉尔斯(Gillles)“所以-别再邪恶了”

1
@Gilles哦,所以现在这是一个分隔符:P
goldilocks 2014年

@Igeorget,陶波。
佩里耶

@goldilocks,是什么意思?
佩里耶

Answers:


14

“ Unix编程”是指为Unix环境显式编程。这将包括对符合相关标准(例如POSIX)的shell进行编程。但是,在假定这些特定于* nix世界的情况下,它还将包括使用任何语言进行编程,同时明确使用类似标准化的系统接口和资源。

例如,没有C或C ++第三方库的网络编程就不能移植,因为没有一个标准对此有任何说明。C / C ++中的网络是使用操作系统指定的接口实现的,在* nix-ish系统上,这或多或少是通用的,您不能将未更改的代码移植到(例如)Windows,反之亦然。因此,用C或C ++进行网络工作意味着使用可移植的库或以平台为目标,而Unix在后一种情况下是一种可能,因此,这就是“ unix编程”(以及C或C ++编程和网络编程)。1个

但是,可以使用许多高级语言(例如perl或python或java )进行网络编程。这些语言通常使用C语言实现,但是实现细节因平台而异,但接口却没有。因此,您可以在应运行perl的任何系统上运行的perl中编写网络代码。在Unix系统上,这是由解释器实现转换为适当的本机调用的,而在Windows系统上,它将以不同的方式进行转换。由于您的实际perl代码不是特定于perl的,因此不是unix编程。它是网络编程和perl编程,但不是unix编程。


1.由于C和Unix之间有着密切的历史联系,事实是C一直是最普遍用于编写操作系统的语言,并且“操作系统”的性质决定了该类别中的许多内容。特定于OS的C编程” –除网络连接外的另一个日常示例是面向文件系统的内容,例如状态文件和读取目录。因此,由于C语言的基本编程不可避免地涉及许多特定于OS的元素,因此到处都有各种各样的“ Unix C语言编程”类型的书。诸如perl或java之类的可移植语言则不是这种情况。在这种情况下,本书的主题可能是“ Perl中的系统编程”,或更可能是普通的“使用Perl编程”。


1
金发姑娘再次罢工!
mikeserv 2014年

@goldilocks,既然linux已经杀死了Unix,那么您是说现在几乎没有人在进行“ Unix编程”吗?
佩里耶

1
Solaris和BSD得到了广泛的使用(即使普通的PC消费者也不知道它们是什么),并且从技术上讲,OSX已被正式批准为UNIX兼容(看起来名称已切换回“ macOS”,所以我必须与你的前提不同意。
金发姑娘
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.