zoukankan      html  css  js  c++  java
  • windows系统文件和linux系统文件

    windows系统文件和linux系统文件

    1、单用户操作系统和多用户操作系统

    • 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源

      • Windows XP 之前的版本都是单用户操作系统
    • 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源

      • UnixLinux 的设计初衷就是多用户操作系统

    2、windows和linux文件系统区别

    2.1 windows下的文件系统

    在windows下我们打开我的电脑就会看到一个个的驱动器盘符:

    每个驱动器都有自己的目录结构,这样形成了多个树并列的情形,如图所示:

    Windows主要目录的含义如下:

    • Program Files(x86): Program Files (x86)存放了一些32位的系统文件。它和正常的Program Files以及Windows文件夹一样,都属于系统文件夹,请勿随意改动。
    64位Windows中提供了一种技术,Windows on Windows 64(即WoW64)。它可以使32位的应用程序正常地运行在64位的Windows中,这样用户在从32位到64位过渡的过程中,不会感受到很大的不便。为了能让32位的程序正常运行,64位的Windows中自带了一大部分的32位的系统文件,当32位程序运行的时候,系统会给它[虚拟出一个32位的环境],这样32位程序会以为自己运行在32位Windows中。
    
    • Program Files: 存放一些64位的系统文件;
    Windows的系统文件主要是存放在%SystemDrive%Program Files和%Windir%System32中(即通常的C:Program Files和C:WindowsSystem32)。64位系统中,这两个文件夹存放的是64位的系统文件,为了存放32位的同名系统文件,64位系统中有另外两个文件夹与之对应,%SystemDrive%Program Files (86)和%Windir%SysWoW64(即通常的C:Program Files (86)和C:WindowsSysWoW64)。
    当32位程序需要访问Program Files或者System32中的文件时,系统会自动转向到Program Files (x86)或者SysWoW64中,这样32位的程序就可以正常的在64位Windows中运行了。
    
    • Program Files、 Program Files (x86)和Windows文件夹通常都存在于同一个盘(分区)中,如果某个盘下面只有Program Files而没有Windows的话,则它不是系统文件夹,删除后不影响系统运行,当然有可能会影响某些软件。
      此时我的硬盘中占比:
      Program Files(x86): 9.59GB(59265个文件,17622个文件夹)
      Program Files: 3.05GB(8832个文件,1873个文件夹)
      Windows: 21GB(97538个文件,23643个文件夹)
      user: 17.4GB(48835个文件,11200个文件夹)
      ProgramData: 6.15GB(33041个文件,4007个文件夹)
      Windows.old: 18.3GB(109392个文件,27525个文件夹)

    2.2 Linux下的文件系统

    在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):

    Ubantu没有盘符这个概念,只有一个根目录/,所有文件都在它下面:

    • ubantu下的用户目录
      • 位于/home/user,称之为用户工作目录或家目录,表示方式:

    /home/user

    Linux主要目录的含义如下:

    • /:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始,当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录;
    • /bin、/usr/bin:可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等;
    • /boot:放置 linux 系统启动时用到的一些文件,如 linux 的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub;
    • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt;
    • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有
    /etc/inittab
    /etc/fstab
    /etc/init.d
    /etc/X11
    /etc/sysconfig
    /etc/xinetd.d
    
    • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下
      • ~ 表示当前用户的家目录
      • ~edu 表示用户 edu 的家目录
    • /lib、/usr/lib、/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助;
    • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下;
    • /mnt、/media: 光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载;
    • /opt: 给主机额外安装软件所摆放的目录
    • /proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
    • /root: 系统管理员root的家目录
    • /sbin、/usr/sbin、/usr/local/sbin: 放置系统管理员使用的可执行命令,如 fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root 使用的命令,一般用户只能”查看”而不能设置和使用;
    • /tmp: 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下;
    • /srv: 服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
    • /usr:应用程序存放目录
    /usr/bin:存放应用程序
    /usr/share:存放共享数据
    /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件
    /usr/local:存放软件升级包
    /usr/share/doc:系统说明文件存放目录
    
    • /var: 放置系统执行过程中经常变化的文件
    /var/log:随时更改的日志文件
    /var/spool/mail:邮件存放的目录
    /var/run:程序或服务启动后,其 PID 存放在该目录下
    

    两个文件系统的区别:

    1、文件名长度方面,NTFS和ext4相同,最大都是255个字符,但路径长度ext4没有限制,NTFS内核限制是路径长度不宜超过65536个Unicode字符,但受到应用API限制,最长是255(可以绕过这个限制)

    2、NTFS最大文件是16EB,最大分区是16EB,ext4最大文件是16TB,最大分区是1EB。

    3、二者支持的时间戳都一样,都支持记录创建时间、访问时间、修改时间。ext4部分支持ECC,而NTFS不支持,另外两者记录时间的精度不同,ext4的精度是1纳秒,NTFS精度是100纳秒。

    4、ext4支持块级的日志,但默认关闭,NTFS不支持,但考虑到NTFS其实是把所有内容(包括元数据)都认为是文件(ext4则区分文件和元数据),所以NTFS没有必要做块级的日志。

    5、ext4不支持文件文件快照,NTFS支持,另外NTFS支持文件修改日志。

    6、NTFS原生支持数据加密,ext4需要在格式化时指定是否支持数据加密,格式化以后无法修改。

    7、ext4似乎不支持Copy On Write,但从ext4的逻辑上看,不支持Copy On Write也可以理解,因为有日志。NTFS支持。

    8、NTFS在Windows Server版本上支持消除重复数据的功能(类似于网盘的秒传)

    9、ext4和NTFS都支持稀疏文件,其中NTFS还支持块的再分配(把未完全使用的一个块拆成多个块再分配),ext4支持异步分配(Allocate on flush,这个该怎么翻译最合适?),可以减少碎片。

  • 相关阅读:
    如何在Window上使用Git
    【坑】log4j-over-slf4j.jar AND slf4j-log4j12.jar的冲突问题
    如何查看hadoop与hbase的版本匹配关系
    为什么要用Message Queue
    Storm+kafka的HelloWorld初体验
    KafkaOffsetMonitor使用方法
    Linux虚拟机配置本地yum源
    andorid CmakeLists
    python tkinter Treeview 事件绑定
    python我的tkinter学习,玩玩
  • 原文地址:https://www.cnblogs.com/hugechuanqi/p/9697126.html
Copyright © 2011-2022 走看看