IDE的使用方法!

IDE的使用方法!,第1张

IDE是数据线,用于硬盘光驱,传输数据用的! 详细: IDE的多种含义解释一:

集成设备电路,Integrated Device Electronics,一般叫做IDE总线,但是更准确地应该是ATA。IDE总线是平行总线,在SATA(Serial ATA)引入后,Parallel ATA(IDE)被称为PATA.它一般会作为ATA硬件的接口,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。

它有3个传输模式:PIO,Multiword DMA和Ultra DMA.

解释二:

集成开发环境,Integrated Development Environment,可以辅助开发程式的应用软件(详细见百度百科之集成开发环境) [编辑本段]IDE ATA/ATAPI控制器 PIO的英文拼写是“Programming Input/Output Model”,PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据传输模式,数据传输速率低下,CPU占有率也很高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其它的 *** 作。PIO数据传输模式又分为PIO mode 0[3.3MB/S]、PIO mode 1[5.2MB/S]、PIO mode 2[8.3MB/S]、PIO mode 3[11.1MB/S]、PIO mode 4[16.7MB/S]几种模式,数据传输速率从3.3MB/s到16.6MB/s不等。受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰。

IDE架构剖析与发展趋势

Enhanced IDE接口历史(一)

1. AT ATTACHMENT (ATA):ATA接口是个人电脑上最具有实力的存储接口,ATA接口早先被广泛应用于IBM及其兼容机,它被定义为标准的硬盘接口。

2. ATA-1:ATA硬盘接口的第一代标准ANSI X3.279-1994,也就是早期的IDE接口。

3. ATA-2:ATA硬盘接口的第二代标准ANSI X3.279-1995,就是大家所知道的Fast ATA或者称之为Enhanced IDE(EIDE)接口。

4. Apple-ATA:Apple上使用的ATA接口,当然也是由标准的ATA接口演化而来的,在ANSI的国际标准提案申请为X3T9.2/90-143.Revision 3.1,这一个由标准ATA接口规格演化而来Apple-ATA支持IDE接口的硬盘LBA驱动模式,但是没有支持ATATP。

5. ATA-3:ATA硬盘接口的第三代标准ANSI X3T13/2008D Revision 7(draft),同样包含在Fast ATA或Enhanced IDE的接口之中,一般使用者大多都知道Fast ATA或是Enhanced IDE接口,而对原来Fast ATA或Enhanced IDE接口居然还包括了ATA-2以及ATA-3两组国际标准。

6. ATAPI:AT Attachment Packet Interface,这是ATA Protocol的延伸,被定义用来支持CD-ROM光驱以及Tape磁带机,这一个ATAPI Protocol容许硬盘以外的设备使用ATA数据线。

7. ATA/ATAPI-4:ATA硬盘接口的第四代标准ANSI X3T13/D96153(draft),也就是大家所知道的Ultra ATA或是Ultra DMA,这一个版本支持33MB/sec的数据传输率(in burst mode),相信各位读者对ATA-4/Ultra DMA都是比较熟悉的了。

8. ATA/ATAPI-5:这是目前ATA硬盘接口的比较新的一代标准,这一规格里规定的数据流传输速率(in burst mode)为66MB/sec,并且加强了内部资料的检查与错误修正的算法,强化了资料的完整性和可靠性。

9. ATA/ATAPI-6:还有更新的一个标准,是ATA/ATAPI-5的改进,这一规格里规定的数据流传输速率(in burst mode)为100MB/sec。

表一:

PIO驱动模式的资料传输速率

PIO Mode Cycle time Transfer Rate

PIO Mode 0 600ns 3.3Mbytes/sec

PIO Mode 1 383ns 5.2Mbytes/sec

PIO Mode 2 240ns 8.3Mbytes/sec

PIO Mode 3 180ns 11.1Mbytes/sec

PIO Mode 4 120ns 16.6Mbytes/sec

Enhanced IDE接口发展至今,ULTRA DIRECT MEMORY ACCESS(ULTRA-DMA)的是目前最新的目前大家最为熟悉的就是Ultra-DMA的资料传输率最高可以达到ATA-3标准的四倍,也就是66.6Mbytes/sec。

实际上硬盘接口的鼻祖,除了SCSI界面以外,就是MFM/ST-506 Bus接口了,后来经过不断的演变才演进成为今天的Enhanced IDE接口,而在Enhanced IDE之前的IDE/AT-BUS接口,则仅仅提供了PIO驱动模式,而没有DMA驱动模式,这两种驱动模式简单来讲区别主要是在数据传输时是否需要CPU来控制。在PIO模式下,任何一个硬盘的读取动作,都必须经过CPU来控制管理,所以只要硬盘读写动作频繁的时候,CPU的资源就被大量的消耗,进而降低了电脑整体的效率。而在DMA模式下,硬盘和内存之间的数据可以直接交换,这样就不会占用CPU的资源,提高了电脑的整体效率。读者千万不要忽略掉从PIO到DMA的进步,事实上个人电脑内的任何一个动作都必须运用系统的内存,毕竟CPU内部的缓存器容量太小了,所以凡是程序的读取、运算都必须在内存上 *** 作,这样从硬盘到内存的数据交换就会非常频繁,所以简化这么一步对于电脑整体性能的提高还是非常突出的。

