1..so为动态链接库,.a为静态连接库。他们在Linux下按照ELF格式存储。ELF有四种文件类型。可重定位文件(Relocatable file,*.o,*.a),包含代码和数据,可用来连接成可执行文件或共享目标文件;可执行文件(Executable File),ELF可执行文件;共享目标文件(Shared Object File,*.so),包含代码和数据;核心转储文件(Core Dump File),进程意外终止时,系统将该进程的地址空间内容和其他信息保存到该文件中。
file命令可以查看。
2,Objdump程序,来自binutils,可以查看Object file内的结构。-h:打印各个段基本信息;-s所有段内容以16进制打印;-d:将所有包含指令的段反汇编。
3, ar -t libc.a;查看libc.a压缩了那些.o文件。
4, collect2 是ld连接器的包装,它调用ld链接目标文件,并对结果做处理,包括收集所有与程序初始化相关的信息并构造初始化结构。
5,readelf:查看ELF文件。 -s:打印符号信息; 阅读全文 »

标签: , , , , , ,

Gentoo 沙盘简介

网络 linux gentoo 时间:10年3月7日19:06

emerge一个软件包时Portage的工作方式:
1,Portage下载源码tar包和补丁(如果需要的话)
2,Portage解压缩tar包到指定位置,所有的编译将在该目录展开,Portage默认使用/var/tmp/portage/packagename/work
3,解压和打补丁(如果需要的话)后(ebuild中的src_unpack()函数),Portage开始编译,一般情况下在特定目录(ebuild使用${WORKDIR}变量指定目录)下执行configure和make命令.
4,编译完成后,portage将所有指定目录下的文件合并到正在运行的系统中.(通常为/,但通过合并时设置ROOT=”/路径”可以修改),为了避免非法或不正确的ebuild对整个文件系统造成不可逆的破坏,我们需要严格限制文件系统的哪个区域允许portage在解压和编译时修改,这就是沙盘工作的路径,默认时,沙盘启动,并限定ebuild(和它执行过程中的明林)都在指定的区域内写磁盘.若ebuild越过沙盘保护的环境,试图在外部区域写磁盘,就构成了沙盘越界.
阅读全文 »

标签: , , , ,

大尾端和小尾端

科技 专业 时间:10年2月26日21:52

大尾端(big endian)和小尾端(little endian)的问题类似于写字时是从右往左写还是从左往右写的问题。说起来不难,但是在计算机世界中,我们必须要规定采用哪种形式,而并无优劣之分,所以演变到现在,就既有大尾又有小尾.X86就是小尾的,龙芯也用的小尾,早期的MIPS使用的是大尾端,这决定了访存的方向问题。

精确的讲,大尾端和小尾端的区别是系统里整数是从右往左表示还是从左往右表示。表示的不同就意味着重要性不同的位位置不同,大尾端从左往右表示,那么权重大的字节在左边即在低地址处,而小尾端相反。不管时处理器,虚拟机还是网路协议都需要规定大小尾端问题。
如图是X86的存储形式,若大小尾端混用,则会一团糟。

阅读全文 »

标签: , , ,

好大一筐梅普斯(MIPS)

科技 专业 时间:10年2月25日21:17

本博在实际工作中,经常被MIPS I,MIPS II,MIPS 32之类的名词搞混,特整理如下。

MIPS 最初是Microprocessor without Interlocked Pipeline Stages的简称,最早由MIPS公司开发的精简指令集组成,最早是32位,之后时64位。该指令集有很多版本,包括MIPS I,MIPS II ,MIPS III, MIPS IV, MIPS V ,MIPS32和MIPS64.当前主要有MIPS32和MIPS64,这两个指令集定义了一个控制寄存器和指令集。

大学里多使用MIPS结构教学,Alpha就深受MIPS 精简指令集的影响。目前的MIPS之用用在很多嵌入式系统中如Windows CE设备,路由器,网关和游戏机(PS,PSP).

