Linuxのラボは Linuxカーネルの開発とテストを学習するためのリアルタイムの研究室で、スピードを設定することができ、使用する、強力な、それは使いやすいです!
Linuxのブート・ラボの例
開発および反復の3年後、LinuxのLabはリリースしましたv0.2デベロッパーのは、Linuxカーネルをお勧めしますので、徐々に使用して強力な機能の容易さのバージョンを、組み込みLinux開発者は、試してみました。
ここではLinuxのラボの使用のためのトップ10の理由があります。
時間割引:ビルドに時間環境の週間保存
新人や経験豊富なベテランかどうかは、一方では、あなたがクロスコンパイラのさまざまなツールをダウンロードしたい一方で、基本システムをインストールする、比較的時間がかかるのLinux学習や実験環境を構築するために時には最新のソースコードをダウンロードするには。国では、この大規模なローカル・エリア・ネットワーク、数日以上から数週間に及ぶ、環境の全体のセットを完了するために、最も重要なのは、通常、それは、非常に時間がかかり、面倒なだけでなく、ビルドに数回繰り返されるためにシステム変更を持って、彼らは繰り返す必要が。
Linuxの研究室では、数十分が、実行することができる3つのコマンド(Windows版、Mac OSXおよびUbuntu Linuxの非自己インストールドッカーを必要とするシステム)に簡略化され、いくつかの仕事を入れて、それぞれが一貫した環境を得ることができます:
$ git clone https://gitee.com/tinylab/cloud-lab.git
$ cd cloud-lab
$ tools/docker/run linux-lab
現在、4週間に大まかな見積もりを保存するために、すなわち500名、30日までに、Linuxのラボはgithubのとgitee累積ゲイン500以上のスターにされている、と数百人のユーザーが存在し、Linuxのラボは、貯蓄を蓄積してきました500 * 30 天 = 15000 天 = 41 年
。
保存お金:購入コストの開発ボードのためのお金を節約
今までは、Linuxのラボは、世界で最も主流と人気のある5つのプロセッサアーキテクチャをサポートしてきました(X86、ARM、MIPSは、PowerPCの、RISC-V)、また国内CSKYとのLoongson、対応する開発ボードのサポート15をサポートしています。
一人当たりではボード、概算¥300各開発ボードは、それは皆のために保存されています500 * ¥300 = ¥150000 = ¥15 万
。
個人の場合は、Linuxのラボで、無料で7つの既存のインフラストラクチャ、累積貯蓄の開発ボードのいずれかの15を使用する15 * ¥300 = ¥4500
と、これらのボードを繰り返し、決して悪い使用することができますが、そこにあるよりマルチボードの連続添加では、ユーザーが簡単に自分の新しいボードを拡張することができます。
$ 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
さらに重要なことは、市場にいくつかのボードは、単に購入しない、または販売、または行く場所がないを開始することができないことがあります。
心の平和:一貫性と予測可能な業績
過去を研究するために、Linuxは、ほとんどの恐れが遅い人は怒っ大陸間ネットワークを取得している、信頼性の高いコンパイラを見つけることは可能ですか、それはカーネルOKのバージョンですかわからない、別のバージョンは仕事、またはコマンドではないだろうとストライキ、または構成されていません。
Linuxのラボは、一貫性のある環境を提供するだけでなく、すべての依存リソースを置くために、検証良いコンパイラ、QEMUの起動スクリプト、さらにはプリコンパイルされたカーネルとファイルシステムイメージのパッケージとサポートのプロファイル、およびLinuxラボの試みをしている提供するだけでなく、私たちの「ローカルエリアネットワーク」の内側に移動しました。
-
Linuxでは、清華ミラーの使用
-
U-ブーツ、Buildrootミラーコードが使用され、QEMU雲
-
ドッカーミラーは、USTC、鏡のようなアリクラウドを使用することができます
-
コンパイラ、各アーキテクチャは、優れた2〜3機種利用できるコンパイラを確認しました
-
カーネルおよびファイルシステムは、各スキーマは別々のコードクラウドレポジトリに格納された各基板の開発によれば、事前にコンパイルされたバージョンを有しています
ほとんどすべてのアクションのは、以前にシンプルなインターフェイスを検証した、そしてより完全にテストおよび検証されています。これは大幅少ない苦痛をもたらす、不確実性のパニックおよび不確実性の程度を低減することができます。
ほとんどすべてのボードは、単純なデバッグおよびテストを追加し、また、RAMディスク、NFSから追加シリアルポート、ネットワーク、LCDドライバサポート、ディスク負荷ファイルシステム機能を追加しました。その後、ユーザは非常に心配と労力のニーズに応じてさらにカスタマイズするために、この高い出発点に行うことができます。
パワフル:スケーラブルな基本的なコンピュータ技術の学習環境
Linuxのラボは、学習のLinuxカーネルの本来の意図ですが、開発が唯一のLinuxカーネルを学ぶために使用することができていない、等もC、アセンブラ、シェル、プロセッサアーキテクチャ、U-ブーツ、QEMUを学ぶために使用することができますが、さらに拡張することができます。
加えて、Linuxのラボのインフラとして、クラウド・ラボは、より大きなスケーラビリティを提供し、現在は同様のも、このようなLinuxの0.11ラボ、CS630 QEMUラボ、およびそのようなラボ値引きラボの例があり、RTスレッドラボのラボ例を有しますより多くの排他的なラボ環境を追加し、巨大なスケーラビリティがあります。
-
0.11ラボのLinux、Linuxカーネルを学習するためのバージョン0.11
-
QEMUラボCS630 LinuxのAT&Tアセンブリ言語を学習するため、
-
スレッドラボ-RT、国内のRT-スレッドOSの研究
-
ラボ値下げは、学習や記法を使用するため、書き込み記事、スライド、履歴書や書籍に使用することができます
シンプル:統一ユーザーインターフェイスはシンプルで覚えやすいです
抽象インタフェースを覚えて、シンプルで使いやすい様々な一般的な操作にLinuxのラボ、すべての隠された、よく最適化の詳細背後に面倒で時間のかかる作業は、ユーザーが単純なコマンドを覚えておく必要があります。そして、すでにLinuxでは、U-ブーツ、BuildrootとQEMUでサポートされているこれらのコマンドを適応させます。
インターフェースを作ります | 効果 |
---|---|
*ダウンロード | ダウンロード |
*チェックアウト | バージョンを検出しました |
*パッチ | パッチ |
* defconfig | デフォルトの設定ファイルを有効にします |
* olddefconfig | 古い設定を有効にします |
* menuconfigを | グラフィカルな設定インターフェイスを開き |
*セーブ | コンフィギュレーションと鏡保存 |
ブート | QEMUガイドにより、 |
デバッグ | QEMUを委託することで |
テスト | QEMU試験による |
コンパクト:モジュラー澄んだ透明なフレームワーク
実験コードは慎重に肥大化を避けるように設計されているが、テスト環境、テストコードと環境管理:Linuxのラボ自体は、3つの部分に分かれています。
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 三大系统下使用,并且使用体验几乎一致。
-
Docker for Windows * 依赖特定的 Windows 版本,请查看上述文档 * 需要配合 “Git Bash Here” 使用。安装完 Git for 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 实体,允许多个学生同时使用
-
これは、ツールshowterm記録やデスクトップ記録ツールのコマンドラインを含む記録ツールの実験プロセスの様々な、提供しています。showdesk.io
私は待つことができませんか?クイック友人として、右のマイクロ手紙プラスtinylabを通じて、「Linuxのラボユーザーグループ」または「Linuxのラボ開発グループ」に適用します。
次に、生徒たちを見てみると、arm64 aarch64 /のvirtボード上のそれの5.1 Linuxの小さなビデオを実行します。