Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

深度剖析Linux系统2.6内核改进的内存管理

深度剖析Linux系统2.6内核改进的内存管理

Linux系统2.6内核使用了许多技术来改进对大量内存的使用,使得 Linux 比以往任何时候都更适用于企业。本文列出了一些更重要的改变,包括反向映射(reverse mapping)、使用更大的内存页、页表条目存储在高端内存中,以及更稳定的内存管理器。 随着 Linux 内核的发展和成熟,更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者甚至海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核...
用Perl 来创建可重用的Web应用程序

用Perl 来创建可重用的Web应用程序

Perl 是面向复杂 Web 应用程序开发的方便而有效的工具。然而,即使是经验丰富的程序员也会因为 Perl 的学习和使用难度太高而不愿使用。本文阐述了 Perl 面向对象的执行能简化工作,特别是因为其分布式设计及应用程序的功能性能使其比其他 Web 技术更为有效 当我尝试寻找一个好的留言簿脚本时发现,在 CGI 脚本中,面向对象的执行并不常见。我想要一个能通过改变式样、添加新功能等方式能进行轻易的修改,并能用来建立论坛的脚本。在 Web 上三十种免费留...
linux C++ 程序实例分析

linux C++ 程序实例分析

第一次接触linux下的C++,按照一本windows下面的C++来做,有不少问题。出现错误提示为:t1.cpp: In function ‘int main()’:t1.cpp:5: 错误: ‘cout’ 在此作用域中尚未声明t1.cpp:6: 错误: ‘cin’ 在此作用域中尚未声明后来解决了问题。原来在linux下的c++调用系统函数时,要引用这个类所在的空间,就是加一句using namespace XXXX(类空间名);并且main前不能用vo...
Relay:Linux系统的高效数据传输技术

Relay:Linux系统的高效数据传输技术

Relay 是一种从 Linux 内核到用户空间的高效数据传输技术。通过用户定义的 relay 通道,内核空间的程序能够高效、可靠、便捷地将数据传输到用户空间。Relay 特别适用于内核空间有大量数据需要传输到用户空间的情形,目前已经广泛应用在内核调试工具如 SystemTap中。本文介绍了 Relay 的历史和原理,并且用一个简单的实例介绍了 Relay 的具体用法。 Relay 要解决的问题 对于任何在内核工作的程序而言,如何把大量的调试信息从...
Linux内核要点及意义

Linux内核要点及意义

