Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

Overview

Minimal Linux Live

Stargazers over time

Stargazers over time


Overview

Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities. Additional software can be included in the ISO image at build time by using a well-documented configuration file.

The generated ISO image file contains Linux kernel, GNU C library compiled with default options, Busybox compiled with default options, quite simple initramfs structure and some "overlay bundles" (the default build process provides few overlay bundles). You don't get Windows support out of the box, nor you get any fancy desktop environment (refer to the Debootstrap Live project if you need minimal system with network and UI). All you get is a simple shell console with default Busybox applets, network support via DHCP and... well, that's all. This is why it's called "minimal".

Note that by default Minimal Linux Live provides support for legacy BIOS systems. You can change the build configuration settings in the .config file and rebuild MLL with support for modern UEFI systems.

All build scripts are well organized and quite small in size. You can easily learn from the scripts, reverse engineer the build process and later modify them to include more stuff (I encourage you to do so). After you learn the basics, you will have all the necessary tools and skills to create your own fully functional Linux based operating system which you have built entirely from scratch.

The guidebook explains in details the MLL architecture and the build process. This is the recommended documentation resource if you want to have complete understanding of the MLL ecosystem.

You are encouraged to read the tutorial which explains the minimalistic MLL build process. The same tutorial, along with all MLL source code, can be found in the ISO image structure in the /minimal/rootfs/usr/src directory.

The hosting space for Minimal Linux Live is provided by the cool guys at Microweber - check them out. :)

Website mirrors are available here:

List of related projects is available in the end of this document. If you don't find what you're looking for in MLL, perhaps you'll find it in the related projects, e.g. minimal Linux system with graphical user interface (GUI), or perhaps minimal Linux system with option to run Docker containers.

The README document and the main .config file provide extensive documentation regarding the Minimal Linux Live features.

The DAO of Minimal Linux Live - this tutorial explains step by step what you need to do in order to create your own minimalistic live Linux OS. The tutorial is based on the first published version of Minimal Linux Live.

Component Architecture of Minimal Linux Live - this publication describes the high level components included in the '03-Apr-2016' version of Minimal Linux Live.

Did I mention the YouTube channel where you can watch some of the cool Minimal Linux Live features? No? Well, now you know about it! :)

Current development state

As of 05-Sep-2020:

  • Linux kernel 5.8.7
  • GNU C Library 2.32
  • Busybox 1.32.0

Stable build on default Ubuntu 20.04.1 installation with applied system updates.

Here are some screenshots of the latest published version of Minimal Linux Live:

Minimal Linux Live

Minimal Linux Live Readme

You can experiment with Minimal Linux Live directly in your browser by using JavaScript PC Emulator. Here is a screenshot:

Minimal Linux Live JavaScript Emulator

Future improvements

Take a look at the issues page where all future MLL improvements are tracked.

How to build

The section below is for Ubuntu and other Debian based distros.

# Update all repositories and upgrade all packages
sudo apt update
sudo apt upgrade -y

# Resolve build dependencies
sudo apt install -y wget make gawk gcc bc bison flex xorriso libelf-dev libssl-dev

# Build everything and produce ISO image.
./build_minimal_linux_live.sh

The section below is for SUSE.

# Refresh all repositeries and update all packages
sudo zypper refresh
sudo zypper update -y

# Resolve build dependencies
sudo zypper install -y make gcc flex bison libelf-devel libopenssl-devel bc xorriso

# Build everything and produce ISO image.
./build_minimal_linux_live.sh

