Linux Lab is a set of real-time labs for Linux kernel learning, development and testing. It can be built and used extremely quickly, with powerful functions and simple usage!
You can use it to efficiently learn processor architecture, Linux kernel, embedded Linux system, C language programming, Linux assembly, Shell programming, etc.
Already eager to try? ! Come take a look:
If you want to learn Linux 0.11 kernel and Linux X86 assembly language, you can also visit two other Labs, namely Linux 0.11 Lab and CS630 Qemu Lab .
Community dynamics
Open Source China is organizing the "2020 OSC China Open Source Project Selection" activity. All students who care about and support Linux Lab are welcome to vote for their support.
-
Voting address
-
project address
Just log in to WeChat to vote, and add a Star to the project address.
new version update
Linux Lab released the official version v0.5 at the end of September , and simultaneously released Cloud Lab v0.3.
This release of v0.6 rc1 further improves the new image based on Ubuntu 20.04, and simultaneously updates Cloud Lab to v0.4 rc1.
A total of 38 changes this time:
// linux lab
$ git log --pretty=oneline v0.5..HEAD | wc -l
27
// cloud lab
$ git log --pretty=oneline v0.3..HEAD | wc -l
11
The main updates are as follows:
Cloud Lab
-
Fix wsl2 support
-
New
tools/docker/resize
, allow to modify the screen size of webvnc at runtime
Linux Lab
-
Fix the BSP package download function in the plugin
- Fix kernel compilation problem of x86 architecture
-
Timeconst.pl error caused by perl version upgrade
-
Conflict between two compilation options caused by gcc version upgrade
-
-
Fix a configuration problem of tool chain CCORI
-
Fix Uboot boot problem of aarch64/virt development board
-
Fix a rootdir build problem
-
Fix the display problem of modules list result
-
Upgrade mips64el/ls3a7a buildroot to 2020.08
Environmental preparation
On non-Ubuntu platforms, please install docker yourself in advance, please refer to Docker for Mac and Docker for Windows .
If it is an old version of Windows, you can use Docker Toolbox , or you can install Ubuntu by yourself through Virtualbox or Vmware.
Domestic students please be sure to use domestic Docker mirror service, otherwise you can not download the image properly, recommended reference Ali cloud mirroring configuration file .
The following link is the host environment where you have successfully run Linux Lab, welcome to refer to it, and welcome to register after installation.
Speed experience
This version relies on the latest Cloud Lab and docker images:
$ git clone https://gitee.com/tinylab/cloud-lab.git
$ cd cloud-lab
$ tools/docker/pull linux-lab # 确保更新 docker 镜像
$ tools/docker/run linux-lab
If you have already downloaded it, please update to the latest version and restart Linux Lab:
$ cd cloud-lab && git pull
$ pushd labs/linux-lab && git pull && popd
$ tools/docker/rerun linux-lab
After entering, open the console and type the following command to start a board (automatically download the pre-compiled version):
$ make boot
One-click compilation and startup (automatically download source code, check out version, patch, configure, compile):
$ make boot BUILD=kernel
The default is arm/vexpress-a9
that if you want to use the Loongson board, you can simply switch:
$ make BOARD=mipsel/ls1b
$ make boot
Key features
Linux Lab has the following features:
-
It supports three major operating systems (Windows, MacOS, Linux), and can be easily used under these three operating systems.
-
Support 7+ large processor architecture (X86, ARM, MIPS, PPC, CSKY, RISC-V, LOONGSON), among which LOONGSON and CSKY are domestic processors.
-
Support 16+ development boards (i386/pc, x86_64/pc, arm/versatilepb, arm/vexpress-a9, ppc/g3beige, mips/malta, aarch64/virt, aarch64/raspi3, riscv32/virt, riscv64/virt, csky /virt, loongson/ls1b, loongson/ls2k, loongson/ls232, loongson/ls3a7a).
-
Supports 5 login methods (docker, ssh, vnc, webssh, webvnc), which can be accessed locally or remotely.
-
It integrates 5 major components (Qemu, U-boot, Buildroot, Linux, Toolchain), all have pre-compiled versions.
-
Built-in 5 major platforms, a total of 10 Hello World assembly language routines, 32-bit and 64-bit, see
examples/assembly
. -
Can learn processor instruction set, Qemu, Shell, assembly, C, Linux kernel, embedded Linux.
-
Support Debugging and Testing.
-
Host & guest are free of root use on both sides.
More information :
-
Project Home
-
Homepage: http://tinylab.org/linux-lab
-
-
Project community
-
Contact WeChat: tinylab
-
Contact number: Taixiao Technology
-
Linux Lab User Exchange Group
-
Linux Lab developer
-
-
Project warehouse
-
Project plugin
-
CSKY (Zhongtian Micro): https://gitee.com/tinylab/csky
-
LOONGSON (Loongson): https://gitee.com/loongsonlab/loongson
-
-
Video tutorial
- Video presentation
-
Basic usage: Linux quick start
-
Learn assembly: AT&T assembly get started
-
Learn Uboot: Uboot quick start
-
ARM development: run Ubuntu 18.04 LTS on arm/vexpress-a9
-
RISC-V development: use riscv32/virt and riscv64/virt development boards
-
Loongson Development: Use Loongson ls2k platform on Linux Lab
-
Feature development: test and experience a certain kernel feature with one command
-
Module development: configure, compile and test kernel modules with one command
-
Kernel debugging: self-test video of debugging functions of all boards
-
Kernel Test: Self-test video of the startup process of all current preset boards
-
The project is completely open source and released under the GPL 2.0 agreement. All universities, enterprises, and individual users are welcome to use or participate in the development.
Welcome to contact us through tinylab. After contacting, you can be invited to the Linux Lab user exchange group and Linux Lab developer group . You will also receive Linux Lab installation documents and Linux Lab conference presentation slides.