আর্কিটেকচার
ternux-এর public technical model। Private Pro deployment implementation প্রকাশ না করে boundary ও failure mode বোঝানো হয়েছে।
Stack
┌─────────────────────────────────────────────────────┐
│ Android │
│ │
│ Termux:X11 app ◀──── X11 display ────┐ │
│ │ │
│ Termux host │ │
│ ├─ display ও audio service │ │
│ ├─ PRoot supervisor │ │
│ └─ optional VirGL service │ │
│ │ │ │
│ └─ PRoot Debian ────────┘ │
│ ├─ Xfce4 desktop │
│ ├─ Debian application │
│ └─ Mesa / Zink / VirGL │
│ │
│ Adreno kernel GPU interface ◀── Turnip path │
└─────────────────────────────────────────────────────┘
Android
Android kernel, hardware driver, app sandbox, power policy ও process limit নিয়ন্ত্রণ করে। ternux Android replace করে না, bootloader unlock করে না এবং root নেয় না। এতে deployment নিরাপদ থাকে, তবে Android যে hardware capability দেয় না, PRoot-ও তা দিতে পারে না।
Termux
Termux host-side Linux environment। এটি PRoot container ও container-এর বাইরে থাকা service coordinate করে। তাই Termux বন্ধ বা suspend হলে Termux:X11 visible থাকলেও desktop session শেষ হতে পারে।
PRoot Debian
PRoot privileged chroot ছাড়া Debian userland দেয়। এটি userspace-এ path ও কিছু system call rewrite করে। অধিকাংশ normal arm64 Debian app চলে, কিন্তু systemd, kernel module, privileged mount ও direct hardware control native Debian-এর সমান নয়।
Termux:X11
Termux:X11 Android display application। এটি X11 session render করে; নিজে Debian desktop নয়। Black বা empty view মানে app সুস্থ থেকেও host service, socket বা Xfce4 session অসুস্থ হতে পারে।
Graphics route
Supported Adreno-তে Zink + Turnip
OpenGL application
│
▼
Zink OpenGL → Vulkan translation
│
▼
Vulkan loader
│
▼
Turnip Adreno-র Mesa Vulkan driver
│
▼
Android / kernel GPU interface
এটি preferred route। প্রতিটি desktop app-এর Android-native build ছাড়াই OpenGL application hardware-backed Vulkan path পায়। Driver, loader ও device visibility—তিনটিকেই একমত হতে হয়; একটি layer missing হলেও desktop খুলতে পারে, কিন্তু CPU-তে render করবে।
অন্য GPU-তে VirGL
OpenGL application
│
▼
virpipe / VirGL
│
▼
host-side VirGL service
│
▼
Android graphics stack
Mali, Xclipse, PowerVR ও Turnip প্রযোজ্য নয় এমন hardware-এর compatibility route হলো VirGL। এটি ধীর হওয়াই স্বাভাবিক। VirGL বেছে নেওয়া failed Adreno setup নয়; non-Adreno hardware Turnip ব্যবহার করতে পারবে—এমন দাবি করাই ভুল।
Audio ও file boundary
Audio Debian application ও Termux-side audio service-এর মধ্যে loopback-only bridge দিয়ে PRoot boundary পার হয়। Loopback binding জরুরি: default হিসেবে mobile workstation-এর unauthenticated audio বা model service local network-এ খোলা থাকা উচিত নয়।
Debian home, Termux home ও Android shared storage আলাদা location। Android app-এর hand-off point হলো shared storage; source code ও irreplaceable project Git বা remote storage-এও রাখা উচিত।
Verified deployment phase
Private Pro implementation নয়টি acceptance boundary ঘিরে সাজানো:
- Device ও application preflight
- Host-side Termux foundation
- Debian/Xfce4 workspace
- GPU-route selection
- Display, audio, locale ও storage integration
- Reliable launch, stop ও recovery control
- Android background-process safeguard
- Renderer ও service acceptance test
- Report, workload selection, baseline ও backup handover
কী verify করা হচ্ছে বোঝাতে sequence-টি public। Exact command, installer module, private endpoint, rollback code ও version-bound operator runbook হলো Pro release material।
State, resume ও recovery
Mobile network বিচ্ছিন্ন হয়, Android process reclaim করে এবং multi-gigabyte download থেমে যায়। Professional deployment interruption-কে expected state হিসেবে দেখে।
- Idempotency: completed phase duplicate configuration না করে check বা re-enter করা যায়।
- Recorded resume: private alpha completed module record করে এবং later run-এ skip করতে পারে।
- Targeted repair: doctor check failure-কে responsible module-এ map করে।
- Verification before progression: core static check আছে; explicit live-session acceptance command-এর real-device Zink/VirGL validation বাকি।
- Transactional rollback: এটি release blocker, current feature নয়। Alpha এখনও প্রতিটি partial module change reverse করতে পারে না।
- Supportable output: failure check, expected result, observed result ও safe next action জানানো উচিত।
Silent failure mode
| Failure | Desktop কেন খুলতে পারে | Acceptance evidence |
|---|---|---|
| Vulkan loader/driver path অসম্পূর্ণ | Mesa CPU rendering-এ fallback করতে পারে | Renderer-এ llvmpipe থাকা চলবে না |
| Update graphics component বদলেছে | Stock Mesa-ও desktop render করে | Known-good baseline-এর সঙ্গে renderer ও toolkit report তুলনা |
| ভুল backend selected | Compatible কিন্তু ধীর route কাজ করতে পারে | GPU evidence ও selected route এক হতে হবে |
| Host-side VirGL service নেই | Software fallback missing service লুকাতে পারে | VirGL service ও renderer check দুটোই pass |
| Android process policy হস্তক্ষেপ | Session প্রথমে চলে, পরে process হারায় | যথেষ্ট দীর্ঘ stability check ও Android policy report |
তাই visible Xfce4 desktop success-এর সংজ্ঞা নয়। Renderer string, service health ও clean second launch বেশি শক্ত evidence।
Workload-এর প্রভাব
- Blender: viewport usefulness graphics route, scene complexity, memory ও thermal অবস্থার উপর নির্ভর করে। Smooth low-poly scene বড় render বা simulation-এর ভবিষ্যদ্বাণী নয়।
- Local AI: Vulkan offload Android ও desktop-এর একই physical memory ও thermal budget ব্যবহার করে।
- Development agent: Tool user environment-এ command চালায়; provider credential ও command approval security boundary-ই থাকে।
- Security tool: PRoot Debian userspace দেয়, unrestricted wireless monitor mode, USB access বা arbitrary kernel capability নয়।
- Sustained compute/mining: একটানা load throttling, battery drain ও wear-এর মুখে পড়ে, তাই recommended target নয়।
Public ও private boundary
Public documentation compatibility, architecture, daily operation, success-এর evidence ও বাস্তব limitation বোঝাবে। Licence secret, live private endpoint, proprietary installer module বা সম্পূর্ণ version-bound deployment recipe এখানে থাকবে না।
Public repository-তে obscure path, noindex tag বা Jekyll exclude source-কে
private করে না। Private Pro documentation access-controlled repository ও
protected delivery channel-এ রাখতে হবে।
ternux — Copyright (c) 2026 Sobuj Miah (@soobujmiah) · MIT