过去的一段时间里看到很多关于 Arch Linux 的文章,我也对此有那么一点感兴趣了。据说这个是比 Ubuntu 要难折腾一些的,我想,这也正好测试一下我的 Linux 水平,扩充一下关于 Linux 的见识嗯~(其实说白了就是装一下13嗯……)
准备工作肯定是要有的。由于我这次又准备对硬盘分区做一番大动作,资料备份是必不可少的了。整理了一下移动硬盘里的东西,然后把 /home/upsuper 里面的大量资料和部分配置文件移入了移动硬盘,费了大概一个多小时的时间。接下去打开了我的上网本,打开当时在 LinuxToy 刊登的 Arch Linux 安装指南,这是非常必要的。对于一个用惯了 Ubuntu 这样几乎纯图形界面配置的人来说,一个更接近于 LFS 的系统没有参考自然是不敢随便动手的。
Read the rest of this entry »
< Arch Linux,Linux >
众所周知,Windows 下的中文程序使用的是 GBK 或 GB18030 编码,而 Linux 下则默认是 UTF-8 编码。对于图形界面的程序,wine 对中文的处理似乎已经做的不错了,但对于文字界面就无能为力了……
在网上找了找,发现很多人的方法是改 .profile 或者 .bashrc,在里面把 LANG 和 LC_ALL 设置为 zh_CN.gbk 或 zh_CN.gb18030。这种方法对于只在 Windows 下用终端连接 Linux 的用户当然没问题,可是对于像我这样惯用 Linux 的人怎么办?
Read the rest of this entry »
< Linux,Windows,Wine,编码 >
文章最前面,先祝各位在新的一年里天天开心哈~
昨天用 BT 下载了 Linux Deepin。记得当年装 XP 就一定要装 Deepin 的,觉得 Deepin 做的最好,做的最清楚。现如今 Deepin 也转投 Linux 的怀抱,是在不能不说是一件令人高兴的事情。
下面来说说 LD 吧。
我用 UNetBootin 将 LD 弄进了 U 盘里,然后通过 LiveUSB 进入了 LD。LD 给我的第一印象就是那个漂亮的时明时暗的 LD 的 Logo,接着看到了 Ubuntu 9.10 引入的 Xsplash,也很不错~由于是 LiveUSB 启动,因此启动速度不好做评述,不过感觉还是比较满意的。
Read the rest of this entry »
< Linux,Linux Deepin >
昨天晚上我第一次看到 Linux 真正的死机:连 SysRq 都无效了……这实在不能不说是一种讽刺:我写过的被转载最多的莫过于那篇 Linux 死机了该怎么办?我却自己遇到了一次真正的,无法处理的死机……
无图无真相,以下是我的 Tattoo 拍摄下的死机后的屏幕显示,那些是 Linux 在死机前垂死挣扎输出的信息:
Read the rest of this entry »
< Linux,死机 >
据部分人称,百度Hi打开网页都是直接使用IE而非默认浏览器,当然我这里做不了实验……Javran 以为是因为他用的 Chrome 是百度竞争对手开发的而不支持,便托他在百度里面工作的朋友去问了下开发者,结果据说开发者说是直接调用 iexplore.exe 打开网页的 _-b
今天高中时候的贴吧上有一个人在试用了 Chrome 后称“现在终于发现IE有多么LJ了”,然后就提出了同样的问题。于是我就稍微研究了一下~
拿 eXeScope 打开 BaiduHi.exe 文件(eXeScope 是可以完美 wine 出来的~),没有发现与 iexplore.exe 有关的字符串,有点失望。再看看目录里面如此多的 dll 文件,用 eXeScope 一个一个开过去,发现对于那里的 dll 文件 eXeScope 似乎只能看到版本信息……然后突然想到,我们可以直接去找文件中有没有 iexplore.exe 这个字符串~因为在 Linux 下,这一工作变得格外简单:
1
| find -type f -print0 | xargs -0 grep --binary-files=binary -l iexplore.exe |
一条命令便足矣,对 Bash 稍有了解的人一定能完全理解这句话的含义~
下面它输出了两个文件:ImEngine.dll 和 Basement.dll。用 IE 打开很可能就固化在这两个文件里面!用 MadEdit 打开这两个文件,果真发现了 iexplorer.exe。不过不敢乱改,改了也没法实验(印象中百度Hi不能被完美 wine 出来),于是接下去的实验就作罢了。
可是又有人报告百度Hi可以调用疼逊TT打开,我就真不知道是怎么回事了 _-b
< Chrome,eXeScope,Linux,百度Hi >
今天看了 LinuxToy 上推荐的《Arch Linux 安装指南》,看到其中关于分区的部分,我突然想写篇文章来讨论一下 Linux 中应该怎么分区、应该怎么选文件系统、应该怎么配置才会比较不错。
Read the rest of this entry »
< Linux,分区 >
Linux 会死机么?我可以很肯定地说,会!如何?很简单,我的上一篇日志就介绍了一种方法~要让 Linux 死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态。
Linux 死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办?
Read the rest of this entry »
< Linux,死机 >
Linux 的 fork 创建子进程的机制非常著名了,是一个很优美的方式。可是,这个东西是很可怕的。
记得曾经看到一个在 shell 上运行的 fork 炸弹:
(严重警告不要在任何 Linux 或 UNIX 的 Shell 上实验这条命令……)
这次我用 C 写了个想试验一下资源限制是否传递到子进程,就有了下面程序:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <stdio.h>
#include <unistd.h>
#include <sys/resource.h>
int main(void) {
struct rlimit rtime;
rtime.rlim_cur = rtime.rlim_max = 1;
setrlimit(RLIMIT_CPU, &rtime);
while (1) {
fork();
}
return 0;
} |
当然,这个程序其实运行了最多卡一会儿(我差点以为被炸死了……),最后系统还是及时结束了这个疯狂的过程,此时查看系统负载,5分钟内负载高达227.x!
如果你想实现上面一行 shell 的功能(即直接拯救一切的那种……),只要下面代码就够了:
1
2
| #include <unistd.h>
int main() { while (1) fork(); } |
< Linux,炸弹 >
曾经的曾经,很早很早以前,我发布了一个叫 ujudger-base 0.1 的东西,是用 C++ 写成的简单测评程序,仅能测试程序运行时间和内存耗用(还不准确)。
这次发布的是一个完整的测评机,支持传统题型、交互题和提交答案题,可导出测评结果。整个程序使用 Python 编写,直接把 ujudger.py 复制到待测目录下并编写 config 文件即可测评。
不过现在这个程序只有一个文字界面,非常简陋,而且安全性不佳。但现在正在撰写的 ujudger 1.0 (版本跨越大,意味着变化之巨大……) 将就这些问题有重大改进,敬请期待。
另外,有人询问是否准备让这个测评机与另一个 Windows 下的开源测评机 Cena 兼容。我的回答是,由于设计差异,可能比较困难。对比 Cena 的自定义校验器,ujudger 的自定义校验器更强大,同时 Cena 的校验器可以通过一点简单的修改或加一个脚本外壳就可以在 ujudger 中使用。在 1.0 中计划兼容 Cena 的校验器。至于配置文件,1.0 中配置文件的格式会有较大变动,不过可能可以通过转换程序将 Cena 的配置文件转为 ujudger 的。
我在 Google Code 上开了一个项目,感兴趣的同学可以关注关注~地址:http://ujudger.googlecode.com/
最后,ujudger 0.1 的下载地址也在 Google Code 上:ujudger.py
< Cena,Linux,OI,Python,ujudger >
众所周知,Linux 的权限控制虽然很简单,但却十分严格和有效的。(和 Windows 复杂却没用的权限控制形成鲜明对比……)由于最近编写测评机,希望利用 Linux 的高安全性做运行级恶意代码防护,因此就顺带地研究了一下 Linux 的权限控制。经过这次探秘,我对 Linux 的权限有了更新的认识,确实是一个很强大的东西啊!
由于本人的能力有限,文章中的不足和谬误也请大家多多指教!
Read the rest of this entry »
< Linux,安全 >
Comments