Welcome 微信登录

首页 / 操作系统 / Linux

Linux 进程间通信(system v 消息队列, 阻塞式)实例

Linux 进程间通信(system v 消息队列, 阻塞式)实例

消息队列(也叫做报文队列)能够克服早期unix通信机制的一些缺点。作为早期unix通信机制之一的信号能够传送的信息量有限,后来虽然POSIX 1003.1b在信号的实时性方面作了拓广,使得信号在传递信息量方面有了相当程度的改进,但是信号这种通信方式更像"即时"的通信方式,它要求接受信号的进程在某个时间范围内对信号做出反应,因此该信号最多在接受信号进程的生命周期内才有意义,信号所传递的信息是接近于随进程持续的概念(process-persistent);管道...
Linux 进程间通信(system v 信号灯+ posix共享内存)实例

Linux 进程间通信(system v 信号灯+ posix共享内存)实例

mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以向访问普通内存一样对文件进行访问,不必再调用read(),write()等操作。注:实际上,mmap()系统调用并不是完全为了用于共享内存而设计的。它本身提供了不同于一般对普通文件的访问方式,进程可以像读写内存一样对普通文件的操作。而Posix或系统V的共享内存IPC则纯粹用于共享目的,当然mmap()实现共享内存也是其主要应用之一。编译:gcc -...
Linux 进程间通信(system v 信号灯+system v 共享内存)实例

Linux 进程间通信(system v 信号灯+system v 共享内存)实例

系统V共享内存原理进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。系统V共享内存通过shmget获得或创建一个IPC共享内存区域,并返回相应的标识符。内核在保证shmget获得或创建一个共享内存区,初始化该共享内存区相应的shmid_kernel结构注同时,还将在特殊文件系统shm中,创建并打开一个同名文件,并在内存中建立起该文件的相应dentry及inode结构,新打开的...
Ubuntu 11.04在有一键GHOST的Windows XP系统上的安装

Ubuntu 11.04在有一键GHOST的Windows XP系统上的安装

为了安装Ubuntu需要先为其准备约20G左右的硬盘空间,同时为了以防安装失误造成数据损失,应该先将自己电脑上的重要文件用移动盘备份。为了防止安装过程错误修改了MBR主引导记录,可以先使用DOS工具箱(一键GHOST中就有)的“备份MBR”将MBR备份一下。1.下载ubuntu 11.04的安装镜像,尽量下载DVD的,下载之后放在XP系统根目录下。下载地址:amd64:http://mirror.mcs.anl.gov/pub/ubuntu-iso/DVD...
虚拟机上的RedHat安装GCC

虚拟机上的RedHat安装GCC

在Red Hat上安装gcc破费周折,在网上查阅了数种方法,皆无果而终。索性自食其力,最后终于安装上去了。遂撰文分享之。背景介绍:从网上下载Red Hat Enterprise Linux 5的光盘镜像,镜像文件放在D盘,然后直接从硬盘安装Red Hat。安装完毕后,再安装gcc.其实,在镜像文件里是有gcc的rpm包,下面就开始讲解如何从该镜像文件中获取gcc的相关文件并安装。首先,怎样读取镜像文件?在VMware的菜单栏VM中,选择Removable ...
UNIX网络编程之环境配置

UNIX网络编程之环境配置

开始学习《Unix网络编程》,输入第一个程序后,遇到各种错误,先将解决方案记录如下。遇到的第一个错误是:没有找到头文件“unp.h”,该头文件是作者自己写的,并不包含在/usr/include中,这时需要到网上下载unpv13e.tar.gz到某一目录。具体操作:mkdir /home/yourname/download %创建存放压缩文件的目录tar -xzvf unpv13e.tar.gz %解压ls -al %查看该目录下的文件cd unpv13e ...
安装 LibreOffice 3.4.3 (官方PPA 源)

安装 LibreOffice 3.4.3 (官方PPA 源)

LibreOffice是OpenOffice.org 办公套件衍生版, 同样免费开源,但相比OpenOffice增加了很多特色功能。LibreOffice是最旺盛的开源项目之一,官方PPA比最新稳定版本发布的时间慢。2011年1月25日,LibreOffice 3.3 正式版发布,取代OpenOffice成为Ubuntu 11.04的默认办公套件。LibreOffice的官方PPA现已发布,带来期待已久的3.4.x版本(3.4.3)。如何安装 LibreO...
如何在Ubuntu 11.10下安装Java

如何在Ubuntu 11.10下安装Java

升级到Ubuntu 11.10之后,由于库里没有sun-java6-jdk,需要自行安装。因此,到Oracle网站下载了Java 6u27(为什么不下java7呢?因为目前支持的软件不多,另外如果真要的话,也可以很方便的切换到Java7),然后就可以开始手动安装了。首先创建Java的目录,然后将下载下来的文件解压到该目录中:$ sudocpjdk-6u27-linux-i586.bin/usr/lib/jvm$ cd/usr/lib/jvm$ sudo./...
升级到Ubuntu 11.10遇到的问题

