Name | Modified | Size | Downloads / Week |
---|---|---|---|
os-kernel-2.4.tar.gz | 2025-07-15 | 379.8 MB | |
README.md | 2025-07-15 | 5.4 kB | |
os-kernel-2.3.tar.gz | 2024-10-21 | 408.6 kB | |
os-kernel-2.2.tar.gz | 2024-05-21 | 415.9 kB | |
os-kernel-2.1.tar.gz | 2023-04-17 | 412.8 kB | |
os-kernel-2.0.tar.gz | 2023-04-17 | 42.4 kB | |
os-kernel-1.2.2.tar.gz | 2022-02-24 | 47.2 kB | |
os-kernel-1.0.tar.gz | 2022-02-07 | 37.1 kB | |
Totals: 8 Items | 381.1 MB | 4 |
Proximus OS Kernel
ProximusDA OS Kernel project provides multi-threading communication between cores. It parallel distributed and implements tasks.
Introduction
This is the README file of Proximus OS kernel project, which is a library providing simple interface for user to define tasks/functions and connections/channels between them. The user-defined tasks are executed concurrently on CPUs using Sandia Qthreads https://www.sandia.gov/qthreads techniques for building lightweight threads.
Directory Structure
.
├── examples
│ └── adder # The example project which uses os_kernel library
│ └── gcd_proximus # The example project which uses os_kernel library
│ └── gcd_pthread # The example project which uses os_kernel library
│ └── pipeline_proximus # The example project which uses os_kernel library
│ └── sop_proximus # The example project which uses os_kernel library
│ └── sop_pthread # The example project which uses os_kernel library
│ └── inc # Contains header files for example projects
│ └── aux # Contains os_kernel abstract OS API
│ └── inputs # Contains input_generator.py which generates test-input files for examples
├── LGPL-3.0.txt # GNU LESSER GENERAL PUBLIC LICENSE
├── LICENSE # Project license file
├── makefile # GNU make script which is used for building the project
├── README.md # This file
├── INFO # Detailed explanation how os_kernel works
├── ReleaseNotes # Release notes
└── src
└── os_kernel # os kernel sources
Prerequisites Installation
To set up the proximus-os-kernel project, first download the latest instigate-mkf build system from this SourceForge link: https://sourceforge.net/projects/instigate-mkf Unpack the archive and open the instigate-mkf/README file. Follow the instructions there to: 1. Install any required packages (prerequisites). 2. Set up the build system by sourcing or copying the necessary script files as described.
Note You may need to run make or a similar command in the top-level instigate-mkf directory if instructed by the README.
$ tar -xvjf instigate-mkf-*.tar.bz2
$ cd instigate-mkf-*
Optional: libnuma, NUMA policy library can be used with os kernel, see https://man7.org/linux/man-pages/man3/numa.3.html
Project Setup
$ tar xf os-kernel-*.tar.gz
$ cd os-kernel-*
Run one of the below commands:
- To build static library with debug information
$ make setup link_type=static build_type=debug
- To build static library, without debug information, optimized
$ make setup link_type=static build_type=release
As a result the command will create _setup_ file, containing build configurations.
To delete build configurations run the following command
$ make clean_setup
Build
To build proximus-os-kernel project run the following commands:
$ make
As a result the command will create bin/, inc/, lib/, lib32/, lib64/, pkg/, obj/, obj32/, obj64/ directories, which can be deleted with command
$ make clean
Usage
Inputs Setup
- Before running example projects it is required to generate input files for the examples.
To generate input files run the following commands:
$ cd examples/inputs
$ python3 input_generator.py
Adder Example
Adder example has - two file reader modules , reading input data from a.txt and b.txt correspondingly, - adder module, calculating the sum of two inputs - file writer module, saving the result received from adder into c.txt file
To compile and run adder example run the following commands:
$ cd examples/adder
$ make
$ make run
example/adder directory contains c.golden file used to check c.txt result file for validity.
If you want to force os kernel to use NUMA library API, you can un-comment NUMA related lines in example/adder makefile.
GCD Example | gcd_proximus vs gcd_pthreads
GCD example using proximus ./examples/gcd_proximus os_kernel and ./examples/gcd_pthread/ using Posix threads.
To compile and run examples run the following commands:
$ cd <example_dir>
$ make
$ make run
SOP Example | sop_proximus vs sop_pthreads
SOP example using proximus ./examples/sop_proximus os_kernel and ./examples/sop_pthread/ using Posix threads.
To compile and run examples run the following commands:
$ cd <example_dir>
$ make
$ make run_<type> :for example make run_int
Read more in => ./examples/sop_proximus/README
Read more in => ./examples/sop_pthread/README
Reference
- "Tools and Techniques for Building Fast Portable Threads Packages", David Keppel, https://dada.cs.washington.edu/research/tr/1993/05/UW-CSE-93-05-06.pdf
Bug Reporting
ProximusDA web-site: http://www.proximusda.com
You can send the bug reports and suggestions to info@proximusda.com When reporting bugs please specify the following information:
- ProximusDA os-kernel version
- Platform, compiler, flags info
- Problem description
- Steps to reproduce the problem
- Compile warnings and errors