#Android--使用Android手机运行一个完整Ubuntu系统(无需ROOT,非虚拟机)

#Android--使用Android手机运行一个完整Ubuntu系统(无需ROOT,非虚拟机)

引言

        俗话说得好,Linux不是Android,但Android却天生是Linux。本文将介绍一种方法,可以使用Android手机运行一个完整的Linux系统。
        前提:Android系统版本大于7.1.


相关技术介绍

        首先了解一下这种技术的原理。当前大火的Docker相信大家或多或少都听说过,这是一种容器技术,不同于虚拟机,容器能够在一定程度上实现环境隔离,但其性能远高于虚拟机。有关Docker的技术感兴趣的同学可以自行学习,这里我们介绍一种和Docker使用类似技术的Chroot。
        容器技术从1979年 Chroot 的首次问世便已崭露头角。维基百科对 Chroot 的定义如下:
        Chroot 是在 Unix 和 Linux 系统的一个操作,针对正在运行的软件进程和它的子进程,改变它外显的根目录。一个运行在这个环境下,经由 Chroot 设置根目录的程序,它不能够对这个指定根目录之外的文件进行访问动作,不能读取,也不能更改它的内容。
        通俗地说 ,Chroot 就是可以改变某进程的根目录,使这个程序不能访问目录之外的其他目录,这个跟我们在一个容器中是很相似的,但这种隔离程度比容器更低。
        但 Chroot 有一个很明显的缺点,即需要 root 权限。针对此问题,产生了一种新的技术:PRoot。
        PRoot是一个能在用户空间内运行的程序, 功能类似于 Chroot,在由于缺少root权限而无法使用chroot的情况下尤其有用。有关 PRoot 的详细介绍见如下链接:
        https://wiki.termux.com/wiki/PRoot


使用方法

        1、下载软件 Termux ,这是一个在 Android 系统上功能强大的终端模拟工具。
        2、安装启动后,依次执行以下命令:

pkg update
# 安装 proot
pkg install proot-distro
# 使用 proot 安装 ubuntu
proot-distro install ubuntu
# 安装 ssh 服务
pkg install openssh
# 启动 ssh 服务
sshd
# 设置自动自动 ssh 并进入ubuntu
echo -e "sshd\nproot-distro login ubuntu" > ~/.bashrc

        3、至此,安装完成,方便的同学,可以使用 putty 等工具远程连接,不同于正常 ssh,其端口号为 8022。但需先使用 whoami 命令当前用户名,使用 passwd 命令设置密码。


写在最后

为什么不直接使用 Termux,而是再使用 proot 启动一个 ubuntu?
        因为 Termux 所提供的环境并不完整,很多常用软件,如 gcc,jdk 等无法安装。
        
这是不是套了两层(Android 套 Termux,Termux 套 Ubuntu)?会不会导致性能很低?
        如 相关技术介绍 中所述,Termux只是一个终端模拟器,并没有任何中间层,而 proot 也只是改变进程根目录,proot 的隔离程度比容器更低,其带来的性能损耗基本可以忽略不计。如果你愿意,可以在里面再套一层 Docker ~~
        
有什么用?
        没什么用~
        
        如果需要安装 numpy,请安装 numpy 1.19.4 版本,否则import 的时候会出错。

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值