Questions tagged «unix»

Unix是最初在1969年开发的多任务,多用户计算机操作系统。

10
Ken Thompson的编译器黑客仍然是威胁吗?
肯·汤普森·哈克(1984) 肯·汤普森(Ken Thompson)于1984年概述了一种破坏编译器二进制文件(和其他已编译软件,例如* nix系统上的登录脚本)的方法。我很想知道现代编译是否解决了此安全漏洞。 简短的介绍: 重新编写编译器代码以包含2个缺陷: 在编译自己的二进制文件时,编译器必须编译这些缺陷 在编译其他一些预选的代码(登录功能)时,它必须编译一些任意的后门 因此,编译器可以正常工作-编译登录脚本或类似文件时,可以创建安全后门,并且将来在编译自身的较新版本时,它仍保留以前的缺陷- 并且这些缺陷仅存在于编译器中二进制文件,因此很难检测。 问题: 我在网上找不到任何答案: 这与即时编译有什么关系? 运行诸如* nix系统上的登录名的程序之类的功能在运行时是否已编译? 这仍然是一个有效的威胁吗?或者自1984年以来在编译安全性方面的发展阻止了它成为一个重大问题? 这会影响所有语言吗? 我为什么想知道? 我在做作业时遇到了这个问题,这看起来很有趣,但是我缺乏具体了解这个问题是解决当前问题还是解决问题的背景。 参考资料 总览 一些代码
156 linux  unix  compiler  hacking 

4
Unix管道的确切知识是什么
我听说过道格拉斯·麦克罗伊(Douglas Mcllroy)如何提出这个概念以及肯·汤普森(Ken Thompson)如何在一夜之间实现这个故事。 据我了解,管道是一个系统调用,它在两个进程之间共享一块内存,一个进程在其中写入数据,其他进程从中读取数据。 作为不熟悉OS内部或概念的人,我想知道故事中的“天才”到底是什么?这是两个进程共享内存的想法吗?还是执行?或两者? PS:我知道管道的用途或如何在外壳中使用它。问题是关于|

5
从C内部调用shell命令是一个好主意吗?
udevadm info -q path -n /dev/ttyUSB2我想从C程序中调用一个unix shell命令()。经过大约一周的努力,我可以自己重新实施它,但是我不想这样做。 我打电话popen("my_command", "r");还是被广泛接受的优良作法,还是会引入不可接受的安全性问题并转发兼容性问题?做这样的事情对我来说是错误的,但是我不能指责为什么会不好。
50 c  unix  shell 

5
UNIX哲学中的编程是否与函数式编程相同?
UNIX编程环境(经典文本)指出,UNIX编程方法是构建小型的,定义明确的工具,可以将其组合起来以解决更复杂的问题。在学习C和Bash shell时,我发现这是一个功能强大的概念,可用于处理各种编程问题。 仅使用Linux平台,这个概念就很清楚并且一直使用。在命令行上形成的用于重定向I / O,链接系统工具(如ls,grep等)的任何表达式都表明了此概念的强大之处。 让我感到困惑的是,其中许多程序都是使用命令性/过程式编程风格以C语言编写的,但是在命令行上使用它们并将它们结合在一起的方式对我来说更像是函数式编程,其中每个程序都是一个独立的函数,不依赖于它可能加入的任何其他程序的状态。 理解UNIX编程原理是否准确,基本上就是使用可能是用命令式编程风格构建的工具进行的函数式编程吗?

7
是否有Windows编程哲学?[关闭]
我一直在Unix和Windows环境中进行编程。通常,我在Unix上工作,在那里我学习了Unix Philosophy,可以概括为: 编写可以做一件事并且做得很好的程序。 编写程序以协同工作。 编写程序来处理文本流,因为这是一个通用接口。 Unix和Windows世界之间的编程文化似乎存在明显差异,例如: GUI与CLI 注册表与配置文件 很多专门针对任何给定需求的工具与可以组合在一起的一组通用正交工具 Windows世界中是否有等同于“ Unix哲学”的东西?哪些Unix程序员可以从Windows中学到什么,或者在转向Windows编程时应该注意什么? 我希望答案集中在Windows编程的最佳实践上(而不是Windows和Unix之间的斗争)。

