Skip to content
/ machipc Public
forked from AjaxAueleke/machipc

This is an attempt to make IPC similar to the ones used in Mach system which was later adopted by the Mac OS.

License

Notifications You must be signed in to change notification settings

nlzza/machipc

 
 

Repository files navigation

Mach IPC in Linux

This project aims to implement the Mach inter-process communication IPC mechanism within a traditional Linux environment.

Overview

The Mach IPC is a message-passing communication model. All inter-task communication is carried out by messages. Messages are sent to, and received from, mailboxes, which are called ports in Mach. A message is sent to one port, and a response is sent to a separate reply port. Each task also has access to a central or bootstrap server , which is responsible for storing and distributing information of running tasks. As messages are sent to the port, the messages are copied into a queue, which can be read by the receiver thread.

Technology Used

The UNIX networking and sockets APIs are used to implement the communication channels between processes.

How to Run Locally

Download the project on your machine.

    git clone git@github.com:AjaxAueleke/machipc.git
    cd gitmachipc/

Make a source folder for all object files.

    mkdir src

Start the central server.

    ./run.sh mach/mach_central_server

Start the sending process.

    ./run.sh send

Start the receiving process.

    ./run.sh recv

To close the central server:

    ./run.sh process_endserver

For more information, click here

Authors

Last updated

17 June, 2022

About

This is an attempt to make IPC similar to the ones used in Mach system which was later adopted by the Mac OS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.5%
  • Shell 0.5%