หมวดหมู่: Android

linux: ใช้ในมือถือผ่าน Termuxlinux: ใช้ในมือถือผ่าน Termux

การใช้งาน Termux บน Android กับ Linux Terminal มีความใกล้เคียงกันมากในแง่ของความรู้สึก แต่ในทางเทคนิค “ไส้ใน” นั้นแตกต่างกันอย่างสิ้นเชิงครับ ถ้าผ่านการติดตั้งจาก ใช้ Linux ในมือถือ Android ที่ซ่อนอยู่ทุกเครื่อง มาแล้ว จะทำความเข้าในมันเพิ่มกัน


โครงสร้างระบบไฟล์

นี่คือจุดที่ต่างกันมากที่สุดครับ

  • Linux ทั่วไป: ใช้มาตรฐาน FHS เช่น Binary อยู่ที่ /bin, /usr/bin และ Library อยู่ที่ /lib
  • Termux: เนื่องจาก Android ไม่อนุญาตให้แอปทั่วไปเขียนไฟล์ลงใน Root Directory ของระบบได้ Termux จึงต้องเก็บทุกอย่างไว้ใน Private Folder ของแอปเอง ซึ่งมักจะเป็น: $PREFIX หรือ /data/data/com.termux/files/usr/bin
    • ข้อควรระวัง: สคริปต์ที่เขียนแบบ Hard-code เส้นทางไฟล์ เช่น #!/bin/bash อาจจะรันไม่ได้ใน Termux

การจัดการสิทธิ์

  • Linux ทั่วไป: คุณคือพระเจ้าผ่านคำสั่ง sudo สามารถเข้าถึงฮาร์ดแวร์ได้ทุกส่วน
  • Termux: รันภายใต้สิทธิ์ของ “User App” ใน Android
    • ไม่มี sudo โดยเริ่มต้น
    • เข้าถึงไฟล์ใน SD Card หรือ Internal Storage ต้องใช้คำสั่ง termux-setup-storage ก่อน
    • ไม่สามารถจัดการระบบระดับ Kernel หรือแก้ไฟล์ระบบของ Android ได้โดยตรง

การจัดการแพ็กเกจ

  • Linux ทั่วไป: ใช้ apt, dnf, pacman ซึ่งดึงไฟล์จาก Repository ของ Distro นั้น ๆ
  • Termux: ใช้ pkg แต่จะดึงข้อมูลจาก Repository เฉพาะของ Termux เอง ซึ่งแพ็กเกจถูก Compile มาให้รันบน Android โดยเฉพาะ

Library และการคอมไพล์

  • Linux ทั่วไป: ส่วนใหญ่ใช้ GNU C Library
  • Termux: ใช้ Bionic libc
    • ผลคือ: คุณไม่สามารถเอาไฟล์ Binary ที่คอมไพล์จาก Ubuntu มาวางแล้วรันใน Termux ได้ทันที แม้จะเป็นสถาปัตยกรรม CPU เดียวกัน ก็อาจจะติดปัญหาเรื่อง Library ที่ไม่เหมือนกันครับ

ตารางสรุปเปรียบเทียบ

หัวข้อLinux Terminal (Desktop) Termux (Android)
ฐานระบบGNU / LinuxAndroid
Root Accessมี จำกัด
Path หลัก/bin, /usr/bin/data/data/com.termux/files/usr/bin
การแสดงผล GUIรองรับ Native ต้องผ่าน VNC หรือ XServer App เพิ่มเติม
ความเสถียรสูงมาก สำหรับงาน Serverอาจถูก Android OS “ฆ่า Process” ทิ้งได้ถ้าใช้แรมเยอะ

อ่านเพิ่มเติม