43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
# Djumbai
|
|
|
|
A UNIX local messaging service
|
|
|
|
## Components
|
|
|
|
1. **Initiation of Message Sending:**
|
|
- A Unix user initiates a message sending process using a Command Line Interface (CLI) tool.
|
|
|
|
2. **Creation of Processes:**
|
|
- The CLI tool spawns a process called `djumbai-client-send`. This process runs under the context of the initiating Unix user.
|
|
- `djumbai-client-send` spawns another process called `djumbai-enqueue`, which operates under the `djumbaiq` user context.
|
|
|
|
3. **Message Queuing:**
|
|
- `djumbai-enqueue` process writes the message to a message queue, which functions as a named pipe. This queue acts as an intermediary storage for the message.
|
|
|
|
4. **Message Retrieval:**
|
|
- The `djumbai-dequeue` process, functioning as a daemon, runs under the `djumbaid` user context. Its purpose is to retrieve messages from the message queue.
|
|
|
|
5. **Message Transmission:**
|
|
- Once messages are retrieved, `djumbai-dequeue` sends them to the `djumbai-send` process. This process operates with root privileges.
|
|
|
|
6. **Receiving and Delivery:**
|
|
- `djumbai-send` spawns a process named `djumbai-client-receive`, which operates under the context of the user/group intended to receive the message.
|
|
- `djumbai-client-receive` writes the received message to the recipient's message-box.
|
|
|
|
7. **Message Retrieval by User:**
|
|
- The recipient Unix user can utilize the CLI tool at any time to read messages stored in their inbox.
|
|
|
|
This structured breakdown elucidates the sequential steps involved in the Unix message sending process, including process spawning, message queuing, retrieval, transmission, and eventual delivery to the intended recipient.
|
|
|
|
|
|
## Cenas concretas
|
|
|
|
Mail queue - FIFO em /djumbai/fifos/message_queue e so pode ser acedida por users do grupo djumbai_queue, que contem djumbai_enqueue e djumbai_dequeue
|
|
|
|
Send FIFO - FIFO em /djumbai/fifos/send_fifo e so pode ser acedida por users do grupo djumbai_send, que contem djumbai_dequeue e djumbai_send
|
|
|
|
Mailbox pessoal _ Diretoria em /djumbai/user/$uid/mailbox, que so pode ser acedida pelo user com UID $uid
|
|
|
|
SentBox pessoal - Diretoria em /djumbai/user/$uid/sentbox, que so pode ser acedida pelo user com UID $uid
|
|
|
|
Mailbox grupo - Diretoria em /djumbai/group/$gid/mailbox, que so pode ser acedida pelo grupo com GID $gid
|