易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

linux 2.6 内核学习小结 硬件相关概念

1、特权级
  Intel体系结构引入特权级是为了实现保护。所谓386保护模式就是在此基础上建立起来的。系统中每个段(CS、DS、SS)都有自己的特权级,系统中每个任务或程序也都有自己的特权。
  2、操作模式
  处理器加电或重启后,首先进入实模式,操作系统初始化部分负责从实模式到保护模式的切换。
  3、段、段描述符
  段是一块连续的内存区域,是基本的内存保护单位。用段描述符来描述。
  4、全局和局部描述符表(GDT、LDT)
  为了段的管理和查找方便。
  5、门描述符
  一种特殊的段描述符,属于系统段描述符。因为仅按段级保护,应用程序就无法使用操作系统段中的过程,为此,操作系统就把这些需要公开的过程建成门,从而应用程序可以通过这些门使用操作系统的过程。(这里的过程可以简单理解为函数调用),一个门对应一个过程或者任务。
  6、分页机制
  Intel体系结构提供两种内存管理机制:分段和分页。段是一种基本的内存管理机制,它把处理器的线性地址空间划分为小的地址段。段与段相互独立,对段的访问要受到严格的检查和保护。段可以再分为页,从而实现对虚拟内存的基本支持。
  Intel按页目录和页表两级结构组织一个任务的 ......

linux下 php5.3.2 调用 so

php 通用的调用 so的方法是使用dl()函数,但是在php5.3之后不再支持这种方法,仅支持静态调用,使用dl() 动态调用的方法见:
   引用页1:   http://tech.idv2.com/2007/07/06/use-local-so-in-php/
感谢原作者提供的清晰明了的方法,但是我在5.3.1版本i中没有通过,于是我找到了页面:
     引用页2:  http://www.9php.com/FAQ/cxsjl/php/2007/11/9405479103083.html
此页面中有讨论到如何静态调用so文件中的函数的描述,解决方法如下:
环境:Apache 2.2.9
        php5.3.2
首先使用引用页1提供的方法生成动态库 libhello.so.
进入php 安装包解压缩目录
-laptop:~/dev/software/php-5.3.2$cd ext
funny@funny-laptop:~/dev/software/php-5.3.2/ext$
建立中间 php链接so项目cltest
funny@funny-laptop:~/dev/software/php-5.3.2/ext$ ./ext_skel --extname=cltest
Creating directory cltest
Creating basic files: config.m4 config.w32 .cvsignore cltest.c php_cltest.h CREDITS EXPERIMENTAL tests/001.phpt cltest.php [done].
To use your new extension, you will have to ......

linux下 php5.3.2 调用 so

php 通用的调用 so的方法是使用dl()函数,但是在php5.3之后不再支持这种方法,仅支持静态调用,使用dl() 动态调用的方法见:
   引用页1:   http://tech.idv2.com/2007/07/06/use-local-so-in-php/
感谢原作者提供的清晰明了的方法,但是我在5.3.1版本i中没有通过,于是我找到了页面:
     引用页2:  http://www.9php.com/FAQ/cxsjl/php/2007/11/9405479103083.html
此页面中有讨论到如何静态调用so文件中的函数的描述,解决方法如下:
环境:Apache 2.2.9
        php5.3.2
首先使用引用页1提供的方法生成动态库 libhello.so.
进入php 安装包解压缩目录
-laptop:~/dev/software/php-5.3.2$cd ext
funny@funny-laptop:~/dev/software/php-5.3.2/ext$
建立中间 php链接so项目cltest
funny@funny-laptop:~/dev/software/php-5.3.2/ext$ ./ext_skel --extname=cltest
Creating directory cltest
Creating basic files: config.m4 config.w32 .cvsignore cltest.c php_cltest.h CREDITS EXPERIMENTAL tests/001.phpt cltest.php [done].
To use your new extension, you will have to ......

Linux下创建与解压zip, tar, tar.gz和tar.bz2文件 转

在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。
zip格式已成为压缩文件的标准选择,而且它在windows上也能使用。
经常用zip格式压缩那些需要共享给windows用户的文件。
如果只是共享给linux用户或者Mac用户,偏向于选择tar.gz格式。
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。
压缩一个目录:
# zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:
# unzip archive_name.zip
TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。
下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress
如何解包:
# tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来决定解包的路径:
# tar -xvf archive_name.tar -C /tmp/extract_here/
TAR.GZ
这种格式是我 ......

【linux】c++ 内存管理(二)

3. 指针与数组的比较
不同点:
      数组:要么在惊天存储区域被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命周期内保持不变,只有数组的内容可以改变。
指针:可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。
 
两者特征比较的例子:
(1) 修改内容:
char a[] = “hello”;
a[0] = ‘x’ ; // ok
char *p = “hello”; //注意p指向常量字符串
p[0] = ‘x’; //错误。编译器不能发现该错误
指针p指向常量字符串”hello”(位于静态存储区,内容为hello),常量字符串的内容是不可以被改变的。企图修改常量字符串的内容而导致运行错误。
(2) 内容复制与比较
不能对数组名进行直接复制与比较,数组间复制应该使用标准函数strcpy进行复制。同理,比较b和a的内容是否相同,不能使用if( b == a )来判断,应该使用标准库函数strcmp进行比较。
语句p = a并不能将数组a的内容复制给指针p,而是把a的地址赋给了p,要想复制a的内容,可以先用库函数malloc为p申请一块容量为strlen(a) ......

【linux】c++ 内存管理(二)

3. 指针与数组的比较
不同点:
      数组:要么在惊天存储区域被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命周期内保持不变,只有数组的内容可以改变。
指针:可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。
 
两者特征比较的例子:
(1) 修改内容:
char a[] = “hello”;
a[0] = ‘x’ ; // ok
char *p = “hello”; //注意p指向常量字符串
p[0] = ‘x’; //错误。编译器不能发现该错误
指针p指向常量字符串”hello”(位于静态存储区,内容为hello),常量字符串的内容是不可以被改变的。企图修改常量字符串的内容而导致运行错误。
(2) 内容复制与比较
不能对数组名进行直接复制与比较,数组间复制应该使用标准函数strcpy进行复制。同理,比较b和a的内容是否相同,不能使用if( b == a )来判断,应该使用标准库函数strcmp进行比较。
语句p = a并不能将数组a的内容复制给指针p,而是把a的地址赋给了p,要想复制a的内容,可以先用库函数malloc为p申请一块容量为strlen(a) ......

Linux多线程编程

一:Linux多线程编程:
        线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。
  使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可 ......

linux面试大全

linux面试大全
一.填空题:
1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
3. Linux文件系统中每个文件用 i节点 来标识。
4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。
5. 链接分为: 硬链接 和 符号链接 。
6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。
7. 某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 。
8. 前台起动的进程使用 Ctrl+c 终止。
9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
10. 网络管理的重要任务是: 控制 和 监控 。
11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。
13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限。
14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新。
15. 系统交换分区是作为系统 虚拟存储器 的一块区域。
16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。
17. ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [2345] [2346] [2347] [2348] 2349 [2350] [2351] [2352] [2353] [2354]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号