数据恢复与硬盘修理

第1篇 数据恢复与硬盘修理基础

本篇包括第1章,主要介绍数据恢复的发展现状、硬盘维修的基本知识以及一些基本工具的使用。

第1章 基础知识

1.1 数据恢复技术的发展和研究现状

目前国内的数据恢复服务市场处于一个极不规范的状态。虽然大部分数据恢复服务提供商是有职业道德的,能够为客户提供相对可靠的服务,但也有个别商家的行为极为恶劣——尤其是那些吹嘘自己是“行业领导者”的商家,除了炮制一系列所谓的“成功案例”外,拿不出任何真正的技术,甚至连操作过程都不敢让客户看到。他们不仅对用户数据极不负责任,拿着用户重要的血汗数据去“练手”,而且更为恶劣的是,对那些无法只靠运气来恢复的数据,他们竟采用异常无耻的手段进行破坏,造成用户数据彻底丢失,甚至厚颜无耻地说:“我们恢复不出来,谁也恢复不了!”而用户往往都是第一次接触数据恢复行业,哪里有选择的余地?只能听其摆布。所以笔者曾经说:“现在用户寻找恢复数据服务提供商,就像是一场赌博。”当前国际上对数据恢复技术的基本分类如图1-1所示。

图1-1 数据恢复技术的基本分类

· 软恢复

软恢复指的是恢复存储系统,或操作系统,或文件系统层的数据。这种丢失是多方面的,如系统软/硬件故障、死机等原因造成的数据丢失,以及病毒破坏、黑客攻击、木马破坏、误操作、阵列数据丢失等造成的数据丢失。对于一般的文件系统来说,这方面的研究工作起步较早,国内外研究得都比较深。软恢复的主要难点是文件碎片的恢复处理、文档修复和复杂密码的恢复。

· 硬恢复

硬恢复指的是恢复由于硬件故障而丢失的数据,如硬盘电路板损坏、盘体损坏、磁道损坏、磁盘片损坏、硬盘内部系统区严重损坏等。这些情况几乎都会导致系统不认盘或认盘困难,恢复起来难度较大。如果内部盘片数据区严重划伤,会造成数据彻底丢失。另外,如果硬盘内部系统(即人们常说的“固件系统”)出现问题,也会导致类似不认盘或不能正常读取的现象,而且由于恢复硬盘固件数据通常需要使用专用工具,因此也常常把它归入硬恢复领域。稍有常识的用户,在出现这种情况(如移动硬盘跌落)后,不会尝试对硬盘反复加电,也就不会人为地造成更大面积的划伤,因此,这种情况下一般还是能够恢复大部分数据的。从目前的实践来看,对这类问题有两种处理方法:一种方法是直接找专业的数据恢复服务提供商,这时的故障硬盘称为“一手盘”,其中的数据几乎都能恢复;另一种方法是抱着侥幸心理,自己找熟人尝试修复,或者找所谓的“计算机专家”来处理,甚至去找“牛皮公司”(那种上来就说“没问题,我们什么都可以做”的数据恢复公司——天底下哪有100%的事情?更何况数据恢复本身只是一种补救措施)。这种最终才转到专业数据恢复公司的盘,我们称之为“二手盘”。对二手盘,之前不恰当的操作会对数据造成严重的二次破坏,因此恢复难度与成本会急剧上升。

· 大型数据库系统恢复

大型数据库系统中往往存储着一些非常重要的数据,其组成复杂,一般都有较完善的保护措施,所以通常不会出现小问题,但只要出现问题,基本上都是较难处理的问题,恢复的难度较大。典型的大型数据库系统主要有SQL Server、Informix、Sybase、Oracle和IBM UDB/DB2等。

· 异型系统恢复

异型系统的数据恢复指的是不常用的、比较少见的操作系统下的数据恢复,如MAC、OS2、嵌入式系统、手持系统、实时系统、智能仪器仪表使用的系统等。它们与数据库系统的恢复和文档碎片的修复,是作者所在团队目前致力解决的问题,研究成熟时将尽快公开结果

