我在别处评论说,第一版 Unix 的源代码是从磁带中恢复的。回应令人惊讶,并要求提供更多信息。
人们做了什么?谁干的?什么时候?如何?
我目前正在参加一门教授 UNIX 基础知识的课程,例如常用命令等。在对 UNIX 进行了一些挖掘之后,我遇到了关于谁拥有 UNIX 的法律斗争和 UNIX 战争的陷阱。我做了一些研究,但来源有点过时(大约 2003 - 2004 年)并且就谁拥有它而言有相互矛盾的信息。
以下是我找到的几个来源:
https://www.zdnet.com/article/who-really-owns-unix/ - 声明 Open Group 拥有它
https://www.informit.com/articles/article.aspx?p=175171&seqNum=2 - 声明 SCO 拥有它
阅读这些资料后,听起来 Open Group 声称拥有 UNIX 商标,而 SCO 声称拥有 UNIX 源代码。我理解正确吗?
我刚刚在Unix Programming Environment,Kernighan 和 Pike 关于 Unix 的经典书籍中遇到了以下问题(我在 1984 年版第 79 页,ISBN:0-13-937699-2 中找到了以下文字):
练习 3-6。(技巧问题)如何将 / 放入文件名(即,不分隔路径组成部分的 /?
作为最终用户和程序员,我多年来一直在使用 Linux,但我无法回答这个问题。有没有办法把斜线的文件名,这是绝对内核禁止。您可以通过块设备访问修补文件系统,或使用 Unicode 中外观相似的字符,但这些都不是解决方案。
我明白,Linux ?Unix,但同样的原则应该适用,因为系统必须能够明确地从路径中提取目录层次结构。
有人知道,Kernighan 和 Pike 在问这个问题时到底在想什么吗?假设的答案是什么?“套路”究竟是什么?或者也许原始的 Unix 系统只是允许以某种方式逃避这个斜线?
更新:
我就这个问题联系了 Brian Kernighan,他是这样回答的:
答案是(或曾经)“你不能。”
因此,蒂莫西·马丁是对的,得到了绿色的勾号。
澄清一下,这不是关于插入符号 (^) 或美元符号 ($) 在正则表达式中的作用的问题。
在具有 QWERTY 布局的现代键盘中,^出现在后面$(即^出现在数字 6$上方和4 上方),所以当我使用它们时,我总是有一段时间的手眼不协调,比如^foobar$.
所以我很好奇,为什么从历史上看,为什么选择插入符号和美元符号来匹配行的开头/结尾,因为如果将它们颠倒过来会更直观。
也许他们当时有不同的键盘布局?显然,在 vi 中选择 ESC 来改变模式的原因是它对 Bill Joy 的键盘有意义:为什么 vim 使用 hjkl 键作为箭头键。
嗯,我从 80 年代末开始接触计算机(实际上我就像 3 岁)。走了一里路:Atari Xl-XE、MS-DOS、Windows 3.1、95 等。然后因为外观而开始使用 Linux(是的,我知道,Compiz-Fusion是探索 Linux 的真正原因),现在安装在我所有的机器。我什至在 Windows 10 中有它。
我以前从头开始组装机器,你总是可以启动到“MS-DOS”,这就是我记得的,这让我感到奇怪。
Unix 是如何在 80 年代或 70 年代后期安装的(我什至还没有活着)?是否像启动大软盘或涉及黑魔法一样微不足道?
碰巧我找不到任何对它的引用,而我国家的人就是没有得到自由软件的东西。
编辑:
我跳过了一个关键部分,我觉得自己很愚蠢,因为我一开始没有考虑到这一点。
一切都从启动顺序开始,它不是操作系统,而是在 ROM 内存中,例如 BIOS(在我看来是用于机器配置的非常简约的操作系统)和其他东西,例如启动顺序。在这个阶段,它将查找 BIOS 中列出的设备,然后按顺序迭代它们,直到一个设备响应引导指令,就像磁带中的那些。所以不需要初始操作系统,可以安装 Unix。
愚蠢的错误,带你走很长的路,但你肯定会学到更多。
我已经使用 Linux 和 Unix 很长时间了。我第一次学习Unix是在一个有很多学生的电脑教室里,老师告诉我们可以用ssh它登录我就读的大学提供的远程工作站。
在这种情况下,我立即知道 Unix 是一个多用户操作系统,因为学生多于工作站。(鸽巢原理。)
不知何故,经过多年的使用,我基本上知道umask(默认为 002)是什么,并且用户(和新用户)的默认权限是755文件夹、644文件。
但是仔细想想,在这样的多用户操作系统中,默认权限设置似乎是不安全的。虽然它使共享数据更容易,但当您可以轻松地在他们的主目录中列出和复制其他用户的文件时,我仍然感到奇怪。
那么为什么在许多 Unix 系统中默认 umask 002 呢?传统Unix选择这种设计有什么历史原因吗?
(我能想到的一个可能的原因是,1970~1980年计算机主要用于科学研究,计算能力非常有限。所以当Unix早期版本出来时,他们决定默认权限应该是为了方便共享而不是隐私保护。)
编辑:实际上,它不是别名(见答案)
众所周知,在 shell 中,点命令 ( .) 是源命令的别名。
但我想知道这样一个奇怪的别名背后是否有原因?显然,我不经常使用它,所以我需要这么短的别名。
那么,为什么是一个点呢?为什么 forsource而不是更常用的命令,例如cd或ls?为什么甚至是别名?这背后有什么好的理由吗?还是有历史原因?
注意:我最初在 Server Fault 上发布了这个问题,但有人建议我将其发布在这里。