计算机网络之以太网,通俗点的说法

本文引用地址: http://www.21ic.com/app/rf/201111/98183.htm

计算机网络技术是将这些元素粘合在一起的粘合剂。世界各地的公司通过公共互联网可以彼此共享信息并与其客户共享信息。全球计算机网络又称作“万维网”,借助它提供的服务,客户可以在网络上购买图书、衣服甚至是汽车,也可以将自己不再需要的上述物品放在网络上拍卖。

在本文中,我们将深入介绍网络的相关知识,尤其是以太网的网络标准,便于您理解所有计算机为何能够相连的幕后机制。

以太网工作原理

网络的作用

网络使得两台计算机能够相互发送和接收信息。我们并不总是能够意识到我们在频繁访问网络上的信息。互联网可以说是一个最显著的计算机网络例子,它将世界上数以百万计的计算机连接在一起,但是在我们每天获取信息时发挥作用的经常是一些较小型的网络。许多公共图书馆已经将它们的卡片目录换成了计算机终端,读者可以更快、更容易地搜索图书。机场设置了众多的显示屏,向旅客告知到港航班和离港航班的信息。许多零售店也使用专用计算机来处理POS事务。在上述情况下,都是网络将位于多个位置的不同设备连接在一起,便于人们访问某个共享的数据库。

在介绍以太网这样的网络标准细节之前,我们必须首先了解一些基本术语及其解释,它们描述了不同的网络技术及其相互间的差异——下面就让我们开始吧!


局域网和广域网

我们可将网络技术划分为以下两组基本技术之一:局域网(LAN)技术,可在相对较近的距离内(通常在同一个建筑物内)将许多设备连接在一起。图书馆中用来显示图书信息的终端计算机便可连接到局域网上。广域网(WAN)技术,可将相距几十公里的设备连接在一起,但能够连接的设备数量较少。例如,如果两个位于城市两端的图书馆希望共享图书目录信息,那么便可以使用广域网技术进行连接,这可能需要从当地电话公司租用一条专线来专门传输它们的数据。

与广域网相比,局域网的速度更快,也更为可靠,但是技术的不断发展已经使它们之间的界限变得越来越模糊。借助光纤,可使用局域网技术连接相距数十公里远的设备,同时还能极大地提升广域网的速度和可靠性。

以太网

1973年,施乐(Xerox)公司Palo Alto研究中心(通常称作PARC)的研究人员Bob Metcalfe设计并测试了第一个以太网网络。当时,这个网络将施乐的“Alto”计算机连接到一台打印机,Metcalfe开发了用于连接以太网上设备的电缆连接物理方法,以及用于控制电缆上数据传输的标准。现在,以太网已经成为了世界上最流行和应用最广泛的网络技术。以太网涉及的许多问题也是其他许多网络技术所要解决的问题,了解以太网解决这些问题的方法可以从整体上帮助你改善对网络的理解。

随着计算机网络的日益成熟,以太网标准也在不断发展出一些新的技术,但是目前所有以太网网络的运行机制仍然来源于Metcalfe的原始设计。在原始的以太网中,网络上的所有设备共享单根电缆进行通讯。设备连接到该电缆,便能够与其他连接的设备通信。这样,可以在不对网络上现有设备进行任何修改的情况下扩展网络以接纳新设备。

以太网基本知识

以太网是一种局域网技术,网络一般分布在一座大楼中,所连接的设备通常距离较近。以太网设备之间的电缆最多长几百米,因此它不适用于连接地理位置分散的多个地点。但现代技术的进步极大提升了以太网的连接距离,今天人们已能够建立相距数十公里远的以太网网络。 
协议

对于网络连接而言,协议这一术语指的是用于控制通信的一组规则。协议对于计算机的意义就如同语言对于人类的意义。由于本文使用中文撰写,要理解文章的内容你必须能够读懂中文。类似地,网络上的两台设备要想成功通信,必须都理解相同的协议。

