电脑系统记录要求,电脑系统记录怎么删除
1.电脑系统问题:可能的原因和解决方法
2.64位与32位操作系统:你应该知道的区别!
3.怎样查看电脑使用记录及时间呢?
4.程序员必备知识(操作系统5-文件系统)
5.怎么看电脑的使用记录
电脑系统的选择对于电脑的稳定性和兼容性有着至关重要的影响。本文将为大家介绍如何选择一个稳定的操作系统,以及如何安装和配置硬件驱动程序。
选择稳定的操作系统
为了保证电脑的稳定运行,我们应该选择一个稳定的操作系统。不要被那些Ghost版本的操作系统迷惑了双眼,它们大多数都是精简过的,很难满足你的稳定需求。建议使用出厂自带的操作系统光盘,或者到官网下载相应的硬件驱动程序进行安装。
选择64位操作系统如今电脑配置都那么高,内存大得惊人,所以64位操作系统成了主流。真心建议你选择64位系统,不然有些硬件可能因为32位系统的限制而无法正常使用。
安装和配置硬件驱动程序为了保证电脑的稳定运行,我们应该安装和配置相应的硬件驱动程序。这样,你的电脑就像一颗璀璨的明星,稳定得让人惊叹!
远离所谓的“优化”软件国内的那些所谓的“优化”软件,真的要慎用。它们可能会禁用驱动的开机运行,甚至直接删除驱动程序,让你的电脑运行出现问题。所以,为了电脑的稳定和高效,还是远离这些软件吧!
电脑系统问题:可能的原因和解决方法
日志系统管理的意义
在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面最主要的工具之一。
日志系统概览
按照系统类型进行区分的话,日志系统可以分为操作系统日志、应用系统日志、安全系统日志等等。每种操作系统的日志都有其自身特有的设计和规范,例如Windows系统的日志通常按照其惯有的应用程序、安全和系统这样的分类方式进行存储,而类似Linux这样的各种Class UNIX系统通常都使用兼容Syslog规范的日志系统。
而很多硬件设备的操作系统也具有独立的日志功能,以Cisco路由器为代表的网络设备通常都具有输出Syslog兼容日志的能力。应用系统日志主要包括各种应用程序服务器(例如Web服务器、FTP服务器)的日志系统和应用程序自身的日志系统,不同的应用系统都具有根据其自身要求设计的日志系统。安全系统日志从狭义上讲指信息安全方面设备或软件如防火墙系统的日志,从更广泛的意义上来说,所有为了安全目的所产生的日志都可归入此类。
日志管理工作综述
我们的主人公Mike是个安全管理员,他独立负责公司所有计算机设施的安全事务。虽然公司的设备还不算太多,但是系统倒是非常丰富,公司自己的网站基于SQL Server数据库进行编程,运行在一台运行着IIS的Windows服务器上,而公司的FTP服务则通过Linux系统下的WU-FTPD程序实现。
在公司与Internet的边界处放置着一台硬件防火墙,Web服务器就接在这台防火墙的DMZ端口上,而仍然是为了工作方便的原因,提供FTP服务的Linux机器放置与公司的内部网络上。到目前为止,所有的安全管理工作有条不紊地进行着,而这其中相当一部分是自动实现的。收集和阅读各种系统日志占据了Mike日常安全管理工作的相当比重,我们首先来看看Mike是如何完成这一切的。
Mike主要处理的日志包括了公司网站服务器上的Windows系统日志、IIS服务器软件生成的日志以及SQL Server日志,Linux服务器上的系统日志以及FTP服务日志,另外还包括公司防火墙的日志。当然了,内网所有的机器日志也在Mike的管辖范围之内,但是在Mike的计划里这些日志的优先级较低,在主要日志得到妥善处理之后,Mike不定期的对这些日志进行审阅工作。
对于Web服务器上的所有日志,Mike改变了其默认的存储位置,并将其放置在服务器上专设的一个NTFS分区上。这样做可以更好的进行管理和控制,而且将其放置在IIS所运行的分区之外,可以给攻击者造成一些障碍,将文件放置在NTFS分区则主要是为了进行访问权限的控制。因为Windows系统日志很难被删除但对其进行清除却非常容易,所以Mike需要对日志的清除包括篡改进行尽量严格的控制。
Mike自己撰写了一些Windows脚本,定期将这些日志复制到自己的Windows工作站下,而很少直接使用Web服务器上的日志文件。Linux服务器上的日志也应用了相似的权限控制,Mike在自己的工作站上运行了一个叫做Kiwi Syslog Daemon的程序,接收Linux服务器产生的所有Syslog规格的日志,这个守护程序也能够接收公司防火墙的日志归档。
Mike每天获取一次所有的日志文件,并对这些日志执行一些自动的检查工作。基本检查工作一般是在日志文件中按照可能存在的安全风险进行相应的搜索,例如我们的Web日志中如果出现了包含cmd.exe的记录,说明很可能有攻击者或者蠕虫病毒在试探是否可以利用IIS的一些进行非法操作。值得注意的是,对于文本格式的日志文件,我们通过基本的Find命令就可以执行这样的搜索。而对于使用二进制格式存储的日志文件,执行这种检查会复杂一些,通常需要利用日志系统本身的阅读程序进行读取或解码。这需要管理员非常熟悉所维护系统相关的安全漏洞,以及相应系统下的脚本编写技术,但是在这些方面付出汗水是绝对值得的,至少像Mike这样维护如此多系统还有时间阅读技术类杂志是很让人羡慕的。
这些日常的工作虽然能阻挡不少恶意访问行为,但这并不是一个安全管理员生活的全部,还是有很多问题会安然通过这些检测,对系统形成破坏。从本质上来讲,自动化的处理是相对粗粒度的,主要起到过滤没有意义的干扰信息,有效降低管理员工作负荷的作用。在日常监测之外,也应该每隔一段时间对这些日志进行更细致的审查。在新漏洞出现时,Mike都会针对漏洞的特征进行日志检查,并及时的将攻击指纹更新到自动化检查脚本中。
下文给你参考:
windows xp 速度提升和优化指南
Win XP以其华丽的操作画面和稳定的性能成为不少电脑玩家的首选操作系统,但在使用Windows XP的过程中你会发现,随着时间的推移操作系统在速度上是越来越慢了。如何才能使Windows XP提高运行速度的问题,已经成为用户十分关心的话题。
1、加快启动速度
每次启动Windows XP的时候,蓝色的滚动条都会不知疲倦地走上好几圈,对于追求高效率的你,是不是很希望它能少走几圈呢?其实我们完全可以把它的滚动时间减少,以加快启动速度。方法是:打开注册表编辑器,依次展开HKEY _ LOCAL _ MACHINE SYSTEM CurrentControlSet Control Session Manager Memory Management PrefetchParameters分支,在右侧窗口中区找到EnablePrefetcher子键,把它的默认值“3”修改为“1”。接下来用鼠标右键在桌面上单击“我的电脑”,选择“属性”命令,在打开的窗口中选择“硬件”选项卡,单击“设备管理器”按钮。在“设备管理器”窗口中展开“IDE ATA/ATAP控制器”,双击“次要IDE通道”选项,在弹出的对话框中选择“高级”选项卡,在“设备0”中的“设备类型”中,将原来的“自动检测”改为“无”,“确定”后退出。“主要IDE通道”的修改方法一致。现在重新启动计算机,看看你的滚动条滚动的时间是不是减少了? 注意:使用VIA芯片主板的朋友千万可不能修改“VIA BUS MASTER IDE CONTROLLER”选项。
另外,如果你没有选择创建多个不同的硬件配置文件,或者希望启动期间自动加载默认的硬件配置文件而不显示列表项,那么可以将“硬件配置文件选择”小节中的“秒”中输入“0”即可。在需要选择的时候按住空格键就会显示出列表了。
2、优化网上邻居
Windows XP网上邻居在使用时,系统首先会搜索自己的共享目录和可作为网络共享的打印机以及计划任务中和网络相关的计划任务,然后才显示出来,这样会直接影响计算机的运行速度。如果不必要的话,应将其删除。具体步骤如下:在注册表编辑器中找到HKEY_LOCAL_MACHINE\sofeware\Microsoft\Windows\Current Version\Explore\RemoteComputer\NameSpace,删除其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF8D87- 00AA0060F5BF}(计划任务),然后重新启动计算机,当你再次访问网上邻居时,发现运行速度已经提升。
3、加快开关机速度
在Windows XP中关机时,系统总会发送消息到运行程序和远程服务器,通知它们系统要关闭,并等待接到回应后系统才开始关机的。如果我们要加快开机速度的话,我们可以先设置自动结束任务的时间。方法是:打开注册表编辑器,依次展开HKEY_CURRENT _ USER Control Panel Desktop分支,找到AutoEndTasks子键,将其设置为1。再将该分支下的“HungAppTimeout”子键设置为“1000”,将“WaitTOKillService”改为“1000”(默认为5000)即可。通过这样重新设置,计算机的关机速度可获得明显加快的效果。
5、快速切换不同的工作环境
为了满足各种不同的需要和适应不同的工作环境,可以同时创建多个不同的硬件配置文件。在“硬件配置文件”对话框中按“复制”按钮,备份当前硬件配置文件,并重新命名,在不同的工作环境下均如此操作一遍。进入“硬件配置文件”对话框,用上下箭头移动配置文件,将最常用的置于最上方,在“硬件配置文件选择”小节上选“等待用户选定硬件配置文件”,重新启动计算机就可以看到“硬件配置文件选择菜单”了。这种设置办法对使用笔记本电脑用户更加实用,可以创建多个适用于不同场合的硬件配置文件,切换起来既方便又可大大提高工作效率。
6、提高宽带速度
大家都知道,专业版的Windows XP默认保留了20%的带宽,其实这对于我们个人用户来说是没有多大的作用。与其闲着还不如充分地利用起来,方法如下:在“开始→运行”中输入gpedit.msc,打开组策略编辑器。找到“计算机配置→管理模板→网络→QoS数据包调度程序”,选择右边的“限制可保留带宽”,选择“属性”打开限制可保留带宽属性对话框,选择“禁用”即可。经过这样重新设置就可以释放保留的20%的带宽了。
7、清空系统中多余的硬件信息
日常工作中使用拔插硬件设备是经常的事情,这样重复安装驱动程序的过程将会在系统中遗留下很多硬件注册信息等,导致系统速度减缓,该如何清空这些多余的硬件信息呢?首先点击“复制”按钮备份(Profile 2),然后再重新命名,例如改为Profile,再重新启动计算机,此时会出现供你选择的提示:“1、Profile .2、Profile1 3、None of the above ”, 这里的“1”和“2”是系统中已经存在的硬件配置文件,我们当然选择“3”,这样就可以让 Windows重新检测硬件,此时屏幕会出现“检测硬件”的对话框,并提示“大约需要几分钟时间”,稍后出现的“配置设置”的对话框,提示“成功设置了新计算机的配置,名称为Profile1”,点击“确定”按钮,重新安装硬件设备的驱动程序。最后,要把除Profile1外的两个硬件配置文件删除掉,防止开机时仍然会询问你使用哪一个硬件配置文件。
8.对Windows XP进行启动优化
Windows XP有一个不错的新功能,那就是可以在启动时进行磁盘碎片整理,使那些启动所必须的文件能相邻排列,从而令下次的启动速度更快。如果你的Windows XP 中没有打开此功能,可打开“注册表编辑器”,找到[HKEY_LOCAL_MACHINE\\SOFTWARE\\Mi
crosoft\\Dfrg\\BootOptimizefunction],在右侧窗格右击Enable值,在弹出的菜单中选择“修改”,然后将值改为Y(打开)(N为关闭)。修改完毕后关闭“注册表编辑器”,重启电脑。
9、自动关闭停止响应程序
有些时候,XP会提示你某某程序停止响应,很烦,通过修改注册表我们可以让其自行关闭,在HKEY_CURRENT_USER\Control Panel\Desktop中将字符健值是AutoEndTasks的数值数据更改为1,重新注销或启动即可。
10、清除内存中不被使用的DLL文件
在注册表的HKKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion,在Explorer增加一个项AlwaysUnloadDLL,默认值设为1。注:如由默认值设定为0则代表停用此功能。
11、停止不必要的系统服务
1)alerter 错误警报
2)automatic updates windows 自动更新
3)background intelligent transfer service 微软说使用空闲的网络带宽传数据
4)clipbook 与远程电脑来共享剪贴板内容,我看还是免了吧
5)Computer browser 维护网络更新列表
6)DHCP client 一般不需要这东西
7)Distributed link tracking client 保持局域网连接更新等信息,偶很少用局域网,这东西占用4M左右内存。
8)Distributed Transaction coordinator 协调xxx,和上面的差不多
9)DNS Client 我不需要这东西
10)Error reporting service 错误报告
11)Event Log 系统日志纪录
12)Fast user switching compatibility 用户切换
13)help and support 帮助
14)Human interface device access 据说是智能设备。。。
15)IMAPI CD-burning COM service 偶不用这个刻碟
16)Indexing service 索引,索引什么呢?
17)Internet Connection Firewall(ICF) ICF防火墙
18)IPSEC Services IP安全策略(一般都需要)
19)Logical Disk manager administrative service 配置磁盘
20)messenger windows信使服务,一般可关掉
21)MS software shadow copy provider 卷复制备份的,不需要
22)Net Logon 远程登录,关!
23)Netmeeting remote desktop sharing 我不用netmeeting
24)Network DDE 动态数据交换传输
25)Network DDE DSDM 和上面差不多
26)Network Location Awareness 关,我的机子不作共享
27)NTLM Security support provider-telnet 呵呵,关!
28)Performance logs and alert 将系统状态写日志或发警告
29)Portable media serial number 关!
30)Print Spooler 打印机共享,可关掉
31) QoS RSVP 关!
32)Remote desktop help session manager 远程帮助服务
33)remote Procedure Call LOCATOR 管理RPC
34)remote registry 远程管理注册表,停止
35)removable storage
36)routing and remote access 我干脆禁用了它
37)security accounts manager 我的系统只是一个客户系统,不用iis。
38)smart card
39)smart card helper 关
40)SSDP Discovery service 我用不到这个
41)system event notification 如果是服务器肯定要记录的
42)system restore service 系统还原服务
43)task scheduler windows 计划服务
44)Telephony 拨号服务,可停止
45)telnet 可停止
46)terminal services 终端服务,可停止
47)uninterruptible power supply UPS不间断电源,如没可关掉
48)universal plug and play device host 太先进了点,用不到
49)upload manager 关了也能传输文件的
50)volume shadow copy 卷备份,可停止
51)webclient 没用过
52)Windows Installer MSI服务,我一直关着。
53)windows image acquisition (WIA) 数码设备用的
54)windows management instrumentation driver extensions 关了
55)windows time 时间服务
56)wireless zero configuration 无线网络,偶用不到的
57)WMI perfromance adapter 关!
上面列出的服务可以根据自己的需要停止掉,这样开机和运行速度会快很多
12、安全设置
多了不谈,基本的共享还是得关的:
修改注册表为以下两个样式:
去除默认共享
——————————————————————
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"AutoShareServer"=dword:00000000
"AutoSharewks"=dword:00000000
——————————————————————
去除IPC$管理
——————————————————————
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001
——————————————————————
将上面的文本保存成两个.REG文件,双击导入就可以了。
13、关闭错误报告
如不需要windows发送错误报告,可点击 控制面板---->系统---->高级---->
右下角--->错误报告---->禁用错误汇报——>确定!
14、关闭系统的预读功能 (重要必读)
根据网上一些人的介绍和经验结合我自己使用的Windows XP的经理,现在提供解决系统运行时间长后速度明显慢下来的方法,可能很多人都在抱怨启动慢--或者关机慢等等,所以我说说一个明显可以改善启动速度的方法!
你到c:/Windows下面会有一个叫Prefetch的文件夹(即Windows预读文件夹),你会发现里面有上百个以PF为扩展名的文件:--启动慢的原因就在这里!
那么这些到底是些什么东西了?
这里是系统的预读功能,在装系统后的开始一段时间,设置为预读虽然可以提高系统速度,但是使用一段时间后,预读文件夹里的文件会变得很多,导致系统搜索花费的时间变长。而且有些应用程序会产生死链接文件,加重了系统搜索的负担。因此,他严重影响了我们系统的启动速度,我们应该定期删除这些预读文件。
在这里,Windows XP是允许我们设置预读的对象。
方法就是:打开注册表编辑器,依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters分支,在右侧窗口中双击"EnablePrefetcher",在打开的"DWORD"值编辑窗口中,可以对Windows XP进行预读设置:
将该值设置为"0",即为取消预读功能;
设置为"1",系统将只预读应用程序;
设置为"2",系统将只预读Windows系统文件;
设置为"3",系统将预读Windows系统文件和应用程序。
一般我们将该值设置为"2"即可,当然,如果你的计算机配置很高,也可以将该值设置为"3",以加快系统运行速度。
我们也可以自己制作一个批处理程序,在每次开机时删除"Windows\Prefetch"文件夹的文件。
方法如下:我们新建一个记事本文件,并且改后缀名为.bat,命名为DelPre.bat,然后用记事本打开它,并在里面加入以下内容:
del %SystemRoot%\Prefetch\*.* /q
加"/q"参数是删除全局通配符时,不要求确认,当然还可以用其他参数,如"/f"参数是强制删除只读文件。然后保存文件。
15、减少启动时加载项目
许多应用程序在安装时都会自作主张添加至系统启动组,每次启动系统都会自动运行,这不仅延长了启动时间,而且启动完成后系统资源已经被消耗掉!
启动"系统配置实用程序"(msconfig),在"启动"项中列出了系统启动时加载的项目及来源,仔细查看你是否需要它自动加载,否则清除项目前的复选框,加载的项目愈少,启动的速度自然愈快。此项需要重新启动方能生效。
64位与32位操作系统:你应该知道的区别!
电脑系统问题是我们在使用电脑时经常遇到的问题之一。本文将为你介绍可能的原因和解决方法,帮助你更好地解决这个问题。
病毒和程序文件受损电脑系统问题可能是由病毒搞鬼或程序文件受损导致的。如果你遇到这种问题,可能需要重新安装系统。
硬件兼容问题硬件兼容问题也可能导致电脑系统问题。有些主板对内存比较挑剔,这可能会导致类似问题。如果你遇到这种问题,可以考虑更换硬件。
程序冲突如果你安装的程序或游戏有问题,或者与系统中的其他程序发生冲突,也可能导致电脑系统问题。在这种情况下,你可以尝试卸载或更新程序,或者关闭其他程序。
笔记本电脑问题对于笔记本电脑用户,如果遇到电脑系统问题,检查电池是否正常也是很重要的。有些用户曾经因为电池损坏而遇到类似问题,更换新电池后解决了问题。
系统清理最后,定期清理系统垃圾文件非常重要。如果你长时间不清理系统垃圾文件,可能会导致电脑系统问题。建议你每四个月重新安装一次系统以保持系统稳定运行。
怎样查看电脑使用记录及时间呢?
选择操作系统,你需要知道64位和32位的区别。本文将为你详细介绍这两种操作系统的设计初衷、配置要求、运算速度、寻址能力和软件普及情况,帮助你选择最适合你的系统。
设计初衷64位操作系统专为高科技人士打造,满足机械设计、三维动画等高性能需求。而32位,则是普通用户的最佳选择。
配置要求64位系统只适配64位电脑,释放最佳性能还需64位软件加持。32位则更灵活,可在32或64位电脑上运行,但在64位电脑上可能不能完全发挥效能。
运算速度64位CPU一次能处理更多数据,理论上性能翻倍!比32位系统更高效。
寻址能力64位处理器轻松管理巨大内存,Windows Vista x64支持高达128GB内存和16TB虚拟内存,而32位仅支持4G。
软件普及目前64位软件相对较少,价格也相对较高。因为用户群体相对较小,开发商需权衡投入与回报。
程序员必备知识(操作系统5-文件系统)
你可以通过以下步骤查看电脑的使用记录及时间:
方法一:使用电脑自带的系统工具
1. 打开“开始”菜单,并点击“设置”图标。
2. 在设置菜单里选择“隐私”选项卡,然后选择左侧“活动历史记录”。
3. 下拉页面,在“应用和服务”部分找到以前打开过的所有应用程序列表,并在右侧看到每个应用程序的打开日期和持续时间。
方法二:使用第三方软件
除了电脑自带的系统工具,也有第三方的软件能够查看电脑的使用历史记录。此类软件常见的包括 RescueTime (能够追踪电脑上的应用程序并生成报告)、WorkTime (能够监控电脑上的应用程序并记录用户的在线时间)等。这些工具可能需要用户安装软件和注册账户才能使用。
考虑到隐私保护,请注意备份重要文件、不要随意下载和运行未知来源的软件、经常更新防病毒软件并及时清空浏览器Cookie 和 历史记录,以确保电脑安全。
怎么看电脑的使用记录
本篇与之前的第三篇的内存管理知识点有相似的地方
对于运行的进程来说,内存就像一个纸箱子, 仅仅是一个暂存数据的地方, 而且空间有限。如果我们想要进程结束之后,数据依然能够保存下来,就不能只保存在内存里,而是应该保存在 外部存储 中。就像图书馆这种地方,不仅空间大,而且能够永久保存。
我们最常用的外部存储就是 硬盘 ,数据是以文件的形式保存在硬盘上的。为了管理这些文件,我们在规划文件系统的时候,需要考虑到以下几点。
第一点,文件系统要有严格的组织形式,使得文件能够 以块为单位进行存储 。这就像图书馆里,我们会给设置一排排书架,然后再把书架分成一个个小格子,有的项目存放的资料非常多,一个格子放不下,就需要多个格子来进行存放。我们把这个区域称为存放原始资料的 仓库区 。
第二点,文件系统中也要有 索引区 ,用来方便查找一个文件分成的多个块都存放在了什么位置。这就好比,图书馆的书太多了,为了方便查找,我们需要专门设置一排书架,这里面会写清楚整个档案库有哪些资料,资料在哪个架子的哪个格子上。这样找资料的时候就不用跑遍整个档案库,在这个书架上找到后,直奔目标书架就可以了。
第三点,如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有 缓存层 。这就相当于图书馆里面的热门图书区,这里面的书都是畅销书或者是常常被借还的图书。因为借还的次数比较多,那就没必要每次有人还了之后,还放回遥远的货架,我们可以专门开辟一个区域, 放置这些借还频次高的图书。这样借还的效率就会提高。
第四点,文件应该用 文件夹 的形式组织起来,方便管理和查询。这就像在图书馆里面,你可以给这些资料分门别类,比如分成计算机类.文学类.历史类等等。这样你也容易管理,项目组借阅的时候只要在某个类别中去找就可以了。
在文件系统中,每个文件都有一个名字,这样我们访问一个文件,希望通过它的名字就可以找到。文件名就是一个普通的文本。 当然文件名会经常冲突,不同用户取相同的名字的情况还是会经常出现的。
要想把很多的文件有序地组织起来,我们就需要把它们成为 目录 或者文件夹。这样,一个文件夹里可以包含文件夹,也可以包含文件,这样就形成了一种 树形结构 。而我们可以将不同的用户放在不同的用户目录下,就可以一定程度上避免了命名的冲突问题。
第五点,Linux 内核要在自己的内存里面维护一套数据结构,来保存哪些文件被哪些进程打开和使用 。这就好比,图书馆里会有个图书管理系统,记录哪些书被借阅了,被谁借阅了,借阅了多久,什么时候归还。
文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。
文件系统的基本数据单位是 文件 ,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。
Linux最经典的一句话是:“一切皆文件”,不仅普通的文件和目录,就连块设备、管道、socket 等,也都是统一交给文件系统管理的。
Linux文件系统会为每个文件分配两个数据结构: 索引节点(index node) 和 目录项(directory entry) ,它们主要用来记录文件的元信息和目录层次结构。
●索引节点,也就是inode, 用来记录文件的元信息,比如inode编号、文件大小访问权限、创建时间、修改时间、 数据在磁盘的位置 等等。 索引节点是文件的唯一标识 ,它们之间一一对应, 也同样都会被 存储在硬盘 中,所以索引节点同样占用磁盘空间。
●目录项,也就是dentry, 用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。多个目录项关联起来,就会形成 目录结构 ,但它与索引节点不同的是,目录项是由内核维护的一个数据结构,不存放于磁盘,而是 缓存在内存 。
由于索引节点唯一标识一个文件,而目录项记录着文件的名,所以目录项和索引节点的关系是多对一,也就是说,一个文件可以有多个别字。比如,硬链接的实现就是多个目录项中的索引节点指向同一个文件。
注意,目录也是文件,也是用索引节点唯一标识,和普通文件不同的是,普通文件在磁盘里面保存的是文件数据,而目录文件在磁盘里面保存子目录或文件。
(PS:目录项和目录不是一个东西!你也不是一个东西(^_=), 虽然名字很相近,但目录是个文件。持久化存储在磁盘,而目录项是内核一个数据结构,缓存在内存。
如果查询目录频繁从磁盘读,效率会很低,所以内核会把已经读过的目录用目录项这个数据结构缓存在内存,下次再次读到相同的目录时,只需从内存读就可以,大大提高了 文件系统的效率。
目录项这个数据结构不只是表示目录,也是可以表示文件的。)
磁盘读写的最小单位是 扇区 ,扇区的大小只有512B大小,很明显,如果每次读写都以这么小为单位,那这读写的效率会非常低。
所以,文件系统把多个扇区组成了一个 逻辑块 ,每次读写的最小单位就是逻辑块(数据块) , Linux中的逻辑块大小为4KB,也就是一次性读写 8个扇区,这将大大提高了磁盘的读写的效率。
以上就是索引节点、目录项以及文件数据的关系,下面这个图就很好的展示了它们之间的关系:
索引节点是存储在硬盘上的数据,那么为了加速文件的访问,通常会把索引节点加载到内存中。
另外,磁盘进行格式化的时候,会被分成三个存储区域,分别是超级块、索引节点区和数据块区。
●超级块,用来存储文件系统的详细信息,比如块个数、块大小、空闲块等等。
●索引节点区,用来存储索引节点;
●数据块区,用来存储文件或目录数据;
我们不可能把超级块和索引节点区全部加载到内存,这样内存肯定撑不住,所以只有当需要使用的时候,才将其加载进内存,它们加载进内存的时机是不同的.
●超级块:当文件系统挂载时进入内存;
●索引节点区:当文件被访问时进入内存;
文件系统的种类众多,而操作系统希望 对用户提供一个统一的接口 ,于是在用户层与文件系统层引入了中间层,这个中间层就称为 虚拟文件系统(Virtual File System, VFS) 。
VFS定义了一组所有文件系统都支持的数据结构和标准接口,这样程序员不需要了解文件系统的工作原理,只需要了解VFS提供的统一接口即可。
在Linux文件系统中,用户空间、系统调用、虚拟机文件系统、缓存、文件系统以及存储之间的关系如下图:
Linux支持的文件系统也不少,根据存储位置的不同,可以把文件系统分为三类:
●磁盘的文件系统,它是直接把数据存储在磁盘中,比如Ext 2/3/4. XFS 等都是这类文件系统。
●内存的文件系统,这类文件系统的数据不是存储在硬盘的,而是占用内存空间,我们经常用到的/proc 和/sys文件系统都属于这一类,读写这类文件,实际上是读写内核中相关的数据。
●网络的文件系统,用来访问其他计算机主机数据的文件系统,比如NFS. SMB等等。
文件系统首先要先挂载到某个目录才可以正常使用,比如Linux系统在启动时,会把文件系统挂载到根目录。
在操作系统的辅助之下,磁盘中的数据在计算机中都会呈现为易读的形式,并且我们不需要关心数据到底是如何存放在磁盘中,存放在磁盘的哪个地方等等问题,这些全部都是由操作系统完成的。
那么,文件数据在磁盘中究竟是怎么样的呢?我们来一探究竟!
磁盘中的存储单元会被划分为一个个的“ 块 ”,也被称为 扇区 ,扇区的大小一般都为512byte.这说明即使一块数据不足512byte,那么它也要占用512byte的磁盘空间。
而几乎所有的文件系统都会把文件分割成固定大小的块来存储,通常一个块的大小为4K。如果磁盘中的扇区为512byte,而文件系统的块大小为4K,那么文件系统的存储单元就为8个扇区。这也是前面提到的一个问题,文件大小和占用空间之间有什么区别?文件大小是文件实际的大小,而占用空间则是因为即使它的实际大小没有达到那么大,但是这部分空间实际也被占用,其他文件数据无法使用这部分的空间。所以我们 写入1byte的数据到文本中,但是它占用的空间也会是4K。
这里要注意在Windows下的NTFS文件系统中,如果一开始文件数据小于 1K,那么则不会分配磁盘块来存储,而是存在一个文件表中。但是一旦文件数据大于1K,那么不管以后文件的大小,都会分配以4K为单位的磁盘空间来存储。
与内存管理一样,为了方便对磁盘的管理,文件的逻辑地址也被分为一个个的文件块。于是文件的逻辑地址就是(逻辑块号,块内地址)。用户通过逻辑地址来操作文件,操作系统负责完成逻辑地址与物理地址的映射。
不同的文件系统为文件分配磁盘空间会有不同的方式,这些方式各自都有优缺点。
连续分配要求每个文件在磁盘上有一组连续的块,该分配方式较为简单。
通过上图可以看到,文件的逻辑块号的顺序是与物理块号相同的,这样就可以实现随机存取了,只要知道了第一个逻辑块的物理地址, 那么就可以快速访问到其他逻辑块的物理地址。那么操作系统如何完成逻辑块与物理块之间的映射呢?实际上,文件都是存放在目录下的,而目录是一种有结构文件, 所以在文件目录的记录中会存放目录下所有文件的信息,每一个文件或者目录都是一个记录。 而这些信息就包括文件的起始块号和占有块号的数量。
那么操作系统如何完成逻辑块与物理块之间的映射呢? (逻辑块号, 块内地址) -> (物理块号, 块内地址),只需要知道逻辑块号对应的物理块号即可,块内地址不变。
用户访问一个文件的内容,操作系统通过文件的标识符找到目录项FCB, 物理块号=起始块号+逻辑块号。 当然,还需要检查逻辑块号是否合法,是否超过长度等。因为可以根据逻辑块号直接算出物理块号,所以连续分配支持 顺序访问和随机访问 。
因为读/写文件是需要移动磁头的,如果访问两个相隔很远的磁盘块,移动磁头的时间就会变长。使用连续分配来作为文件的分配方式,会使文件的磁盘块相邻,所以文件的读/写速度最快。
连续空间存放的方式虽然读写效率高,但是有 磁盘空间碎片 和 文件长度不易扩展 的缺陷。
如下图,如果文件B被删除,磁盘上就留下一块空缺,这时,如果新来的文件小于其中的一个空缺,我们就可以将其放在相应空缺里。但如果该文件的大小大于所
有的空缺,但却小于空缺大小之和,则虽然磁盘上有足够的空缺,但该文件还是不能存放。当然了,我们可以通过将现有文件进行挪动来腾出空间以容纳新的文件,但是这个在磁盘挪动文件是非常耗时,所以这种方式不太现实。
另外一个缺陷是文件长度扩展不方便,例如上图中的文件A要想扩大一下,需要更多的磁盘空间,唯一的办法就只能是挪动的方式,前面也说了,这种方式效率是非常低的。
那么有没有更好的方式来解决上面的问题呢?答案当然有,既然连续空间存放的方式不太行,那么我们就改变存放的方式,使用非连续空间存放方式来解决这些缺陷。
非连续空间存放方式分为 链表方式 和 索引方式 。
链式分配采取离散分配的方式,可以为文件分配离散的磁盘块。它有两种分配方式:显示链接和隐式链接。
隐式链接是只目录项中只会记录文件所占磁盘块中的第一块的地址和最后一块磁盘块的地址, 然后通过在每一个磁盘块中存放一个指向下一 磁盘块的指针, 从而可以根据指针找到下一块磁盘块。如果需要分配新的磁盘块,则使用最后一块磁盘块中的指针指向新的磁盘块,然后修改新的磁盘块为最后的磁盘块。
我们来思考一个问题, 采用隐式链接如何将实现逻辑块号转换为物理块号呢?
用户给出需要访问的逻辑块号i,操作系统需要找到所需访问文件的目录项FCB.从目录项中可以知道文件的起始块号,然后将逻辑块号0的数据读入内存,由此知道1号逻辑块的物理块号,然后再读入1号逻辑块的数据进内存,此次类推,最终可以找到用户所需访问的逻辑块号i。访问逻辑块号i,总共需要i+ 1次磁盘1/0操作。
得出结论: 隐式链接分配只能顺序访问,不支持随机访问,查找效率低 。
我们来思考另外一个问题,采用隐式链接是否方便文件拓展?
我们知道目录项中存有结束块号的物理地址,所以我们如果要拓展文件,只需要将新分配的磁盘块挂载到结束块号的后面即可,修改结束块号的指针指向新分配的磁盘块,然后修改目录项。
得出结论: 隐式链接分配很方便文件拓展。所有空闲磁盘块都可以被利用到,无碎片问题,存储利用率高。
显示链接是把用于链接各个物理块的指针显式地存放在一张表中,该表称为文件分配表(FAT, File Allocation Table)。
由于查找记录的过程是在内存中进行的,因而不仅显著地 提高了检索速度 ,而且 大大减少了访问磁盘的次数 。但也正是整个表都存放在内存中的关系,它的主要的缺点是 不适 用于大磁盘 。
比如,对于200GB的磁盘和1KB大小的块,这张表需要有2亿项,每一项对应于这2亿个磁盘块中的一个块,每项如果需要4个字节,那这张表要占用800MB内存,很显然FAT方案对于大磁盘而言不太合适。
一直都在,加油!(*゜Д゜)σ凸←自爆按钮
链表的方式解决了连续分配的磁盘碎片和文件动态打展的问题,但是不能有效支持直接访问(FAT除外) ,索引的方式可以解决这个问题。
索引的实现是为每个文件创建一个 索引数据块 ,里面存放的 是指向文件数据块的指针列表 ,说白了就像书的目录一样,要找哪个章节的内容,看目录查就可以。
另外, 文件头需要包含指向索引数据块的指针 ,这样就可以通过文件头知道索引数据块的位置,再通过索弓|数据块里的索引信息找到对应的数据块。
创建文件时,索引块的所有指针都设为空。当首次写入第i块时,先从空闲空间中取得一个块, 再将其地址写到索引块的第i个条目。
索引的方式优点在于:
●文件的创建、增大、缩小很方便;
●不会有碎片的问题;
●支持顺序读写和随机读写;
由于索引数据也是存放在磁盘块的,如果文件很小,明明只需一块就可以存放的下,但还是需要额外分配一块来存放索引数据,所以缺陷之一就是存储索引带来的开销。
如果文件很大,大到一个索引数据块放不下索引信息,这时又要如何处理大文件的存放呢?我们可以通过组合的方式,来处理大文件的存储。
先来看看 链表+索引 的组合,这种组合称为 链式索引块 ,它的实现方式是在 索引数据块留出一个存放下一个索引数据块的指针 ,于是当一个索引数据块的索引信息用完了,就可以通过指针的方式,找到下一个索引数据块的信息。那这种方式也会出现前面提到的链表方式的问题,万一某个指针损坏了,后面的数据也就会无法读取了。
还有另外一种组合方式是 索引+索引 的方式,这种组合称为多级索引块,实现方式是通过一个索引块来存放多个索引数据块,一层套一层索引, 像极了俄罗斯套娃是吧?乛?乛?
前面说到的文件的存储是针对已经被占用的数据块组织和管理,接下来的问题是,如果我要保存一个数据块, 我应该放在硬盘上的哪个位置呢?难道需要将所有的块扫描一遍,找个空的地方随便放吗?
那这种方式效率就太低了,所以针对磁盘的空闲空间也是要引入管理的机制,接下来介绍几种常见的方法:
●空闲表法
●空闲链表法
●位图法
空闲表法
空闲表法就是为所有空闲空间建立一张表,表内容包括空闲区的第一个块号和该空闲区的块个数,注意,这个方式是连续分配的。如下图:
当请求分配磁盘空间时,系统依次扫描空闲表里的内容,直到找到一个合适的空闲区域为止。当用户撤销一个文件时,系统回收文件空间。这时,也需顺序扫描空闲表,寻找一个空闲表条目并将释放空间的第一个物理块号及它占用的块数填到这个条目中。
这种方法仅当有少量的空闲区时才有较好的效果。因为,如果存储空间中有着大量的小的空闲区,则空闲表变得很大,这样查询效率会很低。另外,这种分配技术适用于建立连续文件。
空闲链表法
我们也可以使用链表的方式来管理空闲空间,每一个空闲块里有一个指针指向下一个空闲块,这样也能很方便的找到空闲块并管理起来。如下图:
当创建文件需要一块或几块时,就从链头上依次取下一块或几块。反之,当回收空间时,把这些空闲块依次接到链头上。
这种技术只要在主存中保存一个指针, 令它指向第一个空闲块。其特点是简单,但不能随机访问,工作效率低,因为每当在链上增加或移动空闲块时需要做很多1/0操作,同时数据块的指针消耗了一定的存储空间。
空闲表法和空闲链表法都不适合用于大型文件系统,因为这会使空闲表或空闲链表太大。
位图法
位图是利用二进制的一位来表示磁盘中一个盘块的使用情况,磁盘上所有的盘块都有一个二进制位与之对应。
当值为0时,表示对应的盘块空闲,值为1时,表示对应的盘块已分配。它形式如下:
在Linux文件系统就采用了位图的方式来管理空闲空间,不仅用于数据空闲块的管理,还用于inode空闲块的管理,因为inode也是存储在磁盘的,自然也要有对其管理。
前面提到Linux是用位图的方式管理空闲空间,用户在创建一个新文件时, Linux 内核会通过inode的位图找到空闲可用的inode,并进行分配。要存储数据时,会通过块的位图找到空闲的块,并分配,但仔细计算一下还是有问题的。
数据块的位图是放在磁盘块里的,假设是放在一个块里,一个块4K,每位表示一个数据块,共可以表示4 * 1024 * 8 = 2^15个空闲块,由于1个数据块是4K大小,那么最大可以表示的空间为2^15 * 4 * 1024 = 2^27个byte,也就是128M。
也就是说按照上面的结构,如果采用(一个块的位图+?一系列的块),外加一(个块的inode的位图+一系列的inode)的结构能表示的最大空间也就128M,
这太少了,现在很多文件都比这个大。
在Linux文件系统,把这个结构称为一个 块组 ,那么有N多的块组,就能够表示N大的文件。
最终,整个文件系统格式就是下面这个样子。
最前面的第一个块是引导块,在系统启动时用于启用引导,接着后面就是一个一个连续的块组了,块组的内容如下:
● 超级块 ,包含的是文件系统的重要信息,比如inode总个数、块总个数、每个块组的inode个数、每个块组的块个数等等。
● 块组描述符 ,包含文件系统中各个块组的状态,比如块组中空闲块和inode的数目等,每个块组都包含了文件系统中「所有块组的组描述符信息」。
● 数据位图和inode位图 ,用于表示对应的数据块或inode是空闲的,还是被使用中。
● inode 列表 ,包含了块组中所有的inode, inode 用于保存文件系统中与各个文件和目录相关的所有元数据。
● 数据块 ,包含文件的有用数据。
你可以会发现每个块组里有很多重复的信息,比如 超级块和块组描述符表,这两个都是全局信息,而且非常的重要 ,这么做是有两个原因:
●如果系统崩溃破坏了超级块或块组描述符,有关文件系统结构和内容的所有信息都会丢失。如果有冗余的副本,该信息是可能恢复的。
●通过使文件和管理数据尽可能接近,减少了磁头寻道和旋转,这可以提高文件系统的性能。
不过,Ext2 的后续版本采用了稀疏技术。该做法是,超级块和块组描述符表不再存储到文件系统的每个块组中,而是只写入到块组0、块组1和其他ID可以表示为3、5、7的幂的块组中。
在前面,我们知道了一个普通文件是如何存储的,但还有一个特殊的文件,经常用到的目录,它是如何保存的呢?
基于Linux?一切切皆文件的设计思想,目录其实也是个文件,你甚至可以通过vim打开它,它也有inode, inode 里面也是指向一些块。
和普通文件不同的是, 普通文件的块里面保存的是文件数据,而目录文件的块里面保存的是目录里面一项一项的文件信息 。
在目录文件的块中,最简单的保存格式就是 列表 ,就是一项一项地将目录下的文件信息(如文件名、文件inode.文件类型等)列在表里。
列表中每一项就代表该目录下的文件的文件名和对应的inode,通过这个inode,就可以找到真正的文件。
通常,第一项是「则」,表示当前目录,第二项是.,表示上一级目录, 接下来就是一项一项的文件名和inode。
如果一个目录有超级多的文件,我们要想在这个目录下找文件,按照列表一项一项的找,效率就不高了。
于是,保存目录的格式改成 哈希表 ,对文件名进行哈希计算,把哈希值保存起来,如果我们要查找一个目录下面的文件名,可以通过名称取哈希。如果哈希能够匹配上,就说明这个文件的信息在相应的块里面。
Linux系统的ext文件系统就是采用了哈希表,来保存目录的内容,这种方法的优点是查找非常迅速,插入和删除也较简单,不过需要一些预备措施来避免哈希冲突。
目录查询是通过在磁盘上反复搜索完成,需要不断地进行/0操作,开销较大。所以,为了减少/0操作,把当前使用的文件目录缓存在内存,以后要使用该文件时只要在内存中操作,从而降低了磁盘操作次数,提高了文件系统的访问速度。
感谢您的阅读,希望您能摄取到知识!加油!冲冲冲!(发现光,追随光,成为光,散发光!)我是程序员耶耶!有缘再见。<-biubiu-?(`ω?∩)
查看电脑使用记录及时间的方法如下:
1.右键点击此电脑,点击“管理”选项。或者按快捷键“G”。
2.在弹出的界面中找到左侧的“事件查看器”选项下的Windows日志。
3.之后再选择“系统”选项,即可查看电脑的使用记录。其中有操作的时间,级别,来源,事件ID,以及任务类别。其中常见的ID为6005开机信息和6006关机信息。
首先,我们打开浏览器界面,在右边可以看到一个回车键似的,移动它的上面,可以看到有一个下拉框,那我们可以点击查看所有的历史记录,也可以查看当天的历史记录。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。