· 覆盖恢复

数据被覆盖后,再要恢复的话,难度非常大,与其他4类数据恢复有着质的区别,目前可能只有硬盘厂商及少数国家的特殊部门才能做到。覆盖恢复的应用一般都与国家安全有关。在各种恢复手段中,水平相差最大的就是覆盖恢复。据说,美国军方可以成功恢复被覆盖了6~9次的数据,俄罗斯可以成功恢复被覆盖了3~4次的数据,IBM耗资6亿美元的研究成果是可以成功恢复被覆盖了1~2次的数据。由于这些都涉及国家核心机密,具体的细节和可靠性都尚不可知。目前市场上所说的恢复被GHOST覆盖的数据,也只是恢复硬盘中没有写入新数据的地方,并不是恢复已经写入新数据的地方,是一种非常简单的逻辑恢复。我国也正在进行覆盖恢复的深层技术研究。

1.2 数据恢复技术的层次与体系

从另一个角度来看,数据恢复技术的研究对象是存储系统,而存储系统是有体系、有层次的,因此,数据恢复技术的研究也是有体系、有层次的,如图1-2所示。

图1-2 存储系统的层次关系

1.网络层

通过网络技术可以实现远程备份。对数据恢复技术的学科体系来说,网络层的应用主要是远程同步与备份技术,以及通过高速网络实现数据备份。本层没有特别的恢复技术,只是在操作中应注意检查备份的有效性,并在出现问题时避免让损坏的数据破坏正常的数据。

2.网络存储层

网络存储层是一种基于独立系统的存储体系,是在传统的直接附加存储(DAS)基础上发展起来的智能存储系统。网络存储层一般都有自己的操作系统,因此可为各种平台应用提供统一的、兼容的数据服务,主要有存储区域网络(SAN)网络附加存储(NAS)两种形式。

· DAS

DAS是“Direct Attached Storage”的缩写,译为“直接附加存储”。DAS将外置存储设备通过连接电缆直接连接到一台服务器上,如图1-3所示。

图1-3 直接附加存储(DAS)

采用DAS方案的服务器的结构如同PC的架构,外部数据存储设备采用SCSI技术或光纤通道(Fibre Channel, FC)技术直接挂接在内部总线上,数据存储是整个服务器结构的一部分,这种情况下常常是数据和操作系统都未分离。

DAS直连方式能够解决单台服务器的存储空间扩展与高性能传输需求。当前单台外置存储系统的容量已经发展到亿万字节(TB)级,随着大容量硬盘的推出,单台外置存储系统的容量还会上升。此外,DAS还可以构成基于磁盘阵列的双机高可用系统,以满足数据存储对高可用性的要求。

在这种存储系统体制下,如果因操作系统出现故障而导致存储系统不能读取数据,则往往只与操作系统直接相关。如果操作系统正常,而存储子系统不正常,可以通过对存储子系统的操作来恢复其可用性。

· NAS

NAS是“Network Attached Storage”的缩写,通常译为“网络附加存储”,其结构如图1-4所示。

图1-4 网络附加存储(NAS)

NAS作为网络附加存储设备,采用了信息技术中流行的嵌入式技术,使其具有无人值守、高度智能、性能稳定、功能专一等特点。NAS设备内置优化的独立存储操作系统,可以有效地释放系统总线资源,全力支持I/O存储。同时,NAS设备大都集成本地备份软件,可以不经过服务器而直接将NAS设备中的重要数据进行本地备份。而且,NAS设备提供硬盘RAID、冗余电源和风扇以及冗余控制器,可以保证NAS的稳定运行。

NAS设备主要用于实现不同操作系统下的文件共享,与传统的服务器或DAS存储设备相比,NAS设备的安装、调试、使用和管理非常简单。使用NAS设备可以节省一定的管理与维护费用。

