Name | Modified | Size | Downloads / Week |
---|---|---|---|
README.md | 2024-10-21 | 3.5 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: 7 Items | 1.4 MB | 0 |
Proximus OS Kernel
[[TOC]]
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
├── 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
├── ReleaseNotes # Release notes
└── src
└── os_kernel # os kernel sources
Prerequisites Installation
The proximus-os-kernel project has a dependency from instigate-mkf build system. User needs to download the recent instigate-mkf from https://sourceforge.net/projects/instigate-mkf url, unpack it, and follow instigate-mkf/README instructions for installing prerequisites and script files.
$ tar xf instigate-mkf-2.0.tar.gz
$ cd instigate-mkf-2.0
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-2.2.tar.gz
$ cd os-kernel-2.2
Run one of the below commands:
- To build shared library with debug information ``` $ make setup link_type=shared build_type=debug
- To build shared library, without debug information, optimized
```
$ make setup link_type=shared build_type=release
- 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
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.
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