MIPS结构最早由斯坦福大学的John L. Hennessy(量化研究的作者)领导设计,初衷是充分利用指令流水线。除了采用流水线,以及充分利用流水线外,MIPS还引入了寄存器窗口技术(register windows),通过这种窗口,被调用函数能申请自己的寄存器集,再利用精确的编译器计算,就能找到空闲寄存器,不必依赖硬件实现。这种方式能提升性能。

目前的MIPS 32基于MIPS II并吸收了MIPS III, MIPS IV和MIPS V的特性,MIPS64则是基于MIPS V。MIPS V主要是用来提升3D图形应用的性能。

龙芯2E/F兼容 64位MIPS III指令系统,四发射。龙芯3号则是直接MIPS 64,也就是说增加3D加速。

参考:

http://en.wikipedia.org/wiki/MIPS_architecture

http://www.tektalk.org/2009/06/24/%E9%BE%99%E8%8A%AFcpu%EF%BC%8813%EF%BC%89%E2%80%93%E9%BE%99%E8%8A%AF%E8%8E%B7mips%E6%AD%A3%E5%BC%8F%E6%8E%88%E6%9D%83/

标签: , ,

归来,本命年好运

生活 品味 随笔 时间:10年2月23日21:11

在家呆了十天,同学聚会,走亲戚,吃饭花了5天,排队买票花了1天。剩下的时间就陪爸妈。老爸买了三条红内裤,老爸,我和老弟各一条。

饭菜还是老妈做的最好吃,西红柿炒鸡蛋!家里的人越来越富了。国家级的贫困县都已经到处小楼林立了。路越来越窄,红绿灯依然没人遵守。

十天时间,累计碰电脑不超过四个小时,离开电脑大家都获得挺好,程序员们别太把自己当回事.没人管你什么双核三核,操作系统是啥,用了啥技术。我妈只想要一个鼠标,一个显示器,可以玩祖玛;我弟弟只需要一个qq可以和其他人聊天,我爸只需要一个网页可以看新闻。或者他们根本不需要这些,只需要能消磨时间,能和其他人聊天,能了解这个地球上还发生了什么。无论何时,我们只是附着在计算机上的,逼着别人花钱买的劳动力。衣食住行才是永恒的主题。但八成的中国人都还没有日常工作中使用电脑,电脑在七成国民的脑海里可能只和网瘾,低俗,病毒,网络游戏这些媒体们整天炒作的东西搅在一起。农业为主导的经济不会有电脑的用武之地,但万人村,城镇化则是我们的希望。等到只有小部分人面朝黄土背朝天,我们都40多岁时,翻身之日就到了。这一天会来,这一天的到来将体现我们的真正价值,虽然有点遥远。
阅读全文 »

标签: ,

一起瞻仰图灵碗

科技 专业 时间:10年2月6日18:53

美国计算机协会颁发的图灵奖是计算机界的诺贝尔,至今已有55位获奖者,奖品是碗一个。每年颁发一次,每次发一个碗,奖给曾在计算机领域具有持久而重大的技术创新的人。目前有英特尔和google赞助,奖金$250000,换算成人民币的话,都不够在中关村买一套70平米的两居90年代二手房,唉!

没有这些获奖者,就没有计算机科学的今天!不过这些获奖者如果在中国估计得一直为房发愁了,所以我们的房地产要走出国门,让其他国家的人们都专心买房,无心科研,这样国内拿碗的人就会出现了!
目前,仅有一个黄种人拿到此碗,他就是姚期智,美籍华人。因在伪随机数生成,密码学和通信复杂度等问题上的贡献而得奖,目前在清华领导成立理论计算机科学研究中心。

之所以写这篇文章,是因为读了孙天齐的系列文章中的部分(之所以是部分,因为作者没放出全部文章),强烈推荐阅读之。

近看图灵碗 (0. 引言)

近看图灵碗 (1. 从苏黎世到巴黎) (上)

近看图灵碗 (1. 从苏黎世到巴黎) (下)

近看图灵碗 (8. 我就是上帝) (上)

标签: ,

注,这份表格并非本人整理,来自wwxu的邮件。

