Questions tagged «history»

Unix系统及其主要组件的历史。请不要将此标签用于与外壳相关的问题;使用“命令历史记录”代替。

1
为什么将抑扬/插入符号用作Ctrl的符号?
我很早以前就开始使用Linux控制台,但是我从来没有问过自己关于抑扬号(^。)的字符()的问题。我想问一下为什么用它代替了这个词Ctrl。 前几天,我在使用nano的时候就想到了这一点,我还搜索了互联网上是否有答案,但发现的只是关于“它是什么”和“它代表什么”的问题。 有历史原因吗?还是来自某种奇怪的约定?

2
谁负责Linux内核?
到今天为止,有许多Linux发行版,如Ubuntu,Fedora,Gentoo,Mint,Debian等。这些发行版以不同的周期更新。Ubuntu似乎每周或每月更新一次内核,而Debian不愿更新内核。 我想知道这些发行版是否维护自己的内核。还是他们只是从Linus Torvalds获得原始内核代码,根据需要对其进行了一些修改,然后使用其软件包管理系统发布了经过修订的内核? 所有发行版都使用Linus Torvalds的相同内核吗?如果是这样,为什么不同的发行版在不同的周期更新/发布它们的内核?


1
为什么允许“谁mil”不产生任何输出?
在2016年版的IEEE Std 1003.1-2008(又名Open Group基本规范第7期,或仅是POSIX标准)中,该who实用程序的“基本原理”部分提到以下内容: 一个实现对于调用who mil不产生任何输出是可以接受的。 谁或什么是“密尔”?为什么实现不允许产生任何输出who mil?
16 history  posix  who 

3
“操作者”用户的意义是什么?
许多un * x系统附带一个名为“ operator”的用户帐户。该帐户的目的是什么? 某些系统实际上是在使用此帐户,还是更多的历史遗产?您曾经在组织中使用过此帐户吗? “操作员”帐户通常会将主目录设置为/root或/。为什么是这样? Linux: Login: operator Name: operator Directory: /root Shell: /sbin/nologin 或FreeBSD: Login: operator Name: System Operator Directory: / Shell: /usr/sbin/nologin 在FreeBSD上,某些文件实际上由用户'operator'拥有: # find / -user operator -exec ls -ld {} \; drwx------ 2 operator operator 512 Apr 20 17:11 /var/db/entropy 由于几乎所有的google结果都与shell或代码运算符有关,因此这个问题很难用google 搜索。



1
如何确定这些Linux TCP默认设置?
最近,我花了相当多的时间来查找生产中的问题,其中poll()连接的客户端的数据库服务器消失将导致最多2个小时的挂起(长时间等待libpq客户端库中的调用)。深入研究问题,我意识到应该调低这些内核参数,以便及时发现断开的TCP连接: net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_retries2 = 15 上面的四个值来自Ubuntu 12.04计算机,看起来这些默认值与当前的Linux内核默认值保持不变。 这些设置似乎严重偏向于保持现有连接的打开状态,并且对于keepalive探针极为ing。AIUI,默认tcp_keepalive_time值为2小时,这意味着当我们等待远程主机的响应时,我们将耐心等待2小时,然后再发起一次keepalive探测以验证我们的连接仍然有效。然后,如果远程主机不响应keepalive探测,则我们将对这些keepalive探测重试9次(tcp_keepalive_probes),相隔75秒(tcp_keepalive_intvl),因此,在我们确定连接真正失效之前,还需要再花11分钟。 这与我在该字段中看到的内容相符:例如,如果我启动一个psql连接到远程PostgreSQL实例的会话,并且有一些查询等待响应,例如 SELECT pg_sleep(30); 然后使远程服务器严重死亡(例如,丢弃该机器的流量),我发现我的psql会话等待长达2个小时11分钟才能发现连接已死。您可能会想到,这些默认设置会对我们在数据库故障转移事件期间与数据库交谈的代码造成严重问题。调低这些旋钮很有帮助!而且我发现我并不孤单地建议调整这些默认值。 所以我的问题是: 这样的默认设置多长时间了? 使这些TCP设置成为默认设置的最初理由是什么? 有任何Linux发行版会更改这些默认值吗? 对于这些设置的任何其他历史或观点,将不胜感激。
13 linux  tcp  history 

