qiwei's profiledreamdailyPhotosBlogLists Tools Help

Blog


    July 06

    nfs --network file system

          由于白云的主机空间不足,同时存放着一些备份数据,想把这些备份数据转
    移到新主机上去。最初打算是采用ftp来做,写自动上传的ftp脚本。但是
    如果要恢复部分数据时,需要将整个的压缩包下载下来,然后才能解压。
    这点比较麻烦。因此采用nfs来解决这个问题。google了一下,找到了nfs howto,

    讲得比较详细。在新主机linux上设置好/etc/exports,然后启动nfs服务;
    同时找到了solaris下nfs client设置的资料。mount也成功了,不过cd目录时,

    提示说权限不够!刚开始以为是客户端的问题,跑到CU去咨询,后来别人回帖说,
    应该是服务器设置的问题。同时我找了台linux机器做nfs client,还是
    出现了相同的问题。

         重新看了nfs howto,发现在设置服务时,默认的是no_root_quash:
    即当client以root帐号访问时,在nfs server端影射成nobody用户来访问
    nfs目录。而nfs目录的权限设置上,没有对nobody提供任何读写权限。
    设置no_root_squash,客户端如果以root访问,那么在nfs服务器上也是
    root来访问。因为mount需要root权限,我在mount成功之后,直接
    以root来访问的,所以在没有设置no_root_squash 时,出现了没有权限
    的问题!
          nfs使用比较方便,以后有机会好好深入学习!

     
     nfs-howto

    June 15

    GNU profiler

    有空学习一下~
    IBM DW上有个教程:使用 GNU profiler 来提高代码运行速度
    http://www-128.ibm.com/developerworks/cn/linux/l-gnuprof.html?ca=drs-

    linux下的运行时内核管理

    linux的内核是单内核的;传统上单内核相对于微内核来说,扩展性差一些。
    但是Linux下通过可动态加载和下载的内核模块来弥补了这个缺陷,达到了
    完美!

    首先,我们当然想看一下,现在linux系统里运行了哪些内核模块。没有内核,
    敲入lsmod,就可以查看到了。输出如下:
    Module Size Used by
    loop 18761 0
    ipt_REJECT 10433 1
    ipt_state 5825 6
    ip_conntrack 45701 1 ipt_state

    第一列是模块的名称,第二列是模块的大小,第三列代表模块的使用计数,
    如果有其他模块在使用这个模块,那么在后边会跟上其他模块的名称!
    (通过strace lsmod,我们可以发现lsmod其实就是去读取/proc/modules文件
    的内容进行显示的)

    现在我们知道了,原来系统里有这么多的模块在内核里,那么这些每个内核模块
    都是干什么用的? 这些模块所对应的文件在哪里呢?OK,这个问题我们通过
    modinfo命令就可以来解决!
    #modinfo ext3
    filename: /lib/modules/2.6.9-1.667smp/kernel/fs/ext3/ext3.ko
    author: Remy Card, Stephen Tweedie, Andrew Morton, Andreas
    Dilger, Theodore Ts'o and others
    description: Second Extended Filesystem with journaling extensions
    license: GPL
    vermagic: 2.6.9-1.667smp SMP 686 REGPARM 4KSTACKS gcc-3.4
    depends: jbd
    这样我们就知道了ext3这个内核模块的信息,包括对应的实际名称,作者和其他
    的一些信息。

    既然我们知道了模块的信息,你一定会问:那我怎么往内核里插入我自己的模块
    呢?It is very easy!! 在linux下插入模块,有2种方法,你可以通过insmod或者
    modprobe来解决; insmod 命令后面必须跟模块文件名的路径,譬如:
    #insmod /lib/modules/2.6.9-1.667smp/kernel/fs/ext3/ext3.ko
    不过一般推荐使用modprobe。在模块之间,可能存在着一些依赖关系,譬如从
    上面modinfo ext3的输入我们得知:ext3模块依赖于jbd模块·。如果你往内核
    里插入jbd模块,而直接通过insmod来插入ext3模块,那么是无法执行成功的。
    而modprobe则不需要自己来处理这些依赖关系。下面来看个例子:

    #modinfo vfat
    filename: /lib/modules/2.6.9-1.667smp/kernel/fs/vfat/vfat.ko
    license: GPL
    description: VFAT filesystem support
    author: Gordon Chaffee
    vermagic: 2.6.9-1.667smp SMP 686 REGPARM 4KSTACKS gcc-3.4
    depends: fat
    vfat 模块依赖于fat模块!
    然后我们删除系统里的 fat模块和vfat模块(后面会讲解)
    #rmmod vfat
    #rmmod fat
    #lsmod | grep fat
    来确认目前系统里已经没有fat和vfat模块!

    我们尝试着用insmod来插入vfat模块
    # insmod /lib/modules/2.6.9-1.667smp/kernel/fs/vfat/vfat.ko
    insmod: error inserting '/lib/modules/2.6.9-1.667smp/kernel/fs/vfat/vfat.ko':
    -1 Unknown symbol in module
    看到insmod无法插入vfat内核模块;

    #modprobe -v vfat
    insmod /lib/modules/2.6.9-1.667smp/kernel/fs/fat/fat.ko
    insmod /lib/modules/2.6.9-1.667smp/kernel/fs/vfat/vfat.ko
    我们通过modproble就可以看到,插入vfat模块时,先插入vfat模块依赖的
    fat模块,然后再插入vfat模快!

    看到这里,你当然会问:modprobe怎么知道各个模块的依赖关系呢?
    呵呵,奥秘在modules.conf文件里! 从 man modules.conf里摘一段,
    大家看完之后就明白了:
    The modules.dep as generated by module-init-tools depmod, lists the
    dependencies for every module in the directories under /lib/modules/version,
    where modules.dep is.
    For example, if /lib/modules/2.5.53/kernel/a.ko depended on b.ko
    and c.ko in the same directory, and c.ko depended on b.ko
    as well, the file might look like:
    # This is a comment.
    /lib/modules/2.5.53/kernel/a.ko: /lib/modules/2.5.53/kernel/c.ko
    /lib/modules/2.5.53/kernel/b.ko
    /lib/modules/2.5.53/kernel/b.ko:
    /lib/modules/2.5.53/kernel/c.ko: /lib/modules/2.5.53/kernel/b.ko
    This file is used by modprobe to know the order to load modules
    (they are loaded right to left, and removed left to right).
    在Load的时候,从右向左插入每个模块,卸载的时候从左向右下载每个模块!
    而modules.conf文件是由/sbin/depmod 命令来产生的。
    我们一直在讲如何插入模块,那么该如何卸载模块呢?总不能只能插入,不能
    卸载吧?不会的~Linux下提供了rmmod命令来帮助我们卸载不需要的内核模块。
    #rmmod modname
    不过,如果模块的使用计数不是0,那么rmmod会提示出错!
    #lsmod | grep fat
    vfat 16961 0
    fat 44897 1 vfat
    当前fat 模块的使用计数1!
    如果我们使用rmmod来删除fat,
    #rmmod fat
    ERROR: Module fat is in use by vfat
    系统提示:fat模块由vfat模块在使用,我们必须先删除vfat模块,然后再删除
    fat模块!
    #rmmod vfat
    #rmmod fat
    #lsmod | grep fat

    Over了!如果有兴趣的,可以学习一下内核模块的编程~
    June 09

    lupa开源资讯



    LUPA新闻订阅服务 类别:开源社区

    本资讯定于每周五下午发送

    在6月3日至6月9日期间,开源社区主要发生以下事件。

    资讯类:
    Rob Braun阐述苹果的开源历史 (2006-06-03)

    苹果革命性的MacOSX是基于开源项目FreeBSD 5.0,Mach 3.0等发展起来的。该文章回顾了苹果的开源历程 ……

    Red Hat首席执行官:微软仍极具侵略性(2006-06-05)

    三、四年前,在Linux、Unix和Windows三方角力成为重头戏的时候,开放源代码软件公司成为各界瞩目的焦点,但如今随着操作系统层日趋商品化,Web 2.0变成新焦点,开源公司如何持与时俱进、持盈保泰呢?

    如何看待开源软件的知识产权问题(2006-06-06)

    近年来,开源软件在国内外发展很快,正在走向成熟,开始与传统私有软件形成并存的态势,甚至在某些领域内渐成主流。

    倪光南:联想选微软弃Linux 是历史重演 (2006-06-07)

    6月5日,外电报道联想将只和微软合作,包括ThinkPad笔记本在内的所有电脑均不预装LINUX操作系统。倪光南对此表示:联想从企业利益出发,这样做是可以预料的,因为它预装Windows得到了优惠的价格,为此,也就受到了制约。

    访谈:Novell为尊严而战 (2006-06-08)

    Novell的总裁Ron Hovsepian表示,公司要采取措施重新赢得投资者的信任,并向市场的领头羊红帽发起攻击。

    AIX20年辉煌:创新中保持青春活力 (2006-06-09)

    20年,对于日新月异的IT界来说,有些产品甚至经历了从诞生到消亡的生命历程。但也有一些产品,却在不断的创新中继续保持着旺盛的活力。

    著名主持人刘忠虎为选手做赛前指导 (2006-06-06)

    为鼓舞选手做好赛前准备,组委会特请著名主持人刘忠虎老师,通过视频来点评选手的讲解演讲技巧,以丰富选手赛前准备经验。

    LUPA足迹----江苏之行 (2006-06-08)

    6月6日早十点,LUPA踏入了在常州市高校的计算机教学一直处于领先地位常州工学院,做为常州市的老牌本科院校,校领导非常重视LINUX人才的培养,校长亲自委托计算机学院庄院长,与LUPA团队就开展LINUX培养计划进行了交流。


    技术类:

    光盘上的Linux Knoppix 5.0.1发布    (2006-06-07)

    KNOPPIX是一款运行于CD/DVD之上的可启动Live系统,由一系列具有代表性的GNU/Linux软件组成,还集成了自动硬件检测,支持多种显卡、声卡、SCSI和USB设备以及其他外设。


    m0n0wall 1.23 Beta 1 发布    (2006-06-07)

    The first beta of the FreeBSD-based m0n0wall firewall, version 1.23, is ready for download and testing.

    EnGarde Secure Linux 3.0.7 发布   (2006-06-07)

    Secure Linux has been updated to version 3.0.7: "Guardian Digital is happy to announce the release of EnGarde Secure Community 3.0.7.

    Ubuntu 6.06 正式发布 编码名为 Dapper Drake    (2006-06-02)

    在国内时间大约5点30分的时候,Ubuntu的开发者们终于在IRC里宣布编码名为Dapper Drake的Ubuntu 6.06正式发布!


    完全由开源软件打造的电影《大象之梦》   (2006-06-06)

    "来自自由软件交流网的消息:这是一部完全采用自由软体(主要是 Blender,一个 3D 动画设计软体),经过一年的时间,由六个人(选自 Blender 的论坛上)共同做出的动画作品。

    球迷必备的 2 个 firefox 插件 推荐一下    (2006-06-08)

    FootieFox
    只能显示当天有比赛的联赛比分,进球报道。
    当天无比赛则不在footiefox中显示。

    比分显示为灰色表示已经比赛完毕,是最终比分;
    比分显示为黑色表示正在比赛过程中,是暂时比分;
    无比分表示比赛还未进行。

    进球会弹出提示框……

    查看更多信息

    反馈意见------------------

    尊敬的用户您好。LUPA开源社区初步尝试为用户提供开源信息服务。欢迎您提出意见和建议,让我们一起努力建设开源社区。

    提交反馈信息

    取消邮件订阅服务

    LUPA ©2006