![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unix环境高级编程
文章平均质量分 67
放晴的时候
这个作者很懒,什么都没留下…
展开
-
如何把自己的驱动编译进内核或模块
linux内核中Kconfig文档的作用2.6内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中转载 2013-12-18 17:59:01 · 443 阅读 · 0 评论 -
linux 下 进程和线程的区别
1、进程与线程进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥转载 2014-03-30 22:57:06 · 340 阅读 · 0 评论 -
Linux内核编译命令
make tags生成tags文件,供浏览代码使用。make cscope生成cscope索引文件,也是为了方便浏览源代码。make oldconfig在旧的.config基础上生成新的.config,非常有用。make silentoldconfig同上,但比较安静。;)make defconfig生成包含全部默认选项的.config文件。make all转载 2014-03-31 15:05:04 · 539 阅读 · 0 评论 -
Linux进程和线程查看以及管理
1.top 命令详解&进程管理top命令查看系统的资源状况load average表示在过去的一段时间内有多少个进程企图独占CPUzombie 进程 :不是异常情况。一个进程从建立到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有疑问有机会遇见,处理大批量僵尸基本有效的办法是重起。kill是转载 2014-03-31 15:13:34 · 490 阅读 · 0 评论 -
Linux调试技术
内容:1.熟悉一些常用的调试技巧 2.熟悉gdb调试器的使用 3.熟悉断言的使用, 4.熟悉内存调试1.常用调试技巧(coding完成之后的debg过程) 1.1 常见错误:a.功能错误(需求分析错误);b.设计错误(程序的架构,设计的数据结构,功能实现方式错误);c.code错误(编码错误,如“==”写成“=”); 1.2 Debug一般分为如下5个步骤:原创 2014-04-01 16:00:56 · 393 阅读 · 0 评论 -
信号量sem_init
信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为: extern int sem_init __P((sem_t *__sem, int __pshared, unsigned int __value)); sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共享;原创 2014-05-05 14:58:11 · 1194 阅读 · 0 评论 -
IPC(shm+sem)
共享内存是两个或多个进程共享同一块内存区域,并通过该内存区域实现数据交换的进程间通信。虽然共享内存是进程间通信的最快速的机制,但是进程间的同步问题靠自身难以解决,于是就需要信号量机制,信号量能很好的解决互斥资源的同步问题。这些牵涉到操作系统里的知识,要好好研究一番同步互斥问题才能继续。 共享内存的工作模式一般是:1. int shmget(key_t key, int size原创 2014-05-11 21:48:42 · 928 阅读 · 0 评论 -
孤儿进程和僵尸进程
一、定义:什么是孤儿进程和僵尸进程僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程将会导致资源浪费,而孤儿则不会。子进程持续10秒钟的僵尸状转载 2014-05-21 19:23:31 · 365 阅读 · 0 评论 -
Socket的几种
socket模型:1、阻塞模型 一个单进程accept阻塞,接收到客户端请求后,read消息,处理write返回,然后循环继续accept。 这种模型最最简单,不实际,没什么实际用途,对于新手教学还行。2、多进程(线程)模型 主进程循环accept阻塞,接收到客户端请求后,fork子进程处理,子进程read阻塞,接收客户端消息并响应。 这种模型是我使用到原创 2014-05-22 17:46:48 · 755 阅读 · 0 评论 -
多进程与多线程的退出状态以及深度比较
LINUX多线程和多进程的应用场景,深度比较,退出状态比较原创 2014-04-02 17:50:13 · 822 阅读 · 0 评论 -
gdb调试
转载 http://blog.csdn.net/forrest2009/article/details/6413785top命令: 查看当前系统中进程使用资源的状况, 类似于windows的任务管理器一:列文件清单1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给转载 2014-03-30 22:58:48 · 294 阅读 · 0 评论 -
Linux下Socket编程
什么是Socket Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的 Socket数据传原创 2014-03-19 17:56:47 · 587 阅读 · 0 评论 -
copy_to_user、copy_from_user 分析
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2013-12-06 16:18:09 · 504 阅读 · 0 评论 -
虚拟地址、逻辑地址、线性地址、物理地址区别
虚拟地址、逻辑地址、线性地址、物理地址区别 虚拟地址:指的是由程序产生的由段选择符和段内偏移地址两个部分组成的地址。为什么叫它是虚拟的地址呢?因为这两部分组成的地址并没有直接访问物理内存,而是要通过分段地址的变换机构处理或映射后才会对应到相应的物理内存地址。 逻辑地址:指由程序产生的与段相关的偏移地址部分。不过有些资料是直接把逻辑地址当成虚拟地址,两原创 2013-11-12 11:28:58 · 1172 阅读 · 0 评论 -
Linux下的多线程编程(转载)
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用转载 2013-10-15 19:52:08 · 438 阅读 · 0 评论 -
造成segment fault,产生core dump的可能原因
本文出自:http://www.cnblogs.com/justacoder/archive/2010/04/14/segmentation_fault.html 感谢分享!1.内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprin转载 2014-02-18 16:25:38 · 475 阅读 · 0 评论 -
pthread_create函数详解
pthread_create是UNIX环境创建线程函数头文件 #include函数声明 int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);返回值 若成功则返原创 2014-01-15 16:09:03 · 1128 阅读 · 0 评论 -
如何在开机时,shell脚本自动获取ip
#!/bin/sh# Shell script scripts to read ip address# This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if you don't# want to do原创 2013-11-26 18:41:51 · 765 阅读 · 0 评论 -
unix环境高级编程例程里 apue.h找不到的问题
一开始看到这本书,刚翻了几页,就觉得对味。按照书中的代码做练习时,编译代码文件提示fatal error: apue.h: No such file or directory。翻看书的附录B,可以看到apue.h的资料,原来作者是为了减少书中示例代码的长度,将很多包含头文件的代码封装到了apue.h这个文件。下载源码从unix高级编程书籍官网下载书籍的上的所有源码。wget http:原创 2014-01-13 17:27:19 · 763 阅读 · 0 评论 -
Linux/Unix下pid文件作用浅析
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件。而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。那么这些pid文件有什么作用呢?它的内容又是什么呢?(1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。用cat命令可以看到。(2) pid文件的作用:防止进程启动多个副本。只有获得pid文件(固转载 2013-11-19 17:04:25 · 627 阅读 · 0 评论 -
Linux下的多进程编程初步(转载)
最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十年代就被提出,但直到八十年代中期,Unix系统中才引入多线程机制,如今,由于自身的许多优点,多线程编程已经得到了广泛的应用。本文我们将介绍在Linux下编写多进程和多线程转载 2013-10-15 18:54:22 · 458 阅读 · 0 评论 -
Linux中的常用多线程同步方式
转载自:http://www.embeddedlinux.org.cn/html/xianchengjincheng/201204/07-2029.html 感谢alex分享嵌入式linux中文站给大家介绍三种Linux中的常用多线程同步方式:互斥量,条件变量,信号量。1 互斥锁 互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写原创 2014-04-02 17:51:43 · 418 阅读 · 0 评论