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

首页 / 操作系统 / Linux

开发Linux设备驱动程序好像也挺简单的

开发Linux设备驱动程序好像也挺简单的

最近看了好多Linux内核编程和驱动开发的教程,也参考了一些开发板上的例子。总结下来并不是想象的高不可及。开发驱动程序需要对 内核有一定的了解,并不是非要解读的多么透彻。 以下所指的Linux驱动程序都是针对具体设备,并做成模块动态加载方式工作的。驱动程序框架是分层的,有些驱动并不是针对具体设备的如ext2文件系统的驱动,tcp/ip协议的驱动等等,这些可以称之为软驱动,工作于其他具体设备驱动程序之上。由于我们做的是嵌入式开发,仅仅编写最低层的设备驱动就...
Fedora 8下matlab安装

Fedora 8下matlab安装

这学期选修了数字信号处理,需要用到matlab,便打算在我的Fedora 8下安装好matlab。大概三天前开始下载matlab的安装程序,慢得要死,基本20k左右的速度,将近2个G的文件,光下载就浪费了这么多时间。安装倒没花多少时间,可惜装好后不能用,甚为郁闷。尝试解决一些问题后,我彻底放弃了。在windows下安装多方便啊,闭上眼睛直接点击,很快就能安装好。以后还是做点正事,少做这些无聊的事情。linux系统的安装配置比较繁琐,做完之后最好做点记录,以...
Linux 内核有小bug?

Linux 内核有小bug?

今天读着读着Linux代码,竟然无意中发现Linux 0.11内核有个小bug,呵呵,人非圣贤孰能无过。// 在目录项数据块中搜索匹配指定文件名的目录项,首先让de 指向数据块,并在不超过目录中目录项数// 的条件下,循环执行搜索。i = 0;de = (struct dir_entry *) bh->b_data;while (i < entries)...{// 如果当前目录项数据块已经搜索完,还没有找到匹配的目录项,则释放当前目录项数据块...
Linux-2.6.26-rc1已发布 官方内核引入KGDB

Linux-2.6.26-rc1已发布 官方内核引入KGDB

昨天Linus关闭了Linux-2.6.26的merge window,并发布了Linux-2.6.26-rc1。其中大部分改动来自驱动,所以也许是Linus真的想让这个版本的内核多少有些特色,所以打破多少年来Linux自身不携带调试工具的惯例,首次引入了KGDB作为内建的源码级调试工具。 上面的话只是玩笑,Linus对于Linux代码的态度,还是极其严肃认真的,希望KGDB的引入不会让一部分开发人员懒惰起来,把找出bug的任务留给KGDB,而不再去仔细...
Linux中实现在系统启动时自动加载模块

Linux中实现在系统启动时自动加载模块

为搞清楚如何在Linux系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案,无论是中文社区还是英文社区,大家的回答都没有讲到点子上,无非是围绕 modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法。有的还建议把modprobe modulename写入rc.local,却不曾想,rc.local的执行被放在整个启动顺序的很后面,而启动init.d下面定义的服务却在 rc.local前面,那...
C++程序开发从Linux迁移到AIX5.3

C++程序开发从Linux迁移到AIX5.3

由于一直使用Linux和win32来进行程序开发,对程序的移植性只考虑到了这两个平台之间的,后来,程序需要移植到AIX5.3上,当时认为AIX也属类UNIX系统,应该支持POSIX标准,对于移植不存在什么问题。但在实践中还是发现了一些问题,总结如下:1,编译器在AIX上一般使用自带的xlc编译C++代码,这里还是采用GCC来编译,从IBM上下载gcc-4.0.0-1.aix5.3. c.rpm,gcc-cplu lus-4.0.0-1.aix5.3. c....
Linux操作系统中杀死进程方法

Linux操作系统中杀死进程方法

Linux操作系统中杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:# kill -pid注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。确定要杀死进程的PID或PPID# ps -ef...
Linux系统find命令学习笔记

Linux系统find命令学习笔记

对成为一个Linux系统管理员并不感冒,但是谁让我是严重的兴趣导向型 外加 广度优先学习型。从接触Linux的第一天起,我就需要find命令,比如找找到底那些该死的.c,.h文件都在哪儿,或是某个配置文件.etc之类的都在哪儿。相比windows的搜索,find命令实在是有点儿麻烦的恐怖,想完成个具体的任务,噼里啪啦的要敲一大堆,而且man find 实在太恶心了,怎么都看不懂。干脆摸着石头过河吧。慢慢来,习惯就好。举例1:比如要找某个目录下的所有的*.f...
Linux环境下去掉文件属性的命令