The default build process uses some custom provided CFLAGS. They can be found in the .config file. Some of these additional flags were introduced in order to fix different issues which were reported during the development phase. However, there is no guarantee that the build process will run smoothly on your system with these particular flags. If you get compilation issues (please note that I'm talking about compilation issues, not about general shell script issues), you can try to disable these flags and then start the build process again. It may turn out that on your particular host system you don't need these flags.

Overlay bundles

Important note! Most of the overlay bundles come with no support since the build process for almost all of them is host specific and can vary significantly between different machines. Some overlay bundles have no dependencies to the host machine, e.g. the bundles which provide the DHCP functionality and the MLL source code. These bundles are enabled by default.

Minimal Linux Live has the concept of overlay bundles. During the boot process the OverlayFS driver merges the initramfs with the content of these bundles. This is the mechanism which allows you to provide additional software on top of MLL without touching the core build process. In fact the overlay bundle system has been designed to be completely independent from the MLL build process. You can build one or more overlay bundles without building MLL at all. However, some of the overlay bundles have dependencies on the software pieces provided by the MLL build process, so it is recommended to use the overlay build subsystem after you have produced the 'initramfs' area.

The overlay bundle system provides dependency management. If bundle 'b' depends on bundle 'a' you don't need to build bundle 'a' manually in advance. The bundle dependencies are described in special metadata file bundle_deps and all such dependencies are prepared automatically.

# How to build all overlay bundles.

cd minimal_overlay
./overlay_build.sh
# How to build specific overlay bundle. The example is for 'Open JDK'
# which depends on many GNU C libraries and on ZLIB. All dependencies
# are handled automatically by the overlay bundle system.

cd minimal_overlay
./overlay_build.sh openjdk

Take a look at the mll_hello overlay bundle which compiles simple C program (it prints one line in the console) and installs it properly in the MLL overlay structure.

Runtime software

Another way to add software in MLL is at runtime by using slightly modified version of static-get which is provided as additional overlay bundle. The static_get overlay bundle is not enabled by default. You can enable it in the main .config file. Here are some examples with static-get:

# Search for 'vim'
static-get -s vim

# Install the 'vim' package. Run 'vim' after that
static-get -i vim

# Search for 'tetris'
static-get -s tetris

# Install the 'vitetris' package. Run 'vitetris' after that
static-get -i vitetris

GraalVM

The current development version of MLL partially supports GraalVM (provided as overlay bundle). Note that GraalVM has runtime dependencies on GCC and Bash and therefore some GraalVM feature are not supported in MLL, e.g. the gu updater and almost all GVM language wrapper scripts, including the R wrappers. Nevertheless, the core GVM features work fine. Java, Python, Ruby, Node and JavaScript work in MLL/GraalVM environment. Great, isn't it! :)

GraalVM languages

GraalVM - Java

GraalVM - Python

GraalVM - Ruby

GraalVM - Node

GraalVM - JS

BIOS and UEFI

Minimal Linux Live can be used on UEFI systems (as of version 28-Jan-2018) thanks to the systemd-boot project. There are three build flavors that you can choose from:

  • bios - MLL will be bootable only on legacy BIOS based systems. This is the default build flavor.
  • uefi - MLL will be bootable only on UEFI based systems.
  • both - MLL will be bootable on both legacy BIOS and modern UEFI based systems.

The generated MLL iso image is 'hybrid' which means that if it is 'burned' on external hard drive, this external hard drive will be bootable. You can use this behavior to install MLL on your USB flash device (read the next section).

The older version of Minimal Linux Live 20-Jan-2017 has experimental UEFI support and the MLL ISO image can be used on legacy BIOS based systems and on UEFI based systems with enabled UEFI shell (level support 1 or higher, see section 3.1 - Levels Of Support of the UEFI Shell specification). All newer versions of Minimal Linux Live have full UEFI support.

Installation

The build process produces ISO image which you can use in virtual machine or you can burn it on real CD/DVD. Installing MLL on USB flash drive currently is not supported but it can be easily achieved by using syslinux or extlinux since MLL requires just two files (one kernel file and another initramfs file). This applies for legacy BIOS based systems.

Another way to install MLL on USB flash drive is by using YUMI or other similar tools. This applies for legacy BIOS based systems.

Yet another way to install MLL on USB flash drive is by using the dd tool:

# Directly write the ISO image to your USB flash device (e.g. /dev/xxx)
dd if=minimal_linux_live.iso of=/dev/xxx

The USB flash device will be recognized as bootable device and you should be able to boot MLL successfully from it. If you have chosen the 'combined' build flavor (i.e. value both for the corresponding configuration property), then your USB flash device will be bootable on both legacy BIOS and modern UEFI based systems.

The build process also generates a compressed filesystem image file mll_image.tgz which contains everything from the initramfs area and everything from the overlay area, i.e. all overlay bundles that have been installed during the MLL build process. You can import and use the filesystem image in Docker like this:

# Import the MLL filesystem image in Docker.
docker import mll_image.tgz minimal-linux-live:latest

# Run MLL shell in Docker:
docker run -it minimal-linux-live /bin/sh

It is also possible to start MLL over network, using PXE mechanism (often called PXE diskless boot). To achieve that, before building MLL, edit src/.config and set OVERLAY_LOCATION to rootfs instead of default iso. Then follow build process, which will build the minimal_linux_live.iso. Extract kernel and rootfs from this iso, and assuming webserver is using /var/www/html/ folder as index, copy files here:

mount minimal_linux_live.iso /mnt
cp -a /mnt/boot/kernel.xz /var/www/html/
cp -a /mnt/boot/rootfs.xz /var/www/html/

Note: on RHEL systems, remember to restore SELinux contexts using restorecon -Rv /var/www/html/.

Then assuming you are using iPXE as a PXE rom, and that your webserver ip is 10.0.0.1, create file /var/www/html/MLL.ipxe with the following content:

#!ipxe
echo Booting MLL
kernel http://10.0.0.1/kernel.xz initrd=rootfs.xz
initrd http://10.0.0.1/rootfs.xz
imgstat
echo All files downloaded, booting in 2s...
sleep 2
boot

Note: append your console parameter on the kernel line if using a remote IPMI console.

And chainload your mail iPXE to this file.

Publications

Case studies, research papers, publications, presentations, etc. regarding Minimal Linux Live and Minimal Linux Script.

Related projects

List of cool forks, spin-offs and other related projects inspired by Minimal Linux Live.

  • Minimal Linux Script - very simplified and minimalistic version of MLL. This project is recommended as a starting point for beginners.

  • systemd-boot - this project provides the UEFI boot loader images that MLL relies on. It also provides helper shell scripts which generate UEFI compatible MLL ISO images out of the already existing BIOS compatible MLL ISO images.

  • Bare Minimal Linux - fork of minimal linux for baremetal debugging. This project is part of the SAP Converged Cloud ecosystem.

  • Minimal Linux FIRESTARTER - minimal Linux distribution with integrated FIRESTARTER processor stress test utility. This project is developed at TU Dresden - Centre for Information Services and High Performance Computing.

  • Prognostic Linux Live - stripped down Linux environment for the development and experiments at the Prognostic Lab at the University of Pittsburgh.

  • Minimal Container Linux - a Linux host OS designed to run Containers with a minimalist design and small footprint.

  • Debootstrap Live - this spin-off of MLL generates bootable ISO with current kernel and debootstrap base system.

  • Boot2Minc - this fork adds Mincs and as result you can run Linux containers inside MLL. One interesting Mincs feature - it provides tools which allow you to reuse already existing Docker containers.

  • K1773R's MLL - PowerPC version of Minimal Linux Live with memtester as additional software. Impressive work!

  • Ladiko's MLL - this fork automatically downloads and uses the latest available Kernel and Busybox sources. By default there is NTFS and SquashFS support. The fork also provides an installer which can be used to put MLL on USB flash device.

  • StelaLinux - the successor of StarLinux and AwlsomeLinux. These projects are spin-offs of MLL that take different build approach.

  • prologic's MLL - this fork adds Python support to the MLL runtime environment.

  • KernelISO - extended version of MLL, based on older version of MLL.

  • diaob's MLL - MLL translation to Simplified Chinese.

  • bdheeman's MLL - MLL KISS fork (Keep It, Simple, Safe/Secure/Stupid).

  • Runlinux - environment to build and test Linux kernels.

Donations

If you find MLL or its related projects useful, you can express your positive attitude via PayPal donation. All donations will be spent on food.

If you don't like MLL (or me in particular), you can express your not-so-positive attitude via PayPal donation. All donations will be spent on food for thought.

Thank you!

Don't miss the chance to share your honest opinion about MLL in DistroWatch. And don't forget to check the Minimal Linux Live page on Facebook.

Thank you for your support!

Comments
  • ISO to USB

    ISO to USB

    Hello, I'm trying to extract the contents of the .iso image onto a USB so I can install it onto other computers, however most programs format the USB in vFat, which I want to avoid due to OverlayFS not supporting it. Is there a way to 'flash' Minimal Linux Live onto a ext4 USB? I've tried dd, it never works. Also if not, if I were to compile the OverlayFS under 'sparse' instead of 'folder' and lets say I made 20 MB worth of changes BUT the Sparse Image is only 10 MB, would it automatically increase, or would it remain 10 MB and delete the other 10 MB?

    question 
    opened by AwlsomeAlex 17
  • Please give more insight in your error messages. Can't install extra packages.

    Please give more insight in your error messages. Can't install extra packages.

    so, trying to install all of the bundles, I get this error messages, Cannot continue - GLIBC is missing. Please buld GLIBC first. I tried running ./overlay_build.sh g* which installed all glibc related packages, and still get the first error

    opened by pcs3rd 15
  • Real Directory instead of OverlayFS

    Real Directory instead of OverlayFS

    This is more of a discussion than an issue. What I want to do is with the mll-utils on my side project, AwlsomeLinux, and add the functionality to install/copy the OverlayFS to an actual File System (ext2 on /dev/sdxx) and have the InitramFS go into the actual filesystem, where do you recommend me looking for this information or do you know of such information? I've checked the closest things to Minimal Linux Live (Tiny Core doesn't even use OverlayFS, Alpine uses an Init Manager similar to Systemd (OpenRC), and Slax is too confusing.) Also does a Package Manager for Minimal Linux Live sound too far-fetched? Thanks!

    question 
    opened by AwlsomeAlex 12
  • Get DNS working

    Get DNS working

    I notice DNS doesn't work. We should get this working. I'm not sure what's involved yet by reading http://lists.busybox.net/pipermail/busybox/2001-November/005103.html it looks like we either have to change some compile options for busybox or add in uclibc?

    enhancement 
    opened by prologic 12
  • FIRMWARE_TYPE=uefi doesn't build

    FIRMWARE_TYPE=uefi doesn't build

    Hi,

    Minimal Linux Live doesn't build with FIRMWARE_TYPE=uefi.

    Executing script '12_get_syslinux.sh'.
    *** GET SYSLINUX BEGIN ***
    Firmware type is 'uefi'.
    Syslinux download has been skipped.
    [...]
    Executing script '13_prepare_iso.sh'.
    ls: cannot access '/home/raf/minimal/src/work/syslinux/syslinux-*': No such file or directory
    

    If I got it right, syslinux download is skipped, which is to be normal since uefi doesn't rely on it, but then evaluation of WORK_SYSLINUX_DIR will fail. I guess WORK_SYSLINUX_DIR should be evaluated in prepare_boot_bios.

    Thanks!

    opened by ohmtech-rdi 11
  • USB wifi/bt

    USB wifi/bt

    Hello, Nice minimal Linux support and version...

    Question : can we have few USB wifi dongle for Wireless network after configuring IP, dns, key ... Same question with Bluetooth and BTLE ...

    Keep going... Jp

    question 
    opened by JPB1JPB1 11
  • BusyBox build failed on Ubuntu 16.04 64-bit default installation

    BusyBox build failed on Ubuntu 16.04 64-bit default installation

    BusyBox build failed on Ubuntu 16.04 64-bit default installation. The build failed on two Ubuntu 16.04 systems. Ubuntu 14 was not affected by this issue.

    The error is below

    In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:7:0,
                     from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:34,
                     from include/platform.h:141,
                     from include/libbb.h:13,
                     from include/busybox.h:8,
                     from applets/applets.c:9:
    /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:168:61: error: no include path in which to search for limits.h
    In file included from include/libbb.h:13:0,
                     from include/busybox.h:8,
                     from applets/applets.c:9:
    include/platform.h:152:23: fatal error: byteswap.h: No such file or directory
    compilation terminated.
    scripts/Makefile.build:197: recipe for target 'applets/applets.o' failed
    make[1]: *** [applets/applets.o] Error 1
    Makefile:372: recipe for target 'applets_dir' failed
    make: *** [applets_dir] Error 2
    Generating BusyBox based initramfs area...
      CC      applets/applets.o
    In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h:7:0,
                     from /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:34,
                     from include/platform.h:141,
                     from include/libbb.h:13,
                     from include/busybox.h:8,
                     from applets/applets.c:9:
    /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h:168:61: error: no include path in which to search for limits.h
    In file included from include/libbb.h:13:0,
                     from include/busybox.h:8,
                     from applets/applets.c:9:
    include/platform.h:152:23: fatal error: byteswap.h: No such file or directory
    
    opened by slavaim 10
  • command `time` only in bash shell

    command `time` only in bash shell

    In my Debian Testing, /bin/sh -> /bin/dash. time is one builtin command for /bin/bash, not /bin/dash. So when I execute "time" in sh(dash), it reports error - "/bin/sh: 1: time: not found"

    opened by mudongliang 9
  • add the dropbear , it is important function

    add the dropbear , it is important function

    Dropbear is a relatively small SSH server and client. https://matt.ucc.asn.au/dropbear/dropbear.html i have built with options.h as config dropbear-options.h.txt

    opened by ghost 9
  • GLIBC Fails to Build on x86

    GLIBC Fails to Build on x86

    Hello, I know I've bothered you enough but this time I found something interesting. Whenever Minimal Linux Live tries to build GLIBC on an x86 host, it always fails in the build stage, giving the error Makefile:recipe for target 'io/subdir_lib' failed. However further up the log I can find GLIBC throwing out errors when it's trying to compile ../sysdeps/unix/sysv/linux/posix_fallocate.c giving the error error: bp cannot be used in asm here } ^ I also installed all of the required dependencies for GLIBC due to me originally thinking that was the problem, but less dependencies are on my x86_64 machine and it builds fine. I also checked the kernel, everything seems to compile (headers). But I'm honestly not sure what's happening. I've provided a build log to help you out so this is less of a guessing game: (Visible problem from Lines 84,141 - 84,165). Minimal Linux Live Build Log Thanks.

    opened by AwlsomeAlex 9
  • merge plans

    merge plans

    Hey there

    Are you interested in merging my work on memtester + powerpc build? I've changed the scripts so it could build for powerpc and x86 / amd64 without breaking anything. Of course i'd have to merge your recent changes too. Also i've seperated creating iso and bootloader into seperate scripts with a switch in the main script so its cleaner.

    Im more interested in contributing and being a part of MLL rather than creating my own fork. I'd be mainly improving things, add more overlays and support other exotic hardware if requested to.

    greetings

    question 
    opened by yhaenggi 9
  • can't build the iso.

    can't build the iso.

    The build_minimal_linux_live.sh script failed when trying to make an uefi compatible iso. ERROR: mkdir: cannot create directory ‘~/programing/third_party/minimal/src/work/uefi/loader/entries’: No space left on device

    EDIT: i have enough space on my device

    opened by Ghodawalaaman 1
  • Build, Compile errors and package download file was missing...

    Build, Compile errors and package download file was missing...

    Hello sir, I found your project and it seemed very interesting to me, though not a coder, the linux kernal and OS build process is really interesting. I would like to complete the project...

    From your website, it did not have the new "Config File", so I think I made it to step 2-3 and then had issues. But I looked on github and redownloaded the full package and started build steps.

    Then, when I got to the busybox make/build it failed. There are several online articles about issue.. with glibc , I think.

    I did try changing the package download URLS to different versions, from older versions/newer versions and starting all over through steps, but it still failed at same step with busybox. Not sure how to fix it so I thought I would submit an issue, although it might be user error code ID10T, not sure. :)

    opened by wayneburlingame 2
  • Bump terser from 4.8.0 to 4.8.1 in /www-react

    Bump terser from 4.8.0 to 4.8.1 in /www-react

    Bumps terser from 4.8.0 to 4.8.1.

    Changelog

    Sourced from terser's changelog.

    v4.8.1 (backport)

    • Security fix for RegExps that should not be evaluated (regexp DDOS)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump url-parse from 1.4.7 to 1.5.10 in /www-react

    Bump url-parse from 1.4.7 to 1.5.10 in /www-react

    Bumps url-parse from 1.4.7 to 1.5.10.

    Commits
    • 8cd4c6c 1.5.10
    • ce7a01f [fix] Improve handling of empty port
    • 0071490 [doc] Update JSDoc comment
    • a7044e3 [minor] Use more descriptive variable name
    • d547792 [security] Add credits for CVE-2022-0691
    • ad23357 1.5.9
    • 0e3fb54 [fix] Strip all control characters from the beginning of the URL
    • 61864a8 [security] Add credits for CVE-2022-0686
    • bb0104d 1.5.8
    • d5c6479 [fix] Handle the case where the port is specified but empty
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Fix: ncurse 6 and missing lib

    Fix: ncurse 6 and missing lib

    ncurse bundel sources are now based on v6, but links still refers to 5, so end broken. Also, depending on platform used, sometime I found that /usr/lib was instead /usr/lib64, so this check which one to use.

    opened by oxedions 2
