1. <?php
  2. $a = 222;
  3. var_dump($a);
  4. $b = &$a;
  5. $c = &$b;
  6. $arr = array(&$a);
  7. var_dump($a);
  8. var_dump($b);
  9. var_dump($c);
  10. var_dump($arr);
  11. exit;
返回结果:
# php a.php
int(222)
int(222)
int(222)
int(222)
array(1) {
  [0]=>
  &int(222)
}
-----------------------
因为数组里面的那个元素是引用方式的,所以,var_dump出来的结果含有 ”&“ ;但是 $a $b $c 之间都是引用关系,为什么没有显示 ”&“ ; 尤其是使用gdb查看的时候,发现 $a $b $c 并没有指向相同的地址,而且 is_ref__gc = 0 ;

是何缘故呢?

有时间再看。。。
by phpor | 不指定 2011/10/12 17:26 | 数据存储 » PHP | 评论(0) | 引用(0) | 阅读(6278)
转自:http://zh.wikipedia.org/wiki/OS/2

概述

OS/2是由微软IBM公司共同创造,后来由IBM单独开发的一套操作系统。OS/2是"Operating System/2"的缩写,是因为该系统作为IBM第二代个人电脑PS/2系统产品线的理想操作系统引入的。

历史

在DOS于PC上的巨大成功后,以及GUI图形化界面的潮流影响下,IBM和Microsoft共同研制和推出了OS/2这一当时先进的个人电脑上 的新一代操作系统。最初它主要是由Microsoft开发的,由于在很多方面的差别,微软最终放弃了OS/2而转向开发Windows“视窗”系统。

OS/2则由IBM独自开发,在发行了若干个版本后, 最大规模的发行版本是于1994年发行的OS/2 Warp 3.0,是取名自星舰迷航记电影中的曲速引擎(Warp drive),来代表其稳定快速的特色。这个版本是第一个运行于X86体系的PC之上的32位 操作系统,早于微软的Windows 95上市。Warp改进了按照界面和加强了对外设的驱动支持,还随系统包含了一组名为“Bonus Pak”,里面有12种应用程序,如文字处理和传真软件等等。

随后的升级版本是OS/2 Warp 3 Connect——一个加强了网络支持的版本。而代号Merlin的OS/2 Warp 4版,是最后一个公开发行的OS/2版本。在与Windows的竞争中,OS/2最终失败了。随后IBM也发行了若干个版本的升级,但仅仅是小范围的使用。

OS/2的新希望是在1999年由Serenity Systems International公司取得IBM的OEM合约,重新打造出eComStation 1.0,并广受好评,许多旧的OS/2系统纷纷升级到eComStation。而目前最新的版本是eComStation 2.0,也已在测试阶段。新版的eComStation支持AMD 64位CPU及可开机的JFS档案系统。

2005年12月23日,IBM宣布 、不再销售和支持OS/2系统。 OS/2的支持者要求IBM将OS/2的原始码开放,但是遭到IBM拒绝。2007年11月,OS/2的支持者再次要求开放源码,但是IBM仍然拒绝[1]。另外则有VoyagerosFree试图以OS/2的架构重制一套新式的桌面环境。


OS/2官方网站: http://www-01.ibm.com/software/os/warp-withdrawal/

 

-------------------------

了解os/2后的最大的感受就是: 以后看到os2相关的代码不要看就是了,不是什么新东西


by phpor | 不指定 2011/10/08 23:31 | 默认分类 | 评论(0) | 引用(0) | 阅读(5848)
    OEM是英文Original Equipment Manufacturer的缩写,按照字面意思,应翻译称原始设备制造商,指一家厂家根据另一家厂商的要求,为其生产产品和产品配件,亦称为定牌生产或授权贴牌生产。即可代表外委加工,也可代表转包合同加工。国内习惯称为协作生产、三来加工。OEM版就是软件生产商应硬件生产商要求,开发定制的软件版本,如XP的联想OEM版就是微软应联想公司的要求开发的XP版本。
