linux
文章平均质量分 79
zzyoucan
做技术切勿浮躁时刻对自己定位准确切记切记
展开
-
linux如何挂载优盘
方案一: Linux不像Windows一样,接上新硬件后可以自动识别,在Linux下无法自动识别新硬件的,需要手动去识别。USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询。 在使用U盘前,我们先要为外挂点新建一个子目录,一般外挂点的子目录都是建立在/mnt里面的,我们也建在那里,当然也可以建在/目录下,名字可以自己定,我们就取名为usb,终端下的命令如下:转载 2013-04-25 15:04:22 · 706 阅读 · 0 评论 -
关于socket的几个问题
主要说的是几个转换函数网络字节与本地字节的相互转化二进制ip与十进制ip的转换ip地址与主机名的转化1.socket类型socket:linux中的网络编程是用socket接口进行的,socket是一种特殊的I/O接口,也是一种文件描述符,socket是一种常用的进程间通信机制,通过他不仅可以实现本机上的进程 间的通信,还可以实现不同原创 2013-06-25 19:35:07 · 2979 阅读 · 0 评论 -
一个socket的基础例子
我不得不说socket编程对于我来说是很复杂的,以前总是说socket,但到现在来说还是没有把他弄懂,即使当时记得了但过了几天又忘记了,所以需要常常看才能牢记。socket编程的基础函数有socket(),bind(), listen(),accept(),send(),sendto(),recv(),recvfrom()根据客户端还是服务端不一样,针对udp,tcp又是不一样的,先对这几个函原创 2013-06-28 00:50:13 · 4464 阅读 · 0 评论 -
嵌入式基本概念
嵌入式:是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗要求严格的专用计算机系统,他通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器,外围设备,嵌入式操作系以及应用软件等组成,具有“嵌入性”,“专用性”,“计算机系统”三个基本要素。嵌入式的发展经过了四个发展阶段:1.应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过原创 2013-07-13 01:35:27 · 2912 阅读 · 0 评论 -
linux进程通信----FIFO(有名管道)
无名管道只能用在具有亲缘关系的进程之间,这样就大大限制了管道的使用。有名管道突破了这种限制,可以实现互不相关的进程实现彼此的通信,管道可以通过路径名指定,在系统是可见的,建立管道之后就可以想普通文件一样进行读写,FIFO严格的遵守先进先出的原则,读总是从开始读取数据,写数据写入末尾,不支持lseek()文件定位操作。有名管道的创建使用mkfifo()函数类似于open函数,可以指定路径和打开的原创 2013-07-03 09:49:52 · 3085 阅读 · 0 评论 -
进程间通信---标准流管道
与linux的文件操作中有基于标准I/O操作一样,管道操作也支持基于文件流的操作,这种基于文件流的管道主要用来创建一个连接到另一个进程的管道,这里“另一个进程”是可以执行一定操作的可执行文件,例如用户执行“ls -l”或者./pipe,由于这类操作很常见,所以将一系列创建过程合并到一个函数popen()中完成,这个函数会完成以下步骤:创建一个管道fork()一个子进程在父子进程中关闭不需要原创 2013-07-02 18:00:57 · 2031 阅读 · 0 评论 -
linux进程通信---无名管道
进程是程序一次执行过程,用户态进程之间是隔离的,就像不同城市的人们,他们之间的通信方式有很多种Linux通信方式主要从unix继承而来,而对unix发展做出巨大贡献的是AT&T和BSD,前者主要是对早期的unix进程间通信进行系统的改进和升级,形成了system V IPC,这种通信方式主要是单个计算机内,而后者则跳出了这个限制,形成了socket。而linux把这两者都继承下来了具体如下:原创 2013-07-02 16:43:10 · 2736 阅读 · 0 评论 -
linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)
信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户空间进程发生了哪些系统事件,我们可以任何时候给进程发送信号而无需知道进程的状态,如果进程当前并未处于执行态,则信号则会由内核保存起来,如果进程是阻塞状态,那么信号传递会被延迟,直到阻塞结束时才会传递给进程。看一下kill原创 2013-07-03 20:42:52 · 29305 阅读 · 1 评论 -
linux进程通信----信号的处理
在了解了信号的产生和捕获之后,接下来就是对信号的具体操作了,特定的信号是与一定的进程相联系的,一个进程可以选择忽略一些信号和处理一些信号,进程可以选择如何处理信号,所以信号是与特定的进程相联系的,因此首先就要建立进程与信号之间的对应关系,这就是信号的处理ps:信号的注册和信号处理之间的区别:前者信号是主动方,后者是进程是主动方,信号的注册是进程选择处理特定信号之后特定信号的主动行为。信号处原创 2013-07-04 18:15:25 · 1662 阅读 · 0 评论 -
linux进程通信---信号量
在多任务的操作系统中会运行多个进程,这些进程会有一些关联,如多个进程会为了完成一个任务会相互协作,这就是进程间的同步,有时为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是进程的互斥关系 进程间的同步与互斥的根源在于临界资源的问题,临界资源是同一时刻只允许有有限个(通常是一个)进程可以访问,修改的资源,同通常包括硬件资源(处理器,内存,存储器,以及一些外围设备)和软件资原创 2013-07-05 15:20:30 · 1194 阅读 · 0 评论 -
TCP/IP基础知识
osi七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层TCP/IP参考模型:应用层,传输层,网络层,网络接口层其对应关系如下:七层参考模型虽然规定的非常细致与完善,但在实际中得不到广泛的应用,原因就是他过于复杂,但他是以后许多协议的基础,而TCP/IP参考模型从一开始就遵循简单明确的设计思路,他将七层简化成四层,更有利于实现。TCP/IP各层的作用:网络接口原创 2013-06-25 12:31:04 · 805 阅读 · 0 评论 -
linux线程属性
pthread_create()函数的第二个参数(pthread_attr_t *attr)表示线程的属性,在以前的例子中将其值设为NULL,也就是采用默认属性,线程的多项属性都是可以修改的,这些属性包括绑定属性,分离属性,堆栈属性,堆栈大小,优先级。系统默认的是非绑定,非分离,缺省1M的堆栈以及父子进程优先级相同。(1)绑定属性linux中采用一对一的线程机制,也就是一个用户线程对应一个原创 2013-07-09 16:00:55 · 1294 阅读 · 0 评论 -
linux多线程----信号量
信号量:信号量是操作系统中所用到的PV原子操作,他广泛用于进程与线程的同步与互斥,信号量本质是一个非负的整数计数器,被用来控制对公共资源的访问,下面是pv操作的工作原理:PV原子操作是对整数计数器信号量sem的操作,一次p操作使sem减1,一次v操作使sem加1,进程或者线程根据信号量判断是否对公共资源具有访问权限,当信号量sem的值大于等于0时,则进程或线程具有公共资源的访问权,当信号量小于原创 2013-07-09 00:33:49 · 1017 阅读 · 0 评论 -
linux下oracle安装
http://www.iteye.com/topic/846536,看了好多发现这个不错http://www.xifenfei.com/1637.html1.安装JDKhttp://java.sun.com(1) 下载后的BIN文件可以直接执行# chmod 755 jdk-1.6.0_23-linux-i586.rpm.bin # ./ jdk-1.6.0_2转载 2013-04-30 23:34:28 · 683 阅读 · 0 评论 -
make版本管理器
之前感觉makefile很神奇,今天看书正好看到这方面,看过之后只是熟悉一下1.先看一下gcc的使用,gcc不会用,看懂makefile困难下面是gcc支持编译源文件的后缀和解释gcc编译流程分为四个步骤:预处理,编译,汇编,链接下面看下gcc是如何完成上面四个步骤的,下面是个hello.c程序#include int main(){ print原创 2013-06-11 15:10:24 · 879 阅读 · 0 评论 -
进程的基础知识
1.什么是进程遇到这样的问题我就头疼,感觉这样问题太笼统了,我回答不好。现在有几个有名关于进程的定义:(1)进程是独立的可调度的活动(2)进程是一个抽象实体,当它执行某个任务时,要分配和释放各种资源(3)进程是并行执行的单位总结------进程就是程序的动态执行过程,包括创建,调度,消亡过程,它是程序执行,资源分配的最小单位。在linux键入命令执行一个程序是就启动了一个进程原创 2013-06-15 19:09:38 · 870 阅读 · 0 评论 -
编写一个守护进程
守护进程-----也就是常说的Daemon进程,是linux后台的服务进程,是一个生存期较长的进程,独立于终端并且周期性的执行某种任务或等待处理某些任务。守护进程在系统引 导时载入时启动,在系统关闭时终止。linux下的许多系统服务都是守护进程完成的。守护进程还能完成许多系统任务,如作业规划进程crond,打印进程lqd(d就是原创 2013-06-16 14:36:55 · 11299 阅读 · 1 评论 -
linux进程通信---消息队列
消息队列:消息队列是一些消息的列表,用户可以从消息队列中读取和添加消息,消息队列具有FIFO的特性,但可以实现消息的随机查询,比FIFO有更大的优势,这些消息都是存在于内核中,由“队列ID”来标识消息队列的实现包括创建或打开消息队列,添加消息,读取消息,控制消息四种操作创建或打开消息:使用msgget(),这里创建的消息队列的数量受到系统消息队列数量的限制添加消息:使用msgsnd()原创 2013-07-07 00:31:20 · 953 阅读 · 0 评论 -
底层操作的几个I/O函数
linux中的文件主要分为四种:普通文件,目录文件,链接文件,设备文件。将目录和设备当成文件处理能够提高linux的效率,内核如何区分和引用特定的文件,就需要使用文件描述符文件描述符--------它是一个非负的整数,它是一个索引值,指向内核中进程打开文件的记录表,当打开一个文件或者创建一个新文件时,内核就向进程返回一个文件描述符,当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。原创 2013-06-19 21:47:17 · 2032 阅读 · 0 评论 -
文件锁
在文件已经共享的情况下,当多个用户共同使用时,如何对文件进行访问呢?linux采用的方法是给文件上锁,来避免共享的资源产生竞争的状态。锁分为建议锁和强制锁建议锁:要求每个上锁文件的进程都要检查是否有锁存在,并尊重已有的锁,一般情况下内核和系统都不使用建议性锁。强制锁:由内核执行的锁,当一个文件被上锁进行写入的时候,内核将阻止其他任何文件对其进行读写操作,采用强制性锁对性能影响很大,每次读写原创 2013-06-22 13:05:15 · 1484 阅读 · 0 评论 -
linux多线程----基本概念
线程----轻量级进程,由于线程具有高效性和可操作性,在大型程序开发中运用的非常广泛,进程是系统中程序执行和资源分配的基本单位,每个进程拥有自己的数据段,代码段,堆栈段,这就造成了进程进行切换时需要有比较复杂的上下文切换等动作,为了减少处理器的空转时间,支持多处理器以及减少上下文切换开销,由此就演化出了线程这一概念,他是进程内独立的一条运行路线,是处理器调度的最小单元,线程可以对进程的内存空间和资原创 2013-07-08 10:00:04 · 1946 阅读 · 0 评论 -
linux线程互斥与同步---互斥锁
由于线程是共享进程的资源和空间的,所以对这些资源进行操作时,必须考虑到线程间资源访问的同步与互斥问题,这里主要说的是POSIX中的两种线程同步机制,分别为互斥锁和信号量,这两种同步机制能够互相调用对方来实现,但互斥锁使用与同时可用的资源是唯一的情况,信号量更适用于同时可用的资源为多个的情况。互斥锁:是一种简单的加锁方法来控制对共享资源的原子操作,这个互斥锁只有两种状态:上锁,解锁,可以把互斥锁原创 2013-07-08 12:21:22 · 1093 阅读 · 0 评论 -
linux进程通信----共享内存
共享内存是一种最为高效的进程间通信方式,因为进程可以直接读写内存,不需要任何数据的复制,为了在多个进程间交换信息,内核专门留出了一块内存区,这块内存进程可以直接将其映射到进程的私有空间中,可以直接读写,所以大大提高了效率,由于多个进程共享一个内存区,所以需要依靠某种同步机制,例如信号量,互斥锁等。共享内存原理示意图:实现共享内存有三个步骤:创建共享内存,使用shmget(),也原创 2013-07-06 14:08:18 · 1048 阅读 · 0 评论