TuxML / tuxml

The main repository of the TuxML project contains the scripts for building Linux kernel configurations in the large.
Apache License 2.0
4 stars 2 forks source link
build compilation configuration kernel linux

TuxML: Machine Learning and Linux Kernel

The goal of TuxML is to predict properties of Linux Kernel configurations (e.g., does the kernel compile? what's its size? does it boot?). The Linux Kernel provides nearly 15000 configuration options: there is an infinity of different kernels. As we cannot compile, measure, and observe all combinations of options (aka configurations), we're trying to learn Linux kernel properties out of samples of configurations. See talk at Embedded Linux Conference Europe in 2019:

Alt
text

You can easily loan your machine and contribute if you want, just copy and paste the line below!

<img align="right" width="100" height="100" src="miscellaneous/informations/tuxml_logo_small.png" alt="TuxML's Logo"/>

The goal of the TuxML team is to develop tools, mainly based on Docker and Python, to massively compile and gather data about thousand of kernel configurations. The TuxML name comes from the combination of Tux, the mascot of the Linux Kernel, and ML for statistical Machine Learning.

I want to help by compiling some Linux kernels!

Requirements : Python3 and Docker are needed (do not forget to start the docker service usually with sudo service docker start).

wget https://raw.githubusercontent.com/TuxML/tuxml/master/kernel_generator.py ; python3 kernel_generator.py --dev 1

Copy this command and run it in a terminal. It will send compilation results to our database. You can modify the 1 parameter to any other number (it's the number of kernels your machine will compile). The python script gives you some other options that you can use, see this page for more.

For a more up-to-date version of TUXML, please consider the dev branch

Build, Docker images

git clone https://github.com/TuxML/tuxml 
cd tuxml 
cd docker_management 
python3 docker_image_tuxml.py -f
docker images 
cd ..
python3 kernel_generator --dev 1 --linux_version 5.8 --tiny

https://gitlab.inria.fr/diverse/docker/container_registry

I want to know more about the project!

Please check our wiki.

Contributors' list

Documentation

Requirements

Generate documentation

Run the following command from the root dir (ProjetIrma)

make doc

Index file of the documentation will be generated in Documenetation/doc/index.html

You can clean the Documentation directory with the following command

make cleandoc

(You can check Documentation's Makefile for more info about the doc generation)

Some commands

Generate local images and run the kernel generator

cd docker_management/; 
python3 docker_image_tuxml.py; 
cd ../; 
python3 kernel_generator.py --dev --local --tiny --logs LOGS 1;

WIPE Docker images and containers /!\ WARNING all docker images and containers will be removed

docker stop $(docker ps -a -q); 
docker rm $(docker ps -a -q); 
docker rmi $(docker images -q);