热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微型计算机|异类_大型机操作系统与残留到现代的古老技术

篇首语:本文由编程笔记#小编为大家整理,主要介绍了大型机操作系统与残留到现代的古老技术相关的知识,希望对你有一定的参考价值。 【CSDN 编者按】当下用户常常接触到的计算机大多是微型计算机&#xf

篇首语:本文由编程笔记#小编为大家整理,主要介绍了大型机操作系统与残留到现代的古老技术相关的知识,希望对你有一定的参考价值。



【CSDN 编者按】当下用户常常接触到的计算机大多是微型计算机,对于大型机,除了用在一些特定的领域和场景,普通用户很少能触及,正如本文作者所表示:“行业无视它们,而它们也无视行业”。


原文链接:https://liam-on-linux.dreamwidth.org/86995.html


声明:本文为 CSDN 翻译,未经允许,禁止转载。


作者 | Liam on Linux  


译者 | 弯月     责编 | 张红月


出品 | CSDN(ID:CSDNnews)


我认为,21世纪大型机操作系统的有趣之处在于:


一方面,科技发展史上曾出现过很多伟大的操作系统、语言、接口和想法,但大多数都被遗忘了。大型机很昂贵,无论是过去还是现在都非常非常昂贵;小型计算机(minicomputer)相对比较便宜,所以它们在完全灭绝之前曾经历过短暂的辉煌;而微型计算机(microcomputer)的价格最低。


所有现代计算机都是微型计算机。虽然经过长年的发展,如今的微型计算机看似很像小型机和大型机,但事实并非如此。就像鸵鸟进化后看起来有点像兽脚亚目恐龙,但实际上它们依然是鸟,没有牙齿,手臂和翅膀上没有爪子,依然是卵生。


微型计算机的一个突出的特征是价格便宜,成本低廉,而且研发费用很低。


但大型机很昂贵,造价很高,租赁和许可成本很高,运行费用也很高,一切费用都很高。如果你很在意成本,那么根本就不会使用大型机。但有人依然出于某种理由而必须使用大型机。


这就意味着即便大型机所服务的市场只有几百个客户,厂商也依然有利可图,而且有足够的资金开发产品并提供支持。


这就导致在如今高度同质化的现代计算环境中,一切都受到了Unix C这个主流技术及其文化的影响。Unix C是DEC小型机的遗留技术,但它深深地影响了DOS、Windows、OS/2甚至WinNT和Unix,它们都有共同的DNA。但是,大型机却是个异类。


