自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 总结主流搜索引擎在服务型关键字上的表现

测试了百度,Google与Bing的列车,天气,假期,货币换算,单位换算及计算器等功能。最后显示,Google退出中国后影响还是很大的,在本地服务方面没做到位,列车时刻表,PM2.5,假期等热门话题都没有给予特殊关照。但是对细节的关注到了令人吐血的地步。Bing虽然做了本地化的努力,但还有所欠缺。路还很长。百度大体上很好,但在细节上Google不能比。它的计算器连大数运算都做不了,鼠标

2013-04-16 20:19:58 1212

原创 64bit PowerPC Linux内存初始化

start_here_multiplatform (asm)   .early_setup       early_init_devtree          early_init_dt_scan_memory_ppc              early_init_dt_scan_memory                  early_init_dt_add_

2013-03-29 16:06:36 1387

原创 64位ubuntu下装32位libstdc++.so.6

搜了半天,包名居然叫lib32stdc++6。apt-get install lib32stdc++6蛋疼。

2013-03-26 19:56:34 18658 5

原创 gcc查找头文件的规则

见:http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html /usr/local/include libdir/gcc/target/version/include /usr/target/include /usr/includelibdir是{prefix}/lib,target是a

2013-03-23 02:57:55 6596

原创 交叉编译工具链

GCC还好说,make all-host很顺利,工具都编出来了,但all-target编译不成功,连libgcc都编不出来,不知道为什么这些GCC的底层库需要target的C库。安装这些工具已经可以正常编译内核了,虽然不知道为什么最后编出来的内核在虚拟机里跑不了。最后参照lfs里命令选项,尽可能不编译库,最后果然成功了。下面是编译glibc,开始连configure都过不了

2013-03-22 15:57:20 7479

原创 重设终端

有些程序会改变终端设置,比如不回显或者改变换行符。通常程序结束后会恢复终端设置,但有时候会有意外情况。比如qemu运行出错退出时,不会恢复终端设置,回显于是一直被禁止。可以手动stty设置终端属性,更方便的方法是reset。tset(1)                                                                tset(1)

2013-03-12 16:37:21 746

原创 losetup分区过的镜像文件

印象中一直以为losetup无法处理分区过的镜像,今天发现可以:-P, --partscan                create partitioned loop device#losetup disk/ubuntu-main.img -fP --show/dev/loop3#ls /dev/loop3*/dev/loop3  /dev/lo

2013-03-12 15:56:02 1240

转载 ubuntu里设置从串口登录

https://help.ubuntu.com/community/SerialConsoleHowto1) Create a file called /etc/init/ttyS0.conf containing the following:# ttyS0 - getty## This service maintains a getty on ttyS0 fr

2013-03-12 13:23:30 5331

原创 在线生成fstab

http://epistel.no/fstab/需要手动编辑的东西真麻烦。

2013-03-12 13:18:48 967

原创 hostname的设置

Ubuntu下/etc/hostnameFedora下/etc/sysconfig/network同时使用不同发行版真麻烦啊。

2013-01-31 18:49:29 538

原创 Ubuntu里禁止自动打开文件夹

运行xfstest时,ubuntu在检测到挂载动作后会自动打开挂载点,某些测试项会因为ebusy失败。来自askubuntu的解决方案:Turns out, it is. You will need dconf-editor tool, which can be installed by with sudo apt-get install dconf-tools

2013-01-28 16:44:16 842

原创 将Vim的内容送至外部分命令

Vim与外部命令的交互方式有:    -- 读取外部分命令输出,如:r !ls    -- filter选中内容,如:' !sort有时,只想把选中内容送至外部命令但不替换选中内容,如想把一封邮件里的内容送至剪切板:    -- :'w !xsel --clipboard只比filter操作多一个w,不知何意。有个人在stackoverflow上说,他用了V

2013-01-08 13:06:08 417

转载 Qemu与kvm相关的命令行参数含意

On Sun, Jan 6, 2013 at 12:27 PM, lei yang wrote:> What's the different with below combos?The difference is historical, it's just how the command-line optionsevolved over time.> 1)qemu

2013-01-08 12:51:45 1201

原创 「VIM」 quichfix中跳转到下一个结果

不是tn而是cn,以前居然没意识到。在VIM中用grep便是如此。把tn映射到Ctrl-n,cn映射到Ctrl-m,用起来很顺手。以后用VIM搜索代码方便多了。

2013-01-04 14:32:43 713

