计算机领域中的豆知识

豆知识,出自日语まめちしき。表示一些边边角角的,一般不引人注意的小知识。类似于中文中的冷知识

为什么(Linux下)C语言编译后的可执行文件的默认名称是a.out?

在Linux中,使用gcc编译C源码,在不使用-o选项指定名称的情况下,默认生成的可执行文件的名称是a.out

很多人可能认为a是字母表的第一个字母,代表英文字母表中的a,或希腊字母表中的α。其实所谓的a.out的含义是assembler output,即汇编器输出

了解编译过程的我们应该大都知道,汇编器的输出是目标文件(.o为后缀的文件),并不是可执行文件。目标文件经链接以后才是可执行二进制文件(比如a.out)。

究其原因是因为在Unix系统诞生的PDP-7机器上,还并未出现链接器。链接工作是在汇编操作之前完成的,然后经汇编器直接生成可执行文件。后来人们才发明了链接器,剥离了链接操作,并在汇编之后工作。但是命名习惯被得以保留。

另外一个关于a.out的有趣故事是这样的:

在UNIX的早期历史中,想在系统上玩游戏的人通常把游戏作为a.out来运行,以避免被系统管理员抓到,因此一些UNIX系统每晚会定期删除所有名为a.out的文件

依据

  • 《C专家编程》 6.1节
  • 《Beginning Linux Programing》1.2.3节

Linux中的目录/usr真的是user(用户)的缩写吗?

很多人认为/usr目录是user的缩写,我们知道Windows中C盘里面由个Users目录,里面存放的是每个用户的子目录。但是Linux中,与之对应的是/home目录啊,并非/user目录。

其实现代Unix系统中,/usr目录的含义是User System Resources,代表着多用户共享的系统资源,包括二进制,文档,库等等。每个用户都能使用。

其实最早/usr的含义确实是user,那时候/usr的目录结构与现在不同,就像现在的/home目录一样。彼时/usr/jelly和现在的/home/jelly是同一个意思,表示用户jelly的家目录。不过再后来引入了/home目录之后,就不能认作是user的缩写了。

依据

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html

In the original Unix implementations, /usr was where the home directories of the users were placed (that is to say, /usr/someone was then the directory now known as /home/someone). In current Unices, /usr is where user-land programs and data (as opposed to ‘system land’ programs and data) are. The name hasn’t changed, but it’s meaning has narrowed and lengthened from “everything user related” to “user usable programs and data”. As such, some people may now refer to this directory as meaning ‘User System Resources’ and not ‘user’ as was originally intended.

你知道Linux中cat命令的名称由来吗?

我们应该都用过cat命令来显示文件,但是这个命令为什么叫cat呢?稍微有点经验的Unix用户就会知道cat命令的真实用法是组合文件。

的确,cat命令可以将多个文件显示到标准输出,通过重定向可以实现多个文件的合并。

cat file1 file2 > file3

你可能就认为cat这个命令是英文单词concatenate(联系连接)的缩写了。这样理解或许不错,却并非真实的情况。

cat缩写自一个古老的单词catanate,其含义是to join a chain,它源于拉丁文catena,是chain(锁链)的意思。

依据

《Unix&Linux大学教程》 16.8节(末尾)

动态规划的英文原文为什么是Dynamic Programming?

Dynamic Programming在中国被称之为动态规划,但是Programming本身并无规划之意,但是翻译成编程又完全不对。因为这是一种数学思想。

关于这个术语的历史是这样的,当时Richard Bellman在空军的RAND部门任职,他的顶头上司很讨厌部门里面搞research(研究),甚至在他面前不能说research这个单词。数学研究更是不被允许。而Bellman当时在做的事情正是一种数学研究,为了不让上司发现,他只好在项目名称上做文章,取了一个Dynamic Programming的名称。这样对于他的研究别人就几乎摸不着头脑了。

依据

https://en.wikipedia.org/wiki/Dynamic_programming#History

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-29 14:27:42

计算机领域中的豆知识的相关文章

[CSDN] OpenCL用于计算机领域的13个经典案例

http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl-can-be-used 摘要:当使用加速器和OpenCL时,哪种类型的算法更加快速?来自弗吉尼亚理工大学的Wu Feng教授和他的团队例举了一份算法列表,分享了OpenCL常被用于计算机领域的13个经典案例. 哪种算法可以最好的映射GPU及矢量处理器呢?换句话说,当使用加速器和OpenCL时,哪种类型的算法更加快速? 来自弗吉尼亚理工大学的Wu

数据容灾在数据库容灾领域中的比重及其意义

