All Projects → eerimoq → Monolinux

eerimoq / Monolinux

Licence: mit
Create embedded Linux systems with a single statically linked executable.

Projects that are alternatives of or similar to Monolinux

Libreelec.tv
Just enough OS for KODI
Stars: ✭ 1,358 (+332.48%)
Mutual labels:  makefile, embedded
Mylinux
myLinux is a small UNIX like OS for embedded systems based on Westermo NetBox
Stars: ✭ 53 (-83.12%)
Mutual labels:  makefile, embedded
Webfsd
A simple HTTP server for mostly static content written in C
Stars: ✭ 50 (-84.08%)
Mutual labels:  makefile, embedded
Embedded Ide
IDE for C embedded development centered on bare-metal ARM systems
Stars: ✭ 127 (-59.55%)
Mutual labels:  makefile, embedded
Ghb0t
A GitHub Bot to automatically delete your fork's branches after a pull request has been merged.
Stars: ✭ 295 (-6.05%)
Mutual labels:  makefile
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (-8.6%)
Mutual labels:  embedded
Jenkins X Platform
Helm umbrella repo containing the helm charts for the Jenkins-X platform on Kubernetes
Stars: ✭ 287 (-8.6%)
Mutual labels:  makefile
Learninglinuxkernel
和我一起学习Linux内核吧
Stars: ✭ 288 (-8.28%)
Mutual labels:  makefile
Task
A task runner / simpler Make alternative written in Go
Stars: ✭ 4,282 (+1263.69%)
Mutual labels:  makefile
Tucl
The first-ever paper on the Unix shell written by Ken Thompson in 1976 scanned, transcribed, and redistributed with permission
Stars: ✭ 303 (-3.5%)
Mutual labels:  makefile
Fastmot
High-performance multiple object tracking based on YOLO, Deep SORT, and optical flow
Stars: ✭ 284 (-9.55%)
Mutual labels:  embedded
Awesome Micropython
A curated list of awesome MicroPython libraries, frameworks, software and resources.
Stars: ✭ 287 (-8.6%)
Mutual labels:  makefile
Jetty.project
Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Stars: ✭ 3,260 (+938.22%)
Mutual labels:  embedded
Election Geodata
Precinct shapes (and vote results) for US elections past, present, and future
Stars: ✭ 289 (-7.96%)
Mutual labels:  makefile
Libuhttpd
A very flexible, lightweight and fully asynchronous HTTP server library based on libev and http-parser for Embedded Linux.
Stars: ✭ 302 (-3.82%)
Mutual labels:  embedded
Nanoprintf
A tiny embeddable printf replacement written in C99.
Stars: ✭ 287 (-8.6%)
Mutual labels:  embedded
Reason Cli
Globally installable Reason toolchain.
Stars: ✭ 294 (-6.37%)
Mutual labels:  makefile
Awesome Servicemesh
Awesome service mesh - https://www.servicemesher.com/awesome-servicemesh/
Stars: ✭ 302 (-3.82%)
Mutual labels:  makefile
Clash
Clash for openwrt [Luci-app-clash] https://github.com/frainzy1477/luci-app-clash
Stars: ✭ 293 (-6.69%)
Mutual labels:  makefile
Blynk Library
Blynk library for embedded hardware. Works with Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, Energia, ARM mbed, etc.
Stars: ✭ 3,305 (+952.55%)
Mutual labels:  embedded

Monolinux

Create embedded Linux systems with a single statically linked executable, because smaller is better!

Monolinux is primarily targeting the C programming language.

Features:

  • Everything the Linux kernel_ provides.

    • File systems.

    • Networking.

    • Device drivers.

    • ...

  • Libraries to statically link with your application.

    • async_ (asynchronous framework)

    • bitstream_ (bit packing and unpacking)

    • bunga_ (OAM over TCP/IP)

    • curl_ (HTTP, FTP, ...)

    • dbg-macro_ (printf debugging)

    • detools_ (delta encoding)

    • heatshrink_ (a compression algorithm)

    • humanfriendly_ (various utilities)

    • mbedTLS_ (TLS, SSL, crypto, ...)

    • messi_ (message passing in distributed systems)

    • monolinux-c-library_ (the Monolinux C library)

    • pbtools_ (Google Protocol Buffers)

    • xz_ (LZMA)

    • zlib_

Creating a project

A minimal Monolinux project's file tree looks like below. Add needed software packages to the 3pp folder.

.. code-block:: text

my-project/ ├── 3pp/ │ ├── arm-linux-musleabi-cross.tgz - a toolchain (if needed) │ ├── linux/ - the linux kernel │ └── monolinux/ - this repository as a submodule ├── app/ - your application │ ├── main.c │ └── Makefile ├── LICENSE ├── Makefile └── setup.sh - development environment setup script

Here are more example projects:

  • An Monolinux example project_

  • Monolinux Raspberry Pi 3_

  • Monolinux Jiffy_

Tips and tricks

See man procfs for details of the following commands.

.. code-block:: shell

$ cat /proc/devices $ cat /proc/meminfo $ cat /proc/modules $ cat /proc/net/arp $ cat /proc/net/dev $ cat /proc/net/protocols $ cat /proc/net/route $ cat /proc/uptime $ cat /proc/version $ cat /proc/mounts

Disk commands.

.. code-block:: shell

$ ls /sys/block $ mount /dev/sda1 /mnt/disk ext4 $ ls /mnt/disk $ cat /mnt/disk/README

Configuration.

.. code-block:: shell

DNS.

$ cat /etc/resolv.conf

Device tree.

.. code-block:: shell

$ cat /sys/firmware/devicetree/base/...

.. _Linux kernel: https://www.kernel.org/

.. _async: https://github.com/eerimoq/async

.. _bitstream: https://github.com/eerimoq/bitstream

.. _bunga: https://github.com/eerimoq/bunga

.. _curl: https://curl.haxx.se/

.. _dbg-macro: https://github.com/eerimoq/dbg-macro

.. _detools: https://github.com/eerimoq/detools

.. _heatshrink: https://github.com/atomicobject/heatshrink

.. _humanfriendly: https://github.com/eerimoq/humanfriendly

.. _mbedTLS: https://tls.mbed.org/

.. _messi: https://github.com/eerimoq/messi

.. _monolinux-c-library: https://github.com/eerimoq/monolinux-c-library

.. _pbtools: https://github.com/eerimoq/pbtools

.. _xz: https://tukaani.org/xz/

.. _zlib: https://zlib.net/

.. _An Monolinux example project: https://github.com/eerimoq/monolinux-example-project

.. _Monolinux Raspberry Pi 3: https://github.com/eerimoq/monolinux-raspberry-pi-3

.. _Monolinux Jiffy: https://github.com/eerimoq/monolinux-jiffy

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].