Linux/OS/Driver
文章平均质量分 80
skykill2000
这个作者很懒,什么都没留下…
展开
-
Linker Script,LMA,VMA
以前在学ld的script时两个比较重要的概念,即指定一个输出section的lma和vma(分别是load memory address和virtual memory address),vma的作用是很明显地,就是决定run time address嘛,但lma有什么用呢?恩,对运行在linux这样的操作系统上面的应用程序来说,是没什么用的,毕竟应用程序都是被'load'到虚拟地址空间中。但是在嵌入式底层firmware, bootloader开发来说,这个关键字不再打酱油。看下面这么一段代码转载 2011-05-09 15:31:00 · 503 阅读 · 0 评论 -
OSKit包装系统驱动程序 第三章
<br />OSKit包装系统驱动程序 第三章蓝森林 http://www.lslnet.com 2000年12月9日 22:05<br /> <br />作 者: 李凌<br />导师:陈朔鹰 <br /> <br /><br />第三章 OS Environment包装Linux驱动程序的方法分析<br /><br />1. Linux内核为驱动程序提供的支持<br />为了让驱动程序能够正常的工作,操作系统内核必须要为驱动程序提供一系列的支持,这些支持包括许多方面。举例来说,驱动程序需要像内核转载 2011-02-18 23:32:00 · 326 阅读 · 0 评论 -
Linux系统调用列表
内容:一、进程控制二、文件系统控制三、系统控制四、内存管理五、网络管理六、socket控制七、用户管理八、进程间通信参考资料关于作者<br />雷镇 ([email protected])<br />2002 年 3 月本文列出了大部分常见的Linux系统调用,并附有简要中文说明。<br />以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也转载 2011-02-18 23:25:00 · 182 阅读 · 0 评论 -
用U-BOOT构建嵌入式系统的引导装载程序
用U-BOOT构建嵌入式系统的引导装载程序来源:单片机及嵌入式系统应用 时间:2006-04-21 发布人:meitai摘 要:BootLoader(引导装载程序)是嵌入式系统软件开发的第一个环节,它把操作系统和硬件平台衔接在一起,对于嵌入式系统的后续软件开发十分重要,在整个开发中也占有相当大的比例。U-BOOT是当前比较流行、功能强大的BootLoader,可以支持多种体系结构。LH7A400是Sharp公司生产的一款基于ARM922T内核的32位RISC芯片,本文详细介绍U-BOOT转载 2011-02-18 22:53:00 · 212 阅读 · 0 评论 -
实时操作系统与通用操作系统的一些比较
实时操作系统与通用操作系统的一些比较 <br />邵祖铭 <br /><br />嵌入式(注1)实时系统(注2)中采用的操作系统称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统。作为一种嵌入式操作系统,它具有嵌入式软件共有的可裁剪、低资源、占用、低功耗等特点;而作为一种实时操作系统,它与通用操作系统(如Windows、Unix、Linux等)相比有很大的差别,下面我们通过比较这两种操作系统之间的差距来描述实时操作系统的主要特点。 <br /><br />最常用的操作系统是通转载 2011-02-17 22:42:00 · 206 阅读 · 0 评论 -
Insight的使用方法(gdb的最优前端)
出自Ubuntu中文<br />作者:yacper<br />qq:469710114<br />邮箱:[email protected]<br /><br />希望能够结交linux,以及热爱在linux下开发的朋友,一起在知识的海洋里遨游...目录[隐藏]1insight概述2截图3安装4开始5其他insight概述<br />Insight是一个Tcl/Tk编写的gdb的图形用户接口,它是由在Red hat以及Cygnus的工程师写的。Red hat大方的将其捐赠给大众使用,甚至不时的提供人力继续完善它转载 2011-02-17 22:12:00 · 385 阅读 · 0 评论 -
Linux逻辑盘卷管理LVM详解
<br />关键字:Linux LVM 磁盘管理 盘卷 文件系统<br />摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,本文就深入讨论LVM技术,使得用户在无需停机的情况下方便地调整各个分区大小。转载 2011-02-17 22:08:00 · 167 阅读 · 0 评论 -
Linux 2.4.x内核软中断机制
<br /> 文档选项<br /><br />级别: 初级<br />杨沙洲 (mailto:[email protected]?subject=Linux 2.4.x内核软中断机制&[email protected])国防科技大学计算机学院<br />2002 年 6 月 01 日本文从Linux内核几种软中断机制相互关系和发展沿革入手,分析了这些机制的实现方法,给出了它们的基本用法。<br />软中断概况<br /> <br />软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下原创 2011-02-17 22:03:00 · 180 阅读 · 0 评论 -
进程间通讯
第十六章,进程间通讯 第十六章,进程间通讯16.1 信号16.1.1 给进程组发信号16.1.2 收割僵死进程16.1.3 给慢速操作调速16.1.4 阻塞信号16.2 文件16.2.1 文件锁定16.2.2 传递文件句柄16.3 管道16.3.1 匿名管道16.3.2 自言自语16.3.3 双向通讯16.3.4 命名管道16.4. System V IPC16.5. 套接字16.5.1 网络客户端程序16.5.2 网络服务器16.5.转载 2011-02-19 00:09:00 · 1128 阅读 · 0 评论 -
串口通讯基础及S3C2410 UART控制器
串口通讯基础及S3C2410 UART控制器作者: 佚名 发布日期:2006-01-02 10:14 查看数:261 出自:深圳远峰<br />数据通信的基本方式可分为并行通信与串行通信两种:<br />并行通信:是指利用多条数据传输线将一个资料的各位同时传送。它的特点是传输速度快,适用于短距离通信,但要求通讯速率较高的应用场合。<br />串行通信:是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场转载 2011-02-18 23:50:00 · 366 阅读 · 0 评论 -
socket编程原理
<br />socket编程原理<br />2004-04-23 15:18 pm<br />作者:linux宝库 (http://www.linuxmine.com)<br />来自:linux宝库 (http://www.linuxmine.com)<br />现存:http://www.linuxmine.com/1052.html<br />联系:linuxmine#gmail.com<br /><br />不明白?欢迎到 linux论坛 (http://bbs.linuxm转载 2011-02-18 23:37:00 · 247 阅读 · 0 评论 -
I2C接口之线路实务
<br /><br />(郭长佑/DigiTimes.com)<br />2005/04/08<br /> <br />前言<br /><br /> 对许多电子电机工程师而言,「I2C」并不是个陌生的名词,甚至可说是相当基础的接口技术,然而就因为基础,因此也容易造成忽略,根据笔者过往的经验,在校的微控器应用课程中,多半还是教导以并列、寻址、译码、致能等逻辑程序来联系外围芯片(最典型的示范即是i8255 I/O扩充芯片),这是80年代最普遍的芯片间沟通方式,然而往后的嵌入控制应用领域中,几乎都尽可能改采简易转载 2011-02-19 00:04:00 · 2489 阅读 · 1 评论 -
GNU/GCC链接脚本导学
<br />学习前提:<br /> 1)有winavr的使用经验<br /> 2)有x86汇编基础(要求会的指令不多,有记忆即可,忘了的随时上网搜)<br /><br />3. 我推荐的学习顺序:<br /> 1)《程序的链接和装入及Linux下动态链接的实现》:http://www-128.ibm.com/developerworks/cn/linux/l-dynlink/<br /> 如果你对编译和链接过程有一定了解,也有反编译库文件、目标文件转载 2011-05-19 14:54:00 · 564 阅读 · 0 评论 -
CPU缓存的工作原理
<br /><br />当CPU要读取一个数据时,首先会从缓存(Cache)中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。<br /> 通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读转载 2011-03-15 18:30:00 · 460 阅读 · 0 评论 -
Direct I/O 与正常高速缓存的 I/O
阅读AIX的手册,看到关于 Direct I/O 的一些描述:直接 I/O 与正常高速缓存的 I/O通常,JFS 或 JFS2 将文件页面高速缓存在内核存储器中。当应用程序执行文件读取请求时,如果文件页面不在内存中,则 JFS 或 JFS2 将数据从磁盘读取到文件高速缓存,然后将数据从文件高速缓存复制到用户缓冲区。对于应用程序的写操作,仅将数据从用户的缓冲区复制到高速缓存。以后执行对磁盘的实际写入。当高速缓存的使用率比较高时,这种高速缓存策略可以发挥完全的效用。它还启用从头读取、从后写入原创 2011-03-15 08:53:00 · 1374 阅读 · 0 评论 -
linux内核的 等待队列 使用方法,wait_queue_head_t,进程休眠
当你在用户空间需要读写一大片数据的时候,这个就用上了。以下来自:http://www.yuanma.org/data/2006/1207/article_1916.htm假设我们在 kernel 里产生一个 buffer,user 可以经由read,write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer时,此时 buffer 已经满了。那请问你要如何去处理这种情形呢 ? 第一种,传给 user 一个错误讯息,说 buffer转载 2011-03-10 22:03:00 · 413 阅读 · 0 评论 -
linux 内核分析之list_head
<br />一、 链表数据结构简介<br />链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。<br />通常链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个节点之间的联系形式,链转载 2011-03-10 20:58:00 · 191 阅读 · 0 评论 -
高手进阶必读:Linux内核的同步机制
<br />本文详细的介绍了Linux内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例<br /><br />一、引言<br /><br /> 在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。<br /><br /> 在主流的Linux内核中包含了几乎所有现代的操作系统具有转载 2011-03-10 20:29:00 · 178 阅读 · 0 评论 -
深入浅出Linux设备驱动之并发控制
<br />在驱动程序中,当多个线程同时访问相同的资源时(驱动程序中的全局变量是一种典型的共享资源),可能会引发"竞态",因此我们必须对共享资源进行并发控制。Linux内核中解决并发控制的最常用方法是自旋锁与信号量(绝大多数时候作为互斥锁使用)。<br /><br /> 自旋锁与信号量"类似而不类",类似说的是它们功能上的相似性,"不类"指代它们在本质和实现机理上完全不一样,不属于一类。<br /><br /> 自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环查看是否转载 2011-03-10 20:20:00 · 269 阅读 · 0 评论 -
Linux中IS_ERR()函数的理解
<br />在Linux源码中的fs部分,经常会碰到这样的函数(位于kernel/include/linux/fs.h):<br />/*<br /> * Kernel pointers have redundant information, so we can use a<br /> * scheme where we can return either an error code or a dentry<br /> * pointer with the same return value.<转载 2011-03-10 21:24:00 · 932 阅读 · 0 评论 -
Linux中的同步机制--Futex
引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex 是Fast Userspace muTexes的缩写,由Hubertus Franke, Matthew Kirkwood, Ingo Molnar and Rusty Russell共同设计完成。几位都是linux领域的转载 2011-03-09 16:15:00 · 422 阅读 · 0 评论 -
Flash ROM基础知识及其编程
Flash ROM基础知识及其编程作者: 佚名 发布日期:2006-01-02 10:05 查看数:238 出自:深圳远峰一、闪存简介<br />Flash-ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与 EEPROM 相比具有读写速度快,而与 SRAM 相比具有非易失、以及价廉等优势。而基于 NOR 和 NAND 结构的闪存是现在市场上两种主要的非易失闪存技术。 Intel 于 1988 年首先开发出 NOR flash 技术,彻底改变了原先由 EPROM 和 EEPR转载 2011-02-18 23:49:00 · 303 阅读 · 0 评论 -
在UNIX下对文件与目录进行编程
在UNIX下对文件与目录进行编程本文出自: 作者:wwwunix (2001-06-13 08:10:00) 近来,随着UNIX系统的不断普及,使用UNIX系统的单位和个人也越来越多,特别是Linux的推出,更是风靡全球。基于UNIX系统的编程也愈显重要。本文以一个简单的程序为例,说明怎样在UNIX系统下对文件和目录进行编程。该例是一个类似于UNIX系统命令ls的程序,用于列出指定的目录中所有文件和子目录并计算出指定目录所用的磁盘空间。 <br /><br />UNIX文件系统简介转载 2011-02-18 23:10:00 · 185 阅读 · 0 评论 -
深入浅出 分析Linux系统内核漏洞问题
深入浅出 分析Linux系统内核漏洞问题来源:赛迪网 时间:2006-10-21 发布人:meitai与Windows相比,Linux被认为具有更好的安全性和其他扩展性能。这些特性使得Linux在操作系统领域异军突起,得到越来越多的重视。随着Linux应用量的增加,其安全性也逐渐受到了公众甚或黑客的关注。那么,Linux是否真的如其支持厂商们所宣称的那样安全呢? <br /><br /> Linux内核精短、稳定性高、可扩展性好、硬件需求低、免费、网络功能丰富、适用于多种c转载 2011-02-18 22:51:00 · 179 阅读 · 0 评论 -
Linux驱动入门
<br />Linux驱动入门<br /><br />齐波 <[email protected]><br /><br />内核版本: 2.4.22<br />阅读此文的目的: 学会编写Linux设备驱动。<br />阅读此文的方法: 阅读以下2个文件: hello.c,asdf.c。<br />此文假设读者:<br />已经能用C语言编写Linux应用程序,<br />理解"字符设备文件, 块设备文件, 主设备号, 次设备号",<br />会写简单的Shell脚转载 2011-02-18 23:31:00 · 165 阅读 · 0 评论 -
Linux下线程
<br /><br />前言:Linux下线程的创建 <br /> 介绍在Linux下线程的创建和基本的使用.Linux下的线程是一个非常复杂的问题,由于我对线程的学习不时很好,我在这里只是简单的介绍线程的创建和基本的使用,关于线程的高级使用(如线程的属性,线程的互斥,线程的同步等等问题)可以参考我后面给出的资料. 现在关于线程的资料在网络上可以找到许多英文资料,后面我罗列了许多链接,对线程的高级属性感兴趣的话可以参考一下. 等到我对线程的了解比较深刻的时候,我回来完成这篇文章.如果您对线程了原创 2011-02-18 23:30:00 · 262 阅读 · 0 评论 -
Linux 命令大集合
<br />前言,这是些命令集是从一张盗版光盘里找出来的,当时我没有在意,在WIN的程序里还有这样的“另类”资料,于是全部拿下。所以出处就无从考证。从字里行间,我们可以看出,这是Turbo的。不过对于我们来说价值还是有的,希望能对弟兄们学习有点小用。。。<br /><br />进入与退出系统<br />http://www.chinaitlab.com......article_show.asp?id=13230<br /><br /><br />屏幕文本编辑器Vi <br />http://w原创 2011-02-18 23:27:00 · 144 阅读 · 0 评论 -
文件和设备编程
<br />文件和设备编程<br />2004-04-23 15:18 pm<br />作者:作者<br />来自:Linux知识宝库<br />http://www.douzhe.com/docs/linux/<br />Contact: 无名<br /><br />文件访问原语<br /><br />POSIX API 最重要的一个抽象概念就是文件。尽管几乎所有的操作系统都将文件用于永久性存储器,但所有 Unix 版本通过文件抽象概念提供对大多数系统资源的访问。<br />转载 2011-02-18 23:23:00 · 130 阅读 · 0 评论 -
Linux下C语言编程--进程通信、消息管理
<br /> Linux下C语言编程--进程通信、消息管理浏览字号:【大中小】【打印】【关闭窗口】 日期:2004-05-31 人气: 出处:http://linuxc.51.net 作者: hoyt<br />前言:Linux下的进程通信(IPC) <br /> Linux下的进程通信(IPC) <br /><br />1.POSIX无名信号量 <br />2.System V信号量 <br />3.System V消息队列 <br />4.Syst转载 2011-02-18 23:17:00 · 177 阅读 · 0 评论 -
Linux下C语言编程--文件的操作
Linux下C语言编程--文件的操作http://linuxc.51.net 作者:hoyt (2001-05-08 11:33:15)前言: 我们在这一节将要讨论linux下文件操作的各个函数. 1.文件的创建和读写 2.文件的各个属性 3.目录文件的操作 4.管道文件 -------------------------------------------------------------------------------- 1。文件的创转载 2011-02-18 23:08:00 · 173 阅读 · 0 评论 -
Linux操作系统的内核编译内幕详解
Linux操作系统的内核编译内幕详解 来源:网络 admin 时间:2007-02-02 发布人:diandian<br /> 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 <br /><br /> Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。<br /><br /> 全世转载 2011-02-18 22:42:00 · 139 阅读 · 0 评论 -
montavista平台:图形化GDB--DDD安装失败,insight安装调试成功
<br />在安装完DM365开发包后,接下就是要配置调试平台了,按照Debugging a Linux Application with MontaVista 5.0很容易就安装了GDB,但是命令行调试界面对习惯了WINDOWS下图形化调试界面是一件痛苦的事情<br />接下来就Google图形化GDB,首先发现了DDD,当然我也知道insight,看了一个家伙的文章我决定安装DDD,但接下来的过程让人很痛苦,安装了Lesstif,motif,在安装了DDD,很兴奋的运行DDD但是却报了一个错误ddd:转载 2011-02-17 22:13:00 · 426 阅读 · 0 评论 -
pthread_kill函数 和 sigaction 函数
<br />pthread_kill:<br />别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。<br />int pthread_kill(pthread_t thread, int sig);<br />向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程转载 2011-02-17 21:52:00 · 222 阅读 · 0 评论 -
Linux环境下的Socket编程
Linux环境下的Socket编程<br /><br />发布于2005-05-28 被读32946次 【字体:大中小】 <br /><br />什么是Socket <br /> Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 <br /> Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix转载 2011-02-18 23:36:00 · 164 阅读 · 0 评论 -
linux内核中Kconfig文档的作用
linux内核中Kconfig文档的作用 troonv<br />开源团长<br />帖子25 积分67 现金516 圆 个人空间发短消息加为好友当前离线 1#大中小 发表于 2008-9-16 01:13 只看该作者<br />fedora 8下面如何改成中文系统<br />ubuntu下ALC883声卡驱不起来,请大家帮忙解决 ...<br />关于RHEL5.2里配置vs转载 2011-02-19 00:12:00 · 255 阅读 · 0 评论 -
ArmLinux BOOTLOADER全程详解
ArmLinux BOOTLOADER全程详解来源:21control 时间:2007-01-24 发布人:meitai<br /> 网上关于Linux的BOOTLOADER文章不少了,但是大都是vivi,blob等比较庞大的程序,读起来不太方便,编译出的文件也比较大,而且更多的是面向开发用的引导代码,做成产品时还要裁减,这一定程度影响了开发速度,对初学者学习开销也比较大,在此分析一种简单的BOOTLOADER,是在三星公司提供的2410 BOOTLOADER上稍微修改后的结果,编转载 2011-02-18 22:41:00 · 164 阅读 · 0 评论 -
利用USB UART桥接器实现单片机在线编程
利用USB UART桥接器实现单片机在线编程〖文章转载或出处〗≡中国电子技术信息网≡ 网址:www.EC66.com利用USB UART桥接器实现单片机在线编程<br /> 作者:西南交通大学 邬芝权 靳桅 肖波<br />引 言:<br /><br /> 通用串行总线(USB)是一种支持即插即用的新型串行接口,使外设到计算机的连接更加高效便利。这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求和直接数据通道等问题。因转载 2011-02-19 00:07:00 · 504 阅读 · 0 评论 -
USB协议基础及S3C2410 USB控制器
USB协议基础及S3C2410 USB控制器作者: 佚名 发布日期:2006-01-02 10:48 查看数:405 出自::深圳远峰一、USB1.1 概述<br />USB 是 Universal Serial Bus 的简称。它是一种可以同时处理计算机与具有 USB 接口的多种外设之间通信的电缆总线。这些连接到计算机上的外设共同分享 USB 的带宽。USB 的分时处理机制真正在硬件的意义上实现了计算机外设的即插即用。 <br />如果留心一下当前市场上的计算机外设,大家会发现转载 2011-02-18 23:49:00 · 482 阅读 · 0 评论 -
Linux下的动态连接库及其实现机制
<br />摘 要:本文介绍了动态连接库的优点,详细阐述了x86体系结构上Linux系统的编译器 <br />、连接器、加载器如何使用多种重定位方式来实现该功能 <br /><br />关键词:动态连接库;Linux;重定位 <br /><br />The Implementation Mechanism of DLL under Linux <br /><br />【Abstract】In this paper, we discuss the advantage of usin转载 2011-02-18 23:28:00 · 169 阅读 · 0 评论 -
信号(signal)介绍
摘要<br /> 信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。(2002-07-09 13:05:03)<br />By 书生, 出处:only_you<br /><br /><br /> 信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。<br /> 信号机制是进程之间相互传递消息转载 2011-02-18 23:24:00 · 561 阅读 · 0 评论