NAS设备提供RJ-45接口和单独的IP地址,可以直接将其挂接在主干网的交换机或其他局域网的集线器(Hub)上,通过简单的设置(如设置机器的IP地址等),用户就可以在网络上“即插即用”地使用NAS设备,而且进行网络数据在线扩容时也无须停顿,从而保证了数据的流畅存储。

可见,NAS是一个独立的存储子系统,出现问题后,需要直接对其进行恢复操作。问题可能出在其自身系统上,也可能出在存储设备上。

· SAN

SAN是英文“Storage Area Network”的缩写,通常译为“存储区域网络”,其结构如图1-5所示。

图1-5 存储区域网络(SAN)

SAN采用了FC技术。FC是ANSI(American National Standards Institute,美国国家标准学会)为网络和通道I/O接口建立的一个标准集成,它支持多种高级协议,最大特性是将网络和设备的通信协议与物理传输介质隔离,这样,多种协议可在同一个物理连接上同时传送。宽带网络使用单I/O接口的结构特点,使系统的架设成本和复杂程度大大降低。FC支持多种拓扑结构,主要有点到点结构、仲裁环结构和交换式网络结构。

SAN是企业级存储解决方案。目前,企业级存储解决方案所遇到的两个问题分别是数据与应用系统紧密结合所产生的结构性限制以及小型计算机系统接口(Small Computer System Interface, SCSI)标准的限制。在SAN中,存储设备通过专用交换机连接到一群计算机上。该网络提供了多主机连接,允许任何服务器连接到任何存储阵列,让多主机访问存储器像主机间的互相访问一样方便。这样,不管数据存储在哪里,服务器都可直接存取所需的数据。

SAN和NAS最大的区别在于NAS有文件系统和管理系统,但SAN却没有这样的系统功能(其功能仅仅停留在文件管理的下一层,即数据管理)。SAN却没有这样的系统功能(其功能仅仅停留在文件管理的下一层,即数据管理)。SAN和NAS并不冲突,它们可以共存于一个系统网络中,但NAS能够通过一个公共接口实现空间管理和资源共享,而SAN只是为服务器存储数据提供了一个专门的快速后方通道。随着NAS和SAN应用的发展,其数据恢复需求也越来越大。

3.磁盘阵列层

第二层的存储网络几乎都使用磁盘阵列作为基本的存储设备。在这个层次上,主要需要解决阵列散架、阵列卡损坏、磁盘掉线等故障。显然,要想成功恢复RAID数据,只对单个磁盘进行操作是没有太大意义的。根据不同的RAID类型,对可以保证数据完整性的最小数量的磁盘进行操作,并重建RAID,才能成功恢复RAID数据。

目前RAID主要通过两种方式实现:一种方式是硬RAID,由专门的控制器,也就是常说的RAID卡(有些RAID卡只有数据接口,没有RAID管理功能,效果与软RAID一样)来完成;另一种方式是软RAID,由软件方法来实现。

在过去,RAID一直是高端服务器才会使用的设备,通常与高档SCSI硬盘配合使用。SCSI RAID稳定性高、速度快,但SCSI硬盘和SCSI接口的RAID卡价格都很高。后来,随着技术的发展和产品成本的不断下降,IDE硬盘和SATA硬盘的性能也有了很大提升,加之RAID芯片的普及,使RAID技术也应用到了IDE硬盘和SATA硬盘上,有些主板还直接集成了RAID控制芯片,RAID也因此逐步在个人用户之中得到普及。

RAID的类型主要有RAID 0、RAID 1、RAID 2、RAID 3 ,RAID 4、RAID 5、RAID 6、RAID 7以及一些组合方式(如RAID 10等)。常用的RAID类型主要有RAID 0、RAID 1和RAID 5。

4.磁盘层

无论上层采用什么方式,归根到底,存储系统都离不开基础存储设备——磁盘,尤其是硬盘。因此,硬盘这一级别是整个存储体系的基础。

硬盘是集磁、电、机械装置于一体的精密的智能化设备,在整个数据恢复技术体系中有着重要的地位和作用。同理,存储安全在整个信息安全体系中也有着重要的地位和作用。

