`
xpp02
  • 浏览: 1071260 次
社区版块
存档分类
最新评论

从一次换机器的过程谈软硬件的分离

 
阅读更多

今天把在公司使用的计算机更换了一台,原来是Dell的780,换成了Dell的790,机箱的样子变化比较大,但是里面硬件的配置变换并不大,最明显的变化就在于CPU,其他像内存、硬盘等等的配置与原来的计算机基本上一致。

作为开发人员,每次更换计算机的过程都会比较痛苦,因为需要把里面存储的很多资料都要移动到新的计算机中,而且很多软件都需要重新安装和配置,上次因为更换系统,差不多一天的时间就耗费进去了。

因为这次看到型号上相差不大,只差了10吗,哈哈,所以就像是否可以直接通过更换硬盘的方式来做,这样就不需要折腾了。有人对此表示质疑,因为他有过一次失败的经历,直接就蓝屏了,但是不试怎么知道,而且就算失败了,花费的也只有差不多一个小时,而如果成功,节省的将是大半天的时间,所以衡量一下风险和收益,还是值得试一下的。

说干就干,拆开机箱,把两块硬盘都拆下来,然后把旧硬盘换到新机器里面,开机,启动失败。

想到BIOS里面好像有个硬盘的设置,修改一下,然后启动,直接进入到安全模式,之后硬盘一顿狂闪,估计是把能够自动安装上的驱动程序都驱动上了,然后顺利进入了系统。再次重启,用U盘复制了新机器的驱动程序,重新安装一下,全部OK了。计算一下时间,不到一个半小时,竟然就成功更换了。

由此想到前几天看到的一个话题,就是软件和硬件之间的分离,如果说软件和硬件之间耦合非常严重,一些软件只能够在特定的硬件上运行,那么必定会大大限制软件的使用。相反,如果软件可以和硬件分离,没有耦合的关系,那么就可以达到到处运行的目的。

当年的Java正是通过虚拟机的技术实现了软硬件的解耦,甚至于是软件与操作系统之间的解耦,也正是因为Java号称的“一处编译,到处运行”,才使得它能够有今日的成功。

然而,如果不能够做好这个用来解耦的中间层的话,我们就需要付出性能或者可用性方面的代价,甚至于可能对于一些特殊的情况不得不采用针对专门硬件的软件,才能够真正达到特定的需求。然而,对于大多数情况来说,达到软硬件的解耦,益处还是要大于坏处的。

当前的移动开发方面也是一样,很多native的应用都无法实现软件与硬件或者说操作系统很好的解耦,我们不得不针对每种硬件都开发专门的应用来适应它,而不是开发一种程序就可以在各个移动终端或者设备上运行。而HMTL5的出现,似乎给大家带来了一些福音,毕竟所有操作系统上的浏览器都采用了相同的协议,这样只要是符合这个标准的web应用就都可以在浏览器中平滑地运行。从而在某种程度上达到开发一次,到处运行的效果。

其实,在软件和硬件的历史上,总是有人纠结在耦合、分离(解耦)的问题上,总是希望能够找到比较好的解决方案来解放开发人员,也正是因为如此,我们的技术才会不断地进步和提升,呵呵。


今天把在公司使用的计算机更换了一台,原来是Dell的780,换成了Dell的790,机箱的样子变化比较大,但是里面硬件的配置变换并不大,最明显的变化就在于CPU,其他像内存、硬盘等等的配置与原来的计算机基本上一致。

作为开发人员,每次更换计算机的过程都会比较痛苦,因为需要把里面存储的很多资料都要移动到新的计算机中,而且很多软件都需要重新安装和配置,上次因为更换系统,差不多一天的时间就耗费进去了。

因为这次看到型号上相差不大,只差了10吗,哈哈,所以就像是否可以直接通过更换硬盘的方式来做,这样就不需要折腾了。有人对此表示质疑,因为他有过一次失败的经历,直接就蓝屏了,但是不试怎么知道,而且就算失败了,花费的也只有差不多一个小时,而如果成功,节省的将是大半天的时间,所以衡量一下风险和收益,还是值得试一下的。

说干就干,拆开机箱,把两块硬盘都拆下来,然后把旧硬盘换到新机器里面,开机,启动失败。

想到BIOS里面好像有个硬盘的设置,修改一下,然后启动,直接进入到安全模式,之后硬盘一顿狂闪,估计是把能够自动安装上的驱动程序都驱动上了,然后顺利进入了系统。再次重启,用U盘复制了新机器的驱动程序,重新安装一下,全部OK了。计算一下时间,不到一个半小时,竟然就成功更换了。

由此想到前几天看到的一个话题,就是软件和硬件之间的分离,如果说软件和硬件之间耦合非常严重,一些软件只能够在特定的硬件上运行,那么必定会大大限制软件的使用。相反,如果软件可以和硬件分离,没有耦合的关系,那么就可以达到到处运行的目的。

当年的Java正是通过虚拟机的技术实现了软硬件的解耦,甚至于是软件与操作系统之间的解耦,也正是因为Java号称的“一处编译,到处运行”,才使得它能够有今日的成功。

然而,如果不能够做好这个用来解耦的中间层的话,我们就需要付出性能或者可用性方面的代价,甚至于可能对于一些特殊的情况不得不采用针对专门硬件的软件,才能够真正达到特定的需求。然而,对于大多数情况来说,达到软硬件的解耦,益处还是要大于坏处的。

当前的移动开发方面也是一样,很多native的应用都无法实现软件与硬件或者说操作系统很好的解耦,我们不得不针对每种硬件都开发专门的应用来适应它,而不是开发一种程序就可以在各个移动终端或者设备上运行。而HMTL5的出现,似乎给大家带来了一些福音,毕竟所有操作系统上的浏览器都采用了相同的协议,这样只要是符合这个标准的web应用就都可以在浏览器中平滑地运行。从而在某种程度上达到开发一次,到处运行的效果。

其实,在软件和硬件的历史上,总是有人纠结在耦合、分离(解耦)的问题上,总是希望能够找到比较好的解决方案来解放开发人员,也正是因为如此,我们的技术才会不断地进步和提升,呵呵。

分享到:
评论

相关推荐

    软硬件分离机顶盒设计

    软硬件分离机顶盒设计是数字电视领域的一项创新技术,旨在通过解耦硬件与软件,实现更为灵活、高效且开放的机顶盒解决方案。这一设计理念的核心在于打破传统机顶盒开发模式中的封闭壁垒,促进软件的多样性和创新,...

    软硬件协同设计

    它强调从一开始就将软硬件作为整体来考虑,通过持续的交互和优化,确保整个系统的设计更加高效、可靠。 综上所述,软硬件协同设计是一种重要的嵌入式系统设计方法,它不仅提高了设计效率,还有效降低了设计成本,...

    基于Python软硬件协同设计方法.pdf

    软硬件协同设计是一个在电子系统设计领域中非常重要的概念,它指的是软件和硬件设计人员合作,利用各自领域的优势,共同完成系统设计的过程。这种方法可以加速产品从概念到市场的时间,并且有可能降低整体的成本。 ...

    编码 隐匿在计算机软硬件背后的语言 美 佩措尔德(完整版)

    从硬件层面看,处理器执行的每一条指令,内存中每一块数据的存取,外设的每一次交互,无一不依赖于精确的编码系统。书中不仅将读者带入硬件的逻辑层面,还深入探讨了软件层面的编码,包括编程语言的构成、编译器和...

    《编码---隐匿在计算机软硬件背后的语言.上》 高清 PDF

    《编码---隐匿在计算机软硬件背后的语言》是程序员领域内一本备受推崇的经典著作,它深入浅出地揭示了计算机科学的基本原理,帮助读者理解计算机系统如何处理信息。这本书的上册主要涵盖了从二进制到高级编程语言的...

    软硬件开发流程及规范

    软硬件开发流程及规范是指在软件和硬件开发过程中所需遵守的规则、标准和步骤,以确保开发过程的顺畅、效率和质量。本文将从软硬件开发流程的角度,对软硬件开发流程及规范进行详细的介绍和解释。 1. 硬件开发过程...

    [编码:隐匿在计算机软硬件背后的语言].(Code).C.pdf

    《编码:隐匿在计算机软硬件背后的语言》是一本深入探讨计算机系统中编码原理的经典著作。作者Charles Petzold以其独特的视角和深入浅出的解释,揭示了编程语言与计算机硬件之间的紧密联系,帮助读者理解计算机系统...

    计算机系统:核心概念及软硬件实现(第4版)

    计算机系统:核心概念及软硬件实现(第4版) 计算机系统:核心概念及软硬件实现(第4版)

    嵌入式系统软硬件协同设计实战指南 基于Xilinx Zynq.pdf

    嵌入式系统软硬件协同设计实战指南 基于Xilinx Zynq

    编码:隐匿在计算机软硬件背后的语言

    《编码:隐匿在计算机软硬件背后的语言》是讲述计算机...不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获。

    论文研究-面向RSoC的过程级动态软硬件划分.pdf

    目前的软硬件划分大多只考虑从算法本身提高划分效果,忽略了划分结果的具体配置实现,导致划分效果很不理想。分析了预配置模型下的任务描述,给出了预配置调度优先级的计算方法,设计了一种预配置调度策略;针对软...

    软硬件融合-V0.7-超异构计算革命,值得收藏

    文章还探讨了软硬件融合的案例,包括从SmartNIC、DPU、IPU到HPU的发展过程,这些案例展示了软硬件融合如何在不同计算场景下实现高效的性能。在技术基础上,作者介绍了软硬件融合涉及的关键技术,比如硬件接口一致性...

    [高清带书签]编码隐匿在计算机软硬件背后的语言

    综上所述,编码是计算机软硬件背后的通用语言,它渗透于计算机科学的每一个角落。这本书《编码隐匿在计算机软硬件背后的语言》通过高清PDF电子书的形式,向我们展示了编码的深层原理和应用,对于理解计算机技术的...

    软硬件的测试报告的兼用型、测试环境等内容

    在测试报告中,技术资料是很重要的一部分,它提供了软硬件的详细信息,包括软硬件的配置、安装、使用等信息。 三、测试内容 测试内容是指测试报告中所记录的测试信息,包括用户文档测试、功能性测试、易用性测试、...

    FOC电机控制软硬件设计及动手实践.pdf

    本资料详细讲解了FOC电机控制的软硬件设计,涵盖了从理论到实践的全面知识。 1. **电机评估板研发规划** - 介绍不同的电机评估板,包括支持的电机类型和接口,如低压小功率步进电机、低压小功率BLDC/PMSM电机、...

    华为公司设计规范软硬件设计规范EMC电磁兼容PCB设计规范等文档资料合集.zip

    华为公司设计规范软硬件设计规范EMC电磁兼容PCB设计规范等文档资料合集: EMC基础知识---华为.pdf 华为 emc.PDF 华为C语言编程规范总则.pdf 华为PCB-Layout设计规范.pdf 华为PCB布线规则.pdf 华为_CDMA原理(NSS).ppt...

    嵌入式系统中软件与硬件的集成测试方法

    嵌入式软件自身软硬件结合的复杂性及其质量的重要性,造成其软件测试的特殊性,就是在执行正常软件测试的单元测试、集成测试、系统测试的过程中,还要考虑到软件与硬件的兼容问题,即需要进行软硬件集成测试。...

    编码:隐匿在计算机软硬件背后的语言(美.佩措尔德).pdf

    编码:隐匿在计算机软硬件背后的语言(美.佩措尔德).pdf

    海思Hi3798CV200软硬件全套开发资料百度云下载

    海思Hi3798CV200软硬件全套开发资料百度云下载 海思开发SDK Hi3798CV200,有需要的朋友可以下载学习使用。

Global site tag (gtag.js) - Google Analytics