pok-kernel / pok Goto Github PK
View Code? Open in Web Editor NEWPOK kernel. Safe and secure for safety-critical systems.
Home Page: https://pok-kernel.github.io/
License: BSD 2-Clause "Simplified" License
POK kernel. Safe and secure for safety-critical systems.
Home Page: https://pok-kernel.github.io/
License: BSD 2-Clause "Simplified" License
Has anyone tried to develop new networking drivers for POK?
It seems all these headers were pulled directly from the ARINC Spec. The ARINC header was not maintained throughout these files as they were split up.
In addition the statement "You CANNOT use this file or a part of a file for your own project." or any restriction placed on these files by the POK project would seem to be an incorrect assertion.
When I run several instances of qemu with pok, I get the following error:
qemu-system-i386: Initialization of device isa-fdc failed: Failed to get "write" lock Is another process using the image?
Notes:
When runs the command "ocarina -aadlv2 -f -i model.aadl", hit the following problem:
"model.aadl:20:06: ARINC653 (identifier) is not a package or a property set visible or existing
Cannot analyze AADL specifications"
Ocarina v2021.1-7-g563ae64 (Working Copy from r563ae649)
Build date: Oct 29 2021 14:47:37
And advise? Thanks a lot.
Wayne
this happens when I run Makefile
there is a syntax error in your code can you help me on this ?
this happens for arnic653-events and arnic653-queueing and i am running others also so maybe its in them also
POK_NEEDS_DEBUG is a macro that selects all or nothing in terms of debug traces in the OS. Users could be interested in displaying debug traces in the partitions only, or in parts of the kernel only.
I propose to change the code and keep POK_NEEDS_DEBUG as a general debug selection (all debug traces are displayed if it is defined) and to use POK_NEEDS_USER_DEBUG to display only traces from partitions.
Latter, we can also use POK_NEEDS_SCHED_DEBUG to select traces from the scheduler code, and so on.
Hi! I try to run pok on Ubuntu,but using ./misc/get_ocarina.sh can't install ocarina, as the website of 'http://download.tuxfamily.org/taste/snapshots/binaries/ocarina/' doesn't exist
Hi! I've installed POK on Ubuntu 18.04.4 and try to run the examples. Unfortunately I get an error when I try to run any example except of "semaphores":
olga@olga-H270M-DS3H:~/pok/examples/partitions-scheduling$ make all
Makefile:4: /misc/mk/examples.mk: No such file or directory
make: *** No rule to make target '/misc/mk/examples.mk'. Stop.
"semaphore" example works well and I'm not sure where is the problem. I'm also not very experienced with Ubuntu. Any help would be highly appreciated.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
This repository currently has no open or pending branches.
.github/workflows/style.yml
actions/checkout v4
actions/checkout v4
ubuntu 22.04
ubuntu 22.04
.github/workflows/tests.yml
actions/checkout v4
actions/checkout v4
ubuntu 22.04
ubuntu 22.04
misc/requirements.txt
avocado-framework ==107.0
avocado-framework-plugin-result-html ==107.0
avocado-framework-plugin-varianter-yaml-to-mux ==107.0
Jinja2 ==3.1.4
MarkupSafe ==2.1.5
PyYAML ==6.0.2
As a follow up on commit #10
When compiling the code generated from my tool, I get the following compilation error.
syscall.c:290: undefined reference to `pok_ports_names_max_len'
Indeed, pok_ports_names_max_len is defined as extern in syscall.c.
I guess the variable definition has to be generated by third party tools, but how to compute the expected value? If it is a constant, why wouldn't we use maccros like for most configuration parameters of POK?
Might be due to modifications in misc/mk/rules-main.mk?
Hi,
We discovered a serious vulnerability in the POK kernel. A patch is ready for a PR.
We already exchanged with POK former author Julien to responsively disclose the findings.
Please tell me when you are ready to deal with the PR or if you would prefer us to provide you with a PATCH privately to have time to analyze it before any public release.
There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
Location: .github/renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid configuration option: packageRules[0].groupname
As the title says, the mutes example can not output the printf
content in activity.c
Sir @juli1 @yoogx @joelsherrill @Etienne13 @phipse
I have been working with pok for the last two months.Its amazingly powerful OS but i have a small issue which i cannot resolve do to the lack of help available on the internet.
I ran all the examples of the POK.But when it runs qemu displays the output.
Now what i want is that to get that output and send it over the network so that i can get that output using some ip and port.
i wanted to use sockets.h but as its a system call so i was not able to use it i have seen POK OS syscall files but i was not able to understand how you made those.
second option we are left with is that through qemu we send that output to network.
can you guide me on this ????
How can I access physical memory?
When I run Makefile for the examples arinc653-blackboard and arinc653-buffer, I get below messages:
/usr/local/src/pok/libpok/libpok.a(core.lo): In function pok_event_wait': /usr/local/src/pok/libpok/core/eventwait.c:32: undefined reference to
pok_time_gettick'
/usr/local/src/pok/libpok/libpok.a(arinc653.lo): In function TIMED_WAIT': /usr/local/src/pok/libpok/arinc653/time.c:33: undefined reference to
__udivdi3'
/usr/local/src/pok/libpok/arinc653/time.c:34: undefined reference to pok_thread_sleep' /usr/local/src/pok/libpok/libpok.a(arinc653.lo): In function
GET_TIME':
/usr/local/src/pok/libpok/arinc653/time.c:49: undefined reference to `pok_time_get'
make[2]: *** [part1.elf] Error 1
make[1]: *** [partitions] Error 2
Code generation failed
I fixed the above errors by below action:
Regarding to the file pok/libpok/core/timeget.c, I replaced the below line
#if ( (! defined (POK_CONFIG_OPTIMIZE_FOR_GENERATED_CODE )) || ( defined (POK_NEEDS_FUNCTION_TIME_GET)))
with
#if ( (! defined (POK_CONFIG_OPTIMIZE_FOR_GENERATED_CODE )) || ( defined (POK_NEEDS_FUNCTION_TIME_GET))) || defined (POK_NEEDS_BUFFERS) || defined (POK_NEEDS_BLACKBOARDS)
Regarding to the file pok/libpok/core/threadsleep.c, I replaced the below line
#ifdef POK_NEEDS_THREADS
with
#if defined(POK_NEEDS_THREADS) || defined (POK_NEEDS_BUFFERS) || defined (POK_NEEDS_BLACKBOARDS)
Regarding to the file pok/libpok/Makefile, I added ../kernel/libc/libc.lo as below:
LO_DEPS= arch/arch.lo
core/core.lo
drivers/drivers.lo
middleware/middleware.lo
arinc653/arinc653.lo
libm/libm.lo
protocols/protocols.lo
libc/libc.lo
../kernel/libc/libc.lo
I think the above action is just a temporary solution.
Now It works well when I run "make run" for the example arinc653-blackboard.
But when I run "make run" for the example arinc653-buffer, only the below messages are displayed on the QEMU screen:
Booting 'Poly ORBKernel'
root (hd0, 0)
Filesystem type is fat, partition type 0x6
kernel /pok.elf
[Multiboot-elf, <0x100000:0x1e502:0x0), shtab=0x11f280, entry=0x101f98]
AADL POK::Major_Frame;Slots;Slots_Allocation
Could't resolve reference to property definition
suppose i want to add "stdio.h" into the single partition c code then i simply add it but the code searches for stdio.h in the libpok folder ok i gave the the file their but it gives a errors after error because stdio.h needs 3-4 other headers and those needs others..which are all not their ...
i have been dealing with this for a week now kindly tell me how to solve this issue if one cant use other libraries then it means we cannot perform any thing on a single partition which i am assuming is not the case
kindly solve this issue @yoogx @juli1 @Etienne13 @phipse @joelsherrill
First, thank you for offer this RTOS, appreciate it.
In entry.S file, we use
Macro to set up trap handler. If a interrupt occur, code run to trap_prehandler,
we can assume that, if our function call have use all reg window except one indicated by WIM, and interrupt will use this preserved reg window.I figure out this call instrution will ruin next used reg window %i7, did i miss something? Sorry for my bad english.
Windows disallows the use of colon (:
) in directory and file names, the colon being reserved for drive letters (C:\
...).
The symptom is simple: in Windows, git succeeds in cloning the repository, but then fails to checkout any branch, because it can't write on file, who has a colon in its path:
$ git checkout main
error: invalid path 'testsuite/arinc653/T-API-PART-0220:0010/test.c'
The workaround for me consisted in using "Linux subsystem" virtual machine (formerly known as "Ubuntu under Windows") to checkout the branch. The subsystem will use a different character as the colon, so that Windows don't complain. But it still doesn't allow to use Windows-native git tools (for example TortoiseGit).
A simple solution is to rename the faulty path to avoid it, for example with another dash (there are already 3 in the directory name), or with an underscore if it's important to have a different separator.
(Note: I didn't have the opportunity to try this test suite, so I don't know if this colon character is important or not, but I doubt it, since there is only one file with it.)
i have been trying to understand syscall.c and .h file and how you have implemented your system calls my question is if i want to add (( #include<sys/sockets.h )) which is a system call , how will i do it as pok will have its own system calls.
i want to use linux systems calls in pok kindly guide me on this ?
@joelsherrill @juli1 @Etienne13 @phipse @yoogx
just like aarch64?
The latest build failed. See https://travis-ci.org/pok-kernel/pok/builds/579134858.
Seems not related to my last commit. @juli1 can you fix this?
Upon running "Make", I receive the following set of errors:
rm -rf include-libpok mkdir -p include-libpok include-libpok/core include-libpok/arinc653 include-libpok/middleware include-libpok/libc include-libpok/protocols for v in arch.h errno.h libm.h core/allocator.h core/thread.h core/error.h core/event.h core/semaphore.h core/syscall.h core/partition.h core/time.h middleware/blackboard.h middleware/buffer.h middleware/port.h middleware/queue.h libc/stdio.h libc/stdlib.h libc/string.h arinc653/blackboard.h arinc653/buffer.h arinc653/error.h arinc653/event.h arinc653/partition.h arinc653/process.h arinc653/queuing.h arinc653/sampling.h arinc653/semaphore.h arinc653/time.h arinc653/types.h protocols/protocols.h protocols/ceasar.h protocols/des.h protocols/ssl.h; do \ NLINES=
wc -l ../../libpok/include/$v|awk '{print $1}' ; NLINES=
expr $NLINES - 15; \ tail -n $NLINES ../../libpok/include/$v > include-libpok/$v ; \ done wc: ../../libpok/include/arinc653/queuing.h: No such file or directory expr: syntax error: unexpected argument ‘15’ tail: invalid number of lines: ‘../../libpok/include/arinc653/queuing.h’ cp
ocarina-config --prefix/share/ocarina/AADLv2/pok_properties.aadl . cp
ocarina-config --prefix/share/ocarina/AADLv2/arinc653_properties.aadl . cp: cannot stat '/usr/share/ocarina/AADLv2/arinc653_properties.aadl': No such file or directory make: *** [Makefile:43: pok-user.pdf] Error 1
Hi. do you have a plan for ARM supported? and start a project for autosar adaptive ?
Since commit 6b04870
The build is failing. See the badge on the page.
Can we investigate and fix the build. Or revert the change?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.