2
可能看到死程序吗?
在中man ps,它明确指出了进程在Linux上可能具有的不同状态。 D Uninterruptible sleep (usually IO) R Running or runnable (on run queue) S Interruptible sleep (waiting for an event to complete) T Stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead (should never be …

1
Linux内核25年的开发是否可以通俗易懂地加以限定或抽象?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 Linux内核已有25年的历史了。如果我不得不提出自1991年(成立之日)以来Linux内核的发展历史的简短版本,而直到1994年直到现在,尤其是1994年以来(1.0.0)的简短版本,我都做不到。在阅读每个内核发行说明之前,我所能做的最好的就是提供以下内容,这些内容是在3.11版之前添加到内核的常规发行功能(省略说明和链接): Linux内核的1.0版于1994年3月14日发布。此Linux内核发行版仅支持基于单处理器,基于i386的计算机系统。可移植性成为一个问题,因此 1.2版(1995年3月7日发布)获得了对使用基于Alpha,SPARC和MIPS架构的处理器的计算机系统的支持。 2.0版于1996年6月9日发布。该系列共有41个版本。2.0的主要功能是SMP支持(即在单个系统中支持多个处理器)以及对更多类型的处理器的支持。 2.2版(1999年1月26日发布)删除了全局自旋锁,并提供了改进的SMP支持,并增加了对m68k和PowerPC架构以及新文件系统的支持(包括对Microsoft NTFS的只读支持)。 2001年1月4日发布的2.4.0版包含对ISA即插即用,USB和PC卡的支持。它还包括对惠普公司PA-RISC处理器的支持。2.4.x的开发发生了一些变化,在整个系列的整个过程中提供了更多功能,包括:支持蓝牙,逻辑卷管理器(LVM)版本1,RAID支持,InterMezzo和ext3文件系统。 版本2.6.0于2003年12月18日发布。针对2.6.x的开发进一步朝着在整个系列中包含新功能的方向发展。在2.6系列中所做的更改包括:将µClinux集成到主线内核源中,PAE支持,对几行新CPU的支持,将ALSA集成到主线内核源中,最多支持2 32个用户( (从2 16开始),最多支持2 29个进程ID(仅64位,32位Arch仍限制为2 15)),大大增加了设备类型的数量和每种类型的设备的数量,改进了64位支持,支持文件系统,支持文件大小最大为16 TB,内核抢占,支持本机POSIX线程库(NPTL),将用户模式Linux集成到主线内核源中,将SELinux集成到主线内核源中,InfiniBand支持等等。同样值得注意的是,在整个2.6.x版本中增加了几个文件系统:FUSE,JFS,XFS,ext4等。有关2.6内核系列历史记录的详细信息,可以在kernel.org 2.6内核系列源代码发布区域的ChangeLog文件中找到。 3.0版于2011年7月22日发布。Torvalds宣布最大的变化是“什么都没有,绝对没有。” 2011年5月30日,Torvalds宣布:“ ...确保我们真正发布下一个发行版,不仅是一个全新的闪亮数字,而且是一个好的内核。” 经过预期的6-7周的开发过程后,它将在Linux 20周年纪念日附近发布。 在2012年12月,Torvalds决定通过取消对i386处理器的支持来降低内核的复杂性,从而使3.7内核系列 成为仍支持原始处理器的最后一个。同一系列统一支持ARM处理器。 2013年9月2日发布的3.11版增加了许多新功能,例如用于open(2)的新O_TMPFILE标志,以减少临时文件漏洞,实验性AMD Radeon动态电源管理,低延迟网络轮询和zswap(压缩交换缓存)。 我还可以补充一点,Linux基金会多年来一直在报告内核开发。以下是2012-2013年内核开发亮点: 来自3,738个代表536家公司(我们知道)的个人开发人员已合并了将近92,000个变更集。 大量重要的新功能已合并到主线中。其中包括完整的无滴答操作,用户命名空间,用于ARM的KVM和Xen虚拟化,调度程序中的每个实体负载跟踪,用户空间检查点/重新启动,64位ARM体系结构支持,面向F2FS闪存的文件系统,旨在改善许多联网性能的网络在延迟和缓冲区膨胀问题上,两个独立的子系统为块存储设备提供了快速缓存,等等。 关于Android特定内核功能的长期争论已完全消失在后台。备受关注的“唤醒锁”功能已被最新的Android设备中使用的另一种主线解决方案悄然取代。 在此期间,使用自动化工具查找开发内核中的错误的使用显着增加。诸如“三位一体”模糊测试仪和零日构建和启动系统之类的工具正在预发行内核中发现大量错误,从而缩短了开发周期并使社区能够提供更高质量的发行版。 来自移动和嵌入式行业的贡献继续增加。例如,Linaro,Samsung和TI共同贡献了本白皮书先前版本的4.4%的更改;在截至3.10的时期内,他们贡献了几乎所有变化的11%。 核心项目首次参加了“妇女外联方案”,为41个职位申请了7个职位。在应用过程中,向内核提交了374个补丁,而3.10内核发行版中接受了超过1/3的补丁。实习过程现在正在进行中,但是直到将来的内核发行时,结果才开始显示。 此外,量化内核所发生的事情并不难,因为我们拥有超越单个提交的指标。例如,我们知道1994年的1.0.0内核有176250行代码;我们知道像3.10这样的现代内核具有15803499行代码。数量更多。内核发布频率增加了(3.10为63天),更改率也有所提高(每小时9次提交或更多)。引用Linux Foundation: 在过去的任何公共软件项目中,保持这种变化速度多年的能力都是前所未有的。 但是所有这些在我看来并没有什么洞察力。因此,我会问: 除了线性构成组成该内核的所有列出功能的线性加法之外,这个四分之一世纪的演变是否可以被概括地视为合格? 这是否带来了有关Linux内核的含义或发展方向的任何见解?经过25年的发展,可以肯定地得出一些结论吗? 寻找一个通俗易懂的抽象答案,说明一切,而不必诉诸一切。
12 kernel  history 

4
在鼠标,复制和粘贴之前,他们如何设法驱动Unix计算机?
由于Unix已有40年的历史,因此Unix比计算机鼠标的发明要古老。(实际上,如果Unix是1969年的鼠标,而鼠标是1972年的鼠标,则只有3年。)在这个世界上,新用户如何在Unix上做任何不复制和粘贴的操作?我知道他们总是有一个带有复制/粘贴功能的文本编辑器,但是我在Linux上所做的一切都是从Web浏览器复制,然后(从CLIPBOARD)粘贴到vim或gedit或gnome终端中。你也一样吧 我只是无法想象将一个man文件加载到vim中,然后将代码从其中复制并粘贴到临时缓冲区中,然后让bash执行该缓冲区。也许他们从未离开过emacs。那是答案吗?


2
命令文件建议背后的故事是什么?
在阅读时,file(1)我在手册页中注意到了这一点(强调我的意思): 将本地定义添加到/ etc / magic时,请确保保留这些关键字。用户依赖于知道目录中的所有可读文件都印有“文本”一词。不要像伯克利那样做,而是将“ shell命令文本”更改为“ shell脚本”。 这句话的背后是什么故事?我猜Berkeley是指,BSD (Berkeley software distribution)但Google没有提供足够的信息。 链接到file(1) http://man7.org/linux/man-pages/man1/file.1.html 一些挖掘表明,此声明是27年前添加的链接 Don't do as one computer vendor did \- change ``shell commands text'' to ``shell script''. 后来更改为当前语句链接 Don't do as Berkeley did \- change ``shell commands text''


2
chmod代表什么?
为了记住命令,通常最好了解它的名称来自何处。例如,cp来自副本。usermod表示“用户修改”(至少我猜是这样)。 chmod来自哪里,这意味着什么?

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.