by phpor | 不指定 2011/10/08 23:26 | 默认分类 | 评论(0) | 引用(0) | 阅读(4000)

helloworld.as:
  1. .data                    # 数据段声明
  2.         msg : .string "Hello, world!\n" # 要输出的字符串
  3.         len = . - msg                   # 字串长度
  4. .text                    # 代码段声明
  5. .global _start           # 指定入口函数
  6.         
  7. _start:                  # 在屏幕上显示一个字符串
  8.         movl $len, %edx  # 参数三:字符串长度
  9.         movl $msg, %ecx  # 参数二:要显示的字符串
  10.         movl $1, %ebx    # 参数一:文件描述符(stdout)
  11.         movl $4, %eax    # 系统调用号(sys_write)
  12.         int  $0x80       # 调用内核功能
  13.         
  14.                          # 退出程序
  15.         movl $0,%ebx     # 参数一:退出代码
  16.         movl $1,%eax     # 系统调用号(sys_exit)
  17.         int  $0x80       # 调用内核功能
# as --gstabs -o helloworld.o helloworld.as
# ld -o helloworld helloworld.o
# ./helloworld                            
Hello, world!

其中:
as ld 都是gcc套件中的程序

常用的汇编开发环境:
masm : 微软开发的 ml.exe , 在visualstudio中都包含了
nasm : http://www.nasm.us/
masm32  : http://www.masm32.com/

参考资料:
强力推荐:http://www.ibm.com/developerworks/cn/linux/l-assembly/
http://www.masm32.com/
http://www.nasm.us/
by phpor | 不指定 2011/10/08 22:57 | 程序设计 » 汇编语言 | 评论(0) | 引用(0) | 阅读(2488)
COM文件是一种可执行程序的内存映象文件,它与只有16位地址线的8位机上的CP/M操作系统下的可执行程序结构相似。在COM程序执行过程中,除了调用DOS功能和 ROM BIOS 功能,以及用户特意安排外,段寄存器一般不发生变化。四个段寄存器具有同样的内容,都指向PSP,因此程序的大小仍限于64k以内。COM文件的入口必须是100H,而EXE文件可以有多个段。其中CS和SS以及IP和SP在程序装入时由DOS根据文件头中的信息初始化,ES和DS则指向PSP。EXE文件除了程序本身外,还要包括文件头(512字节的整数倍),因而所占磁盘空间大一些,装入也慢一些,但程序大小不受限制。EXE文件用debug修改后,无法直接写回磁盘上去。

一、相同点
二者都是DOS下的可执行文件。.COM文件是可执行的二进制代码文件,.EXE文件是可执行的浮动代码文件。
二、不同点
(1).COM文件一般比较小,其大小不能超过64KB,而.EXE文件一般比较大,可以超过64KB。
(2).COM文件装入内存较快,而.EXE文件较慢。
(3).COM文件一般比较简单,.EXE文件则比较复杂,编写的难度较大。
(4).COM文件在执行时段寄存器含有相同的值,即代码、数据等混合在一起,而.EXE文件在执行时段寄存器含有不同的值,即代码、数据等驻留在不同的段中。
(5)驻留在磁盘上的.COM文件既无文件头也没有任何其它的内部标识信息,而驻留在磁盘上的.EXE文件有一个文件头(也称作控制信息块)、一个重定位图以及DOS使用的其它信息。
xxxx(6)对.COM文件来说,DOS的装入程序不能为其执行段重定位,而对.EXE文件来说,其执行段可以被重定位。
(7).COM文件只能有一个段,而.EXE文件可以有一个以上的段。
(8).COM文件不能有段堆栈,.EXE文件则可以有。
by phpor | 不指定 2011/10/07 22:04 | Windows | 评论(0) | 引用(0) | 阅读(1780)
分页: 10/184 第一页 上页 5 6 7 8 9 10 11 12 13 14 下页 最后页 [ 显示模式: 摘要 | 列表 ]