以太网术语

以太网遵循一组控制其基本操作的简单规则。为了更好地理解这些规则,了解基本的以太网术语十分重要。 
介质——以太网设备连接到一个公共介质上,该介质为电气信号的传输提供了一条路径。历史上一直使用同轴铜电缆作为传输介质,但是目前双绞线或光纤更为多见。 
网段——我们将单个共享介质称作一个以太网段。 
节点——连接到网段的设备称作站点或节点。 
帧——节点使用称作帧的简短消息进行通信,帧是大小不固定的信息块。 
帧类似于人类语言中的句子。在中文里,我们构造句子时会有一些规则,例如每个句子必须包含主语和谓语。以太网协议也规定了用于构造帧的一组规则。对于帧的最大和最小长度有明确规定,而且帧中必须包含一组必需的信息段。例如,每个帧必须包括目标地址和源地址,它们分别指出了消息的接收方和发送方。通过地址可标识唯一的节点,就像通过姓名可找出某个人一样。任何两个以太网设备都不应具有相同的地址。

 

由于以太网介质上的信号能够到达所有连接的节点,因此目标地址对识别帧的目标接收方来说至关重要。

 

 

例如,在上图中,如果计算机B向打印机C发送数据,计算机A和D也可以接收和查看帧。但是,在站点收到帧后,它会首先检查帧的目标地址,看看该帧是否是发送给自己的。如果不是,站点会丢弃该帧,而不会查看其内容。

以太网地址的一件有趣的事情是它存在广播地址。如果帧的目标地址为广播地址(简称为一个广播),则说明它是发送给网络上所有节点的,于是每一个节点都会接收和处理这种类型的帧。

以太网中的CSMA/CD是什么意思?

“CSMA/CD”的意思是带冲突检测的载波侦听多路访问,它描述了以太网协议控制节点间通信的方法。这个词看起来有些复杂,但如果我们将它分解几个小概念,便会发现它描述的规则十分类似于人们在进行彬彬有礼的谈话时所使用的规则。为了有助于描述以太网的操作,我们使用饭桌上的对话作为类比。

我们将以太网段表示为饭桌,让几个代表节点的人坐在饭桌旁边很有礼貌地进行谈话。多路访问这个术语涵盖了我们上面讨论的内容:在一个以太网站点传输数据时,介质上的所有站点都会听到该传输行为,就像饭桌上一个人在讲话时,所有人都能够听到他(她)的讲话一样。

现在,假设你也坐在桌旁而且有话想说。但是,当时我正在讲话。由于这是一次很有礼貌的谈话,因此你不应立即开口讲话并打断别人,而是等到我讲完后再开口。刚才描述的情况在以太网协议中称为载波侦听。在站点开始传输数据之前,它会“侦听”介质来确定其他站点是否正在进行传输。如果介质上很安静,站点便认为现在是一个适于传输数据的时间。


冲突检测

载波侦听多路访问为控制会话提供了一个好的起点,但是仍然有一个难题需要解决。让我们回到用来类比的饭桌谈话上,想想谈话中有片刻寂静的情况。你和我都有一些话想说,我们都在发生片刻寂静时“侦听到了载波”,所以我们几乎同时开始讲话。用以太网术语来说,我们同时讲话时会发生冲突。

在谈话时,我们可以很好地处理这种情况。在我们讲话的同时,都听到了对方也在讲话,因此我们都停止了讲话,以便对方能够继续。以太网节点在传输数据时也会侦听介质,确保它是在该时刻进行数据传输的唯一站点。如果站点听到它自己传输的数据以一种混乱的形式返回(如果其他站点也同时开始传输它们自己的消息便会发生这种情况),那么就知道发生了冲突。有时,我们将单个以太网段称作一个冲突区域,因为网段上的任何两个站点都无法在不产生冲突的情况下同时传输数据。如果站点检测到冲突,它们会停止传输数据,等待一个随机的时间长度,然后在检测到介质归于平静之后尝试再次传输数据。

