windows系统文件和linux系统文件
1、单用户操作系统和多用户操作系统
-
单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源
- Windows XP 之前的版本都是单用户操作系统
-
多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源
- Unix 和 Linux 的设计初衷就是多用户操作系统
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:\Windows\System32)。64位系统中,这两个文件夹存放的是64位的系统文件,为了存放32位的同名系统文件,64位系统中有另外两个文件夹与之对应,%SystemDrive%\Program Files (86)和%Windir%\SysWoW64(即通常的C:\Program Files (86)和C:\Windows\SysWoW64)。
当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,这个该怎么翻译最合适?),可以减少碎片。