升级到Ubuntu 11.10遇到的问题

眼看着就要到Ubuntu 11.10发布的日子了,趁着十一有时间,也趁着现在还没到下载高峰,急着尝了把鲜,把我的笔电从11.04升到了11.10,升级很顺利,比起以前要顺畅的多。就是在升级之后发现存在两个问题:无法上网和输入法切换,花了半个小时才解决,真是郁闷,留个痕迹给同样需要升级的Ubuntu兄弟们提个醒:升级完成后发现网络管理器不能管理有线网络了,经过一阵折腾,结果是网络管理器的配置文件/etc/NetworkManager/NetworkManag...
从头开始为BeagleBoard编译Android系统

从头开始为BeagleBoard编译Android系统

折腾了几天,终于将Android系统编译好,成功运行在BeagleBoard上。为了让大家可以更快上手,将整个编译过程详细记录下来,供大家参考,其中有几个容易出问题的地方列出了解决方法,可以少绕弯子。最开始为BeagleBoard编译Android系统时,准备按标准的做法从android.git.kernel.org下载repo,然后通过repo从kernel.org下载Android源码。但是后来发现kernel.org被黑了,下载不了源码,只能想其他办...
利用Grub安装Linux详解

利用Grub安装Linux详解

整了一台二手电脑,准备在上面装个Linux跑一下,由于光驱是坏的所以只能通过硬盘安装,原本以为很简单——其实就是很简单,但是却走了很多弯路,现将纠结的安装过程写下来和大家分享。一.Windows下的WinGrub由于以前装过Fedora 12和Windows的双系统,所以准备整个Fedora 12跑一下。1.下载一个Fedora12的镜像文件,在镜像文件里面找到isolinux文件夹,将里面的vmlinuz和initrd.img两个文件拷出来放在一个文件夹...
Linux随机数的产生

Linux随机数的产生

Linux内核采用熵描述数据的随机性,熵越大表示系统越混乱。计算机本身是可预测的系统,因此用计算机算法不可能产生真正的随机数。但由于机器中充满了噪声,而这些噪声又很难预测,没有规律可循,因此这些噪声可以作为随机数的产生源。Linux内核就是利用噪声来产生随机数的,它维持3个熵池(一级、二级和三级),而这些噪声课分为4类。如下:1)I/O中断。内核调用add_interrupt_randomness()函数将设备两次中断的时间间隔作为噪声源将随机数据加入熵池...
Linux设备驱动结构梳理

Linux设备驱动结构梳理

最近为了学习Android底层设备驱动而把Linux底层设备驱动复习整理了一下。Linux设备驱动程序是一个内核模块,可以随时添加到内核和随时从内核中删除。很自然,在模块被他人使用时无法删除,因而存在一个模块被使用的计数器。对比vxWorks/Linux/QNX/OSE等等系统的设备驱动程序,万变不离其宗,任何系统的驱动层界面应该有如下根本的东西:1、OS系统必定有某种设备链表,并有某种挂入函数能够将一个新设备及其驱动程序挂入这个链表。2、从OS往下看,设...
在Linux上建立文件夹指向在Win共享的文件夹

在Linux上建立文件夹指向在Win共享的文件夹

我们可以在Win的系统上设置一个快捷方式指向一个共享文件夹,或者右击我的电脑来映射网络磁盘指向共享文件夹Linux上如何做到这一点呢?用MOUNT命令来完成比如一台文件服务器8.8.8.8上共享目录Test110文件夹(路径:\8.8.8.8Test110),需要用户user110加密码1234才能访问,那么我们映射到Linux根目录下的mnt文件夹下的110文件夹(路径:/mnt/1),就这样:mount -t cifs -o username=user...
在Ubuntu下用MPICH和Intel Fortran 进行并行计算

在Ubuntu下用MPICH和Intel Fortran 进行并行计算

以下是最近Y某在用mpi进行某程序并行运算时所做的设置的一些总结,由于intel fortran(在intel cpu上)的效率,所以想要配置intel fortran 实现并行,放在这里记录备用吧……至于什么是mpi,自己看有关介绍。主节点master node 就是控制其他节点进行运算的计算机,我们这里起名为node0。从节点slave node 嗯,就是进行计算的节点,起名为node1 ~ noden1. 设置网络文件系统NFS(Network Fi...
在64位Ubuntu下安装Intel Fortran 11

在64位Ubuntu下安装Intel Fortran 11

此为64位Ubuntu下安装intel fortran 11 for linux的一些问题的解决步骤,写这个的原因是有几个师兄师弟在64位的系统下装intel fortran都没有安装成功(多半应该是依赖关系没有解决),所以尝试写一个教程,在这里记录备用。我自己是只在Ubuntu下装过,用apt类型的包管理器的系统应该都一样了,不过就算包管理器换成了yum应该也没什么区别,把apt-get install 换成yum install也差不多了吧……以下是一...
<< 471 472 473 474 475 476 477 478 479 480 >>