磁盘级恢复通常指磁盘数据不能正常访问时的操作和处理,以硬盘为例,通常包括3个层次。第一个层次是硬盘数据的逻辑问题。这种问题比较容易解决,一般对上归入RAID级,对下归入文件系统级。第二个层次是硬盘访问的问题,即硬盘是否能够正常读写。显然,在这种情况下必须首先解决硬盘的正常访问问题,才能进一步恢复数据。这种问题通常由两种情况导致:一种情况是硬盘内部管理系统出现问题,可以通过专业的修复工具进行修复;另一种情况是硬件出现问题,如电机损坏、磁头损坏等,需要在专门的环境下修理。第三个层次是数据被覆盖,必须从存储机理上加以解决。

正逐步走向普通用户的SSD(Solid State Disk或Solid State Drive,固态硬盘)是使用闪存颗粒作为存储部件的新一代存储产品。既然称为“固态硬盘”,可见其数据管理沿用了传统硬盘的技术和方式。

5.文件系统层

当文件系统出现问题而导致数据不可得时,可以通过技术手段重建文件系统。如果只是分区表损坏,那么只要重建分区表,系统就能完全恢复到正常状态,所有的文件都可以正常访问,系统可以直接启动,常见的误分区、误格式化、病毒破坏、误删除等都属于本层的操作。本层与操作系统是紧密联系在一起的,不同的操作系统,不同的文件系统,其恢复手段与恢复效果都不一样。

6.文件层

文件层包含了多种情况。很多时候,文件系统损坏得比较严重,恢复的效果不是很理想。特别是除文本文件外,基本上各种类型的文档都有自己特定的格式,如果有损坏,就不能正常打开,这就需要我们对这些文件格式有所了解。例如,一个受损的Word文档,用Word程序是无法正常打开并显示其内容的,但它可能只是文件头部分损坏,里面大量的文字信息并没有丢失。在这种情况下,就可以通过技术手段,将文字信息提取出来,或者修复文件头,让Word程序能够正常读取该文件。再如,一段视频资料,如果部分损坏,将不能直接播放,但经过处理就可以播放没有损坏的部分,完全有可能重新获得需要的视频资料。还有就是判断文档的出处、加密与解密、信息隐藏等,都是文件层的工作。目前,全世界大约有3万多种文件格式在计算机中使用,所以,文件层是差别最大、应用最复杂、需要解决问题最多的一层,如果将系统本身的一些文件格式也计算在内,这一层的应用就更为复杂了,如NTFS文件系统的日志文件、数据库系统的各种文件、加密文件等中,都隐藏着大量的秘密。

7.覆盖恢复

在以前写有数据的地方写入新的数据,原有的数据就被覆盖了(详见第1.3节)。

1.3 也谈覆盖恢复

如果深入磁盘内部,查看磁盘内部信息以及磁盘中的原始磁信息,就会发现,还有更多的信息是我们在操作系统下不可控或者说不可达的,如图1-6所示。

图1-6 硬盘内部

用户数据经过ECC编码和通道编码,再经过前置放大电路转换成相应的电信号,由控制磁头写入存储介质,形成相应的磁信号,如图1-7所示。

图1-7 数据编码

而写入磁介质中的数据位,也就是磁信息,是一些非常小的磁迹,如图1-8所示。

图1-8 磁盘上的磁迹

所谓的“覆盖”与“非覆盖”,则如图1-9所示。在一段存储空间上,原来存储了数据(图1-9上面的部分),当不再需要这些数据时,这些空间就可以分配给新的数据使用。这时,如果有新的数据写入这些空间(图1-9下面的部分,前后有两段空间写入了新数据。通过硬盘接口读取这两部分时,当然只能读取新写入的数据,与原来的数据没有任何关系),其中的原始数据就会被覆盖;而在未写入新数据的部分仍然可以读取原来的数据,因为其中的原始数据没有被覆盖。

图1-9 覆盖与未覆盖