数据容灾只是确保数据安全的一个方案,当这个方案无法保障数据安全时,需要专业的数据恢复工具对其原有数据或者备份数据进行数据恢复.无论采用哪种容灾方案,数据备份还是最基础的,没有备份的数据,任何容灾都没有现实意义.但光有备份是不够的,容灾也必不可少.容灾对于IT而言,就是提供一个防止各种灾难的计算机信息系统.     数据容灾根据不同时机需求可以有不同的等级.中小企业通常只需采用本地容灾即可.所谓本地容灾就是在企业网络本地所进行的容灾措施,其中包括在本地备份.存储.保管备份媒体.在一些大众型企业,所

对计算机领域中间层的理解

以前看<代码大全2>时看到了如下一句经典台词: "any problem in computer science can be sloved by another layer of indirecition" "计算机科学领域的任何问题都可以通过增加一个中间层来解决" 当时只是觉得好就永远记住了,几年的编码经验,越来越感受到这句话的经典所在,下面来举几个例子说一下我对它的理解: 1.操作系统的缓存: 比较典型的用于阐述这句话的缓存实例,当属内存(包括sw

在计算机编程中,一个基本的概念就是同时对多个任务加以控制

在计算机编程中,一个基本的概念就是同时对多个任务加以控制.许多程序设计问题都要求程序能够停下手 头的工作,改为处理其他一些问题,再返回主进程.可以通过多种途径达到这个目的.最开始的时候,那些 拥有机器低级知识的程序员编写一些"中断服务例程",主进程的暂停是通过硬件级的中断实现的.尽管这 是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题. 有些时候,中断对那些实时性很强的任务来说是很有必要的.但还存在其他许多问题,它们只要求将问题划 分进入独立运行的程序片断中,使整

JetBrains发布DataGrip 1.0——数据库与SQL领域中的瑞士军刀

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/12/datagrip-released 近日,来自捷克的软件公司JetBrains发布了全新的重量级产品DataGrip 1.0--号称数据库与SQL领域中的瑞士军刀.DataGrip的前身0xDBE已经发布一年多的时间了,这也是JetBrains向广大用户提供的开发版本,每个版本都有一定的使用期限,过期后用户可以从JetBrains网站上下载新的开发版本.经过了长时间的开

进化计算领域中优势个体的选择方法

进化计算领域中优势个体的选择方法 I : 轮盘赌选择  Roulette Wheel Selection 这是一种基于比例的选择.由于随机操作的原因,误差较大,有时即便适应度较高的个体也选择不上 II:   锦标赛选择 Tournament Selection 每次选取几个个体中适应度最高的一个个体遗传到下一代群体中.优点是对个体适应度取正负值无要求,但此方法的随机性更强,存在更大的随机误差,但是有较高概率保证最优个体被选择,最差个体被淘汰. III:随机遍历选择 IV:基于种群交流选择 遗传算

自动化双臂机械手在自动化生产线领域中的发展

自动化双臂机械手在自动化生产线领域中的发展如何 中国的双臂机械手产业正在迎来高速发展期,从国内冲压机器人的应用来看,汽车.电子工业仍是主要的应用领域.机械手应用规模正在迅速扩大,中国冲压产业化正处于关键的转折点,在国家政策的推动下,国内冲压自动化将跨上一个新的台阶,进入快速发展阶段. 近年来自动冲压机械手是现在企业追求的方向,为了节约人力.降低产品单位成本,越来越多的企业通过改造现有生产方式为自动化生产,或者直接导入自动化生产.冲压自动化生产同样是企业急需导入的策略.本公司自主研发.制造的自动冲

这七种数据分析领域中最为人称道的降维方法

这七种数据分析领域中最为人称道的降维方法 感谢王穆荣的投稿,转自数盟社区 近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现.于此同时,这也推动了数据降维处理的应用.实际上,数据量有时过犹不及.有时在数据分析应用中大量的数据反而会产生更坏的性能. 最新的一个例子是采用 2009 KDD Challenge 大数据集来预测客户流失量. 该数据集维度达到 15000 维. 大多数数据挖掘算法都直接对数据逐列处理,在数据数目一大时,导致算法越来越慢.该项目的最重要的就是在

浮点数在计算机内存中的存储方式

在计算机内存中,float型数据占4个字节,double型占8个字节,它们在计算机中的存储分为三个部分: 符号位:0代表正,1代表负. 指数位:将一个二进制数用科学计数法表示之后指数的值. 尾数位:用科学计数法表示的前面的数. 其中存储的方式如图 double型的数据存储方式与之类似,只不过能表示更大的数位 现在就用float型的数据来举例吧. 比如,12.5f为一个float型的浮点数,先把它转化为二进制数为1100.1,用科学计数法表示为1.1001*2^3.现在就可以表示把这个二进制数分为