Releases(15-Dec-2019)
Educational Operating System

Educational Operating System

Kota UCHIDA 412 Sep 13, 2022
Project for C programming class building a casino that includes blackjack, slots, and scratch offs.

Casino Project for C programming class building a casino that includes blackjack, slots, and scratch offs. Project description This project will requi

Jules Guasp 1 Nov 4, 2021
A unix operating system written from scratch in c++

A unix operating system made from scratch using c++

pranaOS 138 Aug 14, 2022
C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch

C++ OpenGL 3D Game Tutorial Series is a YouTube Tutorial Series, whose purpose is to help all those who want to take their first steps in the game dev

 PardCode 101 Sep 19, 2022
This repo is just for fun while playing with some OOP constructions in C

c-oop This repo is just for fun while playing with some OOP constructions in C. As it is not intended to be of any OOP reference of implementation it

Charly Batista 3 Jun 22, 2021
An embeddable programming language just for fun

hm3 A vapourware minimalist statically typed 'glue language' that can be embedded in C/C++/Rust projects. The implementation aims to capture the essen

null 9 Nov 22, 2021
just a smoll vm in c++14

smoll-vm just a smoll vm in c++14 I am leaving this here, not completly finished, but working. I won't add anything else to it as it was only a test,

Alexandre Plateau 1 Feb 3, 2021
Teach the C programming language using a collection of super beginner friendly tutorials and challenges.

