Crane
Table_bottom

Search
Loading
Table_bottom

分类
Table_bottom

随机文章
Table_bottom

标签云
Table_bottom

最新评论
Table_bottom

链接
Table_bottom

功能
Table_bottom

[LFS]安装进行时

自从今年寒假就想着要做一次LFS的实验,当时信心满满地下好livecd,结果寒假净看电视了,一直没有动手,现在终于下定决心搞一次了,下好了LFS6.3的livecd,因为第一次做,livecd的成功率比较高,而且包含了所有的源码包,不用再去网上下了,比较方便。工作从2009.10.15号晚上7点开始进行,这里大概记录下进程。

从硬盘分了10G出来给LFS用,分好区,挂上去,建好LFS的基地,正式开始LFS之旅。

看别人的说法都是先在虚拟机上做一次,然后有经验了再在真实机器上布署,我觉得还是真实机器效率高些,就直接划个分区给它,就在这开始了,说实话,我以前没有看过LFS的文档,但是据说文档是很详细的,只要你有一定的linux基础,能明白每条命令是干什么用的,然后就照着手册上的命令一路打下去,那也成了,是不是和windows的一路回车法有点像呢!

ps:这篇日志是在livecd自带的桌面环境的SeaMonkey中写的,这也是我在linux下的第一篇日志,而且现在机器的状态是没有windows。

好了,开始记录LFS中的一些杂碎。

2009.10.15 20:10

由于当时做符号链接时ln -sv $LFS/tools / 时少打了后面那个/,把符号链接生成在root目录里面了,导致后面用lfs用户编译时出现Permision denied。重启修改后正常进行。

由于寝室晚上要断电熄灯,故做完第一次生成工具链后就关机了。

2009.10.16

首先调整工具链,没有问题,然后编译安装各种工具,一点问题都没有,只是中间把数字1和字母l搞混过一次,不过很容易就发现错误了。

第一次遇到错误是构建目标系统(第6章)生成glibc时,test出现两个错误,以为哪里命令打错了,就重做了一遍,由于这里的make和make check时间都比较长,花了不少时间,同时也在查资料,文档说其中一个可以ignore,但是另外一个文档上只说是常见错误,没说怎么办,上网google一下,看好几篇都说可以直接ignore,只要后面工具链调整的时候没出现问题,就证明前面的都是正确的。

2009.10.17

接着昨天工作调整工具链,这是最后 一次调整工具链,然后以后编译生成的都是目标系统的组成部分,果然是good luck,没有问题,测试通过,于是开始一项项的编译utilities,好多的啊!

写这篇日志时,正在编译autoconf……

 

 

分享代码的好地方

介绍一个分享以及在线运行代码的好地方,codepad,在线运行支持语言种类也很多,当然那个PlainText就免谈了(其实是分享用)。

Language:













界面很简洁,一看就知道怎么用,注意到下面那个Private选项了吗?这里其实可以分享代码,是个geek的好地方,有的人甚至写出了VIM上 用的插件,可以直接在vim里面写代码,然后发布到这里来分享。

程序员用的东西一向以简洁高效著称,这里的注册就很简单,只要你打个用户名和密码就成,密码也让你只打一遍,请保证正确,不过geek一般都自信不会打错。

想看最近都有哪些代码提交,点击那个Recent Pastes就可以看到一大串的列表了,还有提交时间。

创意验证码

行走网上,不免看到好的服务,想要使用,于是第一道门槛就是注册,而且现在为了防止机器自动注册,大多采用了验证码,就此一验证码,各家是各有特色啊,一般的纯字母数字组合的不再提,而Yahoo,Google的要是碰上了的话,是个人都半天认不出来,更不要说机器了,传说这才是真正功能强大的验证码,但是人都认不出来怎么办,来个声音提示,读一遍就行了。

记得以前看到过一个新奇验证码的集合,不过不记得地方了,也没有收集下来,大概记得有个叫计算极限的比较有意思,类似这种

请输入下列式子的答案:

\lim\limits_{n\rightarrow\infty}(1+\frac{1}{n})^{n}

这样的我觉得创意已经够好了,结果今天看到一个更绝的:

验证码

这个应该还好吧,不过我刷新了一下,看这个

程序验证码

上面那个还可以用眼睛看出来,这个就得好好花一点功夫了,非geek不会玩这种东东。

一般都会跑一下这个程序来得到结果,这里有在线服务可以办到这事,强强的codepad就可以。

Linux死机了怎么办

使用电脑死机是很正常的事,如果系统负载过大,那么程序不能及时响应,很容易死机的。对于个人用户来说,没什么大 不了的,我强行关机再重启就解决问题了,但是如果是在服务器上呢,且不说服务器需要全天候工作提供服务,不能停止,更重要的是数据的安全,强行关机的话未同步的数据就会丢失,这是不允许出现的情况,那要怎么办呢?

如果是在图形界面下死机的话,不要再依赖任何图形界面的工具,那样只会适得其反,可以先试试文字界面,按ctrl+alt+f2(F1-F6一般都可以),会切换到另外一个虚拟终端,需要一个账号来登入,这时键盘响应可能非常慢,但是是可以响应的,进入后打top命令看一下进程,等这个表刷那么一两次,就可以确定占用资源比较大的进程了,把它kill掉,这样可以解决相当一部分问题。

但是有的时候是比较底层的软件出现问题,那这个方法就不适用了,但是这就引出了这篇文章要说的强强的方法。reisub方法,说具体一点,是一种系统请求,直接交给内核处理。键盘上一般都有一个键,SysRq,和PrintScreen在一个键位上,这就是系统请求的键。这个方法可以在死机的情况下安全的重启计算机,数据不会丢失。

具体操作是,按住Alt+SysRq,再依次按下reisub几个键,按完b系统就会重启。

下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示:

unRaw 将键盘控制从 X Server 那里抢回来
tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后
kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
Sync 将所有数据同步至磁盘
Unmount 将所有分区挂载为只读模式
reBoot 重启

这里有个问题要注意一下,最好不要快速连续地按下这几个键,要有间隔,大概是估计每个间隔10秒左右,因为每一步操作都需要时间,而且s键之后因为同步数据比较慢,可以停20秒。

最后一个问题是怎么记住这个方法呢,当然记住了上面说的每一步操作的也可以记住,但是这里有个比较好一点的方法,那就是reisub正好是busier反着写的顺序,而busier这么好记,正好还有系统很繁忙的意思,不错。

这样的话在对付linux死机的时候又多了一个杀手锏。

更多关于sys request的内容请稳步这里

二进制LED时钟--程序员的装备

二进制时钟

今天在网上看到这样一张图片,挺有意思的,一眼看去就知道这是个时钟,但是却不一能看出时间来。程序员每天和0,1打交道,虽然没有像黑客帝国里面那样可以看懂大串的01串流,但是简短的二进制数据还是没有问题的。不过我还是没有看出中间那一串是怎么表示的时间,但是却可以通过下面的那个Calender time知道时间啊,呵呵,当然要用工具啦,不然这计算量可要命:

crane@debian:~$ date -d "@1230766664"
Wed Dec 31 18:37:44 EST 2008

呵呵,看到了吧,日期那个时钟上也写得很清楚了,不过却不知道那个小时和分钟是怎么表示的。

不过另外的一种二进制LED时钟却很容易看懂。

8421clock

就像图示的那样,六列LED分成三组,分别表示时分秒,每列的四个灯从上到下的权值是8,4,2,1,把亮着的灯的权值加起来就是这列的数值了。