把baidu 的博客搬到这来了

baidu 实在是太烂了, 所以决定搬到这来,关键也是看了initialtive 的推荐。

不过这里的访问速度实在是不敢恭维…

Posted in Uncategorized | 2 Comments

厘清了xorg里的一些概念

摘自:http://portis21.spaces.live.com/blog/cns!5F0852C73A746A31!532.entry?wa=wsignin1.0&sa=932181685

今天看到一篇不错的英文文章,解释了xorg实现里的一些概念,也解决了我的一些疑惑。概括并解释一下。

期待已久的DRI2被排除出了Xorg 7.4版本了,为什么呢? 是为了给GEM取代TTM让路,而DRI2的实现目前依赖于TTM。

目 前的Xserver渲染架构严重落后于时代,自Xfree时代遗留的问题在Xorg里也未得到足够的重视,所以现在到了革新的时候。2D加速,3D加速等 都依赖于一个好的内存和执行管理器,这也是最难的部分。目前的xorg驱动都实现了各自的存储管理,提供DRI1接口,并负责modesetting。

Memory manger位于内核中,并为用户空间的程序提供一套操作API。由各个不同的显卡硬件抽象出相同的操作,大家共享这部分代码,剩下的与具体硬件相关的部 分由各个显卡分别实现。老的TTM管理器API复杂,而且不适合现代显卡架构,于是Intel提出了GEM来取代之,目前GEM里只包含Intel自己的 硬件相关部分,ATI驱动的一个分支也实现了对GEM的支持。GEM目前已经进入2.6.28版本的内核。

Kernel mode setting:内核也做一部分modesetting的工作,比如系统引导的时候显示的信息,这些都是内核提前做了mode setting,而我们在进入X前,加载xorg驱动模块的时候,xorg驱动再做一次modesetting,重置显示设定,所以会有屏幕闪烁的情况出 现。现在的kernel mode setting就是要把这部分功能移到内核里,完全由内核做mode setting。Fedora 9/10已经实现了这个功能,所以从启动内核到进入X不会有闪烁,一切都很平滑,并且可以做很多eye candy的东西。目前KMS还未进入内核,最早也要等到2.6.29版本了。

DRI2是下一代的Direct Rendering Infrastructure,具有重定向(redirect) direct rendering功能。在当前,一个程序如果使用了OpenGL窗口,显示内容是直接写到framebuffer里的。这会跟使用了composite 功能的窗口管理器WM冲突,这是为什么Google Earth在compiz下支离破碎的原因。而通过DRI2,OpenGL窗口内容先被重定向的offscreen memory里,然后由WM负责输出,就不再会有冲突。而DRI2是基于老的TTM设计的,需要针对GEM作修改。

2D加速方面,EXA 将要取代老的XAA,但EXA也只是xorg server全面转向OpenGL前的一个临时解决方案。XAA不对大量常用2D操作作加速,并且对XRender的加速也支持不够。Intel又提出了 UXA来取代EXA,当前UXA提供和EXA同样的API,但是利用了新的GEM管理器。

Redhat的一个大牛不满X架构的严重老化,另起炉灶设计一个全新的X server,代号Wayland,目前还不实用,拭目以待吧。

针 对GEM修改后的DRI2预计会伴随Xserver 1.6于09年初发布,同时还将释出RandR 1.3。而Xorg 7.5预计09年四月发布,届时将会伴随Xserver 1.7。至于kernel mode setting,Ubuntu开发者将于下月召开的会议上讨论是否用Fedora的Plymouth替换Usplash,如果在9.04版里引入 Plymouth,我们就能用上KMS。Mesa 7.2不支持GEM,git版本的似乎也不行,估计要到7.3/7.4才会支持。

Posted in X.org | Tagged | Leave a comment

看图学VCS

http://www.ruanyifeng.com/blog/2008/12/a_visual_guide_to_version_control.html

Posted in GNU/Linux | Tagged | Leave a comment

20 Great Quotes from Richard M. Stallman

from http://www.junauza.com/2008/06/20-great-quotes-from-richard-m-stallman.html

I have here a collection of 20 of my favorite quotes from the famous free software evangelist and living legend Richard M. Stallman. I hope you will all like this one. Here it goes:

1- "I could have made money this way, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place."

2- "When I do this, some people think that it’s because I want my ego to be fed, right? Of course, I’m not asking you to call it "Stallmanix"!"

3- "I’m always happy when I’m protesting."

4- "Geeks like to think that they can ignore politics, you can leave politics alone, but politics won’t leave you alone."

5- "People sometimes ask me if it is a sin in the Church of Emacs to use vi. Using a free version of vi is not a sin; it is a penance. So happy hacking."

6- "If programmers deserve to be rewarded for creating innovative programs, by the same token they deserve to be punished if they restrict the use of these programs."

7- "Fighting patents one by one will never eliminate the danger of software patents, any more than swatting mosquitoes will eliminate malaria."

8- "People said I should accept the world. Bullshit! I don’t accept the world."

9- "Giving the Linus Torvalds Award to the Free Software Foundation is a bit like giving the Han Solo Award to the Rebel Alliance."

10- "Would a dating service on the net be ‘frowned upon’ . . . ? I hope not. But even if it is, don’t let that stop you from notifying me via net mail if you start one."

11- "Once GNU is written, everyone will be able to obtain good system software free, just like air."

12- "If you want to accomplish something in the world, idealism is not enough–you need to choose a method that works to achieve the goal. In other words, you need to be "pragmatic."

13- "No person, no idea, and no religion deserves to be illegal to insult, not even the Church of Emacs."

14- "Today many people are switching to free software for purely practical reasons. That is good, as far as it goes, but that isn’t all we need to do! Attracting users to free software is not the whole job, just the first step."

15- "If in my lifetime the problem of non-free software is solved, I could perhaps relax and write software again. But I might instead try to help deal with the world’s larger problems. Standing up to an evil system is exhilarating, and now I have a taste for it."

16- "I see nothing unethical in the job it does. Why shouldn’t you send a copy of some music to a friend?"

17- "’Free software’ is a matter of liberty, not price. To understand the concept, you should think of ‘free’ as in ‘free speech,’ not as in ‘free beer’."

18- "For personal reasons, I do not browse the web from my computer. (I also have not net connection much of the time.) To look at page I send mail to a demon which runs wget and mails the page back to me. It is very efficient use of my time, but it is slow in real time."

19- "Playfully doing something difficult, whether useful or not, that is hacking."

20- "Copying all or parts of a program is as natural to a programmer as breathing, and as productive. It ought to be as free."

If you have a favorite Richard M. Stallman quote, feel free to share it to us.

Posted in GNU/Linux | Tagged | Leave a comment

SSH login without password

摘自:http://linuxproblem.org/art_9.html

Your aim

You want to use Linux and OpenSSH to automize your tasks. Therefore you need an automatic login from host A / user a to Host B / user b. You don’t want to enter any passwords, because you want to call ssh from a within a shell script.

How to do it

First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one last time:

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

From now on you can log into B as b from A as a without password:

a@A:~> ssh b@B hostname
B

A note from one of our readers: Depending on your version of SSH you might also have to do the following changes:

  • Put the public key in .ssh/authorized_keys2
  • Change the permissions of .ssh to 700
  • Change the permissions of .ssh/authorized_keys2 to 640
Posted in GNU/Linux | Tagged | Leave a comment