是一套用于 linux 内核学习、开发和测试的即时实验室,可以极速搭建和使用,功能强大,用法简单!
linux lab boot example
经过 3 年多的开发与迭代,linux lab 已经发布了 版,其易用性和功能逐渐强大,非常推荐各位 linux 内核和嵌入式 linux 开发者尝试。
下面列举了十大使用 linux lab 的理由。
省时:节省数周的环境搭建时间
无论是新人还是有经验的老手,搭建 linux 的学习和实验环境都是比较费时费力的,一方面要安装基础系统,一方面要下载各种交叉编译工具,有时候还要去下载最新的源代码。在国内这个大的局域网下,要整完整套环境,少则几天,多则数周,最重要的通常还得多次重复去搭建,不光费时还很繁琐,系统一变更,又得重复做。
linux lab 把这几个工作简化成了三条命令(windows、mac osx 和非 ubuntu linux 系统需要自行安装 docker),数十分钟就可以执行完,而且每次都可以拿到体验一致的环境:
目前 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,并且这些开发板可以反复使用,永远不会坏,而且还有更多板子在持续添加中,用户也可以自己轻松扩展新板子。
更为重要的是,有些开发板在市面上可能根本就买不到,要不不开卖了,要不没地方买。
省心:一致和可预期的操作结果
以往要研究 linux,最害怕的是慢得让人发疯的洲际网络,不知道从哪里才能找到靠谱可用的编译器,抑或是某个版本内核 ok,另外一个版本又不行,或者某个命令又**了,或者是配置不对。
linux lab 不仅提供了一致的环境,还提供了验证好的编译器、qemu 启动脚本、甚至有预编译好的内核和文件系统映像包以及配套的配置文件,而且 linux lab 把所有依赖的资源尽量都迁移到了我们的“局域网”内。
几乎所有的动作都有预先验证过的简单接口,并且都经过了较为充分的测试和验证。能极大程度地降低不确定性带来的恐慌和彷徨,减少苦恼。
几乎所有的板子都添加了串口、网络、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。
小巧:模块化和清晰透明的架构
linux lab 本身被拆分成三大部分:实验环境、实验代码和环境管理,而实验代码又经过精心地设计,避免臃肿。
linux lab 与其他 lab 实例共享环境管理代码:cloud lab,仅需关心自身的实验环境和实验代码,而实验代码部分又尽可能地只保留板级公共代码,板子特定的代码不仅可以作为独立的仓库发布,而且可以独立使用。所以,linux lab 不仅结构清晰,而且代码小巧。
各板级或架构有独立的仓库,并且有独立的 qemu 启动脚本(boot.sh)、内核映像、文件系统映像以及相应配置文件,可以独立使用和参考:
易达:随时随地使用和访问
linux lab 不仅提供了本地的 vnc/ssh 访问方式,而且提供了远程的 webvnc 和 webssh 访问方式,而且提供了内网穿透的功能(需要专属 docker 容器配合),可以类似 teamviewer 那样从外网进入局域网。所以,理论上,搭建完 linux lab,再配合现代路由器或者云服务器,就可以做到,随时随地访问一致的开发环境。
简单地,如果在一台云服务器上运行 linux lab,只需要把外网可访问的服务 ip 地址或者域名写入到 cloud lab 根目录下的 .host_name 即可获得合适的 url 地址:
兼容:三大系统环境下使用几乎一致
linux lab 基于 docker,只要安装有 docker,就可以直接在 linux、mac osx 和 windows 三大系统下使用,并且使用体验几乎一致。
* 依赖特定的 windows 版本,请查看上述文档
* 需要配合 “git bash here” 使用。安装完 后,在任意目录点击鼠标右键可见。
如果是老版本的 windows,可以用 ,也可以通过 virtualbox 或 vmware 自行安装 ubuntu。
通用:支持几乎所有版本的 linux 内核
可以自由切换“任意”内核版本,从 2.6 到 5.4,已经验证的版本从早期的 2.6.35 到 5.2,都提供有相应的配置文件和预编译好的映像:
结合 ,还可以研究"上古时代"的 0.11 等老内核版本。
教学:提供了多种教学辅助功能
linux lab 提供了如下教学辅助功能,适合在高校、培训机构、在线课程等场景下使用:
已经迫不及待了吗?快通过微信加 tinylab 为好友,申请进 “linux lab 用户群” 或 “linux lab 开发群” 吧。
接下来,看看同学们在 arm64 aarch64/virt 板子上运行 5.1 linux 的小视频吧:
阅读(231) | 评论(0) | 转发(0) |