随机暂停并重试是协议的重要组成部分。如果两个站点在进行传输时发生冲突,那么它们都需要重新进行传输。在适于传输数据的下一个时间,上次发生冲突的两个站点都会准备好数据以便进行传输。如果它们在第一次机会来到时再次传输了数据,那么很可能无限期地一次又一次发生冲突。而随机延迟则可以使任何两个站点都不会连续发生多次冲突。


以太网的缺点

单根共享电缆可作为一个完整以太网网络的基础。但在单根共享电缆的情况下,以太网网络的大小实际上存在一定的限制。主要原因在于共享电缆的长度。

电气信号可以沿电缆飞快传播,但是它们的行程却不长,而且临近设备(如荧光灯)的电气干扰还会扰乱信号。要使设备能够清楚地以最小延迟接收到对方发送的信号,网络电缆必须足够短才行。这就限制了以太网网络上两台设备之间的最大距离(称作网络直径)。此外,按照CSMA/CD方式,在任一给定时间,只能有一台设备传输信号,所以能够共存于一个网络上的设备的数量实际也存在限制。如果太多设备连接到同一个共享网段上,它们之间争用介质的现象便会增加。在有机会传输数据之前,设备可能会等待非常长的时间。

工程师们已经开发出大量网络设备来缓解这些难题。其中的许多设备并不是只针对以太网的,它们在其他网络技术中同样可以发挥作用。

转发器
最初广泛使用的以太网介质是被称作“粗电缆网”的铜制同轴电缆。这种电缆的最大长度是500米。在大型建筑或校园环境中,500米长的电缆经常不足以连接所有网络设备。但转发器可以解决这个问题。

转发器连接多个以太网段并且侦听每个网段,同时将它在某个网段上听到的信号重复发送到与转发器相连接的所有其他网段。使用多条电缆并将它们连接到转发器,可以显著延长网络直径。

网段划分

在我们用饭桌进行的比喻中,桌旁只有几个人在进行对话,任一给定时刻只能有一个人讲话的规定便不会对交流形成大的障碍。但是假如有许多人坐在桌旁并且在任一时刻只允许有一个人讲话,那又会怎么样呢?

如果是这样的话,上面的比喻肯定不再适用。实际上,有很多人参与的谈话经常会分成多个同时进行的不同谈话。在拥挤的房间内或烧烤晚宴上,如果在任一时间只能有一个人讲话,许多人会因等待说话的时间过长而感到沮丧。对人类来说,这个问题会得到自行纠正:声音的传输范围有限,而耳朵善于从环境噪声中捕捉住特定的谈话。因此,在聚会时,同一个房间的人很容易分成多个小组进行谈话。因为网络电缆可以快捷、高效地长距离传输信号,所以不会出现上面这种自然而然的分组情况。

随着规模的扩大,以太网会面临堵塞问题。如果大量站点都连接到同一网段并且每个站点都产生许多网络流量,那么在有机会发送数据时,会有很多站点尝试进行传输操作。这种情况会使冲突越来越频繁地产生,由此导致数据传输无法正常进行,完成一次成功的传输需要花费难以想象多的时间。减少堵塞的一种方法是:将单个网段划分为多个网段,从而形成多个冲突区域。这种解决办法会造成另一个问题,即这些分隔开的网段无法相互共享信息。

网桥

 

 

 

还记得以太网的多路访问和共享介质意味着线路上的所有站点会收到所有传输数据并检查自己是否是目标接收方吗?网桥便利用这个特性在各个网段间转发数据。在上图中,网桥将网段1和网段2连接在一起。如果站点A或B要发送数据,网桥将收到网段1上传输的数据,它应如何响应该流量呢?它可以像转发器一样自动将该帧发送到网段2上,但是这并不能减轻堵塞现象,因为网络现在的行为与单个长网段没有区别。

