Chinaunix首页 | 论坛 | 博客

分类: LINUX

2011-07-29 23:25:52

   操作系统式如何调用不同类型的硬件并使其工作的?
我们都知道硬件的类型有很多,那么要想使开发的操作系统能够良好
的支持并且调用硬件工作是不可能的,所以我们需要一个中间程序,
这个程序就是驱动,驱动是内核的一部分
 
 
linux中常见的硬盘接口有以下几种:
ATA(IDE) : 并行设备   理论速度--》133M/S
SATA:         串行设备   理论速度--》300M/S
SCSI:         并行设备   硬盘本身有一个芯片,大大减少了 
   
        cpu在对I/O设备控制的时间企业级使用 价格昂贵
SAS:
USB:
 
 
按照接口方式不同linux中把IDE接口类型定义为  /dev/hda
其他的被定义为                             /dev/sda
/dev/hda1 ..../dev/hda4                    主分区
/dev/hda5......                            逻辑分区
 
 
linux下能识别的文件系统类型:
ext3 ext2 ext4 xfs jfs reiserfs iso9660 swap vfat
fdisk -l   ...............查看当前系统硬盘设备和分区信息
 

每块硬盘的零磁道零扇区大小512K ,其中446K为bootloader
64给了分区,每个分区信息占用16K,这就是我们只能创建四个主
分区的原因
 
 
partprobe /dev/sda ........通知系统重读这块磁盘的分区表
 
mkfs       .................创建文件系统
         -t.................指定文件系统类型
         -c.................创建前先检查磁盘坏道(很慢)
 
mkfs -t  ext2 /dev/sda5..........分区创建后创建文件系统

blkid      ..................识别块设备,显示其UUID信息
mke2fs    ...................专门用于创建ext2/ext3文件系统
         -b .................指定创建时候的块(block)大小
        
         -j ................创建ext3文件系统
         -l .................给分区一个卷标
         -i .................inode 比率
         -n..................明确指定分多少inode
         -m..................改变管理员预留空间(默认5%)
 
 
mke2fs -b 2048 -L MYDATE -j /dev/sda5........
fsck     ....................用于检查文件系统
        -t ..................指定类型
 
 

tune2fs ......................修改创建时的一些属性
tune2fs -j /dev/sda5...........变为ext3文件系统
        -L  ...................改变卷标
      
        -l....................查看超级块信息
         -m...................修改管理员预留空间
        -o ....................设定这个分区的默认挂载选项
 
 
exlabel /dev/sda5  ............查看卷标
exlabel  /dev/sda5  zhangjibo....修改卷标
 
 

mount  -r  .....................只读挂载
 
       -t .......................指定文件类型
单独用mount......................显示的是/etc/mtab文件信息
包括分区,分区挂载点,文件类型
        -n .....................指定不在/etc/mtab写入挂载
信息
        -o .....................指定挂载选项
          async :异步写入  写入文件时可以在内存中缓存
           noatime..............关闭访问时间更新功能
          exec..................是否允许二进制文件自动执行
 
 
mount -o ro /dev/sda5 /mydate  ....指定只读  
mount -o remount,rw /dev/sda5  .....重新挂载    
 
  
cat /etc/fstab(很重要的一个文件) ................查看启动
过程中所有可以自动挂载的分区
 

fuser -v /mydate ................查看谁在访问当前挂载目录
fuser -km /mydate................直接剔除正在使用目录的用户
 
 
 
虚拟内存的两种创建方法:

第一 --》在磁盘上创建一片空间
  1),创建一个分区
  2),创建的过程要修改其ID号为82
  3),partprobe  /dev/sda  重读分区表
  4),  mkswap (-L 指定卷标) /dev/sda5  创建分区系统
  5), swapon /dev/sda5  (关闭用swapoff)
如果想开机自动挂载则要写入文件/etc/fstab
 
 
第二种:在磁盘没有剩余空间的时候
  1),dd if=/etc/zero of=/tmp/file bs=1024 count=10000
  2) , mkswap /tmp/swapfile
  3), swapon /tmp/swapfile(关闭则用swapoff)
 
dd --》实际是一个拷贝的命令,直接拷贝01代码过去,所以可以创
建IO镜像,甚至还可以备份硬盘MBR...
 

 
阅读(1686) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~