精解什么是电脑宕机?
什么是电脑宕机?你遇到过电脑宕机么?
一说到电脑宕机,你去搜索定义,会发现大家的解释都大同小异,无非是说宕机是英文字母"Down”的音译。
宕机,就是我们大家日常见到的电脑死机。但用“宕机”来解释死机,这个解释准确么?
我们知道,电脑中关机的英文叫作“Shut Down”。如果电脑死机我们称之为“宕机”,从shut down字面的意思解释便是死机的时候关机。
显然这个说法是错误的,而这种错误是从电脑早期使用的时候由Down演变而来的。我们不妨从电脑死机的各种表现来研究电脑死机,从而才能够深刻理解什么是电脑死机。
1、硬件错误
我们知道,电脑在硬件不兼容或者出现故障的时候容易蓝屏,而比蓝屏轻微的,自然就是死机了。
另一种常见的硬件导致死机的情况是内存问题,如果内容接触不良,或者出现故障,就有可能引起操作系统读取内存错误而表现出死机的状态。
尽管当前的硬件基本都支持热插拔,但有些关键硬件在热插拔的时候出现死机的概率还是非常高的。
这是因为假如我们正在调用某个硬件,突然硬件被拔走,这个时候操作系统可能没有感知到硬件不存在,仍然把硬件当成存在去调用,就会出现死机的情况。
为了避免上述硬件热插拔的情况出现死机,所以当前现代操作系统都设计了硬件感知。
有了硬件感知能力,在硬件插拔的时候,就可以告诉操作系统调用模块能不能去调用某个硬件,就不会出现死机了。
前文所述的硬件接触不良也好,内存不够用也好,其实都可以归类为“热插拔”,理论逻辑是一样的。
2、软件错误
由于硬件的不兼容和热插拔问题存在的历史久远,所以基本上出现的问题都被解决了。
当前电脑死机的主因主要还在软件层面,而软件层面导致的死机原因却是五花八门的。
但不管软件层面有多少死机原因,最终基本上都指向了同一个硬件:内存。
内存泄漏是电脑出现各种问题的罪魁祸首,所谓内存泄漏可以简单地被理解成内存错误。
在计算机早期的编程中,内存管理是由程序员负责的,例如汇编语言、C语言、C++语言等。
当我们声明一个变量的时候,内存就会开辟一段空间(堆栈地址)来为该变量提供仓库库位。
如果你有完全不同的数据同时去占据内存的同一块地址,这就出现了冲突。
所以,早期的操作系统,完全可能因为一个软件的内存泄漏而导致死机。
随着操作系统的发展,这类内存泄漏的问题会被操作系统捕获,并当作异常,严重的由操作系统直接杀死该软件的进程,以免影响整个操作系统。
3、当前电脑的主要死机原因
今天,电脑的硬件和操作系统越来越完善,而且由于现代编程更多地使用托管代码,内存泄漏的问题也鲜有发生。即便如此,电脑死机仍不可避免,这又是为什么呢?
上面我们说了,电脑死机基本上都跟内存脱不了关系。
例如病毒,损坏你的系统文件。当操作系统通过内存向磁盘请求系统文件的时候,该文件被病毒破坏,系统无法取得关键性的系统文件,就会出现死机的情况。
还有一类情况,软件由于逻辑性错误,导致不断通过操作系统向内存请求存储地址,当内存地址被耗光的时候,就出现了死机。
而这种资源被耗光导致死机的机制,也被很多黑客利用。
黑客发起的DDOS攻击,就是资源耗尽式的攻击,通过不断发送大量请求,挤光目标极其的带宽、内存等资源,让目标机器处于无法服务的状态。
简单说,就是用海量处理请求淹没机器的处理能力。
综述与总结:
通过上面的讲解,我们知道宕机是一种操作系统死锁的状态。我们可以通俗地解释为电脑操作系统“发呆、不知所措”的状态,傻在了原地。
所以,个人感觉用“呆若木鸡”来解释死机的状态更为恰切。但由于大多数人都把死机说成宕机,那么宕机就成了大家都能理解和认可的死机说法了,这就是将错就错。