最新公告
  • 欢迎您光临Go破解,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 十大使用 Linux Lab 的理由:内核和嵌入式开发

    Linux Lab 是一套用于 Linux 内核学习、开发和测试的即时实验室,可以极速搭建和使用,功能强大,用法简单!

    Linux Lab Boot example

    经过 3 年多的开发与迭代,Linux Lab 已经发布了 v0.2 版,其易用性和功能逐渐强大,非常推荐各位 Linux 内核和嵌入式 Linux 开发者尝试。

    下面列举了十大使用 Linux Lab 的理由。

    省时:节省数周的环境搭建时间

    无论是新人还是有经验的老手,搭建 Linux 的学习和实验环境都是比较费时费力的,一方面要安装基础系统,一方面要下载各种交叉编译工具,有时候还要去下载最新的源代码。在国内这个大的局域网下,要整完整套环境,少则几天,多则数周,最重要的通常还得多次重复去搭建,不光费时还很繁琐,系统一变更,又得重复做。

    Linux Lab 把这几个工作简化成了三条命令(Windows、Mac OSX 和非 Ubuntu Linux 系统需要自行安装 Docker),数十分钟就可以执行完,而且每次都可以拿到体验一致的环境:

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

    目前 Linux Lab 已经在 github 和 gitee 上收获累计 500 多个 Stars,并有数百人的用户群,按 500 人,每人节省 4 周即 30 天粗略估算,Linux Lab 已经累计节省了 500 * 30 天 = 15000 天 = 41 年。

    省钱:节省不菲的开发板购买费用

    截止到目前,Linux Lab 已经支持世界上最主流和流行的 5 大处理器架构(X86、ARM、MIPS、PowerPC、RISC-V),也支持国产的 CSKY 和 Loongson,支持 15 款相应的开发板。

    按人均一块板子,每块开发板 ¥300 粗略计算,已经为大家节省了 500 * ¥300 = ¥150000 = ¥15 万。

    对于个人而言,有了 Linux Lab,可以自由使用现有的 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 Lab 不仅提供了一致的环境,还提供了验证好的编译器、Qemu 启动脚本、甚至有预编译好的内核和文件系统映像包以及配套的配置文件,而且 Linux Lab 把所有依赖的资源尽量都迁移到了我们的“局域网”内。

    • Linux,采用清华的 Mirror
    • U-boot, Buildroot 和 Qemu 都采用码云的 Mirror
    • Docker 镜像,可采用 USTC、阿里云等 Mirror
    • 编译器,每个架构有验证好 2~3 款可用的编译器
    • 内核和文件系统,每个架构都有提前编译好的版本,按开发板各自存放在独立的码云仓库中

    几乎所有的动作都有预先验证过的简单接口,并且都经过了较为充分的测试和验证。能极大程度地降低不确定性带来的恐慌和彷徨,减少苦恼。

    几乎所有的板子都添加了串口、网络、LCD 驱动支持,也添加了从 Ramdisk、NFS、磁盘 加载文件系统功能,还添加了简洁的调试和测试功能。用户可以在这个很高的起点上再根据需求做进一步的客制化,非常省心省力。

    强大:可扩展的计算机基础技术学习环境

    Linux Lab 的初衷是学习 Linux 内核,但是发展至今,不仅可以用来学习 Linux 内核,还可以用来学习 C、汇编、Shell、处理器架构、U-boot、Qemu 等,而且还可以做进一步的扩展。

    另外,作为 Linux Lab 的基础设施,Cloud Lab 提供了更大扩展性,目前不仅有 Linux 0.11 Lab, CS630 Qemu Lab 这样的 Lab 实例,而且有 Markdown Lab, RT-Thread Lab 这样的 Lab 实例,还可以类似添加更多的专属 Lab 环境,有巨大的可扩展能力。

    简洁:统一简单易记的操作接口

    Linux Lab 把各种常见操作抽象为简单易记的接口,把背后繁琐的细节和费时的工作全部隐藏并且优化好,用户只需要记住简单的命令即可。并且这些命令适应已经支持的 Linux、U-boot、Buildroot 和 Qemu。

    make 接口 作用
    *download 下载
    *checkout 检出某个版本
    *patch 打补丁
    *defconfig 使能默认配置文件
    *olddefconfig 启用老的配置
    *menuconfig 打开图形配置界面
    *save 保存配置和镜像
    boot 通过 Qemu 引导
    debug 通过 Qemu 调试
    test 通过 Qemu 测试

    小巧:模块化和清晰透明的架构

    Linux Lab 本身被拆分成三大部分:实验环境、实验代码和环境管理,而实验代码又经过精心地设计,避免臃肿。

    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:tffsm7@172.17.0.3: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:tffsm7@172.17.0.3: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 boardsbsp/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

    接下来,看看同学们在 arm64 aarch64/virt 板子上运行 5.1 Linux 的小视频吧:

    http://showterm.io/6260970951ad23fe18edb

    1,本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除!
    3,如果你也有好的源码或者教程,可以投稿到本站,分享有金币奖励和额外的收入!
    4,本站提供的软件,源码,游戏,其他资源部不包含技术服务请大家谅解!
    5,如有链接无法下载,请联系站长处理!
    6,申明:本站资源出售只是赞助,仅用于本站服务器和日常运营所需!不提供任何技术支持。
    7,如压缩包提示有密码,默认解压 密码为‘gopojie.com’,如遇到无法解压的可以联系站长(GoPoJie#126.com注意:#改成@)!
    8,特别声明:破解产品仅供参考学习,不提供技术支持,如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知!!
    狗破解-Go破解|GoPoJie.COM » 十大使用 Linux Lab 的理由:内核和嵌入式开发

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    Go破解(www.gopojie.com)售后特别申明:
    特别声明:破解产品仅供参考学习,不提供技术支持,如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知!!

    发表评论

    • 1490会员总数(位)
    • 4830资源总数(个)
    • 234本周发布(个)
    • 0 今日发布(个)
    • 362稳定运行(天)

    提供最优质的资源集合

    关于我们 免责申明
    升级SVIP尊享更多特权立即升级