网桥的目标在于减少两个网段上不必要的网络流量。为了做到这一点,在决定如何处理帧之前,它会检查帧的目标地址。如果目标地址是站点A或B,那么便无需将帧发送到网段2上。因此,网桥不会执行任何操作。我们可以说,网桥过滤或丢弃了该帧。如果目标地址是站点C或D,或者是一个广播地址,那么网桥会将该帧传输(或者说转发)到网段2。通过转发数据包,网桥实现了上图中所有四台设备的相互通信。此外,由于网桥可以根据需要过滤掉数据包,在站点A向站点B发送数据的同时,站点C也可以向站点D发送数据,两个对话可以同时进行!

交换机是比网桥更先进的类似产品,它不仅功能与网桥相当,而且为网络上的所有节点提供了一个专用网段。

为了解决网络分段造成的问题,以太网网络使用了网桥。网桥可将两个(或更多)网段连接在一起,与转发器一样能够提高网络直径,但是网桥的不同之处在于它还有助于控制网络流量。网桥可以发送和接收传输的数据,这和其他任何节点一样,但是它在功能上与标准节点并不相同。网桥不会产生任何自己的流量,因为它与转发器相同,只是重复它从其他站点那里听到的内容。(最后一句的表述并不完全准确:网桥会产生一种特殊的以太网帧,使得它们能够与其他网桥进行通信,但是这并不属于本文的讨论范畴。)  以太网介质

 

 

 

路由器

网桥允许不同网段同时进行对话,从而减少了网络拥堵,但是它们在对流量进行分段方面存在一些局限。

网桥的一个重要特征便是:它会向所有连接的网段转发以太网广播。这种行为很有必要,因为以太网广播的目标是网络上的所有节点,但是对于过于庞大的网桥网络,这种做法也会带来问题。如果网桥网络中的大量站点都发送广播,与所有这些设备处于同一个网段中一样,会发生严重的网络拥堵。

路由器是一种高级的网络设备,可以将单个网络从逻辑上划分为两个单独的网络。尽管以太网广播可以通过网桥到达网络上的所有节点,但是它们无法通过路由器,因为路由器形成了网络的逻辑边界。

路由器所基于的协议独立于具体的网络技术(如以太网或下文要讨论的令牌环网)。它可以将使用不同网络技术的网络(不论是局域网还是广域网)轻松连接在一起。因此,它在将世界各地的设备连接到全球互联网的工作中得到了广泛应用。

请参见路由器工作原理查看对该技术的详细讨论。

交换以太网

从外表看起来,现代以太网经常完全不同于其历史前辈。早期以太网中使用长长的同轴电缆来连接多个站点,而现代化的以太网则使用双绞线或光纤以放射模式连接站点。早期以太网网络的传输速度为每秒10M,而现代以太网的传输速度为100或1,000M!

 

 

也许现代以太网中最振奋人心的技术进展应该是交换以太网的使用。交换以太网用针对每个站点的专用网段取代了早期以太网的共享介质。这些网段连接到一台交换机,该交换机工作起来非常类似于网桥,但是它可以连接众多的单站点网段。今天的某些交换机可支持数百个专用网段。网段上的设备只有交换机和终端站点,因此站点发送的所有数据到达另一个节点之前,交换机都可以首先得到它。然后,交换机会将该帧转发到相应的网段,这与网桥的作用一样,但是因为所有网段都只包含一个节点,所以只有目标节点能够接收到该帧。这样在一个交换网络上就可以同时进行许多对话。

 

全双工以太网

以太网的交换技术催生了另一项技术,即全双工以太网。全双工是一个数据通信术语,指的是能够同时发送和接收数据。

早期以太网是半双工的,也就是说在一个时间只能沿一个方向移动数据。在彻底的交换网络中,节点只能与交换机通信,而且永远不会与其他节点直接进行通信。此外,交换网络还使用双绞线或光纤,它们在发送和接收数据时使用不同的导线。在这种类型的环境中,以太网站点可以抛弃冲突检测过程并根据自身需要随时发送数据,因为它们是唯一能够访问介质的设备。因此,在终端站点向交换机发送数据时,交换机也可以向站点发送数据,这就营造了一个无冲突环境。


