Linux
文章平均质量分 70
dangelrose
爱自己的专业,爱运动,爱音乐,爱交友,爱生活。
展开
-
Linux内核源码包的安装及编译zz
http://my.donews.com/ecco2005/2006/11/24/eqbeyynfajhhygwgecappuwkaiftlrnpiouh/Q:安装某些需要内核源码的软件时,为什么我已经将内核源码装在了/usr/src/linux下,仍然提示找不到内核源码?A:因为这些软件configure会通过检测/usr/src/linux/include/linux/version....原创 2009-12-15 20:58:31 · 787 阅读 · 0 评论 -
Linux获取当前时间
Linux获取当前时间最近在查关于Linux下时间编程的问题:1. Linux下与时间有关的结构体struct timeval{ int tv_sec; int tv_usec; }; 其中tv_sec是由凌晨开始算起的秒数,tv_usec则是微秒(10E-6 second)。 struct timezone...原创 2009-11-29 21:16:03 · 168 阅读 · 0 评论 -
pthread库学习(2): 线程的同步,使用信号量
先看下面这段程序,主线程创建了三个线程,每个线程中均有一个打印语句。#include <stdio.h>#include <pthread.h>#include <semaphore.h> void *thread_a(void *in){printf("I am thread_a\n");pthread_...原创 2009-11-29 20:55:11 · 237 阅读 · 0 评论 -
信号量的基本思想
信号量是1965荷兰Dijkstra为了解决并发进程问题而提出的一个重要操作系统的思想其基本思想: 两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某个位置停止,直到它接收到一个特定的信号。任何复杂的合作需求都可以通过适当的信号结构得到满足。为了发信号,需要使用一个称为信号量的特殊变量。为通过信号量s发送信号,进程可执行原语semSignal(s...原创 2009-11-29 20:17:34 · 843 阅读 · 0 评论 -
多进程通信方式一:管道(PIPE)
进程通信(IPC)的几种方式及比较撰文:黄显国080416 难得闲暇,抽空学习了一下进程通信的知识,现将这几天的所学做一下总结,以备遗忘时参考。 进程通信的方式:Linux系统继承了三种系统的进程通信模式:1、 基于system V IPC2、 基于UNIX IPC3、 基于POSIX IPC...原创 2009-11-27 18:29:01 · 271 阅读 · 0 评论 -
进程的管道通信
实验四 进程的管道通信实验目的1、了解什么是管道2、熟悉UNIX/LINUX支持的管道通信方式实验内容编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message!父进程从管道中读出二个来...原创 2009-11-27 18:12:40 · 513 阅读 · 2 评论 -
Linux下线程的挂起和恢复
POSIX的Linux操作系统没有提供线程挂起和恢复的例程,在网上找了找,看到一个老外写的程序,感觉想法不错,放在这里大家分享一下。理论上应该可以实现,不过我没有试,给大家提供一个参考。 (在读取缓存里的数据时,当缓存中没有数据最好把线程挂起)void CPrcThread <Worker>::suspend(){ ifdef WIN32 //do wind...原创 2009-11-27 15:42:24 · 458 阅读 · 0 评论 -
Linux 编程之生成静态连接库
静态库及动态库的建立 UNIX系统及各种软件包为开发人员提供了大量的库文件。但一般情况下这些库文件还不能足以满足用户的所有需求。开发人员大多会根据他们自己的开发、研究要求编写出许多函数。对于这些函数,如果都用在命令行中指定源文件的方法同调用它们的程序链接起来,虽然也是可以的,但也有一些缺点:..... 下面来看看如何生成静态库。 我们知道静态库也称档案库,在此档案文件...原创 2009-11-27 15:41:42 · 75 阅读 · 0 评论 -
LInux高级编程 - 线程(Threads)
LInux高级编程 - 线程(Threads)ALP Chapter 4 线程(Threads)线程可以简单理解成为进程的下级。一个系统可以有多个进程,一个进程内部可以有多个线程。 回想上一章讲过的新进程的创建。先是fork,相当于拷贝了一个新的进程,然后调用exec,我们便有了两个毫不相关的进程。线程不一样,当创建一个新的线程时,它和原来的线...原创 2009-11-27 15:40:41 · 181 阅读 · 0 评论 -
Linux下c开发 之 线程通信
1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时 clone了父进程的资源,因...原创 2009-11-27 15:39:39 · 99 阅读 · 0 评论 -
Linux信号量semaphore编程实例
本例示范Linux信号量的基本用法。该范例使用了两个线程分别对一个公用队列进行入队和出队操作,并用信号量进行控制,当队列空时出队操作可以被阻塞,当队列满时入队操作可以被阻塞。主要用到的信号量函数有:sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。sem_wait:一直阻塞等待直到信号量>0。sem_timedwait:...原创 2009-11-29 21:20:33 · 178 阅读 · 0 评论 -
信号量和自旋锁
内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原子操作,到后来的信号量,从大内核锁到今天的自旋锁。这些同步机制的发展伴随Linux从单处理器到对称多处理器的过度;伴随...原创 2009-11-29 21:56:32 · 173 阅读 · 0 评论 -
Linux内核Makefile文件(二)
=== 6 体系Makefile文件在开始进入各个目录编译之前,顶层Makefile文件设置编译环境和做些准备工作。顶层Makefile文件包含通用部分,arch/$(ARCH) /Makefile包含该体系架构所需的设置。因此arch/$(ARCH)/Makefile会设置一些变量和少量的目标。当编译时将按照以下大概步骤执行:1) 配置内核 => 产生 .config文件...原创 2009-12-15 19:34:43 · 236 阅读 · 0 评论 -
Linux内核Makefile文件(一)
本文是/Documentation/kbuild/makefiles.txt的中文译稿Linux内核Makefiles本篇文章描述了Linux内核Makefiles。=== 目录 === 1 概述 === 2 角色分工 === 3 内核编译文件 --- 3.1 目标定义 --- 3.2 内嵌对象 - obj-y --...原创 2009-12-15 19:34:08 · 283 阅读 · 0 评论 -
Linux加载模块命令
安装模块insmod *.ko卸载模块rmmod *.ko查看已经安装的模块lsmod cat /proc/modules查看模块输出tail /var/log/messages//1.编译工具make实际上,make 工具通过一个称为 Makefile 的文件来完成并自动维护编译工作。Makefile 需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源...原创 2009-12-15 19:28:24 · 804 阅读 · 0 评论 -
linux内核模块编程
主题: linux内核模块的程序结构--模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)一个linux内核模块主要由以下几个部分组成。1、模块加载函数"用module_init()来指定"(必须) 当通过insmod和modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初...原创 2009-12-15 19:25:23 · 166 阅读 · 0 评论 -
编译linux内核~
小菜鸟第一次编译linux内核。截图太多 。。不方便上传 = = 没图 抱歉。。有空就把所有截图发上来 ><解压内核包。解压完成。为了后面的操作方便,不再产生权限问题, 权限设置。设置linux-2.6.26 的owner为gstarwd 设置linux-2.6.26的读写权限。 查看本机当前内核版本。我的机子上显示的是2.6.28-1...2009-12-05 22:04:37 · 92 阅读 · 0 评论 -
grub2 基础教程
grub2基础教程-修订版 smallapple目录 一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复...原创 2009-12-05 18:01:53 · 412 阅读 · 0 评论 -
Ubuntu9.10版本没有了menu.lst文件!
囧~现在都在grub下面配置了。不过麦斯之前的menu.lst只是grub的link?2009-12-05 18:00:15 · 168 阅读 · 0 评论 -
关于信号量与线程互斥锁的区别与实现
之前一直没有怎么关注过这个问题,前些日子在面试一家公司的时候,面试官提到了pthread_cond_wait/pthread_cond_signal的实现,当时答的不是很好,回来就查了nptl的代码。前天,水木上又有人问到了信号量和互斥锁的问题,我想还是对它们的区别与实现总结一下。首先了解一些信号量和线程互斥锁的语义上的区别:>>>>>>...原创 2009-11-30 14:37:04 · 96 阅读 · 0 评论 -
Linux信号量线程控制
线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。PV原语是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)具有对公...原创 2009-11-30 14:31:25 · 164 阅读 · 0 评论 -
exec系列系统调用
exec系列中的系统调用都完成相同的功能(只是参数不同而已),它们把一个新程序装入调用进程的内存空间,来改变调用进程的执行代码,从而形成新进程。如果exec调用成功,调用进程将被覆盖,然后从新程序的入口开始执行,这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。这就是说,exec没有建立一个与调用进程并发的新进程,而是用新进程取代了原来的进程。所以,在exec调用成功后,没有任何数据返回...原创 2009-11-27 15:33:42 · 573 阅读 · 0 评论 -
Linux系统调用--进程管理(1)
Linux系统调用--进程管理(1)本文介绍了Linux下的进程概念,并着重讲解了与Linux进程管理相关的4个重要系统调用getpid,fork,exit和_exit,辅助一些例程说明了它们的特点和使用方法。 关于进程的一些必要知识 先看一下进程在大学课本里的标准定义:“进程是可并发执行的程序在一个数据集合上的运行过程。”这个定义非常严谨,而且难懂...原创 2009-11-27 15:13:43 · 280 阅读 · 0 评论 -
Linux的基本指令(一)
1.exit:这个指令是退出系统,但不是关机,linux中有很多作业,当你等入后相当于一个作业,当你等出时,作业停止,但其它作业还在进行,只有关机才行。2.date:显示当前日期 格式化日期:date +%y/%m/%d3.cal: 显示日历 格式化日历:cal [month] [year]4.bc: 内置计算器5.man: 求助了!...原创 2009-11-26 23:27:02 · 99 阅读 · 0 评论 -
简述Linux 文件系统的目录结构
来自:LinuxSir.Org摘要: Linux文件系统是呈树形结构,了解Linux文件系统的目录结构,对于我们驾驭Linux还是有必要的。本文对Linux下比较重要的目录加以解说,以答初学者所说的“杂乱无章”目录结构,给一个简要的说明。 目录1、什么是文件系统; 2、文件系统的组织结构简说;3、文件系统的组织结构分析; 4、本文未...2009-11-26 23:26:13 · 299 阅读 · 0 评论 -
Linux环境进程间通信(一)
在本系列序中作者概述了 linux 进程间通信的几种主要手段。其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于...2009-11-26 23:01:50 · 65 阅读 · 0 评论 -
给 Fedora 10 添加上交大源
即使安装了 yum-fastmirror 插件,Fedora 10 的更新速度还是不理想吗?那么请添加国内上海交通大学 Fedora 软件仓库吧!尤其适合教育网用户。 用 gedit 新建一个文件,并命名为 “sjtu.repo” (不包括引号),文件内容如下: [Fedora-ftp.sjtu.edu.cn] name=Fedora 10 - i386 b原创 2009-07-10 15:12:00 · 244 阅读 · 0 评论 -
Fedora 10的源
Fedora 10 的 RPM Fusion 源 RPM Fusion 是Fedora 10 到其中一个很让人期待到特性,现在 Fedora 10 的软件仓库可以使用了! RPM Fusion 由之前的 Dribble,Freshrpms,和 Livna 合并而来并成为一个超级软件仓库,专门为Fedora,CentOS以及RHEL提供官方不能提供的软件。Fe转载 2009-07-10 13:11:00 · 345 阅读 · 0 评论 -
UNIX/Linux 的 10 个良好习惯
UNIX/Linux 的 10 个良好习惯 建立层级目录:使用 mkdir 的 -p 选项,如 mkdir -p tmp/a/b/c。解包到指定的目录:使用 tar 的 -C 选项,如 tar xvf newarc.tar.gz -C tmp/a/b/c。联合命令:使用 ;、&&、|| 等控制运算原创 2009-07-09 08:11:00 · 137 阅读 · 0 评论 -
Fedora 10 教育网源配置
$ sudo cp -Rf /etc/yum.repo.d /etc/yum.repo.d_back$ sudo rm -fr /etc/yum.repo.d/*$ sudo gedit /etc/yum.repo.d/sources.repo内容为如下: [updates-beike]name=Fedora updatesbaseurl=ftp://2原创 2009-07-10 15:14:00 · 539 阅读 · 0 评论 -
关于Linux Grep命令使用的详细介绍
1. grep简介 grep (global search regular expression(RE)and print out theline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小原创 2009-07-09 22:36:00 · 1823 阅读 · 0 评论 -
自己动手写操作系统
自己动手写操作系统自由软件社区是一个充满自由和梦想的地方,在10余年的时间里它创造了一个又一个奇迹。然而,这些奇迹的创造者不只是Stallman,也不只是Linus Torvalds,而是活跃在世界各地的不计其数的开发人员。 在使用各种功能强大的自由软件时,我总会对其开发者充满崇敬之情,期盼有朝一日自己也能成为他们中的一员。很多对自由社区充满向往转载 2009-07-09 14:41:00 · 179 阅读 · 0 评论 -
Linux学习笔记分享(入门绝佳)
linux目录架构/ 根目录/bin 常用的命令 binary file 的目錄/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk/dev ...原创 2009-11-26 23:28:06 · 74 阅读 · 0 评论 -
(专题系列)linux下查看文件内容的几种命令
linux下查看文件内容的几种命令如下:cat:由第一行开始显示文件所有内容;tac:从最后一行开始显示文件的所有内容,注意 tac 与cat 写法正好相反;cat [-n] 文件名-n 显示时,连行号一起显示到屏幕 tac 文件名more:一页一页的显示文件内容,只能向后翻页;less:也是一页一页显示文件内容,但...原创 2009-11-26 23:28:38 · 133 阅读 · 0 评论 -
有关fork的对话
第一贴:cu上关于fork()函数的精辟分析 声明:在别人的博客上看到这篇文章,真的很精辟,把问题一下子讲清楚了。所以,特意转贴在此,向各位高人致敬,也向原贴主致谢!本人不改变原贴的风貌。 查看原文 作者:ccf 发表于:2006-04-01 17:11:01#include ; #include ;...原创 2009-11-27 09:22:32 · 129 阅读 · 0 评论 -
多进程编程
什么是一个进程?进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程。但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务。多进程编程的主要内容包括进程控制和进程间通信,在了解这些之前,我们先要简单知道进程的结构。 2.1 Linux下进程的结构 Linux下一个进程在内...原创 2009-11-27 09:18:13 · 79 阅读 · 0 评论 -
exec族
execl(执行文件) 相关函数 fork,execle,execlp,execv,execve,execvp 表头文件 #include 定义函数 int execl(const char * path,const char * arg,....); 函数说...原创 2009-11-27 09:17:04 · 63 阅读 · 0 评论 -
Linux exec函数族(转载)
http://tuhao.blogbus.com/logs/22833492.html[code="c"]extern char **environ;int execl(const char* fullpath, const char* arg, ...);int execlp(const char* file, const char* arg, ...);int exec...原创 2009-11-27 09:09:08 · 77 阅读 · 0 评论 -
fork和exec
许多朋友对fork和exec调用概念比较模糊,下面我简单描述下这方面的知识。学过C语言的都知道,Unix下某个进程的内存分成三部分:代码段,堆栈段,数据段。代码段用来存放程序运行的代码,堆栈段用来存放子程序的局部变量,数据段用来存放全局变量。这在perl里也是一样的。perl的fork调用,跟C的一样,当发生fork调用时,实际上发生如下事:父进程将代码段,堆栈段,数据段完全复制一份给...原创 2009-11-27 09:05:54 · 81 阅读 · 0 评论 -
linux进程的管道通信学习笔记
#include <unistd.h>#include <sys/types.h>#include <errno.h>int main(){ int pipe_fd[2]; pid_t pid; char r_buf[100]; char w_buf[4]; char* p_wbuf; int r_num; int c...2009-11-27 00:35:00 · 95 阅读 · 0 评论