Linux环境下去掉文件属性的命令

在Linux下去掉文件属性的命令为:chattr -ais /bin/netstat 当修改设置了"A"属性的文件时,它的atime记录不会改变.这可以在笔记本电脑系统中避免某些磁盘I/O处理.设置了`a"属性的文件只能在添加模式下打开用于写入.只有超级用户可以设置或清除该属性.设置了`c"属性的文件在磁盘上由内核自动进行压缩处理.从该文件读取时返回的是未压缩的数据.对该文件的一次写入会在保存它们到磁盘之前进行数据压缩.设置了`d"属性的文件不能对其运行 ...
Linux环境中的俄罗斯方块游戏思路(附源文件)

Linux环境中的俄罗斯方块游戏思路(附源文件)

首先,从玩家的角度来看俄罗斯方块游戏。这个游戏由几种基本形状的砖头,依照一定的速度下降到窗口的底部。在下落过程中,砖头是可以翻转和移动的。当底部有砖头衔接,占据了一整条行的时候,就可以被消除掉。所以,我们的实现就分这么两大部分:后台处理部分和用户界面显示部分。先看后台处理部分。游戏的核心数据结构是一个m*n的矩阵。每种样式的砖头出现的时候,都占据着矩阵中的几个个位置。根据这些被占据的位置,我们把矩阵相应的位置的值设置为1。没有砖头的地方,矩阵的值就是0。同...
Linux系统下创建锁文件

Linux系统下创建锁文件

一、概述Linux提供了多种特性来实现文件锁定。其中最简单的方法就是以原子操作的方式创建锁文件,所谓“原子操作”就是在创建锁文件时,系统将不允许任何其它的事情发生。这就给程序提供了一种确保它所创建的文件是唯一性的方式,且该文件不可能被其它程序在同一时刻创建。二、方法锁文件仅仅是充当一个指示器的角色,程序间需要通过相互协作来使用它们。锁文件只是建议性锁,与此对立的是强制性锁。为创建一个用作指示器的文件,我们使用带O_CREATE和O_EXCL标志的open系...
“中立人士”对嵌入式Linux的相关评论

“中立人士”对嵌入式Linux的相关评论

上周,Green Hills Software(GHS)就嵌入式Linux撰写了一则措辞严厉的观点,下面就是它的开场白:“Embedded Linux是迄今为止最夸大其词的嵌入式操作系统。它吹嘘为廉价、高质量、高生产率、可靠、应用范围广以及得到很好的支持,可是,恰好相反...” Green Hills接着恭贺Linux供应商承认这种操作系统是“一片混沌”(要谢谢风河!)且是“无底洞!”(也感谢你,MontaVista!)然而,赞扬是短暂的,据GHS透露...
学习Linux内核能用来干什么

学习Linux内核能用来干什么

学习Linux内核能干什么?我个人的理解是:1、了解Linux内核的具体工作细节,对我们系统编程来说是非常有用处的,比如你了解了某个系统调用在内核中是怎么实现,用起来就会更加得心应手。2、学习Linux内核的工作原理和具体实现细节,本身就是一种挑战,内核是个非常庞大的工程,无论是从理论还是实现细节理解起来就是很有难度的,如果我们能坚持的把内核中某个子模块完全的理解后,一定会提升自己的自信心,无论以后我们是做内核编程,还是系统编程。3、Linux内核开发工程...
CentOS 5.1编译内核2.6.25.2以及相关后续工作

CentOS 5.1编译内核2.6.25.2以及相关后续工作

目的: 默认kernel没有把NTFS编译进去,同时也想尝试下编译内核。系统: CentOS 5.1内核: 2.6.25.2开始几次尝试,是看了鸟哥基础篇中的编译内核。make bzImage modules modules_install 做的,然后发现可能鸟哥书里的内核太老了点,关于devfs新内核没那个选项了。在make menuconfig中我把ipv6去掉了。后面带来的问题不少。make rpm 到rpm -ivhmkinitrd 重启,成功后续...
<< 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 >>