原创 VIM中的<C-r>=是什么意思

Cscope文档中推荐的映射:nmap s :cs find s =expand("")=是什么意思?赋值语句?是插入某个寄存器值的意思,=是表达式寄存器的意思。所以这句话是在命令行插入expand("")的值,也就是当前光标下的单词。其实在后再输入就是当前光标下单词的意思,与=expand("")应该是等效的。我一般将查找调用者映射为:nmap F :cs

2012-12-14 14:25:11 11526 2

转载 kzalloc的故事

From :  http://lwn.net/Articles/147014/The kernel code base is full of functions which allocate memory with kmalloc(), then zero it with memset(). Recently, Pekka Enberg concluded that much of

2012-12-11 13:53:36 518

原创 perl解释器的代码和用perl写出来的代码一样难看

闲得蛋疼想看看几种主流脚本语言的解释器是怎么工作的。我是最早看过陈儒那本讲Python解释器的书才萌生此想法。虽然此书行文风格我厌恶至极,但它确实给了我一些启示。上次京东做活动满200减50,于是买了Programming Perl的最新影印版,研究一下perl internal自然提上日程。初一看Perl的代码简单不塂入目,满屏的宏定义,完全无法跟踪。官网上有一些解释internal

2012-11-11 20:28:23 1472

原创 内核回写框架

ULK介绍回写时说得无比复杂,六七年过去了,回写框架完全变了样。每个块设备与bdi相关,每个bdi则对这个块设备负责。回写的动机: 不想让各种cache在内存中停留太久,以免突然断电致使更新没有反映到硬件上; 不想让cache占用过多的内存,当cache慢慢变大,要时不时把某些东西写回磁盘,当内存不够用时,直接把cache丢掉就行。这两个动机应该可以统一起来,但我现在还想不

2012-11-07 23:17:54 768

原创 查看内核构建的时间

有时候,忘了现在运行的内核是不是刚刚编译的。这时可dmesg查看开头banner,日志中有内核构建的时间。其实这个信息在内核里存储了,cat /proc/version或者 cat /proc/sys/kernel/version就可以看到。

2012-11-07 18:37:40 2202

原创 用Python实现一个简单的文件传输协议

写个东西并非无聊或者练手,而是厌烦了每次都得重头写。我已经不是第一次碰到下面的情况:远程到一台可以连接内网的机器,结果发现其环境极为恶劣,没有scp。最夸张的一次,我见过一台机器连man都没装。所幸装了ssh可以让我远程。但没有scp怎么传文件呢?ftp?试了几个命令,没有。HTTP?客户端或者服务器端软件都没有。python?有的。尼玛,最后在远程机器上用python写了个简单的服务器,终于可以

2012-11-04 00:09:44 21875 3

原创 Kindle进入日本

Kindle一开始便向日本开放,虽然并不在当地贩买。美国Amazon上可以选择发货至日本,作为对比,你不可以发货到中国。最近发现DMM又禁中国IP了,为了查点资料,只得跑去日本Amazon,一进首页就看到大大的Kindle广告。一开始也没多想。今天又上去看,kindle store也开了,于是逛了逛。从数量上看,书还挺多;不过当下流行的应该没几本,价格都不菲。其实,等日本的Kindle

2012-10-31 23:22:33 4004

原创 用Gmail发邮件时设置正确的姓名

平时发patch一般用git send-email,回邮件的话,在公司里邮件客户端用的Mutt,私下则用Gmail。Mutt里可以设置用户姓名,Gmail默认使用帐户中设置的姓名。很蛋疼的是,Gmail会把姓放在后面,名放在前面。当然,可以把姓设为名,名设为姓,虽然这很不爽。其实,Gmail里可以不使用帐户中的信息做为发件者的姓名。在设置,帐户导入中,’用这个地址发送邮件‘这一行旁边,

2012-10-27 15:51:33 7414

原创 获取Linux单个源码文件的最新版

公司的打印机在Linux下格外不好使。之前折腾了我好久才装上驱动,各种设置又麻烦,又不知道怎么选中一个好看的字体,每次想把代码打出来看时,都会切换到Windows。用Windows打印源码太简单了,直接用记事本打开,打印,边距字体都好好的。结果,每次都把文件拷到Windows分区下。其实可以在Windows下也建一个git仓库跟踪Linus的tree,反正Windows下也有git,当

2012-10-26 21:20:51 532

原创 看个片也难