显然,通过正常的硬盘接口只能读取最后写入的数据,而无法读取覆盖之前的数据,这才符合常理。如果既能读取新写入的数据,又能读取原有的数据,数据又怎么能被保存在硬盘中呢?由此可见,我们从硬盘接口读取的用户数据,与最底层的磁信息有着复杂的对应关系,并且各个硬盘厂商采用的编码方式也不统一。那种宣称自己有一套软件,可以解决覆盖恢复问题的“高人”,也未免太幼稚、太“可爱”了。详细的内部机制,留待后续。

1.4 硬盘硬件的组成

从功能结构上看,硬盘主要分为两大部分。一部分以机械部件为主,将磁头与盘片安装在一起,称为头盘组件(Head-and-Disk Assembly, HDA),也就是盘体,与电路板相对应。盘体里面是一个无尘空间,最大的基体是一个铝制的基座,基座上安装着主轴电机、盘片、磁头电机、前置放大器/转接器、磁头、定位夹具等部件,如图1-10所示。

图1-10 硬盘内部的主要部分

磁头与前置放大器/转接器直接固定在磁头臂上,构成磁头组件,如图1-11所示。

图1-11 磁头组件

两款实际硬盘的前置放大器/转接器分别如图1-12和图1-13所示。

图1-12 希捷酷鱼系列硬盘的针脚式前置放大器/转接器

图1-13 日立ATMR系列2.5英寸硬盘的前置放大器/转接器

硬盘电路板一般采用六层板。电路板上主要有以下4大类芯片。

[1] 系统控制芯片(包括读/写通道、磁盘控制和使用精简指令集的微处理器)。

[2] 包含磁盘固件的Flash ROM芯片。

[3] 主轴电机和音圈电机的控制驱动芯片。

[4] 高速缓存。

由于盘体要在无尘环境中才能打开,而超净空间的造价及维护成本较高,因此导致了硬盘的可修性很低。相对来说,电路板的维修受到的限制要小得多,配备热风焊台、电烙铁、万用表、示波器(可选)等,就可以解决一般的问题。一个实际的硬盘电路板如图1-14所示。

图1-14 IBM DTLA-307030硬盘的电路板

硬盘电路的原理如图1-15所示。其中的微处理器指的是硬盘本身的微处理器,与计算机的CPU没有关系。微处理器是电路板上的主控芯片,是整个硬盘的灵魂,就像CPU之于计算机。硬盘的微处理器其实也是CPU的一种,它是一种数字处理芯片,统管并控制硬盘的正常工作,包括加电自检、进入正常工作状态、与计算机进行通信、传输数据、控制完成数字数据与磁信号的转换并读写数据等。

图1-15 硬盘电路原理

微处理器使用RISC(Reduced Instruction Set Computer,精简指令集计算机)体系结构。只要加电或复位,微处理器就开始执行ROM(Read-Only Memory,只读内存)中的程序进行自检,初始化内存工作区和磁盘控制器,并设置好所有与内部数据总线相连的可编程部件。完成这些工作后,如果没有侦测到错误警告,系统就会启动主轴电机,进行内部测试,检查RAM(Random Access Memory,随机存取存储器),然后通过端口向微处理器输入信号,分析脉冲频率,并等待主轴电机达到规定的旋转速率。一旦主轴电机达到规定的旋转速率,控制器就会控制定位电路和磁盘控制器,将磁头移到磁盘服务区,并将磁盘服务区上的固件信息读入内存进行处理。如果读取成功,微控制器将转换到就绪状态,等待主机指令。

磁盘读/写通道包括安装在HDA内部的前置放大器/转接器、读/写电路以及同步时钟等部分。

驱动器的前置放大器有数个通道,每个通道都与各自的磁头相连。这些通道的开、关由微处理器控制。前置放大器中还包括状态记录和错误传感器,可在短路或磁头出现错误时发出错误信号。

