快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门24小时在线娱乐的网站_龟发之家论坛



本文中要先容一个所谓的"Linux 文件系统的守护神",这是指一个能实时地察看 Linux 文件系统的变更环境的法度榜样模块。能够实时的察看文件系统的变更环境,并做出及时的适当的反映,这对付利用 Linux 做桌面谋略机系统来说,是十分的有趣,也是澳门24小时在线娱乐的网站十分的紧张的。本文还要先容 Linux 文件系统的异步 I/O 的扩展。同样,这对付 Linux 系统的桌面利用也是关键的。

1、Linux 文件系统的守护神

传统的 Linux 文件系统出现给用户法度榜样的界面,确凿是十分的干净利落。用户法度榜样可以打开一个文件,向文件中线性的写入数据,从文件的某一位置开始,线性的读出数据,关闭一个文件,删除一个文件,创建一个文件,等等。请看,只有这么多少个简洁的操作原语,可是却能供给这么多富厚的利用。然则,我们留意到,用于造访 Linux 的文件系统的这些操作原语,并没有供给异常繁杂的加锁解锁的功能。这是一件很巧妙的工作,假如来自不合的用户法度榜样的哀求发生了冲突怎么办呢?

我们不妨走的再接近一点,仔细的看看删除一个文件是澳门24小时在线娱乐的网站如何进行的。假如已经有一个用户法度榜样在造访一个文件,而别的一个用户法度榜样恰恰要删除这一个文件,这时会发生些什么呢?我们知道,Linux 的文件系统是基于所谓的 inode 的,每个文件都相伴有一个 inode。在 inode 中记录了关于这个文件的一些系统信息,比如文件的所有者,文件相关的一些权限记录,关于文件的多少个光阴戳,等等。在内存中的 inode 还保持着一个关于自己的应用计数。每当一个 inode 所代表的文件被打开一次,这个 inode 就把关于自己的应用计数加一。每当这个 inode 所代表的文件一被关闭,这个 in澳门24小时在线娱乐的网站ode 就把关于自己的应用计数减一。当用户法度榜样删除一个文件的时刻,相关的系统调用很快就返回到这个用户法度榜样,奉告它,响应的文件已经被删除了。然则响应的 inode 照样保留在系统中,inode 首先要反省自己的应用计数,假如应用计数为零,那么 Linux Kernel 才可以真正的去删除这个文件。假如应用计数大年夜于零,也便是说,还有其它的用户法度榜样在造访这一个文件,那么 Linux Kernel 必要等待这些其他的用户法度榜样一个个都完成对这一个文件的造访才行。也便是说,要等到这个 inode 的应用计数掉落到零,才能真正的去删除这一个文件。

我们可以设想一下,假如有一个 MP3 播放法度榜样在播放一首 MP3 音乐,我们感觉它不好听,就到硬盘上找到这个文件,把它 rm 掉落了。这时刻,MP3 播放法度榜样并不受到影响,照样可以继承播放这首 MP3 音乐,虽然这时刻在文件系统上用 ls 已经找不到这个 MP3 音乐文件了。实际上,不停要到 MP3 播放法度榜样竣事播放这首 MP3 音乐,然后 Linux 文件系统才真正的从硬盘上删除这个 MP3 文件。这个履历和我们在 Windows 平台上碰到的截然不合。

在 Windows 平台上,当我们试图在文件夹窗口顶用鼠标点击右键菜单删除 Winamp 正在播放澳门24小时在线娱乐的网站的一首 MP澳门24小时在线娱乐的网站3 音乐的时刻,Windows 系统会用一个弹出对话框奉告我们,这个文件正在被应用,没法子删除。Windows 系统的关于删除文件的这样一个解释,假如应用欠妥的话,会带来一个滑稽好笑的问题。我们可以设想一下,用户的一个 P2P 的文件共享法度榜样供给了一个 MP3 文件以供别人下载,碰巧这个 MP3 音乐文件十分的热门,赓续的有人来下载,这个用户终极抉摘要节省一下带宽,想要把这个 MP3 音乐文件删除掉落,然则 Windows 系统却不容许用户这样做,由于这个 P2P 的文件共享法度榜样老是在应用这个 MP3 文件。用户要想删除这个文件,不得不先把 P2P 的文件共享法度榜样给停下来!呵呵。

然则 Linux 的文件系统的操作原语也有它自己的问题。我们知道,在一个 Linux Shell 的敕令行上,先 rm,然后再 ls,异常的干净,被 rm 的文件没有了,被删除了。然则我们可以设想有一个图形界面的文件治理法度榜样,当用户从 Shell 的敕令行上 rm 掉落一个文件的时刻,这个图形界面的文件治理法度榜样并没有收到任何人发给它的任何消息,它还以为什么都没有发生,被删除掉落的文件还在那儿。这其实是很 U.G.L.Y. 啊。

2、Linux 文件系统的异步 I/O 扩展

对付桌面谋略机系统来说,能够快速的响利用户的哀求,这也是十分关键的。换句话说,当用户移动鼠标的时刻,不管系统正在进行什么天大年夜的、紧张的、神圣的、弗成打断的事情,它都得急速停下,并且要让鼠标急速流通的在谋略机屏幕上完美地运动起来。对付习气在传统的 Linux 敕令行上事情的读者同伙们来说,让鼠标能够在任何光阴都可以在谋略机屏幕上向无头苍蝇一样地乱窜,竟然被当成是最紧张的系统义务,这其实有一点让人难以吸收。不过,当你从 Linux 敕令行上转移到 GNOME 或者 KDE 这样的图形界面的用户情况的时刻,鼠标被锁逝世,百分之百的也是会让你掉去理智的。以是,照样让我们吸收这一个现实,看一看若何才能增添系统的相应速率吧。

从文件系统的角度讲,分外是斟酌到收集文件系统,它的相应速率有可能会相称的慢。当用户在文件治理法度榜样中,选择了对文件进行某一个操作今后,文件系统可能会必要相称长的光阴,才能完成这一操作。假如文件治理法度榜样必须要等待文件系统完成这一操作,然后才能继承的话,这显然会给文件治理法度榜样的用户带来异常不开心的经历。办理这一个问题的法子,便是要实现异步的文件系统 I/O。

在 Linux 的 Gnome 桌面情况中,由 GnomeVFS 包裹了真正的 Linux 文件系统 I/O,实现了一个异步的文件系统 I/O 接口 API。我们可以看到下面这个用 GnomeVFS 打开文件的例子。

enum _GnomeVFSOpenMode {

GNOME_VFS_OPEN_NONE = 0,

GNOME_VFS_OPEN_READ = 1

我们留意到,上面的代码段中,用户法度榜样为了打开一个文件,向 GnomeVFS 注册了一个 call back 例程。在注册了这一个 call back 例程之后,函数调用就急速返回给用户法度榜样,用户法度榜样就可以处置惩罚自己的其余工作去了,比如进一步相应来自用户的nomeVFS 就会调用刚刚注册的 call back 例程,看护用户法度榜样,文件已经打开。3、小结我们在本文中懂得了 Linux Kernel 中的 dnotify,可以赞助我们实时地监视文件系统目录树中的变更环境;也懂得了 Gnome 桌面情况的 GnomeVFS 异步文件系统 I/O 扩展;可以赞助用户法度榜样不至于被文件系统的哀求所 Block。这两个功能对付 Linux 系统在桌面上的利用都是很紧张的。

您可能还会对下面的文章感兴趣: