Top Ten Reasons to Use Linux Lab's

Linux Lab is a real-time laboratory for learning Linux kernel, development and testing, speed can be set up and to use, powerful, it is easy to use!

Linux Lab Boot example

Linux Lab Boot example

After three years of development and iteration, Linux Lab has released v0.2 version of its ease of use and powerful features gradually, so you recommend Linux kernel and embedded Linux developers have tried.

Here are the top ten reasons for the use of Linux Lab.

Save time: save weeks of time environment to build

Whether newcomer or an experienced veteran, to build a Linux learning and experimental environment are relatively time-consuming, on the one hand you want to install the base system, on the one hand you want to download a variety of cross-compiler tools, sometimes even to download the latest source code . In the country this large local area network, to complete the entire set of environments, ranging from a few days to more than a few weeks, most important, usually it has to be repeated several times to build, not only very time-consuming and cumbersome, a system change, they have to repeat .

Linux Lab put a few work simplified to three commands (Windows, Mac OSX and Ubuntu Linux systems require non-self-install Docker), tens of minutes can be executed, and each can get a consistent experience environment:

$ git clone https://gitee.com/tinylab/cloud-lab.git
$ cd cloud-lab
$ tools/docker/run linux-lab

Currently Linux Lab has been on github and gitee cumulative gain more than 500 Stars, and there are hundreds of users, by 500 persons, ie 30 days to save four weeks a rough estimate, Linux Lab has accumulated savings 500 * 30 天 = 15000 天 = 41 年.

Save money: saving money for the purchase cost development board

Up to now, Linux Lab has supported the world's most mainstream and popular five processor architecture (X86, ARM, MIPS, PowerPC, RISC-V), also supports domestic CSKY and Loongson, support 15 of the corresponding development board.

On a per capita a board, a rough calculation ¥ 300 each development board, it has been saved for everyone 500 * ¥300 = ¥150000 = ¥15 万.

For individuals, with Linux Lab, free to use seven existing infrastructure, any 15 of the development board in a cumulative savings 15 * ¥300 = ¥4500, and these boards can be used repeatedly, never bad, but there are more in the continuous addition of multi-board, users can easily expand their new board.

$ make list-short
[ aarch64/raspi3 ]:
      ARCH     = arm64
      LINUX   ?= v5.1
[ aarch64/virt ]:
      ARCH     = arm64
      LINUX   ?= v5.1
[ arm/versatilepb ]:
      ARCH     = arm
      LINUX   ?= v5.1
[ arm/vexpress-a9 ]:
      ARCH     = arm
      LINUX   ?= v5.1
[ i386/pc ]:
      ARCH     = x86
      LINUX   ?= v5.1
[ mipsel/malta ]:
      ARCH     = mips
      LINUX   ?= v5.1
[ ppc/g3beige ]:
      ARCH     = powerpc
      LINUX   ?= v5.1
[ riscv32/virt ]:
      ARCH     = riscv
      LINUX   ?= v5.0.13
[ riscv64/virt ]:
      ARCH     = riscv
      LINUX   ?= v5.1
[ x86_64/pc ]:
      ARCH     = x86
      LINUX   ?= v5.1
[ csky/virt ]:
      ARCH     = csky
      LINUX   ?= v4.9.56
[ loongson/ls1b ]:
      ARCH     = mips
      LINUX   ?= v5.2
[ loongson/ls232 ]:
      ARCH     = mips
      LINUX   ?= v2.6.32-r190726
[ loongson/ls2k ]:
      ARCH     = mips
      LINUX   ?= loongnix-release-1903
[ loongson/ls3a7a ]:
      ARCH     = mips
      LINUX   ?= loongnix-release-1903

More importantly, some boards on the market may simply can not buy, or not started selling, or no place to go.

Peace of mind: a consistent and predictable operating results

To study the past, Linux, most fear is slow people get mad intercontinental network, do not know where to find reliable compiler is available, or is it a version of the kernel ok, another version would not work, or a command and strike, or is not configured.

Linux Lab not only provides a consistent environment, but also provides validation good compiler, Qemu startup scripts, and even pre-compiled kernel and file system image packages and supporting profiles, and Linux Lab try to put all the dependent resources are moved to our "local area network" inside.

  • Linux, the use of Tsinghua Mirror

  • U-boot, Buildroot Mirror codes are used and Qemu cloud

  • Docker mirror, can be used USTC, Ali cloud like Mirror

  • Compiler, each architecture has verified good 2 to 3 models available compilers

  • Kernel and file system, each schema has a version compiled in advance, according to the development board each stored in a separate code cloud repository

Almost all of the action has previously validated a simple interface, and have been a more fully tested and verified. It can greatly reduce the degree of uncertainty panic and uncertainty, resulting in less distress.

Almost all boards have added a serial port, network, LCD driver support, also added from Ramdisk, NFS, disk load the file system function, also added a simple debugging and testing. The user can then do on this high starting point for further customization according to the needs of very worry and effort.

Powerful: Scalable basic computer technology learning environment

Linux Lab is the original intention of learning Linux kernel, but the development has not only can be used to learn the Linux kernel, can also be used to learn C, Assembler, Shell, processor architecture, U-boot, Qemu, etc., but also can be further extended .

In addition, as the infrastructure of Linux Lab, Cloud Lab provides greater scalability, currently only has Lab Examples of such Linux 0.11 Lab, CS630 Qemu Lab, and there are examples of such Lab Markdown Lab, RT-Thread Lab, also similar Add more exclusive Lab environment, there is a huge scalability.

Simple: a unified user interface is simple and easy to remember

