Main > Free Download Search >

Free ipc software for linux

ipc

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 47
gIpc 0.79

gIpc 0.79


gIpc is a tool to get all the IPC info. more>>
gIpc is a tool to get all the IPC info. Just like a GTK frontend for IPCS and IPCRM commands which are already there in existing Linux systems.

gIpc will collect the snapshot for the IPC info (i.e, Shared memory,semaphore and messageQ information).

You can also refresh the IPC info using “IPC Refresh” from the menu OR using “F5″ key.

If you want to remove a perticular IPC entity, just select the row and press “DELETE” you will be asked for the confirmation. If you click on “yes” then that IPC entity will be removed. (Ofcourse, you should be having appropriate permissions to do this !)
<<less
Download (0.080MB)
Added: 2005-08-03 License: GPL (GNU General Public License) Price:
1542 downloads
IPC::LDT 2.03

IPC::LDT 2.03


IPC::LDT is a Perl module that implements a length based IPC protocol. more>>
IPC::LDT is a Perl module that implements a length based IPC protocol.

Interprocess communication often uses line (or record) oriented protocols. FTP, for example, usually is such a protocol: a client sends a command (e.g. "LS") which is completed by a carriage return. This carriage return is included in the command which is sent to the server process (FTP deamon) which could implement its reading in a way like this:

while ($cmd= )
{
chomp($cmd);
performCommand($cmd);
}

Well, such record oriented, blocked protocols are very useful and simply to implement, but sometimes there is a need to transfer more complex data which has no trailing carriage return, or data which may include more carriage returns inside the message which should not cause the reciepient to think the message is already complete while it is really not. Even if you choose to replace carriage returns by some obscure delimiters, the same could happen again until you switch to a protocol which does not flag the end of a message by special strings.
On the other hand, if there is no final carriage return (or whatever flag string) within a message, the end of the message has to be marked another way to avoid blocking by endless waiting for more message parts. A simple way to provide this is to precede a message by a prefix which includes the length of the remaining (real) message. A reciepient reads this prefix, decodes the length information and continues reading until the announced number of bytes came in.

IPC::LDT provides a class to build objects which transparently perform such "length driven transfer". A user sends and receives messages by simple method calls, while the LDT objects perform the complete translation into and from LDT messages (with prefix) and all the necessary low level IO handling to transfer stream messages on non blocked handles.

IPC::LDT objects can be configured to transfer simle string messages as well as complex data structures. Additionally, they allow to delay the transfer of certain messages in a user defined way.

<<less
Download (0.013MB)
Added: 2007-06-18 License: Perl Artistic License Price:
860 downloads
IPC::Run 0.80

IPC::Run 0.80


IPC::Run is a Perl module for system() and background procs w/ piping, redirs, ptys (Unix, Win32). more>> <<less
Download (0.087MB)
Added: 2006-09-25 License: Perl Artistic License Price:
1127 downloads
IPC::PubSub 0.22

IPC::PubSub 0.22


IPC::PubSub is Perl module for Interprocess Publish/Subscribe channels. more>>
IPC::PubSub is Perl module for Interprocess Publish/Subscribe channels.

SYNOPSIS

# A new message bus with the DBM::Deep backend
# (Other possible backends include Memcached and PlainHash)
my $bus = IPC::PubSub->new(DBM_Deep => /tmp/pubsub.db);

# A channel is any arbitrary string
my $channel = #perl6;

# Register a new publisher (you can publish to multiple channels)
my $pub = $bus->new_publisher("#perl6", "#moose");

# Publish a message (may be a complex object) to those channels
$pub->msg("This is a message");

# Register a new subscriber (you can subscribe to multiple channels)
my $sub = $bus->new_subscriber("#moose");

# Publish an object to channels
$pub->msg("This is another message");

# Set all subsequent messages from this publisher to expire in 30 seconds
$pub->expiry(30);
$pub->msg("This message will go away in 30 seconds");

# Simple get: Returns the messages sent since the previous get,
# but only for the first channel.
my @msgs = $sub->get;

# Simple get, with an explicit channel key (must be among the ones
# it initially subscribed to)
my @moose_msgs = $sub->get("#moose");