TeachMeCLikeIm5 You are welcome to contribute to this repo. See the CONTRIBUTING.md for more info ?? About this repo ?? A collection of super beginner

inspirezonetech 10 Feb 4, 2022
The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++

The C++ Core Guidelines are a collaborative effort led by Bjarne Stroustrup, much like the C++ language itself. They are the result of many person-years of discussion and design across a number of organizations. Their design encourages general applicability and broad adoption but they can be freely copied and modified to meet your organization's needs.

Standard C++ Foundation 35.5k Sep 19, 2022
chap analyzes un-instrumented core files for leaks, memory growth, and corruption

chap analyzes un-instrumented ELF core files for leaks, memory growth, and corruption. It is sufficiently reliable that it can be used in automation t

VMware 301 Aug 31, 2022
Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable executables. Has a modern C++ wrapper.

memscan Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable

cristei 14 Aug 24, 2022
HMS Core Scene Kit Slim Mesh Demo sample code demonstrates how to invoke external interfaces of SlimMesh to perform mesh simplification.

HMS Core Scene Kit Slim Mesh Demo English | 中文 Table of Contents Introduction Environments Requirements Result License Introduction The Slim Mesh is a

HMS 8 Jul 28, 2022
C++20 Concepts IO library which is 10x faster than stdio and iostream