过去,我们曾有各种截然不同的系统。比如,经典的Mac和Amiga、搭载了RISC OS的Acorn ARM机器、Lisp机器、Apollo DomainOS机器等等,它们都与DEC/*nix不同,并且以此为特色。按照现代的标准来看,这些系统都很奇怪,而且很异类。


但这些系统都消失了。只有少数系统存活在模拟器和个人兴趣中,但它们不可能再次在行业中占据一席之地。一些以嵌入式系统的形式存在于某些设备的保护壳里。Lisp就只有Emacs在用。还有Smalltalk这种在各种不同的计算机里运行的虚拟机语言。


与此同时,大型机一直活得好好的,纵然被整个行业忽视,却依然存在,而且基本上不受各种技术发展趋势的影响。


大型机有着自己独特的存储架构、网络系统、 I/O 控制器,还有编程语言和内存模型等等,因为它们不得不采用这些独特的技术,它们极少会向主流技术靠拢。它们可以利用主流技术建立网络,如果需要彼此沟通,还可以把自己的协议打包到TCP/IP等。


但是,大型机有自己的客户,有自己的资金来源,对于客户的收入情况了如指掌,还掌握了大量的用户数据,而且一些关键性的任务非它们莫属,因此它们前进的路上没有任何阻力。偶尔也会有不自量力的挑战者,但这对于能够轻易运行几千个Linux虚拟机的大型机来说简直是无关痛痒。


结果就变成了:行业无视它们,而它们也无视行业。


但是,我们本可以在20世纪90年代后期拥有多处理器 BeOS 机器,或者在80年代后期拥有可以轻松支持多任务的基于386架构的OS/2个人电脑,或者能够支持多任务的680x0的机器(而不是Mac),或者其他数百种没有成功的技术中的任何一种。它们都是基于微型计算机的,因此没有足够的研发资金。


相反,如今我们只有很小一部分系统,而且并不是最好的,而是最便宜、最简单、勉强够用的系统,因为人们崇尚“最低限度可行产品”。


当然,还有少数幸存者仍在坚持。


有趣的是,历史的发展总是周而复始。人类所有的文化都是如此,软件亦是如此。想当初,20世纪末期流行的软件只不过是当时最廉价、勉强能用的解决方案。后来它们被更廉价的方案取代了。


我们经历了漫长的算盘和结绳计数的时代,如今已无法回头,而眼前这些由一群自以为是的“软件工程”人员制作出来的垃圾将会变成下一代昂贵的嵌入式或虚拟式垃圾,就像前面提到的那些消失的系统和技术一样。


它们会嵌入到哪些设备中?现如今的“低级语言”就是可以“编译”成“原生二进制文件”的语言。你可以使用这些语言来构建操作系统,并使用虚拟化层次结构来扩展不太可靠、不太方便扩展的技术。


然后在此之上的二级系统的核心是Web技术,以及使用了“JIT”的“动态语言”来解决“跨平台”等问题,这样它们就可以在任何平台上运行,并分割成多个微服务,用“标准协议”连接,从而在“Web规模”的“云”中运行。


技术高手都知道,选择正确的语言和正确的工具,就可以构建出与一级系统相同类型的产品,来代替二级系统,而且不需要花哨的扩展基础设施,因为一台现代机器就可以支持一百万个并发用户,且没有任何问题,几台这样的机器就可以支持数千万个并发用户,而所有这些机器都可以放在一个房间的角落里,正常运行时间长达数十年,不需要任何云。


但是这个方案很难实现,而利用解释语言和庞大的框架拼凑一个“现代系统”要容易得多。


— 推荐阅读 —



推荐阅读
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 掌握DSP必备的56个核心问题,我已经将其收藏以备不时之需! ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 《软件测试精要》深度解析与实战经验分享
    《软件测试精要》深度解析与实战经验分享,系统梳理了软件测试的核心概念与关键原则,结合实际项目中的测试经验和教训,详细探讨了测试分类、测试权衡要素、测试效率、测试覆盖率以及测试框架的引入和用例设计等内容,为读者提供了全面而实用的指导。 ... [详细]
  • 在进行网络编程时,准确获取本地主机的IP地址是一项基本但重要的任务。Winsock作为20世纪90年代初由Microsoft与多家公司共同制定的Windows平台网络编程接口,为开发者提供了一套高效且易用的工具。通过Winsock,开发者可以轻松实现网络通信功能,并准确获取本地主机的IP地址,从而确保应用程序在网络环境中的稳定运行。此外,了解Winsock的工作原理及其API函数的使用方法,有助于提高开发效率和代码质量。 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 大数据应用实例:电视收视率分析企业项目实操第二篇
    本文继续探讨大数据在电视收视率分析中的应用,详细介绍了如何在CentOS系统中进行防火墙管理。针对CentOS 6.5及更早版本,提供了具体的命令操作步骤,包括停止防火墙服务和禁用防火墙启动。此外,还深入讨论了这些操作对数据传输和系统安全的影响,为实际项目实施提供了宝贵的技术参考。 ... [详细]
  • Git基础操作指南:掌握必备技能
    掌握 Git 基础操作是每个开发者必备的技能。本文详细介绍了 Git 的基本命令和使用方法,包括初始化仓库、配置用户信息、添加文件、提交更改以及查看版本历史等关键步骤。通过这些操作,读者可以快速上手并高效管理代码版本。例如,使用 `git config --global user.name` 和 `git config --global user.email` 来设置全局用户名和邮箱,确保每次提交时都能正确标识提交者信息。 ... [详细]
  • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • Jenkins学习精华:自动化构建与持续集成入门指南
    本文综合了网络资源及同事分享的PPT内容,详细介绍了Jenkins在自动化构建与持续集成中的应用。首先涵盖了Jenkins的安装与配置流程,接着阐述了如何根据项目需求设定自动化编译任务,包括确定开发环境、选择合适的编译工具以及实现代码的自动更新等关键步骤。特别强调了在SVN环境中通过命令行实现代码自动拉取的最佳实践。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
author-avatar
不想不知痛_378
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有