Google合作伙伴日活动2013上海站

Google合作伙伴日活动2013上海站

 

2013年12月3日,Google合作伙伴日活动2013上海站在静安寺附近××举行,我收到了邀请并和老婆一起参加。个人感觉,比去年2012年上海站的活动要差点儿。

Google在发展,但在中国越来越黯淡。能看到谷歌中国的努力,也能感觉到谷歌中国的无奈。因为众所周知的原因,也不想多说,但愿Google越来越好…

这是活动的安排:

Google合作伙伴日,从您的角度出发精心设计了一系列丰富内容,提升您的竞争力,最大化您的收益。我们衷心希望在与您真诚分享的同时,让此次活动也能成为您与业界同仁交流的平台。

 

会议日程:

时间 主题
13:00 – 13:30 嘉宾签到
13:30 – 13:45 欢迎致辞
13:45 – 14:05 携手并进,创造未来
14:05 – 14:25 广告业生态大势展望
14:25 – 14:45 用户怎样上网,我们怎样变革
14:45 – 15:00 茶歇
时间 AdSense 分会场主题 时间 AdMob 分会场主题
15:00 – 15:20 拥抱多屏时代 15:00 – 15:30 全球移动应用市场的机遇和挑战
15:20 – 15:40 创造最优秀的用户体验 15:30 – 16:00 新 AdMob 大揭秘
15:40 – 16:10 嘉宾高峰访谈 16:00 – 16:40 嘉宾高峰访谈
16:10 – 17:30 现场一对一优化指导 16:40 – 17:00 问答

google_partner_day

Google中国黑板报已经关掉了,我几乎没有看到这次活动的报道和说明..谷歌的信息发布似乎只留下了新浪官方微博,也不死不活,不温不火。

但愿Google会更好,谷歌中国会活起来..

服务器日志备份的一点小问题

服务器日志备份的一点小问题

前两天一个朋友打电话聊到他遇到的问题:自己动手写的日志备份脚本有问题,当移走日志文件后,应用程序不再写日志到新的文件中,kill 掉应用后才可以..

他的脚本可能是这样的:

mv /log/a_log.trace /log_bak/a_log.trace_xyz 
touch  /log/a_log.trace

相信各位大拿肯定已经知道原因,但是我还在这里说说,为那些可能想知道原因的小童鞋。

 

那么,弄清楚open函数或者sys_open系统调用,知道文件描述符,即使你没有写过C代码,也知道原因了吧!

文件已经被你mv走了,可以原应用还在运行,仍旧保留着原文件的文件描述符,可是文件其实已经不存在了…

解决办法:不要删除或者移走日志文件,清空这个文件就可以了!

cp -p /log/a_log.trace /log_bak/a_log.trace_xyz 
cp /dev/null /log/a_log.trace

再来深入一下吧:

什么是虚拟文件系统?

    VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat 提供接口机制。在其下是实体的文件系统。虚拟文件系统的主要功用,在于让上层的软件,能够用单一的方式,来跟底层不同的文件系统沟通。在操作系统与之下的各种文件系统之间,虚拟文件系统提供了标准的操作接口,让操作系统能够很快的支持新的文件系统。

一切皆是文件!

  一组在逻辑上具有完整意义的信息项的系列。除了普通文件,其他诸如目录、设备、套接字等 也以文件被对待。总之,“一切皆文件”。

文件对象

文件对象是已打开的文件在内存中的表示,主要用于建立进程和磁盘上的文件的对应关系。它由sys_open() 现场创建,由sys_close()销毁。文件对象和物理文件的关系有点像进程和程序的关系一样。当我们站在用户空间来看 待VFS,我们像是只需与文件对象打交道,而无须关心超级块,索引节点或目录项。因为多个进程可以同时打开和操作 同一个文件,所以同一个文件也可能存在多个对应的文件对象。文件对象仅仅在进程观点上代表已经打开的文件,它 反过来指向目录项对象(反过来指向索引节点)。一个文件对应的文件对象可能不是惟一的,但是其对应的索引节点和 目录项对象无疑是惟一的。

 struct file {
    ……
    struct list_head        f_list;        /*文件对象链表*/
    struct dentry          *f_dentry;       /*相关目录项对象*/
    struct vfsmount        *f_vfsmnt;       /*相关的安装文件系统*/
    struct file_operations  *f_op;           /*文件操作表*/
    ……
};

文件I/O

sys_open()系统调用打开或创建一个文件,成功返回该文件的文件描述符。sys_read()系统调用用于从已打开的文件读取数据。如read成功,则返回读到的字节数。如已到达文件的尾端,则返回0。

sys_open

 

更多,请再进一步探索..