- 博客(53)
- 收藏
- 关注
原创 总结主流搜索引擎在服务型关键字上的表现
测试了百度,Google与Bing的列车,天气,假期,货币换算,单位换算及计算器等功能。最后显示,Google退出中国后影响还是很大的,在本地服务方面没做到位,列车时刻表,PM2.5,假期等热门话题都没有给予特殊关照。但是对细节的关注到了令人吐血的地步。Bing虽然做了本地化的努力,但还有所欠缺。路还很长。百度大体上很好,但在细节上Google不能比。它的计算器连大数运算都做不了,鼠标
2013-04-16 20:19:58
1304
原创 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
1487
原创 64位ubuntu下装32位libstdc++.so.6
搜了半天,包名居然叫lib32stdc++6。apt-get install lib32stdc++6蛋疼。
2013-03-26 19:56:34
19308
1
原创 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
6716
原创 交叉编译工具链
GCC还好说,make all-host很顺利,工具都编出来了,但all-target编译不成功,连libgcc都编不出来,不知道为什么这些GCC的底层库需要target的C库。安装这些工具已经可以正常编译内核了,虽然不知道为什么最后编出来的内核在虚拟机里跑不了。最后参照lfs里命令选项,尽可能不编译库,最后果然成功了。下面是编译glibc,开始连configure都过不了
2013-03-22 15:57:20
7590
原创 重设终端
有些程序会改变终端设置,比如不回显或者改变换行符。通常程序结束后会恢复终端设置,但有时候会有意外情况。比如qemu运行出错退出时,不会恢复终端设置,回显于是一直被禁止。可以手动stty设置终端属性,更方便的方法是reset。tset(1) tset(1)
2013-03-12 16:37:21
790
原创 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
1359
转载 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
5425
原创 hostname的设置
Ubuntu下/etc/hostnameFedora下/etc/sysconfig/network同时使用不同发行版真麻烦啊。
2013-01-31 18:49:29
569
原创 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
905
原创 将Vim的内容送至外部分命令
Vim与外部命令的交互方式有: -- 读取外部分命令输出,如:r !ls -- filter选中内容,如:' !sort有时,只想把选中内容送至外部命令但不替换选中内容,如想把一封邮件里的内容送至剪切板: -- :'w !xsel --clipboard只比filter操作多一个w,不知何意。有个人在stackoverflow上说,他用了V
2013-01-08 13:06:08
483
转载 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
1305
原创 「VIM」 quichfix中跳转到下一个结果
不是tn而是cn,以前居然没意识到。在VIM中用grep便是如此。把tn映射到Ctrl-n,cn映射到Ctrl-m,用起来很顺手。以后用VIM搜索代码方便多了。
2013-01-04 14:32:43
757
原创 VIM中的<C-r>=是什么意思
Cscope文档中推荐的映射:nmap s :cs find s =expand("")=是什么意思?赋值语句?是插入某个寄存器值的意思,=是表达式寄存器的意思。所以这句话是在命令行插入expand("")的值,也就是当前光标下的单词。其实在后再输入就是当前光标下单词的意思,与=expand("")应该是等效的。我一般将查找调用者映射为:nmap F :cs
2012-12-14 14:25:11
11793
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
553
原创 perl解释器的代码和用perl写出来的代码一样难看
闲得蛋疼想看看几种主流脚本语言的解释器是怎么工作的。我是最早看过陈儒那本讲Python解释器的书才萌生此想法。虽然此书行文风格我厌恶至极,但它确实给了我一些启示。上次京东做活动满200减50,于是买了Programming Perl的最新影印版,研究一下perl internal自然提上日程。初一看Perl的代码简单不塂入目,满屏的宏定义,完全无法跟踪。官网上有一些解释internal
2012-11-11 20:28:23
1575
原创 内核回写框架
ULK介绍回写时说得无比复杂,六七年过去了,回写框架完全变了样。每个块设备与bdi相关,每个bdi则对这个块设备负责。回写的动机: 不想让各种cache在内存中停留太久,以免突然断电致使更新没有反映到硬件上; 不想让cache占用过多的内存,当cache慢慢变大,要时不时把某些东西写回磁盘,当内存不够用时,直接把cache丢掉就行。这两个动机应该可以统一起来,但我现在还想不
2012-11-07 23:17:54
849
原创 查看内核构建的时间
有时候,忘了现在运行的内核是不是刚刚编译的。这时可dmesg查看开头banner,日志中有内核构建的时间。其实这个信息在内核里存储了,cat /proc/version或者 cat /proc/sys/kernel/version就可以看到。
2012-11-07 18:37:40
2649
原创 用Python实现一个简单的文件传输协议
写个东西并非无聊或者练手,而是厌烦了每次都得重头写。我已经不是第一次碰到下面的情况:远程到一台可以连接内网的机器,结果发现其环境极为恶劣,没有scp。最夸张的一次,我见过一台机器连man都没装。所幸装了ssh可以让我远程。但没有scp怎么传文件呢?ftp?试了几个命令,没有。HTTP?客户端或者服务器端软件都没有。python?有的。尼玛,最后在远程机器上用python写了个简单的服务器,终于可以
2012-11-04 00:09:44
22147
1
原创 Kindle进入日本
Kindle一开始便向日本开放,虽然并不在当地贩买。美国Amazon上可以选择发货至日本,作为对比,你不可以发货到中国。最近发现DMM又禁中国IP了,为了查点资料,只得跑去日本Amazon,一进首页就看到大大的Kindle广告。一开始也没多想。今天又上去看,kindle store也开了,于是逛了逛。从数量上看,书还挺多;不过当下流行的应该没几本,价格都不菲。其实,等日本的Kindle
2012-10-31 23:22:33
4063
原创 用Gmail发邮件时设置正确的姓名
平时发patch一般用git send-email,回邮件的话,在公司里邮件客户端用的Mutt,私下则用Gmail。Mutt里可以设置用户姓名,Gmail默认使用帐户中设置的姓名。很蛋疼的是,Gmail会把姓放在后面,名放在前面。当然,可以把姓设为名,名设为姓,虽然这很不爽。其实,Gmail里可以不使用帐户中的信息做为发件者的姓名。在设置,帐户导入中,’用这个地址发送邮件‘这一行旁边,
2012-10-27 15:51:33
8342
原创 获取Linux单个源码文件的最新版
公司的打印机在Linux下格外不好使。之前折腾了我好久才装上驱动,各种设置又麻烦,又不知道怎么选中一个好看的字体,每次想把代码打出来看时,都会切换到Windows。用Windows打印源码太简单了,直接用记事本打开,打印,边距字体都好好的。结果,每次都把文件拷到Windows分区下。其实可以在Windows下也建一个git仓库跟踪Linus的tree,反正Windows下也有git,当
2012-10-26 21:20:51
555
原创 看个片也难
一路折腾Btrfs那些概念,差不多快上床时下了几部片。下载还比较顺序,但插上U盘居然没有任何反应,块设备文件也没有出现。开始以为是HUB的问题,看了下LOG,检测到高速设备。一惊,几个小时前刚编的3.7-rc1,没把USB大容量储存设备驱动编进出。赶紧编个模块,磁盘设备出来了,移动硬盘出了,但U盘还是不行,说缺VFAT模块。我靠,那移动硬盘是怎么整的?mount信息里显示移
2012-10-19 01:09:50
2573
原创 fallocate与“文件打洞”
以前谈过怎么快速为qemu生成磁盘文件,后来发现fallocate可以很好的做这件事。这个东西底层的实现不知道是什么情况,至少可以:a.只让文件看起来有那么大,磁盘空间COW分配;b.一次把磁盘空间分配完。对于大文件来说,后者似乎要更好,因为文件在磁盘上完全是连续的。这样制造出的文件内容全为0,某种程度上来说,fallocate是touch的增强版。标题将fallocate与punch
2012-10-17 23:05:54
4214
原创 superblock的blocksize
块设备硬件操作数据的最小单位一般称为sector size,文件系统管理数据的最小单位则称为block size。我总有种‘曾经两者都常是512 byte’的感觉,不知何故。在内核代码里,blocksize出现在与块设备相关的结构体里,也出现在与文件系统相关的结构体里。我一直认为,与块设备相关结构体里的blocksize就是hardware sector size。其实,光是与块设备相
2012-10-15 22:30:59
1790
原创 两个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
18656
转载 为什么要逆序释放锁?
本来想找找理由的,结果搜到这个。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
964
原创 想个密码真是头疼
公司各种密码的设定真让人头疼。三个月必需换一次,密码里必需得有字母数字和其它字符,用过的密码还要隔好几个换密码周期才能重复使用。想密码是小事,关键是一时想出的密码记不住啊。哪里去找对自己有意义,可以记得住,又符合这个苛刻要求的密码?有一次很偶然地记住了一款路由器出厂密码。因为是公共路由器,放在高处,费了好大劲才看到机身上的密码,于是在几个地方记了下来,没想到自己竟然背下了。于是,一直把
2012-08-28 21:49:48
582
原创 邮件系统的组成
MUTT的官网上有些材料对邮件系统里各个部分的作用做了详尽解释。很早以前我就看过这些东西了,但最终还是没能搞清楚谁是谁。MUA直接根用户打交道,MUTT即是如此。它遵循“一个程序只做一件事”的原则,既不能收邮件,也不能发邮件。这是我见过对“一个程序只做一件事”最蛋疼的信奉。MUTT在整理邮件方面确实好用,至少潜力非凡,工作方式合程序员口味。但如果要使用它还得装一个fetchmail,装
2012-08-25 22:47:56
4173
原创 在man中搜索指定章节的关键字
man有个-k选项,可以在手册的简短描述中搜索关键字(-K则搜索全文)。这个很有用。比如,我只记得Linux有个可以绑定CPU的系统调用,但又记不得叫什么名字,此时可以man -k sched或者man -k affinity,甚至只要affinity前几个字母。一个问题,如何只在某一个章节里搜索?比如,我想看看什么命令里的简述中含有time这个单词,只需要搜索第一章就够了。但如何表述
2012-08-24 17:23:47
1832
原创 Ubuntu进入字符模式的方法
在Fedora时代,开机进入字符模式需要改inittab或者添加single-user内核参数.到我终于转到Ubuntu的时候,原来那一套却不适用了.Ubuntu采用新的upstart替代init,个中机理,早已失去了研究的欲望.前一段时候,新内核上笔记本显卡驱动有问题,进入X就花屏.尝试进入字符模式,数次搜索未果,这居然也未激起我去研究一番的斗志.直到想用KVM做实验,而Qemu的图形支持实在是
2012-07-24 20:25:00
3198
原创 南北桥名字的由来
最近,工作上的事情毫无进展,日子一天天过去而没有觉得学到什么东西,这种状态委实很难受.于是,业余时间着手看一些PCI相关的东西.虽然现在不做驱动了,过去的经历还是让我对此部分颇为留意.驱动虽说是操作系统最外围浅薄的一部分,也是十分有份量的一部分.Linus也不会无视这一点,他最早写Linux时也是要盘活一大堆硬件的.记得一篇文章里,他自称是hardware guy(所以虚拟化抢了他的行
2012-07-22 00:29:07
4047
原创 终于在笔记本上跑起了最新内核
之前一直抱怨笔记本装不上最新版的LINUX,今天因为在公司电脑上试了一把SYSTEMTAP,很是心动,于是决定再做一把尝试。分析一下,可能是载入了不兼容的显卡驱动。lsmod,看到有radeon这个module. Ubuntu大概是会把所有能编成驱动的都编成驱动,为什么我完全按它的配置来会出错?大概是编入了新加的与显卡驱动相冲突的东西。想起曾在论坛上看过KBUILD可以根据当前modu
2012-07-17 21:28:25
781
原创 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
491
原创 怕买低端笔记本了
读书的时候,有个同学很有品位,买的东西一定要上档次.四年前他就说过,笔记本要买6000的,相机要买2000多的.可能我是对这种态度反应过于猛烈,现在买东西能买多低端就买低端.四年后的今天,数码产品性与价都膨胀得厉害,而我仍是买800的相机 3000的笔记本.用起来倒没什么问题,个人也不在乎玩品牌的味.只是现在用的低端笔记本,让我在Linux上很折腾一下.买了笔记本后,准备装上早先准备的
2012-06-30 15:40:55
1088
原创 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
534
原创 VIM技巧三则
我使用VIM的理由,大约不是因为它功能强大,而是Linux里其代码配色和字体都很漂亮。作为佐证,Windows上的VIM我用的就很不爽;同理,Windows上的ssh软件用的也很不舒服。习惯归习惯,有一些技巧还是要掌握的。根据我平时使用的经验,会跳来跳去(普通,或者看代码),会复制粘贴,会搜索替换,一般就能就会大部分工作了。但偶尔还是需要一些特殊功能,平时虽不常用,有需求的时却还是想看
2012-06-08 16:14:02
460
原创 指向数组指针的数组
实现一个程序时,想要写出“指向数组指针的数组”的声明。完整地说,我想声明一个3元素数组,元素类型为“指向char[64]的指针”。为什么想指定数组维度?比如arr是这个指针数组,如果能声明维度,*arr[0]的类型就是“char[64]”,sizeof(*arr[0])就能获得数组的长度。一下还写不出来,尝试几番,总算让sizeof(*arr[0])返回64了。声明的样子是
2012-05-20 14:23:56
492
原创 在电纸书里看代码的尝试
想在电纸书上看代码。首先要把所有的C文件转成txt文件,不然电纸书识别不了;最好还要保持目录结构。这种文件间的sync需求已经遇到好几次了,以前似乎看过有专门处理这个的工具。这次还是自己来吧。处理方式首先就想到了递归,看过SICP后,总算可以视递归为理所当然了。想一次写对还有些困难,改了几下,总算可以用了。其实自己也没有仔细推导整个过程,只单是递归思考写出代码,不能用时再去想,能用就不
2012-04-09 21:40:21
1328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人