以前硬盘采用PIO模式的时候,只要一开始大量的硬盘读写 *** 作,就会使得电脑的性能急剧下降,让人感觉电脑总在等待什么似的,实际上SCSI接口一开始也是采用PIO模式,后来也演变成了DMA模式,IDE/AT-BUS接口也不例外,到了PIO Mode 4驱动模式之后,IDE/AT-BUS接口已经成功的演化成为Enhanced IDE接口,驱动模式也由PIO Mode 4升级为Multi-word DMA Mode2,原本预计还有一个PIO Mode 5会问世的,但是DMA Mode已经出现,PIO Mode已经没有市场了。

所以读者可以认为Enhanced IDE接口的特点主要在于:驱动模式的改变,增加了对非硬盘存储设备的支持等,而且原本是一组的IDE界面现在也增加到了两组。

DMA的全名为Direct Memory Access直接内存存取,采用DMA驱动模式以后,CPU不再象往常那样需要花费相当多的时间在硬盘的O/I *** 作上,DMA的意义就是在于让硬盘和内存直接沟通,所有的硬盘 *** 作都不需要占用太多的CPU时间。

接着让我们来看看DMA Mode的相关资料。

DMA驱动模式资料传输速率

DMA Mode I/O Cycle time Transfer Rate

Single-word DMA Mode 0 900ns 2.1 Mbytes/sec

Single-word DMA Mode 1 480ns 4.2 Mbytes/sec

Single-word DMA Mode 2 240ns 8.4 Mbytes/sec

Multi-word DMA Mode 0 480ns 4.2 Mbytes/sec [编辑本段]IDE RAID是什么 RAID(Redundant Array of Inexpensive Disks)磁盘阵列是一种由多块廉价硬盘构成的冗余阵列,RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。组建RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID对服务器/工作站是一项很重要的技术,目前的服务器RAID主要可分为IDE、SCSI、SATA三大类产品,下面我们就先来了解一下IDE RAID芯片,以便您能对RAID这种技术和产品有更深入的了解。

与SCSI RAID相比,IDE RAID具有极低的价格,和一点也不逊色的性能表现,IDE RAID具有SCSI RAID无法比拟的高性价比。IDE RAID自推出后,受到工作站用户和普通商业应用的普遍欢迎。也正是IDE RAID的出现,让RAID对于普通的商业用户来说再也不是什么奢侈的技术,通过使用IDE磁盘阵列就可以让你的机器性能更高、速度更快、稳定性更强。

Linux如何使用IDE RAID

RAID卡几乎已经成为服务器的标准配置了,RAID卡不但可以大大提高数据的安全,还可以大幅提高硬盘读写性能,从而提供服务器的整体性能和可靠性。

Linux很早就提供对RAID的支持,不但支持RAID卡,也支持软RAID,不过软RAID实在是比不上硬RAID.早期的RAID卡都是用于scsi系统的,性能好,可惜价格高昂,而且scsi硬盘也大大贵过ide硬盘。

近年来,市场上出现了ide RAID卡,配合新一代的高速ide硬盘的降价,一些入门级的服务器和工作站开始考虑采用ide RAID系统。

ide RAID系统相对scsi RAID而言,性能稍差,但价格相当低廉,实在是DIY友的利器。ide RAID卡的代表是promise fasttrak100.我就以此为例,介绍IDE RAID卡在Linux上的应用。

Linux的2.4.x核心开始支持ide RAID卡promise fasttrak系列产品。但有少少问题,可能会导致有些型号工作不稳定,推荐使用promise公司提供的驱动。

promise提供单cpu的驱动ftrh71_120b5.zip。它提供对fasttrak100TX2/LP/100的支持,可用在redhat 6.2和redhat 7.x上。

promise提供多cpu的驱动FTv120b3RHsmp.TAR。它提供对 fasttrak100TX2/66/100的支持,可用在redhat 6.2和redhat 7.0上。

如果你的promise ide RAID卡上的芯片是PDC20262和PDC20265,厂家建议你用redhat 7.0,因为可启动的scsi模块只支持单cpu,不支持smp.

现在我们来用单cpu的驱动来介绍安装。

你需要两张空白的,用dos格式化的软盘。解压文件ftrh71_120b5.zip后,可以看到几个文件。看到disk1.img和disk2.zip了吧。可在dos下用rawrite.exe工具来把disk1.img写进disk1软盘中。

