{"id":16699587,"url":"https://github.com/sinanislekdemir/minik","last_synced_at":"2025-04-10T03:42:14.132Z","repository":{"id":43493240,"uuid":"432322518","full_name":"sinanislekdemir/minik","owner":"sinanislekdemir","description":"Minik OS - Kernel with an Interpreted language for ATMega2560 and ESP32 boards.","archived":false,"fork":false,"pushed_at":"2022-04-08T07:26:23.000Z","size":655,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T05:01:43.048Z","etag":null,"topics":["arduino","compiler","esp32","esp32-wroom","interpreter","kernel","programming-language"],"latest_commit_sha":null,"homepage":"https://minik.16x4.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sinanislekdemir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-26T23:17:16.000Z","updated_at":"2024-04-02T14:05:32.000Z","dependencies_parsed_at":"2022-09-19T00:41:24.840Z","dependency_job_id":null,"html_url":"https://github.com/sinanislekdemir/minik","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinanislekdemir%2Fminik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinanislekdemir%2Fminik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinanislekdemir%2Fminik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sinanislekdemir%2Fminik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sinanislekdemir","download_url":"https://codeload.github.com/sinanislekdemir/minik/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154965,"owners_count":21056541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","compiler","esp32","esp32-wroom","interpreter","kernel","programming-language"],"created_at":"2024-10-12T18:07:31.182Z","updated_at":"2025-04-10T03:42:14.092Z","avatar_url":"https://github.com/sinanislekdemir.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Minik Os for mini(k) spaces\n\n![example workflow](https://github.com/sinanislekdemir/minik/actions/workflows/build-test.yml/badge.svg)\n\nhttps://minik.16x4.com\n\nMinik OS is a binary format embedded operating system. Unlike RTOS(es),\nMinik OS is not a framework. It's a compiled operating system, ready\nto run on embedded devices.\n\nCurious to see it in action? Here is a video of Minik OS, running 3 different\nprograms in parallel plus having it's kernel source code reader and status\ndaemons on. [https://www.youtube.com/watch?v=5vTQgAibZtk](https://www.youtube.com/watch?v=5vTQgAibZtk)\n\nMinik is coded using C++ and Arduino Framework with the power of ESP32 bindings\nand FreeRTOS.\n\nMinik is a multi-threaded operating system. Therefore, it can not be assumed\nas a \"Real Time\" operating system because of it's internal task switches.\n\nOn ESP32, a single mission critical task can be assigned to the second core.\nOr tasks can be shared between cores.\n\nAs of now all daemons run on CORE0 and tasks are assigned to Cores in turns.\nSo each turn will get (almost) equal number of tasks (programs).\n\nMinik OS includes an interpreted programming language called CManager. Syntax\nof CManager can be called a \"pseudo-assembler\". It is a bit ezoteric. Primarily\nbecause it is designed to run on 8bit small chips. Other interpreted languages\nlike micro-python requires a bit more processing power and ram area for compiling.\n\nYou can see some examples of CManager in [scripts director.](https://github.com/sinanislekdemir/minik/tree/main/scripts)\n\nMinik has internal daemons and tasks running within a semaphore. Daemons run before\nthe tasks.\n\nThere are daemons for:\n\n- Serial communications\n- Interrupt handlers\n\n    sinan islekdemir\n    sinan@islekdemir.com\n\n## Drivers\n\nNot all drivers can fit into your small flash storage. You can define the drivers you need\ninside `drivers.txt`. One driver name per line.\n\nHere is a full list of drivers:\n\n```\nWIFI\nBLUETOOTH_SERIAL\nBLUETOOTH\nDISPLAY_SSD1306\nSDCARD\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinanislekdemir%2Fminik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsinanislekdemir%2Fminik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsinanislekdemir%2Fminik/lists"}