# Complex get: Returns a hash reference from channels to array
# references of [timestamp, message].
my $hash_ref = $sub->get_all;

# Changing the list of channels we subscribe to
$sub->subscribe(some-other-channel);
$sub->unsubscribe(some-other-channel);

# Changing the list of channels we publish to
$pub->publish(some-other-channel);
$pub->unpublish(some-other-channel);

# Listing and checking if we are in a channel
my @sub_channels = $sub->channels;
my @pub_channels = $pub->channels;
print "Sub is in #moose" if $sub->channels->{#moose};
print "Pub is in #moose" if $pub->channels->{#moose};

# Raw cache manipulation APIs (not advised; use ->modify instead)
$bus->lock(channel);
$bus->unlock(channel);
my @timed_msgs = $bus->fetch(key1, key2, key3);
$bus->store(key, value, time, 30);

# Atomic updating of cache content; $_ is stored back on the
# end of the callback.
my $rv = $bus->modify(key => sub { delete $_->{foo} });

# Shorthand for $bus->modify(key => sub { $_ = val });
$bus->modify(key => val);

# Shorthand for $bus->modify(key => sub { $_ });
$bus->modify(key);

This module provides a simple API for publishing messages to channels and for subscribing to them.

When a message is published on a channel, all subscribers currently in that channel will get it on their next get or get_all call.

Currently, it offers three backends: DBM_Deep for on-disk storage, Memcached for possibly multi-host storage, and PlainHash for single-process storage.

Please see the tests in t/ for this distribution, as well as "SYNOPSIS" above, for some usage examples; detailed documentation is not yet available.

<<less
Download (0.019MB)
Added: 2007-02-14 License: MIT/X Consortium License Price:
983 downloads
IPC::DirQueue 0.07

IPC::DirQueue 0.07


IPC::DirQueue is a disk-based many-to-many task queue. more>>
IPC::DirQueue is a disk-based many-to-many task queue.

SYNOPSIS

my $dq = IPC::DirQueue->new({ dir => "/path/to/queue" });
$dq->enqueue_file("filename");

my $dq = IPC::DirQueue->new({ dir => "/path/to/queue" });
my $job = $dq->pickup_queued_job();
if (!$job) { print "no jobs leftn"; exit; }
# ...do something interesting with $job->get_data_path() ...
$job->finish();

This module implements a FIFO queueing infrastructure, using a directory as the communications and storage media. No daemon process is required to manage the queue; all communication takes place via the filesystem.

A common UNIX system design pattern is to use a tool like lpr as a task queueing system; for example, http://patrick.wagstrom.net/old/weblog/archives/000128.html describes the use of lpr as an MP3 jukebox.

However, lpr isnt as efficient as it could be. When used in this way, you have to restart each task processor for every new task. If you have a lot of startup overhead, this can be very inefficient. With IPC::DirQueue, a processing server can run persistently and cache data needed across multiple tasks efficiently; it will not be restarted unless you restart it.

Multiple enqueueing and dequeueing processes on multiple hosts (NFS-safe locking is used) can run simultaneously, and safely, on the same queue.

Since multiple dequeuers can run simultaneously, this provides a good way to process a variable level of incoming tasks using a pre-defined number of worker processes.

If you need more CPU power working on a queue, you can simply start another dequeuer to help out. If you need less, kill off a few dequeuers.

If you need to take down the server to perform some maintainance or upgrades, just kill the dequeuer processes, perform the work, and start up new ones. Since theres no socket or similar point of failure aside from the directory itself, the queue will just quietly fill with waiting jobs until the new dequeuer is ready.

Arbitrary name = value string-pair metadata can be transferred alongside data files. In fact, in some cases, you may find it easier to send unused and empty data files, and just use the metadata fields to transfer the details of what will be worked on.

<<less
Download (0.025MB)
Added: 2006-11-15 License: Perl Artistic License Price:
1074 downloads
IPC::SharedCache 1.3

IPC::SharedCache 1.3


IPC::SharedCache is a Perl module to manage a cache in SysV IPC shared memory. more>>
IPC::SharedCache is a Perl module to manage a cache in SysV IPC shared memory.

SYNOPSIS

use IPC::SharedCache;

# the cache is accessed using a tied hash.
tie %cache, IPC::SharedCache, ipc_key => AKEY,
load_callback => &load,
validate_callback => &validate;

# get an item from the cache
$config_file = $cache{/some/path/to/some.config};

This module provides a shared memory cache accessed as a tied hash.
Shared memory is an area of memory that is available to all processes. It is accessed by choosing a key, the ipc_key arguement to tie. Every process that accesses shared memory with the same key gets access to the same region of memory. In some ways it resembles a file system, but it is not hierarchical and it is resident in memory. This makes it harder to use than a filesystem but much faster. The data in shared memory persists until the machine is rebooted or it is explicitely deleted.

This module attempts to make shared memory easy to use for one specific application - a shared memory cache. For other uses of shared memory see the documentation to the excelent module I use, IPC::ShareLite (IPC::ShareLite).
A cache is a place where processes can store the results of their computations for use at a later time, possibly by other instances of the application. A good example of the use of a cache is a web server.

When a web server receieves a request for an html page it goes to the file system to read it. This is pretty slow, so the web server will probably save the file in memory and use the in memory copy the next time a request for that file comes in, as long as the file hasnt changed on disk.

This certainly speeds things up but web servers have to serve multiple clients at once, and that means multiple copies of the in-memory data. If the web server uses a shared memory cache, like the one this module provides, then all the servers can use the same cache and much less memory is consumed.

This module handles all shared memory interaction using the IPC::ShareLite module (version 0.06 and higher) and all data serialization using Storable. See IPC::ShareLite and Storable for details.
<<less
Download (0.019MB)
Added: 2006-06-12 License: Perl Artistic License Price:
1230 downloads
IPC::Run::Simple 1.3

IPC::Run::Simple 1.3


IPC::Run::Simple is a simple system() wrapper. more>>
IPC::Run::Simple is a simple system() wrapper.

SYNOPSIS

# Run a command and check whether it failed
use IPC::Run::Simple;
run("echo Hello, O Cruel World")
or die "Command failed";

# Describe the failure
use IPC::Run::Simple qw($ERR);
run("echo Hello, O Cruel World")
or die "Command failed: $ERR";

# Use the :all tag instead of explicitly requesting $ERR
use IPC::Run::Simple qw(:all);
run("echo Hello, O Cruel World")
or die "Command failed: $ERR";

# Die with error message if command does not return 0
use IPC::Run::Simple qw(:Fatal);
run("echo Hello, O Cruel World");

# Allow other exit values without dying
use IPC::Run::Simple qw(:Fatal);
run(command => [ "echo", "Hello, O Cruel World!" ],
allowed => [ 1, 2, 5 ]);

This module is intended to be a very simple, straightforward wrapper around the system() call to make it behave more like other builtins.

run() will return a true value if the command was executed and return a successful status code, and false otherwise. The reason for the failure will be stored in the $IPC::Run::Simple::ERR variable (which is just $ERR if you import either $ERR or :all). The description of the reason was pulled almost directly from the system() documentation.
Optionally, you can import the :Fatal tag, which will cause run() to die() with an appropriate message if the command fails for any reason.

If you wish to allow nonzero exit values but still want to trap unexpected errors, you may use an expanded call syntax. Call run() with a set of key=>value pairs. The two implemented keys are command (an array reference containing the command to run) and allowed (an array reference of exit values that are allowed without causing run() to return false or throw an exception.)

<<less
Download (0.005MB)
Added: 2007-08-15 License: Perl Artistic License Price:
802 downloads
mod_example_ipc 1.0

mod_example_ipc 1.0


mod_example_ipc module showcases the use in an Apache 2.0 module of the Shared Memory and Mutex routines. more>>
mod_example_ipc is an Apache module that showcases the use in an Apache 2.0 module of the Shared Memory and Mutex routines found in the Apache Portable Runtime. The module itself does nothing useful.

Installation:

There are two ways to install mod_example_ipc in your server: apxs and the build system integration using config.m4. Using apxs is the easiest. It requires perl to run the apxs script, and the same C compiler that you built Apache with. Simply run

$ /path/to/apache2/bin/apxs -c -i mod_example_ipc.c

from the module source directory. This compiles the source as a shared module and installs it under /path/to/apache2/modules.

To integrate the module, copy mod_example_ipc.c and config2.m4 to the modules/experimental directory under your Apache 2.0 source tree. Then run ./buildconf from the top of the source tree. You need to have GNU autoconf and libtool installed to do this. After this step, you can run configure and enable mod_example_ipc:

$ ./configure ... --enable-example_ipc ...

and build Apache as you normally would.

Once you build the module, you can activate it in the Apache configuration as follows:

# You only need this if you built the module as a shared library
LoadModule example_ipc_module modules/mod_example_ipc.so

< Location /example_ipc >
SetHandler example_ipc
< /Location >

Now, any call to http://yourserver/example_ipc will cause the modules handler to grab the lock, increment the shared memory counter and return a small HTML page. Run a benchmark tool with multiple parallel sessions (like ab which comes with Apache) against this URL to see the effect of the IPC.

<<less
Download (0.006MB)
Added: 2006-05-18 License: The Apache License 2.0 Price:
1254 downloads
URBI Project 0.9.7

URBI Project 0.9.7


URBI: Universal Robotic Body Interface. URBI is a scripted command language used to control robots (AIBO, pioneer,...). more>>
URBI: Universal Robotic Body Interface. URBI is a scripted command language used to control robots (AIBO, pioneer,...). It is a robot-independant API.
URBI Project is based on a client/server architecture and it is designed to be used over a TCP/IP or IPC connection.
Main features:
- URBI is a low level command language. Motors and sensors are directly read and set. Although complex high level commands and functions can be written with URBI, the raw kernel of the system is low level by essence.
- URBI includes powerful time oriented control mechanisms to chain commands, serialize them or build complex motor trajectories.
- URBI is designed to be independant from both the robot and the client system. It relies on TCP/IP or Inter-Process Communication if the client and the server are both running onboard.
- URBI is designed with a constant care for simplicity. There is no "philosophy" or "complex architecture" to be familiar with. It is understandable in a few minutes and can be used immediately.
<<less
Download (7.3MB)
Added: 2005-11-19 License: GPL (GNU General Public License) Price:
1440 downloads
PicoTK 0.03

PicoTK 0.03


PicoTK is a C GUI toolkit that requires only a minimum of memory resources. more>>
PicoTK is a C GUI toolkit that requires only a minimum of memory resources. It readily works with the RTEMS real time kernel - its minimum complexity and OS independency makes a port to any operating system easy. It is not comparable featurewise with real full blown windowing toolkits like nanoX or Qt/Embedded, but serves the needs for simple memory mapped graphic presentation.
Main features:
- Draw graphical primitives: points, lines, texts (different fonts, fixed and proportionally spaced using any X-Windows font ), filled rectangles, pixmaps
- Driver is easily adaptable to "homebrew" embedded display hardware based on memory-mapped framebuffer
- Generic drivers for 1, 4 and 8 bit per pixel color depth. Readily supporting VGA mode 0x11 (640x480x2), VGA mode 0x13 (320x200x8) and the VESA linear frame buffer modes (480x640x8 to 1280x1024x8) on graphic cards, which support VBE2.0 or higher.
- Framebuffer emulator (fbe) for Linux using shared memory IPC. This is used for the development of the toolkit and can be used for the development of your application as well. That is you can have a simulation version of your application that run under Linux - and look at its emulated screen. Than you can cross-compile the same application for the target system.
- Tool "fontripper" for converting X11 fonts into picoTK fonts. Use "ppmripper" for converting ppm portable pixmaps into picoTK pixmaps. Fonts and Pixmaps are encoded into linkable binaries, i.e. the system will be compiled into a single binary and does not require to have a filesystem.
- Together with RTEMS (www.oarcorp.com) you can have a nice embedded system graphical output solely using GNU technology.
- Use Linux as a development host for cross-compiling and as an emulation environment.
- Allows easy adaption/porting to your favorite operating system or hardware architecture.
Enhancements:
- Extensions to demo application
- Updated HOWTO (currently only the ASCII version is included in the sources)
- Added support for VESA VBE2.0 flat linear frame buffer
- picoTermPrintf(): Added support for VT100/320 Escapes: Change color and move cursor.
- toolkit: Change graphics configuration by changing toolkit/Makefile
<<less
Download (0.040MB)
Added: 2006-07-17 License: GPL (GNU General Public License) Price:
1194 downloads
tpl 1.2

tpl 1.2


Tpl is a binary data interchange format and C API. more>>
Tpl is a binary data interchange format and C API.
C programs can use tpl to store or load serialized images of structured C data. The data is stored in its native binary format. The data can consist of the basic C types, binary buffers and strings, and aggregations and arrays. The serialized image is a discrete, strictly-formatted data buffer that can be stored in a file, memory buffer or transmitted via sockets or pipes. It is suited for IPC or data storage.
Example: Storing an array of integers to file.
#include "tpl.h"
int main() {
tpl_node *tn;
int i;
tn = tpl_map( "A(i)", &i );
for( i=0; i file.xml
% tplxml file.xml > file.tpl
Typed, structured data
Every tpl has a data type, expressed as a format string. A few examples: A(i) is an integer array. A(is) is an array of integer/string pairs. Deeper structure is the same-- an array of integers which each have an array of strings is A(iA(s)).
Binary data portability
Tpl addresses binary data portability by transparently applying endian-conversion when necessary. It also prescribes sizes for the supported types. This permits binary data to be shared effectively between machines that use different CPU types. A tpl generated on an 32-bit x86 can be read on a 64-bit Sparc Ultra for example. This is especially useful for socket IPC.
Full native binary efficiency
The data within a tpl is never converted unless necessary, so you get the full efficiency of using your data types in their native binary representation. This makes it feasible to deal with very large tpl images (up to 4GB) efficiently. It also uses memory-mapped I/O when reading and writing files to avoid the overhead of copying data through the kernel.
Enhancements:
- Bug fix for 64-bit integer/unsigned types.
- Also include support for these types from Perl API and XML.
<<less
Download (0.29MB)
Added: 2007-04-28 License: BSD License Price:
911 downloads
Isotopic Pattern Calculator 1.4

Isotopic Pattern Calculator 1.4


Isotopic Pattern Calculator is a calculates isotopic distributions. more>>
IPC is a program that calculates the isotopic distribution of a given chemical formula. It gives the rel. intensities and the propability of the masses belonging to a molecule ion, fragment or whatever is represented by the given chemical formula.
Furthernmore it can use GNUPlot to visualize the result. Only masses with a rel. Intensity bigger then 0.009% are shown. Additionaly ipc prints the overall number of peaks and the needed computation time.
The program uses an algorithm which computes the exact isotopic distribution. This leads to a large number of peaks which have very low rel. abundances. Even for a small molecule as Acetylsalicylic acid ( C9H8O4, Mr=180.15) there are 1350 peaks but only nine of them have a rel. abundance higher then 0.01%.
Enhancements:
- A complete list of elements and isotopes is now used.
- The list of elements is taken from the NIST.
<<less
Download (0.070MB)
Added: 2005-08-15 License: GPL (GNU General Public License) Price:
1531 downloads
Fid Core Library 0.2

Fid Core Library 0.2


Fid Core Library is the core library for the Frigand Imperial Desktop. more>>
Fid Core Library is the core library for the Frigand Imperial Desktop, a genuine Unix desktop environment based around multiprocessing, text-stream IPC, and the "everything is a file" concept.
It supports Emacs-like extensibility, customizability, and built-in multi-buffer support.
Enhancements:
- This release adds testing support for the axioms over buffer implementations and user interfaces, a better implementation of interactive, and a new cursor movement mechanism that allows the user interface to manage point itself (and, hence, keep it always on a widget).
<<less
Download (0.070MB)
Added: 2005-10-27 License: Other/Proprietary License Price:
1458 downloads
Untie 0.3

Untie 0.3


Untie is a small tool used to create namespaces and lauch processes in them. more>>
Untie is a small tool used to create namespaces and lauch processes in them. It uses Linuxs virtualization features.
The project allows the user to call clone(2) with any flag as a parameter. Note that superuser privileges are needed to create namespaces.
Untie is a small tool used to create namespaces and lauch processes in them. It uses Linuxs virtualization features. Basically it allows to call clone(2) with any flag as parameter. Note that superuser privileges are needed to create namespaces.
Here is a sample usage with the mount namespace:
[root ~]# untie -h
untie 0.1
Usage: untie [OPTIONS]... [COMMAND]...
-h, --help Print help and exit
-V, --version Print version and exit
--mount New mount namespace (default=off)
--uname New uname (default=off)
--ipc New IPC context (default=off)
--mask=MASK Pass user defined flag
[root ~]# mkdir dir1 dir2
[root ~]# touch dir1/file1 dir2/file2
[root ~]# untie --mount
A new shell has been spawned by untie
[root ~]# mount --bind dir1 dir2
[root ~]# ls dir1 dir2
dir1:
file1
dir2:
file1
[root ~]# exit
Back to the original namespace
[root ~]# ls dir1 dir2
dir1:
file1
dir2:
file2
[root ~]#
In this "demo" a new mount namespace is created and a bind mount is made in this new namespace. This mount is invisible to other namespaces. Leaving the namespace destroys it and cancels the mount.
Enhancements:
- The possibility of running a program as a daemon, the setting of an alarm timer, the nice level setting, and changing the scheduling policy as well as its priority were added.
<<less
Download (0.012MB)
Added: 2007-05-25 License: GPL (GNU General Public License) Price:
882 downloads
GnuPG::Interface 0.33

GnuPG::Interface 0.33


GnuPG::Interface is a Perl interface to GnuPG. more>>
GnuPG::Interface is a Perl interface to GnuPG.

SYNOPSIS

# A simple example
use IO::Handle;
use GnuPG::Interface;

# settting up the situation
my $gnupg = GnuPG::Interface->new();
$gnupg->options->hash_init( armor => 1,
homedir => /home/foobar );

# Note you can set the recipients even if you arent encrypting!
$gnupg->options->push_recipients( ftobin@cpan.org );
$gnupg->options->meta_interactive( 0 );

# how we create some handles to interact with GnuPG
my $input = IO::Handle->new();
my $output = IO::Handle->new();
my $handles = GnuPG::Handles->new( stdin => $input,
stdout => $output );

# Now well go about encrypting with the options already set
my @plaintext = ( foobar );
my $pid = $gnupg->encrypt( handles => $handles );

# Now we write to the input of GnuPG
print $input @plaintext;
close $input;

# now we read the output
my @ciphertext = ;
close $output;

waitpid $pid, 0;

GnuPG::Interface and its associated modules are designed to provide an object-oriented method for interacting with GnuPG, being able to perform functions such as but not limited to encrypting, signing, decryption, verification, and key-listing parsing.

How Data Member Accessor Methods are Created

Each module in the GnuPG::Interface bundle relies on Class::MethodMaker to generate the get/set methods used to set the objects data members. This is very important to realize. This means that any data member which is a list has special methods assigned to it for pushing, popping, and clearing the list.

Understanding Bidirectional Communication

It is also imperative to realize that this package uses interprocess communication methods similar to those used in IPC::Open3 and "Bidirectional Communication with Another Process" in perlipc, and that users of this package need to understand how to use this method because this package does not abstract these methods for the user greatly. This package is not designed to abstract this away entirely (partly for security purposes), but rather to simply help create proper, clean calls to GnuPG, and to implement key-listing parsing. Please see "Bidirectional Communication with Another Process" in perlipc to learn how to deal with these methods.

Using this package to do message processing generally invovlves creating a GnuPG::Interface object, creating a GnuPG::Handles object, setting some options in its options data member, and then calling a method which invokes GnuPG, such as clearsign. One then interacts with with the handles appropriately, as described in "Bidirectional Communication with Another Process" in perlipc.

<<less
Download (0.037MB)
Added: 2006-08-04 License: Perl Artistic License Price:
1176 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 4
  • 1
  • 2
  • 3
  • 4