- Google menambahkan dukungan RISC-V ke AOSP untuk memperluas Android ke arsitektur CPU baru, dan sedang memperluasnya dari tahap eksperimen ke kolaborasi ekosistem
- Dukungan awal berfokus pada penyelarasan set fitur yang diperlukan untuk implementasi performa yang diharapkan Android, dengan profil rva22 serta ekstensi vector dan vector crypto sebagai acuan
- Saat ini Android untuk RISC-V sudah dapat dibangun, diuji, dan dijalankan dengan Cuttlefish, tetapi backend ART dan optimasi compiler belum berada pada tahap selesai
- Pada akhir 2023, NDK ABI diperkirakan akan difinalisasi dan build canary CI publik akan tersedia; pada 2024 direncanakan emulator publik untuk pengujian berbagai form factor
- Karena porting Android saja tidak cukup, Google juga menyiapkan lingkungan pengembangan aplikasi bersama RISE Project, RISC-V International, serta komunitas toolchain dan library pendukung
Dukungan RISC-V yang Hadir di Android
- Android adalah sistem operasi open source yang mendukung berbagai jenis perangkat dan arsitektur CPU, dan kini menambahkan RISC-V sebagai target platform baru
- RISC-V adalah arsitektur set instruksi (ISA) gratis dan terbuka, sebuah pendekatan untuk membawa cara kolaborasi lintas industri dalam software open source ke ekosistem hardware
- Setelah dibuat di UC Berkeley 10 tahun lalu, RISC-V cepat diadopsi di ranah embedded dan microcontroller, dan belakangan meluas ke accelerator, server, dan komputasi mobile
Dari Penerimaan Patch ke Tahap Pematangan Dukungan
- Pada RISC-V Summit November 2022, Google mengumumkan bahwa mereka mulai menerima patch RISC-V untuk Android
- Saat ini, Google telah bergerak melampaui sekadar menerima patch menuju tahap pematangan dukungan RISC-V di Android
- Karena RISC-V adalah ISA modular dengan banyak ekstensi opsional, set fitur wajib awal perlu ditentukan agar dapat menghasilkan performa tinggi yang diharapkan di Android
- Acuannya mencakup profil rva22
- Ekstensi vector dan vector crypto juga termasuk
Lingkungan AOSP yang Dapat Dibangun dan Dijalankan Secara Lokal
- Dukungan Android untuk RISC-V dapat dibangun, diuji, dan dijalankan di mesin lokal dengan Cuttlefish Virtual Device, seperti target platform AOSP lainnya
- Kode terkait dapat dilihat di google/android-riscv64
- Contoh menjalankannya adalah sebagai berikut
$ lunch aosp_cf_riscv64_phone-userdebug
$ m -j
$ launch_cvd -cpus=8 -memory_mb=8192
- Perangkat yang sedang berjalan dapat dihubungkan dan digunakan secara interaktif dengan vncviewer
Tugas Optimasi yang Masih Tersisa
- Patch saat ini memungkinkan pengalaman dasar Android Open Source Project untuk dibangun dan dijalankan, tetapi belum sepenuhnya teroptimasi
- Pengerjaan backend optimasi ART pada Android Runtime masih berlangsung
- AOSP, proyek eksternal, dan compiler juga belum mencapai tingkat menghasilkan kode yang sepenuhnya teroptimasi dan ringkas sambil memanfaatkan ekstensi terbaru yang telah diratifikasi
- Tujuan pada tahap ini lebih dekat untuk memungkinkan eksperimen dan kolaborasi daripada menyediakan lingkungan produk yang sudah final
Pengujian Developer dan Roadmap Emulator
- Pada akhir 2023, NDK ABI diperkirakan akan difinalisasi
- Build canary juga akan segera tersedia di CI publik Android
- Google berencana mendukung eksekusi RISC-V di x86-64 dan ARM64 agar aplikasi Android riscv64 dapat diuji dengan lebih mudah di mesin host
- Pada 2024, direncanakan emulator publik dengan set fitur lengkap untuk menguji aplikasi pada berbagai form factor perangkat
- Menurut pengumuman kolaborasi dengan Qualcomm, form factor pertama diperkirakan adalah wearable
Kolaborasi Ekosistem dan RISE Project
- Porting sistem operasi Android itu sendiri saja tidak cukup; kesiapan ekosistem software di sekitarnya juga diperlukan
- Google sedang berkolaborasi dengan komunitas dan RISE
- RISE Project dibuat untuk mempercepat ketersediaan software pada core prosesor RISC-V berperforma tinggi dan hemat daya yang menjalankan sistem operasi tingkat tinggi
- Cakupannya tidak hanya Android, tetapi juga Linux dan sistem operasi lainnya
- Domain aplikasi yang ditargetkan juga mencakup komputasi performa tinggi
- Perusahaan yang berpartisipasi adalah Andes, Google, Intel, Imagination Technologies, MediaTek, Nvidia, Qualcomm Technologies, Red Hat, Rivos, Samsung, SiFive, T-Head, dan Ventana
Standardisasi dan Jalur Kontribusi
- Google terus memperluas investasinya di RISC-V International, melampaui keanggotaan Premium yang sudah ada dan partisipasi di dewan direksi
- Berbagai kontributor memegang peran kunci di horizontal committee, working group, dan technical committee, serta berpartisipasi dalam perancangan dan ratifikasi spesifikasi
- Dukungan RISC-V di Android bergantung pada kontribusi yang luas, mulai dari LLVM toolchain hingga library pendukung dasar
- Resource utama untuk kontribusi dan pengujian adalah sebagai berikut
- google/android-riscv64: menyediakan cara membangun dan menguji dukungan RISC-V di Android, issue yang diketahui, serta peluang kontribusi ke AOSP, toolchain, dan library pendukung
- RISC-V Android SIG: mailing list untuk memeriksa perkembangan serta memberikan usulan dan feedback
- Google sedang mencari cara agar developer Android yang menulis kode native dapat menargetkan platform baru dengan mudah, sebagaimana developer Java dan Kotlin menargetkan platform baru
1 komentar
Komentar Hacker News
Apakah mereka benar-benar mengharapkan para developer untuk bersiap? Pendekatannya keliru. Seperti yang dilakukan Apple saat transisi M1, idealnya pekerjaan dasar harus mendekati nol, lalu optimasi opsional bisa dilakukan setelahnya
Tinggal ingat saat Google pernah meminta aplikasi Android diuji di x86, lalu kemudian juga di MIPS. Pada akhirnya tidak terjadi apa-apa, dan para developer tidak akan membuang waktunya
Apple menyewakan sistem DTK seharga 500 dolar agar developer bisa mencoba perangkat keras ARM dan mem-porting aplikasi mereka. Jelas itu jauh dari nol pekerjaan, perangkat kerasnya juga harus dikembalikan, dan pada awalnya bahkan tidak ada kredit 500 dolar untuk dipakai membeli produk rilis. Baru diperbaiki setelah muncul penolakan yang sudah bisa diperkirakan
Sebaliknya, Google menyediakan emulator perangkat lunak, jadi jauh lebih mudah ditangani dan tidak perlu logistik perangkat yang rumit. Yang benar-benar perlu melakukan persiapan adalah orang yang membuat aplikasi NDK atau yang mendukung perangkat keras RISC-V
Aplikasi Java/Kotlin tidak perlu di-porting, jadi menurut saya ini nyaris nol pekerjaan
MIPS tampaknya tidak pernah benar-benar didorong keras oleh Google, lebih sekadar ada saja
Lagi pula, artikel ini lebih ditujukan ke produsen perangkat daripada developer aplikasi, karena membahas build AOSP dan patch yang masih menunggu. Ini bukan tulisan yang meminta developer aplikasi melakukan sesuatu, malah di bagian akhir tertulis “kami akan melihat cara agar developer Android native dapat semudah developer Java dan Kotlin saat menargetkan platform baru”
x86 masih banyak dipakai berkat Chromebook. Jika tidak memakai NDK, tidak ada hal yang perlu dilakukan developer karena target baru ini
“you” di sini mengikuti ungkapan pada judul, bukan merujuk ke orang tertentu
Apakah ini berarti ekstensi C yang sangat ditentang Qualcomm akan dibutuhkan?
Untuk subthread terkait, lihat https://news.ycombinator.com/item?id=37996820
Dokumen terbaru Qualcomm adalah https://lists.riscv.org/g/tech-profiles/attachment/400/0/AOS..., dan mereka mengklaim bahwa ekstensi Zics usulan mereka yang “membuat RISC-V agak mirip aarch64” serta long jump 32-bit menghasilkan kepadatan kode yang lebih baik daripada RV64GC, tanpa kekurangan ekstensi C yang selama ini terus mereka persoalkan
Jika Qualcomm memutuskan membuat RISC-V Snapdragon tanpa ekstensi C, sulit membayangkan bagaimana aplikasi Android NDK yang memakai ekstensi itu akan berjalan. Kecuali ada semacam trap-and-emulate atau mekanisme serupa, performanya pasti akan sangat lambat
Jika Google mewajibkan RV64GC atau RV64G_Zics, mungkin ini akan jadi penentunya
Namun menghapus atau mengubah instruksi C bukanlah pilihan setelah benar-benar didistribusikan, dan karena saat ini kebanyakan masih tahap pengujian emulator, mereka mungkin belum terlalu peduli
Pertanyaan sebenarnya adalah: kenapa
Referensi: https://www.quora.com/Why-was-the-ARM-Thumb-instruction-set-...
Sedikit menyimpang, tetapi saat mengetahui emulator AOSP yang baru, entah kenapa saya mengira untuk memakai emulator Cuttlefish alih-alih Goldfish di AOSP, saya harus menjalankan
acloud. Namunacloudmenolak berjalan jika bukan UbuntuSaya bahkan sempat mencoba hack
LD_PRELOADyang mengubah output fungsiuname, tetapi setelah itu malah mencoba menjalankandpkg. Saya memakai NixOSEmulator lama benar-benar merepotkan untuk dijalankan dengan baik, dan emulator baru punya banyak kelebihan
Tetapi anehnya saya sama sekali tidak tahu bahwa ternyata cukup menjalankan
launch_cvdsecara langsungSemoga “Android for RISC-V” lebih berhasil daripada “Android for x86” yang sepenuhnya bencana. Saya masih punya tablet Android x86 Lenovo
Meski begitu, membaca artikel ini juga tidak terlalu menumbuhkan kepercayaan. Harapannya tinggi, tapi ekspektasinya rendah
Justru saya lebih khawatir dukungan ARM yang akan mandek
Tidak semua orang adalah warga AS kaya yang punya ARM MacBook
Beberapa tahun lalu Android cukup banyak dipakai di ranah embedded yang membutuhkan layar sentuh grafis, bukan ponsel atau tablet, tetapi sekarang hampir sepenuhnya untuk ponsel dan sampai taraf tertentu tablet
Alasannya, tidak seperti produsen ponsel dan tablet, perusahaan kecil tidak mampu mengikuti perubahan-perubahan baru Android yang sangat kompleks, jadi mereka makin banyak meninggalkannya
Saya kurang paham situasinya, tetapi apakah ada ponsel utama yang mengimplementasikan RISC-V? Dan apakah ini memerlukan perubahan di seluruh stack? Rasanya ini bukan sekadar mengganti sistem operasi
Saya kurang yakin batas antara “stack” dan “sistem operasi” itu diletakkan di mana. Bisa dijelaskan sedikit lebih rinci?
Saya belum mencoba port AOSP untuk LiCheePi 4A. Sepertinya saya perlu menjalankannya sekali untuk melihat apakah memang langsung berfungsi
Daripada mem-bootstrap seluruh toolchain yang diperlukan untuk menjalankan PolyMC, lebih mudah mengunduh Minecraft dari Play Store dan mencobanya
Di antara hal-hal yang bisa dipasang di RISC-V, Google Android adalah pilihan paling akhir
Menjalankan Android adalah pilihan bodoh jika bisa dihindari, dan terlebih lagi jika saat berganti arsitektur ada kesempatan untuk beralih ke Linux murni
Masalahnya adalah urusan perbankan. Setidaknya di Swedia, orang masih bergantung pada Mobile BankID. Misalnya, itu diperlukan bahkan untuk pembelian online di atas 20 dolar, dan hanya berjalan di iOS dan Android
Misalnya, solusi siap pakai untuk menjalankan Android secara efisien di KVM, atau pendekatan yang menyediakan fitur kernel Android dan server RPC di user space
Kalau tidak ada, maka tidak ada pilihan selain menjalankan Android demi akses ke aplikasi mobile, dan itu nyaris wajib
Jika Anda tidak punya smartphone atau tidak ingin menggunakannya, Anda bisa mendapatkan perangkat kecil untuk dipakai dalam autentikasi. Terlihat aneh jika Swedia memaksa semua orang yang punya rekening bank untuk juga memiliki smartphone. Terutama karena pasti ada banyak lansia yang tidak punya smartphone