linux
文章平均质量分 77
yalizhi123
这个作者很懒,什么都没留下…
展开
-
技术系列之 网络模型(一)基础篇
<br />全文针对linux环境。tcp/udp两种server种,tcp相对较复杂也相对比较常用。本文就从tcp server开始讲起。先从基本说起,看一个单线程的网络模型,处理流程如下:socket-->bind-->listen-->[accept-->read-->write-->close]-->close<br />[]中代码循环运行,[]外的是对监听socket的处理,[]内的是对accept返回的客户socket的处理。这些系统调用的参数以及需要的头文件等,只需要在linux下man就好。转载 2010-06-27 15:57:00 · 101 阅读 · 0 评论 -
Linux线程实现机制分析
<br /> 内容: <br /><br /> ·基础知识:线程和进程 <br /><br /> ·Linux 2.4内核中的轻量进程实现 <br /><br /> ·LinuxThread的线程机制 <br /><br /> ·其他的线程实现机制 <br /><br /> ·参考资料 <br /><br /> ·关于作者 <br /><br /> 自从多线程编程的概念出现在 Linux 中以来,Linux 多线应用的发展总是与两个问题转载 2010-06-25 18:22:00 · 171 阅读 · 0 评论 -
求文件大小的方法
<br />在我们学习生活中经常会遇到问题和困难,就比如说我们在学习Linux时,比如怎样Linux获取文件大小的方法。前几天在工作中需要写一段代码,获取一些视频文件的大小,心想:这还不简单吗?直接用标准C的文件操作函数就OK了。于是写了下面的一段代码来实现:<br /> unsigned long get_file_size(const char *filename) <br /> { <br /> unsigned long size; <br /> FILE* fp = fo转载 2010-08-14 11:13:00 · 330 阅读 · 0 评论 -
使用automake 生成 Makefile 文件
<br />在 Unix 上写程式的人大概都碰过 Makefile,尤其是用 C 来开发程式的 <br />人。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile <br />就不简单了。偏偏介绍 Makefile 的文件不多,GNU Make 那份印出来要几 <br />百页的文件,光看完 Overview 就快阵亡了,难怪许多人闻 Unix 色变。 <br />本文将介绍如何利用 GNU Autoconf 及 Automake 这两套软体来协助我们 <br />『自动』产生 Ma转载 2010-08-16 19:22:00 · 160 阅读 · 0 评论 -
POSIX信号量和SYSTEM V信号量(2)
<br />POSIX信号量<br /> 与POSIX信号量比较System V信号量潜在的学习曲线要高得多,当阅读完这个部分并和上面System V的部分对比,你就会更加的这么认为。<br /> 首先,POSIX使用简单的语义去创建、初始化和对信号量进行操作。它们提供了一个有效的方式来处理进程间通讯。POSIX有两种类型的信号量,有名信号量和无名信号量。<br /> 有名信号量<br /> 如 果你看man手册,你将会看到一个有名信号量像system v信号量一样由一个名字标识,并且类似的这个转载 2010-08-14 15:58:00 · 1815 阅读 · 0 评论 -
s3c2440IIS实现音频功能
<br /> IIS(Inter-IC Sound)由飞利浦公司开发,是一种常用的音频设备接口,主要用于CD、MD、MP3等设备。<br /> <br /> s3c2440一共有5个引脚用于IIS:IISDO、IISDI、IISSCLK、IISLRCK和CDCLK。前两个引脚用于数字音频信号的输出和输入,另外三个引脚都与音频信号的频率有关,可见要用好IIS,就要把信号频率设置正确。IISSCLK为串行时钟,每一个时钟信号传送一位音频信号,因此IISSCLK的频率=声道数×采样频率×采转载 2010-08-03 13:14:00 · 526 阅读 · 1 评论 -
GNU工具开发基于ARM嵌入式系统的方法
<br /><br />当 前,ARM公司的32位RISC处理器,以其内核耗电少、成本低、功能强、特有16/32位双指令集,已成为移动通信、手持计算、多媒体数字消费等嵌入式 解决方案的RISC标准,市场占有率超过了75 %。多家公司都推出了自己的基于ARM内核的处理器产品,越来越多的开发人员开始了针对ARM平台的开发。通常开发人员需要购买芯片厂商或第三方提供的开 发板,还需要购买开发软件,如C编译器或者集成了实时操作系统的开发环境。开发板的价格从数百到上千美元,而编译器、实时操作系统价格更是动辄数千转载 2010-07-27 19:19:00 · 118 阅读 · 0 评论 -
S3C2410内存管理单元MMU基础实验
<br />ARM芯片S3C2410内存管理单元MMU基础实验<br /><br /> (11)实验十一:MMU<br /> 在理论上概括或解释MMU,这不是我能胜任的。我仅基于为了理解本实验中操作MMU的代码而<br /> 对MMU做些说明,现在先简单地描述虚拟地址(VA)、变换后的虚拟地址(MVA)、物理地址(PA)<br /> 之间的关系:<br /> 启动MMU后,S3C2410的CPU核看到的、用到的只是虚拟地址VA,至于VA如何最终落实到物理<br /> 地址PA上,CPU是不理会的转载 2010-07-28 18:48:00 · 445 阅读 · 0 评论 -
ARM开发板/摄像头/pc/图像获取
<br />20070217_实现arm采集图像在PC上显示<br />我的环境<br />PC:操作系统用的FC5,内核是2.6.15,交叉编译器是3.4.1<br />开发板硬件:桓丰锐科的板子,CPU是s3c2410<br />开发板软件:bootloader是自己移植的u-boot,内核是自己移植的2.6.14.1,文件系统是自己移植的busybox-1.1.3<br />先说一下总体思路,<br />1、移植摄像头驱动<br />2、移植服务器端程序<br />3、编译客户端程序<br />1、移转载 2010-07-17 16:59:00 · 1496 阅读 · 0 评论 -
移植Boa Web服务器到ARM-Linux系统
source:http://blog.chinaunix.net/u1/34474/index.html<br />移植Boa Web服务器到ARM-Linux系统 <br />本次移植的主要参考资料:<br /> <br />1、 《嵌入式Web服务器移植 》是网上一份Boa移植文档,比较全面。本文档就是基本参照它来写的。基本上上可以说是这篇文章的修改版,增加了我的移植经验。由于这篇文章被转载得到处都是,我实在无法找到出处。在这里衷心的感谢文章作者!!<br /> <br />2、 《构建嵌入式Linux转载 2010-07-17 15:16:00 · 120 阅读 · 0 评论 -
Linux内核移植和根文件系统制作
<br />第一章 移植内核 <br />1.1 Linux内核基础知识 <br />1.1.1 Linux版本 <br />1.1.2 什么是标准内核 <br />1.1.3 Linux操作系统的分类 <br />1.1.4 linux内核的选择 <br />1.2 Linux内核启动过程概述 <br />1.2.1 Bootloader启动过程 <br />1.2.2 Linux启动过程 <br />1.3 Linux内核移植 <br />1.3.1 移植内核和根文件系统准备工作 <br />1.3转载 2010-07-17 15:11:00 · 276 阅读 · 0 评论 -
一种实现嵌入式Linux的新方法-ramdisk
<br />引言<br /><br /> 在Linux操作系统中,有一项特殊的功能——初始化内存盘INITRD(INITial Ram<br /> Disk)技术,而且内核支持压缩的文件系统映像。有了这两项功能,我们可以让Linux系统从小的初始化内存盘启动,并把系统内存的一部分作为根文件系<br /> 统挂载,而且不使用交换分区(如果不运行X<br /> Windows这是完全可以的),即把Linux系统完全嵌入到内存中,而不依赖于任何其他硬盘。现在PC机内存至少128M,而根文件系统所用的只有<转载 2010-07-18 13:06:00 · 150 阅读 · 0 评论 -
如何利用Video4Linux获取摄像头数据
<br />本文详细介绍如何利用Video4Linux获取摄像头数据 <br /> Video4Linux是Linux下用于获取视频和音频数据的API接口,在这篇文章中,着重阐述如何利用Video4Linux获取摄像头数据,以实现连续影像的播放。<br /> 1. 摄像头的安装<br /> 在Linux下常用的摄像头驱动是spca5xx, 这是一个通用驱动,读者可以在以下网站下到这个驱动 http://mxhaard.free.fr/download.html。这个网站还给出了这款驱动支持的摄像头转载 2010-07-17 16:54:00 · 777 阅读 · 0 评论 -
对exec传送变量的访问
<br />任何被exec调用所执行的程序,都可以访问exec调用中的参数。这些参数是调用exec的程序传送给它的。我们可以通过定义<br />程序main()函数的参数来使用这些参数。方法如下:<br /> main(int argc,char *argv[])<br /> 这对于大多数人来说应该是熟悉的,这种方法就是C语言程序访问命令行参数的方法。<br />这也是显示了shell本身就是使用exec启动进程的。<br /> 以上说明的mian()函数中,argc是参数计数器,argv指向翻译 2010-07-05 17:38:00 · 237 阅读 · 0 评论 -
linux 下域名解析函数gethostbyname 和 getaddrinfo
<br />一、函数原型<br /> #include <netdb.h><br /> struct hostent *gethostbyname(const char *name);<br /> 作用:可以用于解析域名<br /> 结构体 hostent 的原型如下:<br /> struct hostent {<br /> char *h_name; /* official name of host */<br /> char **h_aliases;转载 2010-07-05 11:22:00 · 1843 阅读 · 0 评论 -
linux设计和应用
<br />一、引言<br />嵌入式系统(Embedded Systems)是根据应用的要求,将操作系统和功能软件集成于计算机硬件系统之中,从而实现软件与硬件一体化的计算机系统。嵌入式系统出现于60年代晚 期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多 领域。嵌入式系统在数量上远远超过了各种通用计算机系统:计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80%应用于各类专 用性转载 2010-06-29 11:23:00 · 156 阅读 · 0 评论 -
技术系列之 网络模型(二)
<br />本章主要列举服务器程序的各种网络模型,示例程序以及性能对比后面再写。<br />一、分类依据。 服务器的网络模型分类主要依据以下几点<br /> (1)是否阻塞方式处理请求,是否多路复用,使用哪种多路复用函数<br /> (2)是否多线程,多线程间如何组织<br /> (3)是否多进程,多进程的切入点一般都是accept函数前<br />二、分类。 首先根据是否多路复用分为三大类:<br /> (1)阻塞式模型<br /> (2)多路复用模型<br /> (3)实时信号模型<br转载 2010-06-27 16:04:00 · 115 阅读 · 0 评论 -
Linux内存:内存管理的实质
<br />1. 内核初始化: <br /><br /> * 内核建立好内核页目录页表数据库,假设物理内存大小为len,则建立了[3G--3G+len]::[0--len]这样的虚地址vaddr和物理地址paddr的线性对应关系; <br /> * 内核建立一个page数组,page数组和物理页面系列完全是线性对应,page用来管理该物理页面状态,每个物理页面的虚地址保存在page->virtual中; <br /> * 内核建立好一个free_list,将没有使用转载 2010-06-25 18:30:00 · 104 阅读 · 0 评论 -
信号量
<br />信号量分有名和无名信号量。它们的区别和管道及命名管道的区别类似。有名信号量要求创建一个文件,而无名信号量则直接保存在内存中。<br /><br /> 一,Posix信号量<br /> Posex信号量接口总结(见下图):<br /> 上面一行是有名信号量,可于fifo相类比,其值保存在文件中,可用于进程和线程同步;<br /> 下面一行是无名信号量,可与pipe相类比,其值保存在内存中,可用于进程和线程同步;<br /> 中间部分,是两者的公用接口。<br /><br /> sem_转载 2010-08-14 15:54:00 · 372 阅读 · 0 评论