Linux Lab to various common operations simple and easy to remember abstract interface, the tedious and time-consuming work behind the details of all the hidden and well optimized, users only need to remember a simple command. And adapt these commands already supported by Linux, U-boot, Buildroot and Qemu.

make Interface effect
*download download
*checkout Detected a version
*patch Patch
*defconfig Enable the default configuration file
*olddefconfig Enabling the old configuration
*menuconfig Open the graphical configuration interface
*save Save the configuration and mirrors
boot By Qemu guide
debug By commissioning Qemu
test By Qemu test

Compact: Modular and clear and transparent framework

Linux Lab itself is split into three parts: test environment, test code and environmental management, while the experiment code has been carefully designed to avoid bloated.

Linux Lab 与其他 Lab 实例共享环境管理代码:Cloud Lab,仅需关心自身的实验环境和实验代码,而实验代码部分又尽可能地只保留板级公共代码,板子特定的代码不仅可以作为独立的仓库发布,而且可以独立使用。所以,Linux Lab 不仅结构清晰,而且代码小巧。

模块 大小
Cloud Lab 8.5M
Linux Lab 7.3M
linux-lab Docker 镜像 4.13G
boards/csky 358M
boards/loongson/ls3a7a/bsp 7.8M
boards/loongson/ls232/bsp 5.0M
boards/loongson/ls1b/bsp 40M
boards/loongson/ls2k/bsp 29M
boards/aarch64/raspi3/bsp 152M
boards/aarch64/virt/bsp 68M
boards/arm/versatilepb/bsp 142M
boards/arm/vexpress-a9/bsp 60M
boards/riscv64/virt/bsp 49M
boards/riscv32/virt/bsp 40M
boards/mipsel/malta/bsp 48M
boards/i386/pc/bsp 23M
boards/x86_64/pc/bsp 20M
boards/ppc/g3beige/bsp 57M

各板级或架构有独立的仓库,并且有独立的 Qemu 启动脚本(boot.sh)、内核映像、文件系统映像以及相应配置文件,可以独立使用和参考:

易达:随时随地使用和访问

Linux Lab 不仅提供了本地的 VNC/SSH 访问方式,而且提供了远程的 WebVNC 和 WebSSH 访问方式,而且提供了内网穿透的功能(需要专属 Docker 容器配合),可以类似 teamviewer 那样从外网进入局域网。所以,理论上,搭建完 Linux Lab,再配合现代路由器或者云服务器,就可以做到,随时随地访问一致的开发环境。

$ tools/docker/release linux-lab
LOG: Current Lab is linux-lab
Lab: linux-lab-60029, User: ubuntu
  * VNC (Normal): http://localhost:6080/?u=7827c9&p=chln3p
  * VNC   (View): http://localhost:6080/?r=7827c93tsrkd
  * SSH    (Web): http://localhost:4433/?ssh=ssh://ubuntu:[email protected]:22

LOG: Released to: /media/falcon/develop/cloud-lab/releasings/index.html
LOG: Labs online: http://localhost:6080/labs/index.html

简单地,如果在一台云服务器上运行 Linux Lab,只需要把外网可访问的服务 IP 地址或者域名写入到 Cloud Lab 根目录下的 .host_name 即可获得合适的 URL 地址:

$ cd /path/to/cloud-lab
$ echo example.com > .host_name
$ tools/docker/release linux-lab
LOG: Current Lab is linux-lab
Lab: linux-lab-60029, User: ubuntu
  * VNC (Normal): http://example.com:6080/?u=7827c9&p=chln3p
  * VNC   (View): http://example.com:6080/?r=7827c93tsrkd
  * SSH    (Web): http://example.com:4433/?ssh=ssh://ubuntu:[email protected]:22

LOG: Released to: /media/falcon/develop/cloud-lab/releasings/index.html
LOG: Labs online: http://example.com:6080/labs/index.html

兼容:三大系统环境下使用几乎一致

Linux Lab 基于 Docker,只要安装有 Docker,就可以直接在 Linux、Mac OSX 和 Windows 三大系统下使用,并且使用体验几乎一致。

如果是老版本的 Windows,可以用 Docker Toolbox,也可以通过 Virtualbox 或 Vmware 自行安装 Ubuntu。

通用:支持几乎所有版本的 Linux 内核

可以自由切换“任意”内核版本,从 2.6 到 5.4,已经验证的版本从早期的 2.6.35 到 5.2,都提供有相应的配置文件和预编译好的映像:

$ ls boards/*/*/bsp/kernel/ | grep -v riscv | sort -u
v2.6.35
v2.6.35.14
v2.6.36
v2.6.37
v3.10
v3.18.39
v4.19
v4.5.5
v4.6.7
v5.0.10
v5.0.13
v5.0.21
v5.1
v5.2

结合 Linux 0.11 Lab,还可以研究"上古时代"的 0.11 等老内核版本。

教学:提供了多种教学辅助功能

Linux Lab 提供了如下教学辅助功能,适合在高校、培训机构、在线课程等场景下使用:

  • 提供了 Normal 和 Viewonly 这两种访问方式,可以互动,也可以广播,适合多种教学场景

  • 允许一键创建任意多个独立的 Lab 实体,允许多个学生同时使用

  • It provides a variety of experimental process of recording tools, including tools showterm recording and desktop recording tool command line: showdesk.io

I can not wait? Quick as a friend, to apply into "Linux Lab user group" or "Linux Lab Development Group", right through micro letter plus tinylab.

Next, look at the students run the 5.1 Linux small video of it on arm64 aarch64 / virt board:

http://showterm.io/6260970951ad23fe18edb

Guess you like

Origin www.oschina.net/news/112229/why-linux-lab