读/写通道在写状态下接收由磁盘控制器发送的数据和时钟信号,对数据进行编码,然后进行预补偿,将数据传送至前置放大器并写入硬盘中。在读状态下,信号从前置放大器/转接器传送至自动控制电路,在进行一系列处理并解码后,数据将被传送至外部接口。

磁盘控制器是硬盘中最复杂的部件,负责控制磁盘与主机的数据交换速率。磁盘控制器有4个端口,分别与主机、微处理器、缓存和磁盘的数据交换通道相连,由微处理器控制。

主轴电机控制器控制三相主轴电机。主轴电机由微处理器控制,控制模式共有3种,分别是启动模式、加速模式和稳定旋转模式。音圈电机控制器负责控制将磁头定位到相应的磁道。

但是,实际的硬盘电路中不会有这么多的独立芯片,尤其是现在,芯片的集成度越来越高,硬盘厂商在设计电路时都会尽量选取集成度较高的IC(Integrated Circuit,集成电路)芯片,既减小了硬盘体积,又提高了可靠性。伺服/电机速度控制器组合就是一种集成芯片,昆腾(Quantum)CX/LCT系列硬盘采用的AN8428/TDA5247、旧款西部数据(Western Digital,简称WD)硬盘采用的L6256、希捷U8/U10硬盘采用的23400278-002等都是这样的芯片。在很多设计中,除了上面提及的IC内部的电源部分,还会根据需要设计一些独立电源IC,如磁头电路用8V稳压IC,微处理器用3.3V/2.5V稳压IC等。硬盘接口控制器、微处理器、数字信号处理器也常常被集成在一块主芯片中,如迈拓硬盘就采用了TI(Texas Instruments,美国德州仪器公司)的数字信号处理器,并将这3个部分集成在一起(只有旧型号的西部数据硬盘的电路和图1-15较为接近),其微处理器采用80C196NU芯片,数字信号处理器及接口控制器采用WD69C24芯片。

有些型号的硬盘,将ROM集成在微处理器或数字信号处理器中。在这种方式下,ROM中只有一些基本的固件程序,而主要程序则存储在磁盘服务区中。如果采用独立ROM芯片,则数字信号处理器大多采用TI的M29F102BB、WINBOND的W49L102、ATMEL的AT49F1024等电可擦写芯片。这样设计的好处是硬盘厂商在发现问题时可以让用户使用像刷写主板BIOS一样的方法来更新硬盘的ROM。

IBM AVER系列硬盘电路板的正、反面如图1-16和图1-17所示。

图1-16 IBM AVER系列硬盘电路板正面

图1-17 IBM AVER系列硬盘电路板背面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux CentOs7 安装Mysql(5.7和8.0版本)密码修改 超详细教程

CSDN 成就一亿技术人! 今天出一期Centos下安装Mysql(详细教程)包括数据库密码跳过修改 CSDN 成就一亿技术人! 目录 1.获取安装包 2.安装程序 安装下载的rpm包 查看安装包 修改5.7版本(重要) 安装M…

如何生成漂亮的静态文档说明页

分享:如何生成漂亮的静态文档说明页 最近经常被问 https://t.itmuch.com/doc.html 文档页是怎么制作的,考虑到步骤略复杂,写篇手记总结下吧。 TIPS https://t.itmuch.com/doc.html 是个人在慕课网视频《 面向未来微服务:Spring Cloud Alibab…

二叉树堆的应用实例分析:堆排序 | TOP-K问题

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 前言一、堆排序1.1 排序思想1.2 堆排序过程(图解)1.3 堆排序代…

C++ 数论相关题目(欧拉函数、筛法求欧拉函数)

1、欧拉函数 给定 n 个正整数 ai ,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N) 。 若在算数基本定理中,Npa11pa22…pamm ,则: ϕ(N) Np1−1p1p2−1p2…pm−1p…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时,构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据,需要确定满…

b+树的理解

二叉树: 每个节点支持两个分支的树结构,相比于单向链表,多了一个分支。 二叉查找树: 在二叉树的基础上增加了一个规则,左子树的所有节点都小于它的根节点,右子树的所有节点都大于他的根节点。 二叉查找树…