以太网还是802.3?

您可能听说过“802.3”这个词,它被用来取代以太网这个术语或与其结合使用。“以太网”最初指的是按照Digital、英特尔和施乐公司的标准建立的网络。(因此,它也称作DIX标准。)

1980年2月,电气及电子工程师学会(IEEE)设立了一个委员会,负责网络技术的标准化。IEEE将该委员会称为802工作组,这是以它成立日期的年和月来命名的。802工作组的附属委员会分别负责网络技术的不同方面。IEEE使用802.X这样的数字编号来区分各个附属委员会,其中的X代表每个附属委员会的唯一编号。802.3工作组对CSMA/CD网络进行了标准化,该网络的运作方式与DIX以太网相同。

以太网和802.3在术语和帧的数据格式上略有不同,但是在大部分方面都完全相同。现在,以太网这个术语已经成为了对DIX以太网和IEEE802.3标准的统称。


令牌环

可替代以太网的最常见局域网技术是由IBM开发的一种网络技术,称作令牌环。以太网通过各次传输之间的随机空隙来控制对介质的访问,而令牌环网则采用一种严格的顺序访问方法。令牌环网将节点在逻辑上排列为一个环形,如下图所示。节点围绕该环沿一个方向转发帧,并且在转发一整圈后将该帧删除。

  1. 通过创建一个令牌来对该环进行初始化,令牌是一种特殊类型的帧,只有拥有令牌的站点能够发送数据。
  2. 令牌与其他帧一样在环中循环传递,直到它遇到一个希望发送数据的站点。
  3. 然后,该站点“捕获”令牌,方法是用一个携带数据的帧来替换令牌帧,该携带数据的帧将环绕网络进行传递。
  4. 在数据帧返回发送它的站点后,该站点会删除该数据帧,然后创建一个新令牌并将该令牌转发到环中的下一个节点。

令牌环网中的节点不侦听载波信号或检测冲突,使用令牌帧的目的就在于保证站点能够发送数据帧而无需担心其他站点的干扰。由于在沿着环传递令牌之前站点只能发送一个数据帧,所以环中的所有站点都会被轮到,从而能够公平地轮流进行通信。令牌环网的数据传输速率通常为4或16M。

 

 

光纤分布数据接口(FDDI)是另外一种令牌传递技术,它使用一对光纤环,两个环以相反方向各自传递一个令牌。FDDI网络的传输速度为100M,这使它们成为了当时最流行的高速网络。但是随着更便宜、更易于管理的100M以太网的出现,FDDI已经日趋衰落。

异步传输模式

我们要介绍的最后一种网络技术是异步传输模式,即ATM。ATM网络模糊了局域网和广域网之间的界限,它能够连接多种不同设备,而且具有高可靠性和高速度,即便是横跨整个国家/地区也是如此。ATM网络不但适于传输数据,而且适于传输语音和视频数据,因此用途广泛且易于扩展。ATM尽管并没有像当初预计那样迅速地为人接受,但仍然是一种能满足未来需要的可靠网络技术。

以太网目前仍然受到广泛欢迎。30年来,以太网标准得到了整个行业的广泛接受,它广为人知并被人深刻理解;这使得其配置和故障排除过程都很轻松。随着其他技术的不断进步,以太网也将与时俱进,在速度和功能上更上一层楼。

 

转载于:https://www.cnblogs.com/blogwangwang/p/9662570.html

