- 浏览: 101745 次
- 性别:
- 来自: 南京
最新评论
-
colorfire:
os.path.splitext(file)[1] 不就可以吗 ...
枚举文件夹所有后缀名,python脚本
文章列表
I/O scheduler负责处理对物理设备的操作调度,采用的是电梯调度算法。但是为了满足其它的需求。linux提供四种调度策
略:
1.the noop elevator:
这种策略没有order队列,只有一个dispatch队列,每来一个操作请求就将其放在dispatch队列的最后。
2.the cfq(complete fairness queueing)elevator:
这种策略核心是一个hashtable,它将到来的操作请求按所属进程组的id,散列到hashtable中,hashtable的每个项可以
看做是一个队列,调度的时候按照round-robin的方式进行,一个队 ...
- 2009-02-24 15:55
- 浏览 628
- 评论(0)
linux对块设备请求的处理是一种层次体系结构,可以分为5层:
1.vfs:这层对所有文件系统的一种封装
2.mapping layer:这层用来定位数据的物理位置
这个操作分为2步:
a.首先确定包含文件的文件系统的block size,然后计算请求的数据包含多少file block。
b.调用跟文件系统有关的函数来访问文件的inode,确定请求的数据在磁盘上的逻辑块地址,事实上
磁盘被看成由一个一个的block组成,所以kernel需要确定请求数据的起始块号
这层跟下层的区别在于这层看不到sector结构,只看到block结构
3.generic block laye ...
- 2009-02-24 15:29
- 浏览 599
- 评论(0)
看到《80后,还记得我们作文的必杀句吗? 》这篇文章里的句子,好像每一句都是自己写过的,那时候
感觉还真的是天真单纯,整天无忧无虑的。在脑海里什么都是自然的,不带个人色彩。看着看着,小学时的
种种事情都在脑海中浮现出来,老实说我觉得自己懂事懂得早,只有小学,我觉得自己是无忧无虑的。那时
才真的是我的童年,那时爷爷奶奶都还很年轻,身体都很好,唉,现在真是不堪回首。想到小学,我又想起
以前在bbs上看到的一篇文章,上面贴了各种小时经常吃的玩的东西的图片。那时物质条件不好,吃的玩的都不能
跟现在比,但是我觉得那时要比现在的儿童开心多了。那时的我整天在外面玩,享受大自然所赐予我们的一切。
现 ...
- 2009-02-23 13:28
- 浏览 509
- 评论(0)
1.sector:是物理设备传输的最小单元,一般是512bytes
2.block:是linux vfs 使用的基本单元,可以是512,1024,2048,4096byts
3.segment:是设备驱动使用的传输单元,一个segment可以是一个内存页,也可以是一个内存页的一部分。
需要注意的是,一个block device driver不需要知道block,block的大小,block buffer等。
- 2009-02-23 13:14
- 浏览 538
- 评论(0)
传统的dma传输要求内存的buffer必须是连续的,但是这种新型的scatter-gather dma transfer可以将连续的硬件sector(传统和新型的传输都要求硬盘sector是连续的)传输到不连续的内存buffer中
- 2009-02-23 12:48
- 浏览 740
- 评论(0)
linux对硬件设备的支持分为3种:
1.no support at all:
这样应用程序只能通过in 和 out指令直接对硬件设备进行操作,这种的典型代表是x window system,这样可以保
证效率
2.minimal support:
内核不能识别设备,但是能识别设备对应的i/o接口,应用程序可以对i/o接口进行read或者write操作,这种的典型
的代表是并口和串口设备
3.extended support:
内核能识别设备和设备的i/o接口
- 2009-02-23 11:34
- 浏览 727
- 评论(0)
linux提供两种方式,来保证使用dma时,内存和硬件cache的一致性:
1.Coherent DMA mapping
When using this mapping, the kernel ensures that there will be no cache coherency problems between the memory and the hardware device; this means that every write operation performed by the CPU on a RAM location is immediately visible t ...
- 2009-02-22 12:25
- 浏览 535
- 评论(0)
今天早上8点起来做虚空龙的日常任务,居然捡到7个虚空龙蛋。
挑战壮志凌空任务的老5,居然被我过了
然后挑战老6,在失败了2次后,第3次终于过了。
发现老6比老5简单多了,飞行距离比老5短的多,老5的飞行距离太远了。
总结规律是,要预先判断boss的飞行路线,这样才能最快做出调整,躲开boss的攻击,以及不被boss
甩掉(特别是老6飞行速度真的很快,一不小心就会被甩掉)。
看来今天早上的运气还是蛮好的,嘿嘿!
- 2009-02-22 09:35
- 浏览 462
- 评论(0)
为什么要有一个窗口管理器?
为什么一定要有一个桌面背景,甚至是标题栏? 或是如果把一个应用程序如firefox当成桌面背景行不行?
桌面能不能再快一点?我不想把资源浪费在那些用不到的地方。
Linux那么多虚拟桌面,为什么我 ...
- 2009-02-21 20:26
- 浏览 1369
- 评论(0)
1.音乐播放器:songbird
2.文件管理器:thunar
3.窗口管理器:e17
4.web浏览器:firefox
5.终端:gnome-terminal
- 2009-02-21 20:17
- 浏览 496
- 评论(0)
默认的文件管理器
以下这些文件管理器被 Linux 桌面环境采用为默认的文件管理器:
Nautilus,又称鹦鹉螺,是 GNOME 桌面环境中的默认文件管理器。虽然 Nautilus 稍显笨重,但是功能非常全面。Nautilus 具有树状视图,支持通过脚本来扩展其功能,并集成了光盘烧录特性。Nautilus 使用技巧,在 Nautilus 中执行批量重命名操作,Nautilus 脚本集,扩展 Nautilus 的功能。
Konqueror,KDE 桌面环境中的默认文件管理器。Konqueror 集文件管理、网络浏览、文档查看于一身,具有多种不同的“身份”。
Dolphin,KDE ...
- 2009-02-21 20:16
- 浏览 745
- 评论(0)
linux的文件锁分为两种:
一种是advasory lock,只能保证进程内对同一个文件锁的互斥有效,但是多个进程可以同时对一个文件加互斥的锁,所以这种锁是加在file 结构上;一种是mandatory lock,这种锁可以保证多个进程无法对同一个文件都加上互斥锁,所以这种锁是加在inode 结构上的。
当加mandatroy lock时,如果已有进程在文件上加了互斥锁a,那么进程创建的file_lock b结构将会加入到a的等待链表中,此时a叫做blocker,b被称为waiter。由于进程想要的资源(加锁)无法被满足,所以进程要么被阻塞,进程的描述符被加入到 b的等待链表中;要么系统调 ...
- 2009-02-20 20:05
- 浏览 629
- 评论(0)
linux VFS结构:
1.superblock:
每个文件系统有且只有一个superblock,系统初始化完毕之后将维护一个superblock链表,里面包含所有
注册的文件系统的superblock。
2.inode:
保存一个文件的信息,比如文件的名字,文件在磁盘上的数据位置等
3.file:
这个结构用来描述进程跟一个文件交互的信息
4.dentry:
因为在linux中一个目录也是一个文件,文件里面的是一个个的entry,描述对应目录下的文件和目录信息,
而dentry就是描述目录entry信息的结构。由于dentry在解释文件路径中的作用,linux来保留有de ...
- 2009-02-20 19:40
- 浏览 689
- 评论(0)
用Button的例子详细说明 为了更好的理解MVC设计模式和Swing用户界面组件之间的关系,让我们更加深入的进行分析。我将采用最常见的组件button来说明。 我们从model来开始。 Model 一个按钮的model所应该具备的行为由一个接口ButtonModel来完成。一个按钮model实例封装了其内部的状态,并且定义了按钮的行为。它的所有方法可以分为四类: 1、查询内部状态 2、操作内部状态 3、添加和删除事件监听器 4、发生事件 其他的用户界面组件有它们各自的与组件相关的Model,但是所有的组件Model都提供这四类方法。 View & Controlle ...
- 2009-02-18 12:32
- 浏览 1029
- 评论(0)
在linux里,generate signal是指在接受信号的进程结构中插入信号的相关结构(在进程的结构中有两个跟信号相关的队列,一个是pending field里的信号队列,一个是signal field里的信号队列其中pending指向的是进程的私有信号,而signal里的是进程所在进程组的共有信号)。这个结构名为struct sigqueue.需要补充说明的是,如果信号是被进程忽略的,忽略一个信号需要满足的3个条件是:1.The process is not being traced (PT_PTRACED flag in t->ptrace clear).
2.The signa ...
- 2009-02-17 20:15
- 浏览 421
- 评论(0)