Linux用户就更好办:

dd if=disk.img of=/dev/fd0,要注意先不要把软盘mount上。接下来,解压disk2.zip,把生成的文件拷贝到disk2软盘中。如果你有一个安装好的Linux系统,想把fasttrak的驱动加进系统,从disk2软盘上找到scsi_mod.o和ft.o两个模块。

insmod scsi_mod.o

insmod ft.o

用lsmod检查一下是不是加载成功。如果你想在新的ide RAID系统上安装新的Linux系统的话,就要麻烦一点。首先在ide RAID卡的cmos中选择RAID方式和其它设置,如块的大小等。把disk1软盘插进软驱,开始安装。disk1软盘包含了redhat的启动部分,可以当作redhat 7.x的安装启动软盘。

正常安装系统

当系统安装接近完毕,显示“Congratulations”的时候

按Ctrl+Alt+F2进入命令行模式

更换disk2软盘

chroot /mnt/sysimage

mount -t vfat /dev/fd0 /mnt/floppy

cd /mnt/floppy

./setup-ft

完成后按Ctrl+Alt+F1,会到正常安装模式,继续进行完成安装。 [编辑本段]IDE 集成开发环境 较早期程序设计的各个阶段都要用不同的软件来进行处理,如先用字处理软件编辑源程序,然后用链接程序进行函数、模块连接,再用编译程序进行编译,开发者必须在几种软件间来回切换 *** 作。现在的编程开发软件将编辑、编译、调试等功能集成在一个桌面环境中,这样就大大方便了用户。

集成开发环境(简称IDE Integrated Develop Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开以环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。例如,BASIC语言在微软办公软件中可以使用,可以在微软Word文档中编写WordBasic程序。IDE为用户使用Visual Basic、Java和PowerBuilder等现代编程语言提供了方便。 不同的技术体系有不同的IDE。比如visual studio.Net可以称为C++、VB、C#等语言的集成开发环境,所以visual studio.Net可以叫做IDE。同样,Borland的JBuilder也是一个IDE,它是Java的IDE。zend studio、editplus、ultraedit这些,每一个都具备基本的编码、调试功能,所以每一个都可以称作IDE。

IDE有三项必须集成的基本功能:“编辑器”、“编译/链接器”、“调试器”。还有一些更强大的功能,如:代码提示、项目管理、界面设计、建模功能

IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver、FrontPage(Sharepointdesigner),等等),因为很多脚本可以自动生成。

GRLB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。

内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能,比如硬件驱动会编译为模块,则在需要时由内核调用。不过,如果没有被内核硬件,要想驱动,就需要手工安装个硬件的硬块了。具体的安装方法会在后续章节中介绍)。

那么,Linux 的内核到底放在了哪里呢?当然是 /boot 的启动目录中了,我们来看看这个目录下的内容吧。

[root@localhost ~]#ls /boot/

config-2.6.32-279.el6.i686

#内核的配置文件,内核编译时选择的功能与模块

efi

#可扩展固件接口,为英特尔为全新PC固件的体系结构、接口和服务提出的建议标准

grub

#启动引导程GTUB的数据目录

initramfe-2.6.32-279.el6.i686.img

#虚拟文件系统(CentOS 6.x 中用initramfs替代了initrd,但功能是一样的)

lost+found

故boot分区的备份目录

symvers-2_6.32-279.el6.i686.gz

#模块符号信息

System.map-2.6.32-279.el6.i686

#内核功能和内存地址的对应列表

vmlinuz-2.6.32-279.el6.i686

#用于启动的Linux内核。这个文件是一个压缩的内核镜像

我们已经知道,Linux 会把不重要的功能编译成内核模块,在需要时再调用,从而保证了内核不会过大。在多数 Linux 中,都会把硬件的驱动程序编译为模块, 这些模块保存在 /lib/modules/ 目录中。常见的 USB、SATA 和 SCSI 等硬盘设备的驱动,还有一些特殊的文件系统(如 LVM、RAID 等)的驱动,都是以模块的方式来保存的。

如果 Linux 安装在 IDE 硬盘之上,并且采用的是默认的 ext3/4 文件系统,那么内核启动后加载根分区和模块的加载都没有什么问题,系统会顺利启动。但是如果 Linux 安装在 SCSI 硬盘之上,或者采用的是 LVM 文件系统,那么内核(内核加载入内存是启动引导程序 GRUB 调用的,并不存在硬盘驱动不识别的问题)在加载根目录之前是需要加载 SCSI 硬盘或 LVM 文件系统的驱动的。

SCSI 硬盘和 LVM 文件系统的驱动都放在硬盘的 /lib/modules/ 目录中,既然内核没有办法识别 SCSI 硬盘或 LVM 文件系统,那怎么可能读取 /lib/modules/ 目录中的驱动呢?Linux 给出的解决办法是使用 initramfs 这个虚拟文件系统来处理这个问题。

initramfe虚拟文件系统

CentOS 6.x 中使用 initramfs 虚拟文件系统取代了 CentOS 5.x 中的 initrd RAM Disk。它们的作用类似,可以通过启动引导程序加载到内存中,然后会解压缩并在内存中仿真成一个根目录,并且这个仿真的文件系统能够提供一个可执行程序,通过该程序来加载启动过程中所需的内核模块,比如 USB、SATA. SCSI 硬盘的驱动和 LVM、RAID 文件系统的驱动。

也就是说,通过 initramfs 虚拟文件系统在内存中模拟出一个根目录,然后在这个模拟根目录中加载 SCSI 等硬件的驱动,就可以加载真正的根目录了,之后才能调用 Linux 的第一个进程 /sbin/init。

Initramfs 虚拟文件系统主要有以下优点:

initramfs 随着其中数据的増减自动増减容量。

在 initramfs 和页面缓存之间没有重复数据。

initramfs 重复利用了 Linux caching 的代码,因此几乎没有増加内核尺寸,而 caching 的代码已经经过良好测试,所以 initramfs 的代码质量也有保证。

不需要额外的文件系统驱动。

其实大家只需要知道 initramfs 是为了在内核中建立一个模拟根目录,这个模拟根目录是为了可以调用 USB、SATA、SCSI、LVM、RAID 等硬盘接口或文件系统的驱动模块,加载了驱动模块后才可以加载真正的系统根目录。我们可以通过示意图 1 来表示这个过程。

图 1 内核启动流程

那么既然 initramfs 是一个仿真根目录,那么我们是否可以看看这个仿真根目录中到底是什么样子的呢?当然可以,命令如下:

[root@localhost ~]# mkdir /tmp/initramfs

#建立测试目录

[root@localhost ~]# cp/boot/

initramfs-2.6.32-279.el6.i686.img/tmp/initramfs/

#复制initramfs文件

[root@localhost ~]# cd /tmp/initramfs/

[root@localhost initramfs]# file

initramfs-2.6.32-279.el6.i686.img

initramfe-2.6.32-279.el6.i686.img:gzip compressed

data,from Unix,last modified:

Wed Apr 10 21:49:34 2013, max compression

#查看文件类型,发现这个文件是一个使用gzip命令打包的压缩包

[root@localhost initramfs]# mv initramfs-2.6.32-279.el6.i686.imginitramfs-2.6.32-279.el6.i686.img.gz

#修改文件的扩展名为.gz

[root@localhost initramfs]# gunzip

initramfs-2.6.32-279.el6.i686.img.gz

#解压缩

[root@localhost initramfs]# ls

initramfs-2.6.32-279.el6.i686.img

[root@localhost initramfs]# file

initramfs-2.6.32-279.el6.i686.img

initramfe-2.6.32-279.el6.i686.img: ASCII cpio archive (SVR4withnoCRC)

#查看文件类型,使用cpio命令的压缩文件

[root@localhost initramfs]# cpio -ivcdu <initramfs-2.6.32-279.el6.i686.img

#解压缩

[root@localhost initramfs]#ll

总用量34512

drwxr-xr-x. 2 root root 4096 4月 2412:10 bin

drwxr-xr-x. 2 root root 4096 4 月 24 12:10 cmdline

drwxr-xr-x. 3 root root 4096 4月 24 12:10 dev

-rw-r--r--. 1 root root 19 4 月 24 12:10 dracut-004-283.el6

drwxr-xr-x. 2 root root 4096 4 月 24 12:10 emergency

drwxr-xr-x. 7 root root 4096 4月 24 12:10 etc

-rwxr-xr-x. 1 root root 8962 4月 24 12:10 init

drwxr-xr-x. 2 root root 4096 4 月 24 12:10 initqueue

drwxr-xr-x. 2 root root 4096 4 月 24 12:10 initqueue-finished

drwxr-xr-x. 2 root root 4096 4 月 24 12:10 initqueue-settled

drwxr-xr-x. 2 root root 4096 4 月 24 12:10

initqueue-timeout

-rw-r--r--. 1 root root 35235328 4 月 24 12:09 initramfs-2.6.32-279.el6.i686.img

drwxr-xr-x. 9 root root 4096 4月 2412:10 lib

…省略部分输出…

#这就是initramfs虚拟文件系统中的内容,和根目录是不是很像

关机或者某些进程停止,对应的内核模块就会结束。更多知识请百度《Linux就该这么学》

IDE的话,CodeBlock、eclipse都很好用。事实上Linux下写代码,很少说用IDE的,一般就是各种编辑器(vim、emacs、kate什么的),加上GDB调试,自己写makefile编译。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7427904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存