会议 会议全称 领域 William & Mary 列表 -2008 新加坡国立 列表 -1999 复旦列表-2008 篇均引用次数 大陆发表情况 3年投稿意愿 Abstract Deadline Full Paper Deadline Notification of decision
1. ASPLOS Architectural Support for Programming Languages and Operating Systems 体系结构 操作系统 编译技术 A+ Rank1 Rank1 39.1 1982年来尚未发表 2009-8-3 2009-8-10 2009-11-6
2. CGO International Symposium on Code Generation and Optimization 编译技术 A N/A Rank2 4.4 2009 ICT 2篇;国内公司 3篇 2009-9-3 2009-9-10 2009-11-11
3. DAC Design Automation Conference 电路设计 体系机构 测试技术 A Rank1 Rank1 8 1964年来发表9篇
2009-11-9
4. DATE Design, Automation and Test in Europe 电路设计 体系机构 测试技术 A Rank2 Rank2 2.48 1993年,约20篇
2010-1-15
5. DSN The 39th Annual IEEE/IFIP International Conference on Dependable Systems and Networks 可靠设计 体系机构 软件系统 A+ N/A Rank2 9.51 1970年5-6篇
2009-10-8
6. FSE International Symposium on Foundations of Software Engineering 软件工程 A Rank1 Rank1 10 08港科技06港科技2港城市1篇
2009-11-9 2010-1-6
7. HPCA International Symposium on High-Performance Computer Architecture 体系结构 A+ Rank1 Rank1 15.7 1995年来发表1篇 2009-7-24 2009-7-31 2009-10-10
8. ICCAD International Conference on Computer-Aided Design 电路设计 测试技术 A Rank1 N/A 9 1990年来发表6篇
2009-5-11
9. ICDCS IEEE Intl Conf on Distributed Comp Systems 分布式系统 A Rank2 Rank2 8.8 1981年来发表6篇
2009-11-25 2010-2-8
10. ICS The International Conference on Supercomputing 高性能计算 A Rank1 Rank2 9 1987年来4篇 2010-1-11 2010-1-18 2010-3-22
11. ISCA International Symposium on Computer Architecture 体系结构 A+ Rank1 Rank1 25.7 1973年来发表5篇 2009-7-10 2010-1-15 2010-2-15
12. ISLPED International Symposium on Low Power Electrical Design 低功耗体系结构 N/A N/A N/A



2010-3-5 2010-4-30
13. ITC International Test Conference 测试技术 A N/A N/A 2.86 1970年,9篇
2010-3-17 2010-6-22
14. MICRO International Symposium on Microarchitecture 体系结构 A+ Rank1 Rank1 15.3 1968年来发表9篇,1995年后尚未发表 2009-5-15 2009-5-22 2009-7-28
15. NSDI Symposium on Networked Systems, Design and Implementation
A N/A Rank1 13.5 2004年来尚未发表 2009-9-25 2009-10-2 2009-12-18
16. OOPSLA Conference on Object Oriented Programming Systems Languages and Applications 编译技术 A+ Rank1 Rank1 11.6 2007 香港; 2006 香港 2009-3-19 2009-3-23
17. OSDI Usenix Symposium on Operating Systems Design and Implementation 操作系统 A+ Rank1 Rank1 66.3 1994年来尚未发表(2008第二作者)
2010-3-7 2010-7-20
18. PACT IEEE Intl Conf on Parallel Architectures and Compilation Techniques 并行计算 A Rank1 Rank2 7.1 1997年来2篇 2010-3-20 2010-3-27
19. PLDI Conference on Programming Language Design and Implementation 编译技术 A+ Rank1 Rank1 38 08,07 清华2篇,05 ,04 Intel China 2篇,92 台湾 2009-11-13 2009-11-20 2010-2-2
20. PODC ACM Symp on Principles of Distributed Computing 分布式系统 A+ Rank1 Rank1 11.9 1982年以来尚未发表 2010-2-10 2010-2-17 2010-4-15
21. POPL Annual Symposium on Principles of Programming Languages 编译技术 A+ Rank1 Rank1 35.7 未定 2009-7-8 2009-7-15 2009-10-1
22. PPOPP ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming 高性能计算 A Rank1 Rank1 18.7 1988年来3篇 2009-7-17 2009-7-20 2009-9-18
23. RTSS The Real Time Systems Symposium 实时系统 A+ Rank1 Rank1 11.75 1979,5-6篇,香港比较多
2009-5-26
24. SAS IEEE Static Analysis Symposium 编译技术 A Rank2 N/A 8 07北大 2010-3-12 2010-3-19 2010-5-4
25. SC The International Conference for High Performance Computing, Networking, Storage and Analysis 高性能计算 N/A N/A Rank2 8.6 1988年来1篇 2009-4-3 2009-4-6 2009-6-29
26. SIGMETRICS Joint International Conference on Measurement and Modeling of Computer Systems 性能度量 A+ Rank1 Rank1 13 1973年来发表2篇 2009-11-2 2009-11-9 2010-2-9
27. SOSP ACM SIGOPS Symp on OS Principles 操作系统 A+ Rank1 Rank1 55.6 1967年来尚未发表 2009-3-2 2009-3-7 2009-6-15
28. SPAA ACM Symposium on Parallel Algorithms and Architectures 并行计算 A Rank1 Rank3 9.5 1989年来1篇
2010-1-13 2010-3-12
29. VTS VLSI Test Symposium 测试技术 A N/A N/A 2.89 1983年,6篇 2009-9-20 2009-9-30 2009-12-4
30. WWW International World Wide Web Conference 网络 A+ Rank 1 Rank 1 10.2 2009-10-26 2009-11-2 2010-1-21

