Linux系统
文章平均质量分 80
shenbin1430
本人只搞技术,不搞歪门邪道!
展开
-
基于 ARM 体系的嵌入式系统 BSP 的程序设计
摘要: 在介绍基于 ARM 体系的嵌入式系统启动流程的基础上,结合编程实例,详细、系统地叙述了 BSP (板级支持包)程序的各个组成部分及其具体设计方案,并就实际程序设计中的几个难点问题做了说明。 关键词: ARM BSP 嵌入式系统 微处理器ARM公司32 位RISC 的CPU 开发领域不断取得突破,其结构已经从 V3 发展到 V6 。 BSP( Board Suppor转载 2009-07-14 09:46:00 · 1320 阅读 · 0 评论 -
X的一些基本知识与Xorg架构及未来
dri关于dri,这个是xfree86 4.x就出来了,主要是用来加速本地应用。现在的机器基本上都是自己用了,关于glx,dri怎么实现的,从底下硬件,到上面driver到xorg,到应用程序怎么工作的,需要一大篇专门的文章来讲不适合放在这里了。无论dri还是dri2都是类似的,至于drm是什么,drm是实现dri这个框架,需要内核的支持,这个部分就是内核那个部分的东西了。主要是资源管转载 2009-09-23 09:39:00 · 3523 阅读 · 0 评论 -
Linux音频编程指南
虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架。一、数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计转载 2009-10-22 14:13:00 · 686 阅读 · 0 评论 -
用新型D-BUS与Linux桌面应用程序通讯
D-BUS 是一个大有前途的消息总线和活动系统,正开始深入地渗透到 Linux® 桌面之中。了解创建它的原因、它的用途以及发展前景。 D-BUS 本质上是 进程间通信(inter-processcommunication)(IPC)的一个实现。不过,有一些特性使得 D-BUS 远远不是“只是另一个 IPC 实现”。有很多不同的 IPC实现,因为每一个都定位于解决特定的明确定义的问题转载 2009-11-03 16:55:00 · 721 阅读 · 0 评论 -
GObject对象系统
简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。如果你是一个C语言的执着的追随者,你没有理由不研究一下它。前言大多数现代的计算机语言都带有自己的类型和对象系统,并附带算法结构。正象GLib提供的基本类型和算法结构(如链表、哈希表等)一样,GObject的对象系统提供转载 2010-02-21 16:52:00 · 1016 阅读 · 0 评论 -
Xlib 窗口属性
所有的 InputOutput窗口都可以有零个或者多个像素的边框宽度,一个可选的背景,一个事件压制掩码(它压制来自孩子的事件传播),和一个 property列表。窗口的边框和背景可以是一个实心颜色或者是一个称为平铺的调色板。除了根窗口之外的所有的窗口都有父亲并且都是由它们的父亲所裁剪。如果一个窗口是在压栈压在另一个窗口的上面,它遮挡用于输入的其它窗口。如果一个窗口有背景(大多数都有),转载 2010-01-07 14:16:00 · 4937 阅读 · 1 评论 -
Linux TCP Socket程序分析
/************************c语言编写的tcp socket通信的server端。可以持续监听myprot指定的端口打印端口接收到的字符流头文件因为尖括号被转义,所以用了引号************************/#include "stdio.h"#include "stdlib.h"#include "errno.h"#inc转载 2010-05-06 14:07:00 · 3103 阅读 · 3 评论 -
linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉
来自:http://hi.baidu.com/phenix_yw/blog/item/6eb4ca391d1479f23a87ce19.html信号安装函数sigaction(int signum,const struct sigaction *act,structsigaction*oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆转载 2010-05-06 15:02:00 · 962 阅读 · 1 评论 -
XIM协议的原理及其实现
引言1.输入法世界上大多数语言是基于字母表的,一些字母的集合组成了单词,当在计算机中输入这些语言时,用户通常是在键盘上键入相应的字符或一些组合键来实现。但表意文字(如中,日,韩等)却不能在键盘上找到相应的键,如果想在计算机中输入这些文字,就需要相应的输入法。输入法有很多种,如拼音,五笔等,但这些输入法的一个共同的特征是用户敲多个键来组成一个文字(或一组文字),统称为编码输入。2.XIM协议XIM(X Input Method)是X-Window系统下的符合国际化标准的输入法协议,只要应用程序和系转载 2010-07-15 16:04:00 · 4558 阅读 · 0 评论 -
Linux内核的工作原理
本文发表于Linux Format magazine杂志,作者从技术深度上解释了Linux Kernel是如何工作的。相信对Linux开发者来说有不小的帮助。牛津字典中对"kernel"一词的定义是:"较软的、通常是一个坚果可食用的部分。"当然还有第二种定义:"某个东西核心或者最重要的部分。"对Linux来说,它的Kernel无疑属于第二种解释。让我们来看看这个重要的东西是如何工作的,先从转载 2009-06-29 13:16:00 · 1207 阅读 · 0 评论 -
Linux图形界面中客户端、服务器、窗口管理器之间的关系
一、Linux操作系统和图形的关系linux本身没有图像界面,linux现在的图像界面的实现只是linux下的应用程序实现的。图像界面并不是linux的一部分,linux只是个基于命令行的操作系统。Linux内核为linux系统中的图形界面提供了显示设备驱动。二、X的概念X是协议,就像HTTP协议,IP协议。这个概念很多初学者甚至学习LINUX有一定时间的人转载 2009-06-24 15:38:00 · 2809 阅读 · 0 评论 -
X Server 的优化
X Server是一个广泛使用的图形引擎,对上层应用的绘画请求提供底层支撑。在上层应用请求引发的Xserver的图形操作中,经常会涉及到用某种颜色填充一个区域,将一个区域拷贝到另一个区域,或者将两个区域进行alpha-blending,等等。这些操作Xserver都提供了对应的软件实现,然而,性能相对来说不会太好,而且占用了大量的CPU资源。由于今天的手机系统中,对图形的效果要求越来越炫,转载 2009-06-23 15:09:00 · 1102 阅读 · 0 评论 -
Linux环境进程间通信(共享内存)
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数转载 2009-05-07 10:40:00 · 855 阅读 · 0 评论 -
printk()调试信息分级显示脚本的编写方法
在编写内核程序时printk()在中定义了一些用于调试的宏,它们是: KERN_EMERG "" 系统不可用 KERN_ALERT "" 必须采取措施 KERN_CRIT "" 严重状态 KERN_ERR "" 错误状态 KERN_WARNING "" 警告状态 KERN_NOTICE "" 正常但重要的情况 KERN_INFO "" 消息原创 2009-07-29 14:24:00 · 1561 阅读 · 1 评论 -
内核模块及工作原理
什么是内核模块? 现在,你是不是想编写内核模块。你应该懂得C语言,写过一些用户程序, 那么现在你将要见识一些真实的东西。在这里,你会看到一个野蛮的指针是如何 毁掉你的文件系统的,一次内核崩溃意味着重启动。 什么是内核模块?内核模块是一些可以让操作系统内核在需要时载入和执行的代码,这同样意味着它可以在不需要时有操作系统卸载。它们扩展了操作系 统内核的功能却不需要重新启动系原创 2009-07-29 14:34:00 · 6985 阅读 · 0 评论 -
优先级反转问题
目前,市场上占有率比较高的商业RTOS有VxWorks/PSOS、QNX、 LynxOS、VRTX,、Windows CE等。这些为数众多的RTOS绝大多数都是多任务实时微内核的结构,采用的是基于优先级的可抢占式调度策略。系统为每一个任务分配一个优先权,调度程序保证当前运行的进程是优先权最高的进程。但是,有时候会出现一种比较奇怪的现象:由于多进程共享资源,具有最高优先权的进程被低优原创 2009-07-29 14:19:00 · 1064 阅读 · 0 评论 -
Linux2.6内核驱动与2.4的区别
随着Linux2.6的发布,由于2.6内核做了新的改动,各个设备的驱动程序在不同程度上要进行改写。为了方便各位Linux爱好者我把自己整理的这分文档share出来。该文当列举了2.6内核同以前版本的绝大多数变化,可惜的是由于时间和精力有限没有详细列出各个函数的用法。 1、 使用新的入口 必须包含 module_init(your_init_func); module_exit转载 2009-07-29 14:30:00 · 2802 阅读 · 0 评论 -
深入理解Linux的启动过程
Inside the Linux boot processTake a guided tour from the Master Boot Record to the first user-space applicationThe process of booting a Linux® system consists of anumber of stages. But whe转载 2009-08-11 14:01:00 · 2037 阅读 · 0 评论 -
Linux LCD 驱动程序的编写
基本原理通过 framebuffer ,应用程序用 mmap 把显存映射到应用程序虚拟地址空间,将要显示的数据写入这个内存空间就可以在屏幕上显示出来;驱动程序分配系统内存作为显存;实现 file_operations 结构中的接口,为应用程序服务;实现 fb_ops 结构中的接口,控制和操作 LDC 控制器;驱动程序将显存的起始地址和长度传给 LCD 控制器的寄存器 (一般由 fb转载 2009-06-24 14:50:00 · 1268 阅读 · 0 评论 -
VIM的Project插件
目录: 1.命令..............调出插件.............|project-invoking| 2.继承...........项目层层关系.........|project-inheritance| 3.映射.............插件映射..............|project-mappings|转载 2009-06-23 18:18:00 · 5623 阅读 · 1 评论 -
如何调整Linux内核启动中的驱动初始化顺序
<br />【问题】<br />此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。<br />但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。<br />此处,内核编译完之后,在生成的system.map中可以看到,<br />enc28j60_init在as352x_afe_init之前,所以,无法去读芯片ID。<br />所以我们的目标是,将as352x_afe_init驱动初始化放到enc28j60_i转载 2010-10-28 23:09:00 · 1900 阅读 · 0 评论