Unix-LINUX开发
文章平均质量分 81
fzubbsc之雕虫小技
这个作者很懒,什么都没留下…
展开
-
浅析Linux字符设备驱动程序内核机制
前段时间在学习linux设备驱动的时候,看了陈学松著的《深入Linux设备驱动程序内核机制》一书。说实话,这是一本很好的书,作者不但给出了在设备驱动程序开发过程中的所需要的知识点(如相应的函数和数据结构),还深入到linux内核里去分析了这些函数或数据结构的原理,对设备驱动开发的整个过程和原理都分析的很到位。但可能是由于知识点太多,原理也比较深的原因,这本书在知识点的排版上跨度有些大,所以读起来显原创 2014-06-27 22:00:46 · 1184 阅读 · 0 评论 -
linux signal 详解
一 信号的种类可靠信号与不可靠信号, 实时信号与非实时信号可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于SIGRTMIN的都是非可靠信号.非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信转载 2015-04-27 23:10:31 · 466 阅读 · 0 评论 -
孤儿进程与僵尸进程[总结]
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进转载 2015-04-27 23:25:15 · 358 阅读 · 0 评论 -
UNIX Domain Socket IPC (sockaddr_un )
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个转载 2015-05-27 09:33:04 · 510 阅读 · 0 评论 -
Linux下的IPC-UNIX Domain Socket
一、 概述UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Soc转载 2015-04-14 10:13:55 · 384 阅读 · 0 评论 -
本地socket unix domain socket .
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进转载 2015-05-18 15:27:08 · 623 阅读 · 0 评论 -
Linux下的多进程编程初步(转载)
分类: C/C++学习 unix 环境高级编程unix/linux学习篇 2011-10-24 00:11 16207人阅读 评论(10)收藏 举报 linux编程unix多线程semaphorefile 最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只转载 2015-05-18 17:28:43 · 350 阅读 · 0 评论 -
Linux inotify功能及实现原理
2011-12-22 19:42 14593人阅读 评论(0) 收藏 举报linuxstructeventslistdescriptorfile目录(?)[+]1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开转载 2015-06-09 19:23:31 · 478 阅读 · 0 评论 -
TIPC 透明通信协议
说实话,接触TIPC也不是一天两天了,在TSP的时候就和它天天打交道。今天好好来研究一下。TIPC sourceforge site:http://tipc.sourceforge.net/index.shtml转载自:http://blog.chinaunix.net/uid-20205875-id-3042255.htmlTIPC是爱立信的某个工程师弄出来的,后来开源了。这段时间我转载 2015-06-10 11:44:56 · 4109 阅读 · 0 评论 -
EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
EWOULDBLOCK用于非阻塞模式,不需要重新读或者写EINTR指操作被中断唤醒,需要重新读/写在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NON转载 2015-07-29 19:30:23 · 508 阅读 · 0 评论 -
网络编程socket之bind、Listen 及 accept
1.bind bind函数用于将套接字与指定端口相连.本函数适用于未连接的数据报或流类套接口,在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未命名套接口分配一个本地名字来为套接口建立本地捆绑(主机地址/端口号)。 头文件转载 2015-08-11 10:57:28 · 610 阅读 · 0 评论 -
Linux 信号signal处理机制
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一些基本概念,然后给出一转载 2015-04-27 23:01:15 · 379 阅读 · 0 评论 -
LINUX select()函数的应用
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct转载 2015-04-27 10:45:14 · 392 阅读 · 0 评论 -
linux 信号量
信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间惟一的异步通信方式。在Linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某种程序发生了什么事件,还可以给进程传递数据。一、信号的来源信号的来源可以有很多种试,按照产生条件的不同可以分为硬件和软件两种。1、 硬件方式当用户在终端上按下某键时,将产生信号。如按下组合键后将产生一个SIG转载 2015-04-27 14:46:40 · 547 阅读 · 0 评论 -
Linux-2.6.25内核帧缓冲设备驱动分析
帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面、游戏、影视软件等可视化应用时都必须用到帧缓冲技术,而现在随着消费逐渐娱乐化的大趋势,可视化应用已经在产品开发中越来越重要,因此,对于帧缓冲技术的理解和掌握就非常重要了。1 Frambuffer介绍 帧缓冲在lin转载 2014-06-27 12:00:36 · 766 阅读 · 0 评论 -
Linux内核编译步骤
1、pc机编译步骤原创 2014-06-07 22:50:27 · 689 阅读 · 0 评论 -
ARM-LINUX交叉编译环境的搭建
1、交叉编译环境原创 2014-06-17 09:53:34 · 401 阅读 · 0 评论 -
信号量机制中的DOWN操作与UP操作详解
DOWN操作:linux内核中,对信号量的DOWN操作有如下几种:void down(struct semaphore *sem); //不可中断int down_interruptible(struct semaphore *sem);//可中断int down_killable(struct semaphore *sem);//睡眠的进程可以因为受到致命信号而被唤醒,中断获取信号量原创 2014-07-13 11:48:49 · 8080 阅读 · 1 评论 -
Linux内核导出符号宏定义EXPORT_SYMBOL的源码分析
源代码:…….#ifndef MODULE_SYMBOL_PREFIX#define MODULE_SYMBOL_PREFIX ""#endif…….struct kernel_symbol //内核符号结构{ unsignedlong value; //该符号在内存地址中的地址 constchar *name; /原创 2014-06-23 11:45:44 · 3489 阅读 · 1 评论 -
Linux内核启动过程总结(图文)
前些时间在学习linux内核的时候,有完整地看过linux内核启动的代码,但是可能是因为汇编语言基础不够扎实,很多地方没有理解到位,所以两个月过去了,现在回头看又觉得生疏了。不过我发现对启动引导过程的整体理解非常有利于具体启动代码的理解和阅读。所以就把《linux2.6内核标准教程中》一书中关于启动引导过程的总结摘录下来。以便在需要的时候看看。原创 2014-06-17 11:27:40 · 771 阅读 · 0 评论 -
浅析Linux内核同步机制
很早之前就接触过同步这个概念了,但是一直都很模糊,没有深入地学习了解过,近期有时间了,就花时间研习了一下《linux内核标准教程》和《深入linux设备驱动程序内核机制》这两本书的相关章节。趁刚看完,就把相关的内容总结一下。为了弄清楚什么事同步机制,必须要弄明白以下三个问题:l 什么是互斥与同步?l 为什么需要同步机制?l Linux内核提供哪原创 2014-07-13 19:43:41 · 6164 阅读 · 0 评论 -
浅析Linux驱动模型中的底层数据结构kobject和kset
1、kobject Linux内核用kobject来表示一个内核对象。它和Sysfs文件系统联系密切,在内核中注册到系统中的每个kobject对象在sysfs文件系统中对对应着一个文件目录。kobject数据结构通常的用法是嵌入到其对他的数据结构中(即容器,比如cdev结构),用于实现内核对该类数据结构对象的管理。这些数据结构(容器)通过kobject连接起来,形成了一个树状结构原创 2014-08-11 18:50:32 · 963 阅读 · 0 评论 -
Unix环境下的Socket编程
本文先对socket进行简单的介绍,然后详细讲解socket编程的步骤及每一步作用,最后通过一个实例实现客户端与服务器端的通信,代码经测试可用。 1、什么是 Socket? Socket接口是TCP/IP 网络的 API,Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。要学 Internet 上的 TCP/IP 网络编程,转载 2015-04-14 11:04:06 · 421 阅读 · 0 评论 -
UNIX SOCKET编程概述
1 . Layered Model of Networking Socket 编程的层次模型如下图所示,最上面是应用层,应用层下面的是 SOCKET API层,再下面是传输层和网络层…… 实际上, Sockets API 层并不是一个真正定义的网络层次,但却很好的描述了Socket 编程所处的位置和所扮演的角色。TCP 状态转换图2转载 2015-04-14 11:13:48 · 472 阅读 · 0 评论 -
P2P,UDP和TCP穿透NAT
1. NAT 简介NAT(Network Address Translation ,网络地址转换) 是一种广泛应用的解决IP 短缺的有效方法, NAT 将内网地址转和端口号换成合法的公网地址和端口号,建立一个会话,与公网主机进行通信。1.1. NAT 分类NAT 从表面上看有三种类型:静态 NAT 、动态地址 NAT 、地址端口转换 NAPT 。 (1 )静态NAT转载 2015-08-27 10:11:40 · 402 阅读 · 0 评论