首页
学习
活动
专区
工具
TVP
发布

记录感想

专栏成员
4
文章
7171
阅读量
4
订阅数
对 UNIX 新的认识
  (前言:感谢我的高中物理老师,让我明白研究一个领域,应当先去了解这个领域的前辈,晓得前辈们与这个领域之间的过往历史,并始终向这些前辈致以崇高的敬意!)   操作系统是一个人机接口,实现了人机交互。目前主流的操作系统有Windows、macOS以及Linux。追本溯源,它们有一个共同的祖先——UNIX。最近一周,阅读了一本好书《UNIX传奇:历史与回忆》,让我对UNIX有更深入的了解。   1969年Ken Thompson所在的贝尔实验室撤出了对Multics项目的研究,这让Ken Thompson感到不开心,于是他用了三周的时间重写了一个操作系统UNiplexed Information and Computing System(UNICS),后来改称为UNIX。1973年,UNIX的另外一个重要贡献者,Dennis MacAlistair Ritchie用其开发的C语言重写了UNIX,提高了UNIX的可移植性,这使UNIX变得流行起来。到了80年代,贝尔实验室开始向部分高校发布了UNIX使用许可证,高校的参与使UNIX更加完善,还衍变出了著名的Berkeley Software Distribution(BSD)。不过这也导致了后来贝尔实验室与伯克利之间的商业战争。但无论如何,UNIX是一个计算机世界的奇点,改变了全世界。   那时的贝尔实验室群英荟萃,聚集了各个领域的世界顶尖大师,再加上管理层的英明管理与充足资金,研究人员所能获取到的资源丰富且工作韧性极大。在这样宽松自由的工作环境下(真是令人向往,工作不再是一种负担,而是一种乐趣),伟大头脑之间优秀观念的碰撞,擦出UNIX这样伟大的作品,不足为奇。还有当时的研究人员必须得在公司用午餐,他们在吃饭期间互相交流探讨,一起饭后散步,光在这期间就不知道有多少great idea诞生。据中科院微信公众号官方推文,中科院的研究人员在研究之余也会经常在一起喝咖啡,异曲同工。   读完本书,有两点令我印象深刻:   1.Uni与Multi相对,UNIX追求简洁,“一次只做好一件事。如果有新需求,可以添加新特性,而不应该在原有的版块增添新的内容,而最终导致整个版块过于复杂。”   2.观念导致人的差异,这也是物以类聚,人以群分的原因。我们需要多阅读伟大的作品,思考伟大的观念,从而让自己变得优秀,优秀的头脑是会互相吸引的。就像书中提到的那位受到贝尔实验室邀请的实习生,原本在犹豫是否入职,后来参观了一圈贝尔实验室的长廊,发现长廊上挂满了对在贝尔实验室工作的伟大人物的介绍,逛完了长廊,实习生就决定要加入贝尔实验室。
_xiaoSu
2022-11-08
3360
开源与黑客
  最近读完了传说中的开源圣经《大教堂与集市》,觉得值得记录一下读此书的所思所感。
_xiaoSu
2022-11-08
2210
关于虚函数的学习思考
为什么需要虚函数?为的是实现类的多态特性,能够使同一个方法在派生类与基类的产生不同的行为。 这对于涉及类引用/指针操作的处理是很有帮助的, 如果不使用关键字virtual,那么程序将根据引用/指针的类型去选择方法;反之如果使用了virtual,那么程序将根据引用/指针的对象去选择方法。这背后考虑了类继承is-a中的机制。 即基类的指针/引用既可以指向基类对象,也可以指向派生类对象,反之不成立,请注意这样的关系是单向的。但它是合理的,因为派生类有新的数据成员与成员函数,而对于新成员,基类往往没有能提供处理的相应函数。 虚函数的工作原理是为对象添加一个隐藏成员,隐藏成员中保存了一个指向函数地址数组的指针,这种数组成为虚函数表(virtual function table, vtbl)。在调用虚函数时,程序将查看存储在对象中的vtbl地址,然后转向相应的函数地址表。这也暗示了使用虚函数,会带来一定程序的内存和时间开销。 虽然非虚函数的效率比虚函数高,但是非虚函数不具备动态联编功能。 什么是动态联编?首先了解一下函数名联编。函数名联编是指将函数调用解释为执行特定的函数代码块。在编译过程中进行联编成为静态联编。然而很可能在执行阶段,我们才确定需要使用哪一个函数,因此我们需要动态联编,即指编译器生成在程序运行阶段执行正确的虚函数的代码的行为。
_xiaoSu
2022-11-08
1840
搭建个人网站
以下内容已按搭建网站的过程排序 方法一: 服务器 + 自我配置 购买服务器与域名: 具体购买请参照个人需求自行选择 可以前往腾讯云/阿里云 购买完成后根据相关指导进行备案 进行域名的备案与解析: 域名的备案可参考各服务平台的文件, 购买完服务器后可以获得公网IP,域名的解析使域名变成可以登录的网址。 IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。域名解析也叫域名指向、服务器设置、域名配置以及反
_xiaoSu
2022-11-08
6.4K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档