[编辑本段]Turbo C2.0    介绍      Turbo C2.0不仅是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。    基本配置要求   Turbo C 2.0可运行于IBM-PC系列微机,包括XT,AT及IBM 兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。 [编辑本段]Turbo C 2.0的主要文件的简单介绍   INSTALL.EXE 安装程序文件   TC.EXE 集成编译   TCINST.EXE 集成开发环境的配置设置程序   TCHELP.TCH 帮助文件   THELP.COM 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件   TCCONFIG.EXE 配置文件转换程序MAKE.EXE   项目管理工具TCC.EXE   命令行编译TLINK.EXE   Turbo C系列连接器TLIB.EXE   Turbo C系列库管理工具C0?.OBJ 不   同模式启动代码C?.LIB   不同模式运行库GRAPHICS.LIB   图形库EMU.LIB   8087仿真库FP87.LIB 8087库   *.H Turbo C头文件   *.BGI 不同显示器图形驱动程序   *.C Turbo C例行程序(源文件)   其中:上面的?分别为:T Tiny(微型模式)S Small(小模式)C Compact(紧凑模式)M Medium(中型模式)L Large(大模式)H Huge(巨大模式)    Turbo C++ 3.0   “Turbo C++ 3.0”软件是Borland公司在1992年推出的强大的——C语言程序设计与C++面向对象程序设计 的集成开发工具。它只需要修改一个设置选项,就能够在同一个IDE集成开发环境下设计和编译以标准 C 和 C++ 语法设计的程序文件。 [编辑本段]C 语言   C语言起始于1968年发表的CPL语言,它的许多重要思想都来自于Martin Richards在1969年研制的BCPL语言,以及以BCPL语言为基础的与Ken Thompson在1970年研制的B语言。Ken Thompson用B语言写了第一个UNIX操作系统。M.M.Ritchie1972年在B语言的基础上研制了C语言,并用C语言写成了第一个在PDP-11计算机上研制的UNIX操作系统。1977年出现了独立于极其的C语言编译文本《看移植C语言编译程序》,从而大大简化了把C语言编译程序移植到新环境中所做的工作,这本身也就使UNIX的日益广泛使用,C语言也迅速得到推广。   1983年美国国家标准化协会(ANSI)根据C语言问世以来的各种版本,对C语言的发展和扩充制定了新的标准,成为ANSI C。1987年ANSI又公布了新标准————87ANSI C。   目前在微型计算机上使用的有Microsoft C、Quick C、Turbo C等多种版本。这些不同的C语言版本,基本部分是相同的,但是在有关规定上有略有差异。   C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了,象PC- DOS ,WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点:   1. C是中级语言   它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。   2. C是结构式语言   结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。   3. C语言功能齐全   C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。   4. C语言适用范围大   C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。   C语言的优点很多,但是也存在一些缺点,如运算优先级太多,运算能力方面不像其它高级语言那样强,语法定义不严格等。但是这些都不能阻止C语言成为一门广受欢迎的计算机编程语言
Turbo C2.0 介绍   Turbo C2.0不仅是一个快捷、高效的编译程序,同时还有一个易学、易用的集成开发环境。使用Turbo C2.0无需独立地编辑、编译和连接程序,就能建立并运行C语言程序。因为这些功能都组合在Turbo 2.0的集成开发环境内,并且可以通过一个简单的主屏幕使用这些功能。 基本配置要求   Turbo C 2.0可运行于IBM-PC系列微机,包括XT,AT及IBM 兼容机。此时要求DOS2.0或更高版本支持,并至少需要448K的RAM,可在任何彩、单色80列监视器上运行。支持数学协处理器芯片,也可进行浮点仿真,这将加快程序的执行。 主要文件的简单介绍   INSTALL.EXE 安装程序文件   TC.EXE 集成编译   TCINST.EXE 集成开发环境的配置设置程序   TCHELP.TCH 帮助文件   THELP.COM 读取TCHELP.TCH的驻留程序README 关于Turbo C的信息文件   TCCONFIG.EXE 配置文件转换程序MAKE.EXE   项目管理工具TCC.EXE   命令行编译TLINK.EXE   Turbo C系列连接器TLIB.EXE   Turbo C系列库管理工具C0?.OBJ 不   同模式启动代码C?.LIB   不同模式运行库GRAPHICS.LIB   图形库EMU.LIB   8087仿真库FP87.LIB 8087库   *.H Turbo C头文件   *.BGI 不同显示器图形驱动程序   *.C Turbo C例行程序(源文件)   其中:上面的?分别为:T Tiny(微型模式)S Small(小模式)C Compact(紧凑模式)M Medium(中型模式)L Large(大模式)H Huge(巨大模式)
### 回答1: 在 TURBO C 2.0 中,您可以使用 biosdisk() 函数来格式化软盘。 下面是一段代码示例: ``` #include <stdio.h> #include <dos.h> int main() { // 定义扇区的大小 unsigned int sector_size[3] = {512, 512, 1024}; // 定义填充字节 unsigned char fill_char[3] = {0xF6, 0xF6, 0x48}; // 格式化磁道 700 的前三个扇区 for (int i = 0; i < 3; i++) { int result = biosdisk(2, 0, 70, 0, i + 1, 1, sector_size[i], fill_char[i]); if (result != 0) { printf("格式化扇区 %d 失败,返回码: %d\n", i + 1, result); } } return 0; } ``` 请注意,在使用 biosdisk() 函数之前,需要包含 dos.h 头文件。 希望这能帮到您! ### 回答2使用TURBO C 2.0语言,可以通过以下代码格式化软盘的70磁道0面,并分别格式化3个扇区,大小分别为512字节、512字节和1024字节。其中,前两个扇区使用F6填充,第三个扇区使用48填充。 ```c #include<stdlib.h> #include<stdio.h> #include<dos.h> void formatFloppyDisk(){ union REGS regs; regs.h.ah = 0x0;// To format a floppy disk, we set AH=0 regs.h.dl = 0;// Drive number (0=A, 1=B, etc.) regs.x.cx = 0;// Track number to format regs.h.dh = 0;// Head number regs.h.al = 0;// Sector size (0=default, 1=512 bytes, 2=1024 bytes, 3=2048 bytes etc.) int FILL_BYTE = 0;// The byte value to fill the sectors with during formatting int NUM_SECTORS = 3;// Number of sectors to format // To format 70th track 0th head regs.x.ax = 0x1301; // 0x13 = Reset disk system, 01H = Reset only specified drive int86(0x13, &regs, &regs); // BIOS interrupt to reset disk system for (int i=0; i<NUM_SECTORS; i++){ regs.x.ax = 0x3101; // 0x31 = Write Format, 01H = Format only current track regs.x.bx = 0x0001; // 0x00 = Drive A:, 01H = Head 1, 0 = Generate ID Field depending on the disk in the drive 1 = Keep the ID Field all zeros regs.x.cx = 0x0170; // Track number=70(0-79 range) regs.h.dh = 0x00; // Head number=0 or 1 regs.h.al = 0x02; // Control byte=always zero regs.x.dx = i+1; // Sector number starting from 1 regs.x.si = 0x0000; // segment and offset of read/write buffer regs.x.di = 0x0000; // segment and offset of result if(i == 2){ FILL_BYTE = 0x48; // Fill the third sector with 48 regs.x.ax = 0x3102; // 0x31 = Write Format, 02H = Format sequential tracks immediately following the one being formatted }else{ FILL_BYTE = 0xF6; // Fill the first two sectors with F6 } regs.h.ah = FILL_BYTE; // Fill the sector with specified byte int86(0x13, &regs, &regs); // BIOS interrupt to format the specified sector } } int main(){ formatFloppyDisk(); return 0; } ``` 上述代码使用了INT 0x13,即BIOS中断服务例程,来执行软盘格式化操作。通过设置寄存器的不同参数,可以指定要格式化的磁道、面、扇区大小和填充字节。在这个例子中,我们格式化了软盘70磁道0面的3个扇区,前两个扇区使用F6填充,第三个扇区使用48填充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值