![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux编程
文章平均质量分 83
chuanwang66
软件工程专业
展开
-
Linux下开发环境(gcc/g++/makefile/gdb)
先决条件 gcc 这是c语言的编译器 从前,我写了一个Linux多线程到程序Main.c,使用gcc -g Main.c -lpthread -o Main编译,就出现来未安装gcc的提示,我按照提示输入来几个y,然后就把gcc装好了。但是,其实,在Red Hat Enterprise Linux 6上,默认已经安装好gcc,可以编译C语言程序了。 gcc-c+...原创 2012-03-14 10:39:00 · 251 阅读 · 0 评论 -
Linux系统调用及其实验(一)——内核态、用户态
简单来讲一个进程由于执行系统调用而开始执行内核代码,我们称该进程处于内核态中. 一个进程执行应用程序自身代码则称该进程处于用户态。 intel x86 架构的 CPU 分为好几个运行级别,从 0--3 , 0 为最高级别, 3 为最低级别 针对不同的级别,有很多的限制,比如说传统的 in ,out 指令,就是端口的输入输出指令,在 0 级下是可以用的,但在 3 级下就不能用,你用就...原创 2014-02-07 12:37:59 · 319 阅读 · 0 评论 -
Linux进程管理(一)
和文件一样,进程是Unix系统最基本的抽象之一。一、进程ID 每一个进程都有一个唯一的标示,进程ID。虽然进程ID是唯一的,但进程终止后,id会被其他进程重用。许多UNIX都提供了延迟重用的功能,以防止新进程被误认为是旧进程。 有一些特殊的进程:id为0的进程--idle进程或者叫做swapper,通常是一个调度进程。id为1的进程--内核booti...原创 2014-01-12 13:37:32 · 172 阅读 · 0 评论 -
Linux进程管理(二)——fork()和写时复制【转】
1. Linux的fork()使用写时复制(略) 传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据或许可以共享(This approach is significantly naïve and inefficient in that it copies much data that might otherwise ...原创 2013-08-06 17:53:36 · 149 阅读 · 0 评论 -
Linux的*.h和*.cpp在哪里
初学者在Linux下写C/C++程序,往往不清楚#include一个头文件是从哪里包含进来的,这些头文件的实现又是在哪里。另外,其中那些部分是C的运行时库提供的。因此,本文解决以下问题:1. Linux C/C++程序头文件在哪里2. Linux C/C++源程序在哪里3. glibc4. 动态链接库和静态链接库 ******************************...原创 2013-12-30 17:12:09 · 768 阅读 · 0 评论 -
Linux进程间通信(一)——Sam用图概述
Sam通过本文图示概括Linux IPC(Linux进程间通信方式): Sam知道水人们最喜欢这种图拿来说事,而不是深入研究代码来理解图中每种Linux IPC方式的深入含义。没关系!但是如果你要转载请你注明这个图是我Sam画的,并留言评论下。 这张图概括了Linux IPC从不同版本的Unix IPC发展而来的历史(其中IEEE只是非常搞笑地统一了以下接口,并没有引入新的方式...原创 2013-12-30 14:35:22 · 253 阅读 · 0 评论 -
Linux进程管理(三)——fork() vs exec || fork() vs. vfork()
一、关于fork()和exec系列区别的文字,很浅显易懂:1、fork() 一个程序一调用fork函数,系统就为一个新的进程准备了前述三个段,首先,系统让新的进程与旧的进程使用同一个代码段,因为它们的程序还是相同的,对于数据段和堆栈段,系统则复制一份给新的进程,这样,父进程的所有数据都可以留给子进程,但是,子进程一旦开始运行,虽然它继承了父进程的一切数据,但实际上数据却已经分开...原创 2013-12-30 14:02:05 · 192 阅读 · 0 评论 -
Linux进程间通信(三)——管道(非命名管道)【转】
第13章 Linux进程间通信——管道 转自http://www.cnblogs.com/dyllove98/p/3249340.html 在第11章,我们了解了使用信号在两个进程之间发送消息的一个简单方法。我们创建了可以用来引起响应的通知事件,但是所传递的信息限制于一个信号数量。 在这一章,我们将会了解管道,这会允许在进程之间交换更为有用的数据。在本章的结尾...原创 2013-12-30 12:55:51 · 208 阅读 · 0 评论 -
Linux进程间通信(二)——信号signal【转】
参考文档:http://blog.csdn.net/mylxiaoyi/article/details/4258508一、线程 Linux进程可以协作,可以发送消息,也可以中断另一个进程。他们甚至可以在彼此之间共享内存段,但是在操作系统内部他们却是完全不同的实体。他们并不能共享变量。 在许多Unix系统与Linux系统还有另一类名为线程的进程。线程在某些...原创 2013-12-28 21:31:01 · 456 阅读 · 0 评论 -
Linux虚拟文件系统VFS
文件系统中各种概念的关系梳理:1. Linux为每个进程维护一个task_struct结构体来维护进程信息,task_struct可以被称为进程描述符(Process Descriptor)或者进程控制块(Process Control Block) 2. task_struct中有一个指针struct files_struct *files指向files_struct结构体,...原创 2013-07-06 10:16:22 · 312 阅读 · 0 评论 -
Linux系统调用及其实验(二)——内核态、用户态【转】
Linux系统调用转自http://www.tinylab.org/linux-system-calls/by Pingbo Wen of TinyLab.org2013/09/12系统调用是系统内核提供给用户态程序的一系列API,这样应用程序就可以通过系统调用来请求操作系统内核管理的资源[1]。本文尝试分析在Linux下是如何使用linux内核给我们提供的API,并分析其实现过程...原创 2014-02-07 14:13:13 · 247 阅读 · 0 评论