8
Unix和Linux在设计和其他方面有什么基本区别?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 7年前关闭。 我一直在读这句话: Linux是类Unix系统,但不是Unix。 我不知道两者之间的真正区别是什么。我知道Linux从Unix得到了很多想法,并且两者的许可证是不同的。除此之外,由于我都不是其中之一,因此我想知道它们在设计或其他重要方面是否存在基本差异。

3
Unix套接字的简单说明
我可以搜索,并且已经看过Wikipedia条目和其他地方,但是即使我有一定的编程经验,我还是不太了解这个概念。您能把我当作10岁的孩子,并给我一个关于套接字通讯的清晰解释吗?
20 unix  sockets 

12
面试某人的一般Unix技能[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 您将如何测试声称拥有* nix shell经验的开发人员(为清楚起见,我们不想测试某人是否可以在* nix上进行开发,仅测试他们是否了解命令行方式)。 我当时正在考虑让它们解决从日志文件中获取信息的问题,这将涉及cat,grep,cut,...等一些基础知识,再加上管道。 您还要求什么其他基础知识?再一次,这不是采访将要针对* nix系统开发的人,也不是针对* nix系统管理员的面试,而是针对经常需要在* nix系统上做一些工作的普通开发人员。
20 interview  linux  unix  shell 

3
为什么这样叫“ kill”命令?
为什么决定将kill命令称为“ kill”? 我的意思是,是的,该实用程序通常用于终止进程,但实际上可以用于发送任何信号。 有点混乱吗?也许有一些历史原因。 我所知道的man kill是该命令出现在版本3 AT&T UNIX中。

4
命令行选项样式-POSIX还是什么?
在某处,我看到有人反对使用Java和Javac混合使用Windows和Unix风格, java -classpath ... -ea ... Something 恕我直言,这是没有关系的,就像find作品一样,不是吗?AFAIK,根据POSIX,语法应类似于 java --classpath ... --ea ... Something 并-abcdef意味着一次指定6个简短选项。我不知道哪个版本通常导致更少的键入和更少的错误。 我正在用Java编写一个小型实用程序,在任何情况下都不会使用Windows风格,/a /b因为我主要对Unix感兴趣。我应该选择哪种风格?

3
Linux文件名中的小写字母
当我发现UpperCase对于复杂的长名称中的首字母单词分隔确实可读时,我倾向于使用一些UpperCase来提供一些Linux文件名。通常是可执行文件,也有一些目录。 但是已经有几个星期我说过,Linux distrib中所有文件名的绝大多数都是小写的... 因此,我刚才进行了一次谷歌搜索,然后发现了这篇文章:Linux File Names,指出在Unix世界中应该始终使用小写字母, ...最好在Linux中始终使用小写字母,除非您有充分的理由使用大写字母或混合大小写。大多数Unix用户几乎都使用小写字母,但是除了这种“文化”观点之外,还有另一个充分理由使用小写字母。如果要与Linux共享或访问DOS文件系统,则DOS将无法查看具有大写或大小写混合的文件名的文件... 真的是这样吗?

2
为什么将Oracle目录命名为/ u01 / u02等?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 4年前关闭。 我使用Oracle RDBMS已经有几年了,今天,第n次安装了Oracle RDBMS之后,我不禁要问,为什么要在/ u01,/ u02等中安装它? 当然,您可以将其安装在其他位置,但是由于某种未知的原因,此约定在所有地方都使用,并且在/ opt中,我还没有看到过任何认真的Oracle安装信息。 我错过了任何历史课吗?
11 oracle  unix 
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.