一路折腾Btrfs那些概念,差不多快上床时下了几部片。下载还比较顺序,但插上U盘居然没有任何反应,块设备文件也没有出现。开始以为是HUB的问题,看了下LOG,检测到高速设备。一惊,几个小时前刚编的3.7-rc1,没把USB大容量储存设备驱动编进出。赶紧编个模块,磁盘设备出来了,移动硬盘出了,但U盘还是不行,说缺VFAT模块。我靠,那移动硬盘是怎么整的?mount信息里显示移

2012-10-19 01:09:50 2495

原创 fallocate与“文件打洞”

以前谈过怎么快速为qemu生成磁盘文件,后来发现fallocate可以很好的做这件事。这个东西底层的实现不知道是什么情况,至少可以:a.只让文件看起来有那么大,磁盘空间COW分配;b.一次把磁盘空间分配完。对于大文件来说,后者似乎要更好,因为文件在磁盘上完全是连续的。这样制造出的文件内容全为0,某种程度上来说,fallocate是touch的增强版。标题将fallocate与punch

2012-10-17 23:05:54 4128

原创 superblock的blocksize

块设备硬件操作数据的最小单位一般称为sector size,文件系统管理数据的最小单位则称为block size。我总有种‘曾经两者都常是512 byte’的感觉,不知何故。在内核代码里,blocksize出现在与块设备相关的结构体里,也出现在与文件系统相关的结构体里。我一直认为,与块设备相关结构体里的blocksize就是hardware sector size。其实,光是与块设备相

2012-10-15 22:30:59 1731

原创 两个kernel.org国内镜像

在家里访问kernel.org巨慢,好在不用git clone整个仓库,只是下载最新代码包而已,即使如此,近百M的东西用几十K的速度下也太蛋疼了。kernel.org在国内的镜像似乎不多,到sohu和163上看了下,没有kernel.org。最后找到了北京交通大学和清华大学的镜像。前者速度不快,下几分钟就断线了,后者速度不错。http://mirror.bjtu.edu.c

2012-09-29 23:49:14 17919

转载 为什么要逆序释放锁?

本来想找找理由的,结果搜到这个。From: http://yarchive.net/comp/linux/lock_ordering.htmlFrom: Linus Torvalds Newsgroups: fa.linux.kernelSubject: Re: [RFC][PATCH 7/7] lockdep: spin_lock_nest_lock()Da

2012-09-19 15:04:28 897

原创 想个密码真是头疼

公司各种密码的设定真让人头疼。三个月必需换一次,密码里必需得有字母数字和其它字符,用过的密码还要隔好几个换密码周期才能重复使用。想密码是小事,关键是一时想出的密码记不住啊。哪里去找对自己有意义,可以记得住,又符合这个苛刻要求的密码?有一次很偶然地记住了一款路由器出厂密码。因为是公共路由器,放在高处,费了好大劲才看到机身上的密码,于是在几个地方记了下来,没想到自己竟然背下了。于是,一直把

2012-08-28 21:49:48 561

原创 邮件系统的组成

MUTT的官网上有些材料对邮件系统里各个部分的作用做了详尽解释。很早以前我就看过这些东西了,但最终还是没能搞清楚谁是谁。MUA直接根用户打交道,MUTT即是如此。它遵循“一个程序只做一件事”的原则,既不能收邮件,也不能发邮件。这是我见过对“一个程序只做一件事”最蛋疼的信奉。MUTT在整理邮件方面确实好用,至少潜力非凡,工作方式合程序员口味。但如果要使用它还得装一个fetchmail,装

2012-08-25 22:47:56 4118

原创 在man中搜索指定章节的关键字

man有个-k选项,可以在手册的简短描述中搜索关键字(-K则搜索全文)。这个很有用。比如,我只记得Linux有个可以绑定CPU的系统调用,但又记不得叫什么名字,此时可以man -k sched或者man -k affinity,甚至只要affinity前几个字母。一个问题,如何只在某一个章节里搜索?比如,我想看看什么命令里的简述中含有time这个单词,只需要搜索第一章就够了。但如何表述

2012-08-24 17:23:47 1729

原创 Ubuntu进入字符模式的方法

在Fedora时代,开机进入字符模式需要改inittab或者添加single-user内核参数.到我终于转到Ubuntu的时候,原来那一套却不适用了.Ubuntu采用新的upstart替代init,个中机理,早已失去了研究的欲望.前一段时候,新内核上笔记本显卡驱动有问题,进入X就花屏.尝试进入字符模式,数次搜索未果,这居然也未激起我去研究一番的斗志.直到想用KVM做实验,而Qemu的图形支持实在是