Flutter中实现中国省份地图

效果展示(这里只展示局部,完全展示违规): 可以点击省份改变颜色,更多功能可以自行拓展。 注:非完整中国地图!!! 本文用于记录在Flutter项目中安卓端实现中国地图,因为实现过程是通过…

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现GRU-Attention-Adaboost基于门控循环单元融合注意力机制的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 …

【Linux C | 进程】Linux 进程间通信的10种方式(2)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

手写一个图形验证码

文章目录 需求分析 需求 使用 JS 写一个验证码&#xff0c;并在前端进行校验 分析 新建文件 VueImageVerify.vue <template><div class"img-verify"><canvas ref"verify" :width"state.width" :height"state.height&qu…

OpenCV-Python(51):基于Haar特征分类器的面部检测

目标 学习了解Haar 特征分类器为基础的面部检测技术将面部检测扩展到眼部检测等。 基础 以Haar 特征分类器为基础的对象检测技术是一种非常有效的对象检测技术(2001 年Paul_Viola 和Michael_Jones 提出)。它是基于机器学习的,通过使用大量的正负样本图像训练得到一个cascade_…

socket以及字节序

1. socket 介绍&#xff1a; 简介&#xff1a; 所谓 socket&#xff08; 套接字&#xff09;&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的 端点的抽象。 一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所…

推荐一个还可以的windows ssh工具

1.下载 https://github.com/kingToolbox/WindTerm/releases 2.解压 3.使用 上传 下载都很快 比cmd窗口好用 当然和finalshell有点像

Linux编辑器vim(含vim的配置)

文章目录 前言vim的基本概念vim基本操作进入vim模式切换退出vim vim指令vim命令模式指令vim底行模式命令 简单vim配置 前言 本篇文章&#xff0c;小编将介绍Linux编辑器–>vim以及vim的配置。 vim的基本概念 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动&#xf…

云贝教育 |【分享课】1月25日Oracle分享主题:Oracle 单实例DG

分享主题&#xff1a;Oracle 19c 单实例DG-1 讲师&#xff1a;刘峰 直播时间&#xff1a;1月25日周四19:30 直播平台&#xff1a;微信视频号 云贝学院

(更新)“高铁开通”地级市-多期DID工具变量(2000-2022年)

参照卞元超&#xff08;2019&#xff09;、邓慧慧&#xff08;2020&#xff09;、汪克亮&#xff08;2021&#xff09;等人做法&#xff0c;将开通高铁的城市作为处理组&#xff0c;未开通高铁的城市作为对照组。地级市开通高铁之后的DID赋值为1&#xff0c;未开通则赋值为0 一…

云计算中的出口数据是指什么?

谷歌云&#xff08;Google Cloud&#xff09;近日宣布了一项重大政策变动&#xff0c;决定免除那些选择终止使用其服务并将数据迁移到其他云服务商或本地环境的客户的出口数据费用&#xff08;数据导出费用&#xff09;。 这一举措由谷歌云平台负责人阿米特扎维里&#xff08;A…

docker 基础手册

文章目录 docker 基础手册docker 容器技术镜像与容器容器与虚拟机docker 引擎docker 架构docker 底层技术docker 二进制安装docker 镜像加速docker 相关链接docker 生态 docker 基础手册 docker 容器技术 开源的容器项目&#xff0c;使用 Go 语言开发原意“码头工人”&#x…

SpringBoot责任链与自定义注解:优雅解耦复杂业务

引言 责任链模式是一种行为设计模式&#xff0c;它允许你将请求沿着处理者链进行传递&#xff0c;直到有一个处理者处理请求。在实际应用中&#xff0c;责任链模式常用于解耦发送者和接收者&#xff0c;使得请求可以按照一定的规则被多个处理者依次处理。 首先&#xff0c;本…

【LeetCode】104. 二叉树的最大深度(简单)——代码随想录算法训练营Day16

题目链接&#xff1a;104. 二叉树的最大深度 题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例…