fast_io fast_io is a new C++20 library for extremely fast input/output and aims to replace iostream and cstdio. It is header-only (module only in the

null 153 Feb 16, 2022
Collaborative Collection of C++ Best Practices.

Collaborative Collection of C++ Best Practices. This online resource is part of Jason Turner's collection of C++ Best Practices resources.

Jason Turner 6.2k Sep 22, 2022
A collection of 1000 C++ Programs

⭐ ⭐ ⭐ 500-CPP ⭐ ⭐ ⭐ A collection of 500 C++ Programs CONTENTS Sl. No. Program Title Link 1 Sum of array elements https://github.com/MainakRepositor/10

MAINAK CHAUDHURI 22 May 30, 2022
Collection of C99 dynamic array implementations

darc darc stands for Dynamic ARray Collection. This repo hosts 3 type-generic C99 implementations : mga (Macro Generated Array) type-safe 0-cost abstr

A.P. Jo. 11 May 5, 2022
A collection of packages for Ultimate++ framework.

upp-components This repository contains supplementary general-purpose packages for Ultimate++, a C++ cross-platform rapid application development fram

İsmail Yılmaz 35 Sep 9, 2022
A custom,multifunctional class template for arrays which supports lambda functions for removing and selecting

C++ Array Template Class This is an implementation of a template class for storing data in any type.It includes user-friendly interface with lots of h

Ozan Armağan 2 Dec 8, 2021
A minimal, toy programming language implemented in C++ and STL.

od Programming Language Mod (or ModLang) is a minimal, toy programming language implemented in C++ and STL (Standard Template Library) with no other e

Pranav Shridhar 26 Apr 28, 2022