标签: ,

刚开电脑就看到一条新闻,souceforge在古巴,伊朗,朝鲜,叙利亚,苏丹不能访问,被屏蔽了。这些都是与美国为敌的国家。服务器在别人的手里,不管你打着多么大公无私的旗号,多么贡献开源,人家看你不爽,一拔网线,你就啥都干不了。
每个喜欢互联网技术,拥护开源的人都不想让开源沦为政治工具,但这是一个政治主导的世界,你得听政府的,政府是老大,你在政府的地盘上混,管你什么道义,什么自由,什么开源,统统只是工具。 阅读全文 »

标签: ,

严格的说WebKit仅仅是个浏览器核心,采用该核心的浏览器很多,如国内的搜狗浏览器,遨游浏览器。其他的如google的chrome(Windows平台,linux平台下为chromium),epiphany(linux平台下,gnome2.28版本之后),苹果的Safari 都采用了webkit的内核。Firefox则是采用Gecko的内核,这是NetScape公司开发的内核,后来开源,mozilla继续开发。另外,现在还有另外两种常见的浏览器内核,Trident主要用在IE系列上,Presto主要用在Opera上。

这篇文章仅仅针对浏览器处理JavaScript的性能作比较,主要在X86平台和龙芯平台。先来解释一下JavaScript,JavaScript是互联网内较为常用的脚本语言,面向对象,主要在浏览器内解释执行,用于生成动态网页,因为很多语言特性受Java影响,所以叫JavaScript。通过JavaScript,浏览器可以运行服务器想要在访问者终端上运行的一些计算程序,以达到更好的浏览体验。 阅读全文 »

标签: , , , , , , ,

这两天在折腾小例子,用来表现对语言做某种扩展后将可更高效的编程。我那蹩脚的coding技术捉襟见肘。一个小例子要言简意赅,写在半页ppt里,要有对比,有突出,又要很直观。尝试了很多次。写小例子很能考察编程能力,指针,静态,数组,寄存器变量,各个类型长度等等。要达到瞄一眼就能印象深刻,被震撼的感觉,难!

眼见为实,看下面的小例子,简单的写个循环:

ip (short int* fb, short int* bb,short int* res)
{
int i=0;
for (; i< 8; i++)
res[i] = fb[i] + bb[i]+1;
}

在龙芯上用simd(单指令多数据,一条指令可以存多个数据)来实现的话,需要这么写,别忘了包含loongson.h头文件,这段代码在gcc4.3之后才支持: 阅读全文 »

标签: , , , , , ,