2012-07-24 20:25:00 3155

原创 南北桥名字的由来

最近,工作上的事情毫无进展,日子一天天过去而没有觉得学到什么东西,这种状态委实很难受.于是,业余时间着手看一些PCI相关的东西.虽然现在不做驱动了,过去的经历还是让我对此部分颇为留意.驱动虽说是操作系统最外围浅薄的一部分,也是十分有份量的一部分.Linus也不会无视这一点,他最早写Linux时也是要盘活一大堆硬件的.记得一篇文章里,他自称是hardware guy(所以虚拟化抢了他的行

2012-07-22 00:29:07 3959

原创 终于在笔记本上跑起了最新内核

之前一直抱怨笔记本装不上最新版的LINUX,今天因为在公司电脑上试了一把SYSTEMTAP,很是心动,于是决定再做一把尝试。分析一下,可能是载入了不兼容的显卡驱动。lsmod,看到有radeon这个module. Ubuntu大概是会把所有能编成驱动的都编成驱动,为什么我完全按它的配置来会出错?大概是编入了新加的与显卡驱动相冲突的东西。想起曾在论坛上看过KBUILD可以根据当前modu

2012-07-17 21:28:25 746

原创 Cache的威力

虽然cache的作用显而易见,直观上的感受大概要亲自体验过才知道。今天偶然清空了cache,再打开文件时,居然有可以感知的延时!syncsudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'访问一个已存在的文件:# time touch vfsreal    0m0.227suser    0m0.001ssys

2012-07-16 16:10:09 459

原创 怕买低端笔记本了

读书的时候,有个同学很有品位,买的东西一定要上档次.四年前他就说过,笔记本要买6000的,相机要买2000多的.可能我是对这种态度反应过于猛烈,现在买东西能买多低端就买低端.四年后的今天,数码产品性与价都膨胀得厉害,而我仍是买800的相机 3000的笔记本.用起来倒没什么问题,个人也不在乎玩品牌的味.只是现在用的低端笔记本,让我在Linux上很折腾一下.买了笔记本后,准备装上早先准备的

2012-06-30 15:40:55 1011

原创 Linux下生成大文件

QEMU的磁盘文件不需要专门的工具制作,LINUX下直接DD出一个空文件就行了。平时常做的是:dd if=/dev/zero of=disk.img bs=1G count=16这样要花五六分钟。今天又做此事,想一想,这个过程无非是文件系统分配一些空闲的块,不应该花这么久的。大部分时间都花在向磁盘上写0了。如果利用file hole ......dd if=/d

2012-06-27 19:25:39 500

原创 VIM技巧三则

我使用VIM的理由,大约不是因为它功能强大,而是Linux里其代码配色和字体都很漂亮。作为佐证,Windows上的VIM我用的就很不爽;同理,Windows上的ssh软件用的也很不舒服。习惯归习惯,有一些技巧还是要掌握的。根据我平时使用的经验,会跳来跳去(普通,或者看代码),会复制粘贴,会搜索替换,一般就能就会大部分工作了。但偶尔还是需要一些特殊功能,平时虽不常用,有需求的时却还是想看

2012-06-08 16:14:02 438

原创 指向数组指针的数组

实现一个程序时,想要写出“指向数组指针的数组”的声明。完整地说,我想声明一个3元素数组,元素类型为“指向char[64]的指针”。为什么想指定数组维度?比如arr是这个指针数组,如果能声明维度,*arr[0]的类型就是“char[64]”,sizeof(*arr[0])就能获得数组的长度。一下还写不出来,尝试几番,总算让sizeof(*arr[0])返回64了。声明的样子是

2012-05-20 14:23:56 441

原创 在电纸书里看代码的尝试

想在电纸书上看代码。首先要把所有的C文件转成txt文件,不然电纸书识别不了;最好还要保持目录结构。这种文件间的sync需求已经遇到好几次了,以前似乎看过有专门处理这个的工具。这次还是自己来吧。处理方式首先就想到了递归,看过SICP后,总算可以视递归为理所当然了。想一次写对还有些困难,改了几下,总算可以用了。其实自己也没有仔细推导整个过程,只单是递归思考写出代码,不能用时再去想,能用就不

2012-04-09 21:40:21 1271

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除