1.FAT32和NTFS区别
FAT32,即32位文件分配表,是一种从FAT和FAT16发展而来的文件系统,也是一种通用格式,几乎任何USB存储设备都会预装该文件系统,可以在任何操作系统平台上使用,目前主流操作系统如windows、mac OS、Linux,甚至一些只能电视、车载系统等电子设备,都能轻松识别并读取FAT32格式的U盘,堪称“兼容性之王“。
不过,FAT32有个明显的缺点,即单个文件大小不能超过4G,这意味着,当你像拷贝一部容量大于4G的高清蓝光电影或者大型数据库文件到U盘时,就会收到FAT32系统的报错提示,所以大文件传输就不要选择FAT32格式
NTFS也就是新技术文件系统(New Technology File System)
强大的日志功能,针对系统在出现故障(突然断电,系统崩溃)时,能够一句日志快速恢复文件系统,可以最大程度减少数据丢失风险;
文件大小方面没有限制,不管是几G甚至几十G的超大文件,都没问题;支持文件压缩,能有效节省磁盘空间;支持长文件名,方面用户更详细的命名文件;在服务器环境中,NTFS的文件管理权限功能可以对不同用户设置不同的访问权限,保障文件安全。
然而,NTFS也并非完美无缺。他在Mac系统上只能读取不能写入,如果Mac用户想往NTFS格式的U盘里存储文件,就必须借助第三方工具
MMU(memory management unit)内存管理单元
主要用来管理虚拟内存与物理内存的映射,由硬件自动完成。
它是一种出则处理中央处理器的内存访问请求的计算机硬件。他的功能包括虚拟地址的转换、内存保护、中央处理器高速缓存的控制,在较为简单的计算机体系结构中,负责总线的总裁以及存储体切换
内存管理单元通常应用在桌面型计算机或者服务器,通过虚拟存储器使得计算机可以使用比实际的物理内存更多的存储空间。同时,内存管理单元还对实际的物理内存进行分割和保护,使得每个软件任务只能访问其分配到的内存空间。如果某个任务试图访问其他任务的内存空间,内存管理单元将自动产生异常,保护其他任务的程序和数据不受破坏。概述图显示了一个典型的使用内存管理单元为多个任务划分的内存映射图。内存管理单元的这个机制是调试指针错误或数组下标越界等错误的非常强大的工具。
MMU位于处理器内核和连接高速缓存以及物理存储器的总线之间。当处理器内核取指令或者存取数据的时候,都会提供一个有效地址(effective address),或者称为逻辑地址、虚拟地址。这个地址是可执行代码在编译的时候由链接器生成的。不同于开发嵌入式处理器系统的程序员,桌面型计算器的程序开发人员通常对硬件的物理配置信息所知甚少。将存储器系统虚拟化,程序员就不需要了解存储器的物理配置细节。当应用代码需要使用存储空间时,操作系统通过MMU为其分配合适的物理存储空间。有效地址不需要和系统的实际硬件物理地址相匹配,而是通过MMU将有效地址映射成对应的物理地址,以访问指令和数据。 [1]
每条MMU匹配规则所对应的存储器的大小定义为页。页的大小通常设定为不会对程序的性能造成显著影响的最小的程序和代码的长度。当暂时不使用物理内存的内容时,可将其保存到硬盘等外部存储器里,将其空间用于其他程序;当再次使用这部分内容时再从外部存储器写回到实际物理内存中。通过这种方法,系统就可以提供多于实际物理内存容量的“虚拟内存”。如果MMU定义的页太大,那么进行虚拟内存页面替换所花费的时间就太长;如果页太小,就会引起过于频繁的页面替换。通常最小的页设定为4 KB。 [1]
为了加快MMU规则匹配的处理过程,有效地址和实际物理地址的对应表通常保存在一块单独的高速缓存中,称为对应查找表(Translation Lookaside Buffer,TLB),TLB和实际物理存储器可以同时进行并行的访问。有效地址的高位作为在TLB进行匹配查找的依据,而有效地址的低位作为页面内的偏址。 [1]
TLB可以包含很多个表项(entry),每个表项对应一个MMU的页。操作系统或者应用启动代码必须正确的初始化TLB的所有表项。当应用程序提供的有效地址正好位于某个TLB表项制定的地址范围内时,称为产生了一次TLB命中;如果这个有效地址没有位于任何一个TLB表项制定的地址范围内,称为一个TLB缺失,或者TLB未命中。TLB未命中往往发生在应用程序出现错误的时候,所以TLB未命中所引发的异常处理可以很有效的发现和调试这类错误。虚拟内存利用TLB未命中的异常来完成页面交换,并根据交换的内容对应的调整TLB表项的参数。通常TLB表项还会指定一些存储器读写的其他参数,只有当这些参数也和当前的存储器读写的参数符合的时候,才能产生TLB命中
3.Linux内核的作用
Linux内核是操作系统的核心组件,负责管理硬件资源和提供系统服务。它在操作系统中起着至关重要的作用,主要包括五大功能:
1.进程管理:内核负责创建和销毁进程,并处理它们与外部世界的联系(输入和输出)。他还负责进程间的通讯(通过信号、管道或进程间通信原语)。调度器是进程管理的一部分,控制进程如何共享CPU资源。内核的进程管理活动实现了多个进程在一个或多个CPU上的抽象
2.内存管理:内存是计算机的主要资源,内核通过一套策略来管理内存,以提高系统性能。内核为每个进程建立了一个虚拟地址空间,并通过内存管理子系统与内核的其他部分交互。内核还负责内存的分配和释放,以及页面置换和页面回写等操作
3.文件系统:内核在非结构化的硬件之上建立了一个结构化的文件系统,提供文件的抽象。Linux支持多种文件系统类型,如ext3、FAT等。虚拟文件系统(VFS)为文件提供了一个通用的接口抽象,优化了对物理设备的访问
4.设备控制:内核负责管理系统中的各种设备,通过设备驱动程序与硬件交互。设备驱动程序是内核中嵌入的代码,负责控制特定的物理设备。内核提供了访问硬件的接口,使得上层的软件可以方便的与硬件进行通信
5.网络管理:网络必须由操作系统来管理,因为大部分网络操作不是特定于某一个进程:进入系统的报文是异步事件。报文在某一个进程接手之前必须被收集,识别,分发,系统负责在程序和网络接口之间递送数据报文,它必须根据程序的网络活动来控制程序的执行。另外,所有的里也有和地址解析都在内核中实现。
发表回复