Linux内核源代码包括多个目录,其意义如下: (1)arch:包括硬件特定的内核代码,如arm、mips、i386等; (2)drivers:包含硬件驱动代码,如char、cdrom、scsi、mtd等; (3)include:通用头文件及针对不同平台特定的头文件,如asm-i386、asm-arm等; (4)init:内核初始化代码; (5)ipc:进程间通信代码; (6)kernel:内核核心代码; (7)mm:内存管理代码; (8...
在Linux系统下实现定时器的几种常用方法

在Linux系统下实现定时器的几种常用方法

在Linux系统下实现定时器的几种常用方法 在Linux实现一个定时器,不像Win32下那样直观。在Win32调用SetTimer就行了,在Linux下则没有相应函数可以直接调用。定时器作为一个常用的功能,在Linux当然也有相应实现。下面我们看看几种常用的方法。 要实现定时器功能,最土的办法实现莫过于用sleep/usleep来实现了。当然,它会阻塞当前线程,除了处理定时功能外,什么活也干不了。当然要解决这个问题不难,创建一个单独的线程来负责定时器,...
Linux操作系统下的多进程编程(二)

Linux操作系统下的多进程编程(二)

管道是进程间通信中最古老的方式,它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信。 无名管道由pipe()函数创建: int pipe(int filedis[2]); 参数filedis返回两个文件描述符:filedes[0]为读而打开,filedes[1]为写而打开。filedes[1]的输出是filedes[0]的输入。下面的例子示范了如何在父进程和子进程间实现通信。 #defin...
Linux下把IO空间映射到用户进程空间

Linux下把IO空间映射到用户进程空间

其实是个蛮简单的问题。在LDD3的第15章上有写(见“Remapping Specific I/O Regions”这一节)。不过当时作者选择了一个错误的做法:先把这块IO空间用ioremap映射到了内核空间,然后在用户进程访问被映射的地址所产生的缺页中断里,用vmalloc_to_page得到page,返回给用户进程。 然而,vmalloc_to_page没法用在ioremap所得到的地址上,因为IO空间根本就没有对应的Page结构,返回的page指针...
linux程序最大的参数个数

linux程序最大的参数个数

linux里面的程序,或者很多命令,都可以有很多的参数,比如ll,好像可以有无数个参数,但是,实际上是有限制的,当一个文件夹里面的文件个数太多,像cp dir/* /dir2/ 这样的命令就不能执行了,错误处在cp参数太多。这个限制是在什么地方呢?看linux内核源代码时,终于解决了这个疑惑。原来,linux里面在执行execve系统调用的时候,用到这么一个结构,struct linux_binprm{char buf[BINPRM_BUF_SIZE];s...
Linux中对中断的支持

Linux中对中断的支持

Linux内核中使用的门是在i386平台的门的基础上做了更进一步的细化后形成的,如下所示: 1、中断门:处理器中DPL被设置为0的中断门,不能用户态下对其进行访问。Linux下所有的(硬)中断处理程序都是在核心态下通过中断门来激活的。 2、系统门:处理器中DPL被设置为3的陷阱门,可以在用户态下对其进行访问。Linux的三种异常处理函数(中断号为4、5、128)都是通过系统门来调用的,即指令into、bound和int $0x80可以在用户态下被执行...
让你的Linux内核重编译之路走得更通畅

让你的Linux内核重编译之路走得更通畅

内核重编译对很多Linux爱好者来说是一个不小的挑战。笔者认为,很多Linux用户对内核通常有一种误解,他们认为普通用户是不能调整内核的。其实,就实际情况而言,这种认识是不全面的。应该说,内核重编译是具有一定深度和复杂性的,同时也是易失败的配置工作。下面我把我的经历与大家分享,让你们少走一些弯路。 如果大家留意那些比较权威的Linux参考工具书的话,就会发现很多原版书籍都把内核重编译作为一个很重要的章节进行介绍。本文将要向读者介绍的并不是如何去一步步的...
Linux下C程序开发环境

Linux下C程序开发环境

1. linux 内核开发2. 基于linux嵌入式开发编辑器 vi编译器 GNU gcc调试器 gdb函数库 glibc系统头文件 glibc_header安装时选上“程序开发”中的“开发工具”就可安装gcc/gdb若要开发图形,还应选上“GNOME/KDE软件开发”集成开发环境(IDE):kylix:号称linux下的dephikdevelopRHIDE:类似于Turbo C++源文件后缀及其解释:.c为后缀 C语言源代码文件.h为后缀 头文件.i为后...
Linux操作系统的内核重入的分析

Linux操作系统的内核重入的分析

对于Linux内核重入我做了一下一些分析。 首先要界定一个范围(代码段,函数)然后才可以讨论重入。 比如以函数A,B分别为一个范围。在运行A的时候发生中断,调用B,B运行完了又返回A,这个时候称B进入A. 如果A=B,那么称A重入A,或者可以说有两个A的实例在运行。 重入导致的问题主要就是由于这两个A可以会几乎同时访问一些堆中的变量而出现不一致。解决这个问题的办法有几个: 干脆不允许某个函数(某段代码)重入,也就是如果A运行,当发生中断的时候,调...
Jonathan Corbet谈近来Linux内核的改进

Jonathan Corbet谈近来Linux内核的改进

Jonathan Corbet: 目前居住在美国科罗拉多州的玻尔得市. <>的第一作者, LWN网络杂志创始人兼主编.Corbert在今年linux.conf.au 2007悉尼会议上介绍了近来Linux内核的改进:下一个内核发行版2.6.20将增加许多新的驱动, 其中包括USB视频驱动, 用于支持USB Web摄像头.Linux支持越来越多的硬件, 但是最大的问题是厂商不发布开源驱动程序和硬件规格.内核现用的wireless代码将逐步被802...
<< 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 >>