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

首页 / 操作系统 / Linux

Linux2.6 模块的两种编译方式

Linux2.6 模块的两种编译方式

题目:内核模块的编译方法日期:2008.5.15作者:singyea@ 七星居如果想要在Linux内核上扩展功能,有两条路可选,一是将自己的模块编译进Kernel,使模块成为内核的一部分;一是以模块的方式供内核加载。前者高效后者灵活,各有所长。以内核模块加载到内核是大多数设备驱动所采用的方式。关于模块的编译的方法在这里详细讨论一下。只针对2.6内核,还没看其他版本的实现方法,不知道 Linux2.6以前是不是这样的。本人测试环境: RedHat as4 (...
Linux内核中的指针和错误值

Linux内核中的指针和错误值

在内核的代码和驱动程序中经常见到ERR_PTR, IS_ERR, PTR_ERR这三个内联函数。许多的内核函数需要返回一个指针,但是函数的调用可能失败,一般我们处理这样的情形都是返回一个NULL指针,就像malloc或kmalloc在没有获得指定的空间申请时的返回值一样。但是有时我们想知道导致函数失败的原因,但是返回NULL就显得信息不够。因此有些函数返回一个实际的错误编码以便对引起错误的原因做一些处理。很多内核接口通过把错误值编码到一个指针值中来返回错误...
Linux下JDK版本的更新问题

Linux下JDK版本的更新问题

在Linux中安装了jdk1.5,也配置了环境变量。但eclipse打开时,提示说jvm版本不支持。我要如何修改老的jdk版本的环境变量呢?下的eclipse是eclipse-jee-europa-winter-linux-gtk.tar.gz 安装后,运行eclipse,提示上面的错误! 发现了一个简单的笨办法:把安装好的jdk1.5的bin和jre文件里的相应文件复制到:/lib/usr/lin/jvm 下的java和jre下面覆盖原来的相应文件!...
PHP程序不适用大型系统的九大原因

PHP程序不适用大型系统的九大原因

PHP确实十分容易编写。但是PHP也有一些十分严重的缺陷。下面我会给出我的理由,为什么PHP不适合于比小型业余网站更大的网站。 1、对递归的不良支持 递归是一种函数调用自身的机制。这是一种强大的特性可以把某些复杂的东西变得很简单。有一个使用递归的例子是快速排序(quicksort)。不幸的是, PHP并不擅长递归。Zeev,一个PHP开发人员,说道:“PHP 4.0(Zend)对密集数据使用了栈方式,而不是使用堆方式。也就是说它能容忍的递归函数的数量限...
关于Linux下面的一些“绿色软件”的命令行启动

关于Linux下面的一些“绿色软件”的命令行启动

前几天拿这样解压后就能直接在Linux下面用的软件命令行没有办法。刚开始还准备在/usr/bin下面做个相同的文件ln到解压后的文件夹中的启动程序,ln好像不能夸设备想来我很笨,把路径进入到环境变量才是正道嘛修改环境变量:打开终端:我把文件解压到/home/leo/Filezilla3/中加入这个路径到环境变量中PATH="$PATH:/home/leo/localsoftware/FileZilla3/bin" export PATH好了查看一下现在环境...
Linux下搭建j2me环境开发手机游戏

Linux下搭建j2me环境开发手机游戏

在Linux下搭建j2me环境,首先要有java的运行环境,在sun公司的官方网站上有Linux下的j2me安装包的下载。 在安装了j2me的安装包之后,就可以使用它来开发手机的游戏开发了。各大手机厂商还为了丰富自己收集的性能还在它的基础上开发了自己手机品牌的手机开发包。但是现在还没有发现有专门在Linux下的开发包。 准确的说我们现在就可以在Linux下开发手机游戏了。但是在Linux下利用sun公司提供的开发包来开发手机程序比较麻烦,建议大家使用L...
Linux进程的几个用户id及其转换

Linux进程的几个用户id及其转换

Linux为每个进程设置了3个ID:实际用户id,有效和用户id和保存的设置id关于这3个id,需要注意以下几个方面:1.只有root才能改变进程的实际用户id。例如,用户从终端login程序登陆,此时login程序的3个id都是root。然后正确输入用户名密码之后,login程序于是setuid到注册的id。于是3个id都被改成了注册的用户id。然后exec shell程序。非root用户注册进入shell之后,他的实际用户id是绝对不会被更改的。除非l...
专家预言:PHP将会比Java更受欢迎

专家预言:PHP将会比Java更受欢迎

Netscape共同创办人Marc Andreessen在周三(10/19)举行的Zend/PHP会议上预言,简单的PHP描述性语言撰写工具,在Web-based应用程序的开发上,将会比Java更受欢迎。 在升阳(Sun Microsystems)于1995年发表Java之后,由于Java的友善接口让工程师设计软件更为容易,受到工程师欢迎,但十年下来Java陆陆续续被加入了强大的功能,反而使它变得不容易操作。Marc Andreessen指出,现在的Ja...
Linux操作系统下一些“绿色软件”的命令行启动

Linux操作系统下一些“绿色软件”的命令行启动

前几天拿这样解压后就能直接在Linux下面用的软件命令行没有办法。刚开始还准备在/usr/bin下面做个相同的文件ln到解压后的文件夹中的启动程序,ln好像不能夸设备想来我很笨,把路径进入到环境变量才是正道嘛修改环境变量:打开终端:我把文件解压到/home/leo/Filezilla3/中加入这个路径到环境变量中PATH="$PATH:/home/leo/localsoftware/FileZilla3/bin" export PATH好了查看一下现在环境...
Linux内存申请应用及方法原理总结

Linux内存申请应用及方法原理总结

1. 地址空间的管理物理地址都是有内核管理的, node-->zone-->mem_map-->page, 所有的物理页面都在mem_map数组中的页帧对应, 然后不同的page有分为DMA,normal,highmem三个zone。Linux内核线性地址空间, 实际上只是低端内存才有线性地址,0---896MB部分。 内核虚拟地址, 低端内存的虚拟地址与线性地址是一样的。 高端内存只有在映射了以后才有虚拟地址用户空间地址, tast_s...
uClinux中添加Telnetd登陆时的用户名和密码

uClinux中添加Telnetd登陆时的用户名和密码

方法1: 编译Kernel的时,make menuconfig,打开Tinglogin,选择adduser(主要用于创建用户的password),addgroup(否则编译会报错,adduser程序中用到),login(登陆需要),login;/etc/securetty(安全报告,可以不要。当输入的login用户名不是user时会提示,因为linux的telnetd一般情况下是不允许root登陆的,如果用户硬要设定用root登陆,它会提示,但用户仍然能成...
Linux复制文件的一个陷阱

Linux复制文件的一个陷阱

今天在Linux下写shell时碰到一个奇怪的问题:执行shell时编译不了某个模块,手工进行编译却可以。查找很久,google了N遍,不得要领,正要发狂的时候,突然发现有一个cp的命令好像有问题,命令是: cp ./aaa.ko /lib/modules/misc,马上转到/lib/modules目录,结果发现misc是一个文件!哦,凶手就是它!由于/lib/modules目录下原先没有misc目录,所以把aaa.ko改名为misc并复制到/lib/mo...
Linux环境下log4j日志输出乱码问题解决

Linux环境下log4j日志输出乱码问题解决

现在log4j使用非常流行,在WINDOWS系统使用中,没碰到乱码问题,但最近在Linux环境中,碰到了乱码问题,解决方法只需在Log4j.xml(本人使用的是此格式的配置文件)中,设置属性,即可解决。另:1) 经本人测试,只有将字符编码设为“UTF-8”,才能解决乱码问题,如果设为:GB2312,GBK等都还是会出现乱码。2) 只需在此处设置下字符编码即可,不需在程序中对要输出的内容进行编码,而且即使对输出的内容进行编码,也无济于事,还是会出现乱码的情况...
<< 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 >>