Francisco Franco dari Wawancara Franco Kernel Bagian 1

Bagian 1 dari wawancara dengan Francisco Franco, pengembang Kernel Franco dan aplikasi lain untuk berbagai perangkat.

Baru-baru ini saya dengan senang hati mewawancarai orang di balik salah satu kernel Android paling populer yang pernah ada, Kernel Franco. Saat ini, kernel tersedia di banyak perangkat berbeda, termasuk berbagai perangkat Nexus & OnePlus dan Google Pixel/Pixel XL.

Pada bagian ini, kita akan membahas perjalanan Francisco Franco dalam pengembangan kernel dan pendapatnya tentang perubahan yang dialami Android selama bertahun-tahun.


Saya Adam Conway di sini di XDA untuk mewawancarai Francisco Franco, pengembang Kernel Franco! Apakah Anda ingin memperkenalkan diri?

Tentu, nama saya Francisco, seperti yang baru saja Anda katakan, dan saya rasa saya sudah menggunakan XDA selama 1 juta tahun! Telah melakukan segala macam hal. Kernel, aplikasi, dan akhir-akhir ini saya lebih malas menggunakan kernel karena akan melelahkan setelah beberapa saat, namun saya masih menggunakan kekuatan penuh di sebagian besar perangkat saya.

Oke, jadi saya kira banyak orang akan mengenal karya Anda, tetapi banyak orang yang tidak mengenal orang sebenarnya di balik karya tersebut. Jadi saya rasa apakah Anda benar-benar memiliki pengalaman masa lalu sebelum kernel? Suka dengan gelar ilmu komputer atau semacamnya sebelumnya?

Saya selalu tertarik dengan komputer, seperti halnya anak mana pun saat tumbuh dewasa. Setelah saya berusia 18 tahun dan saya memutuskan untuk masuk universitas seperti orang lain, dan saya pikir saya akan menerimanya ilmu komputer atau semacamnya, tetapi setelah sekitar satu tahun, saya menyadari bahwa itu bukanlah hal yang sebenarnya saya sukai tentang. Setelah tahun itu, ekspektasi saya mulai melemah karena semuanya hanya berupa omongan dan tidak ada tindakan, dan memang demikian mulai merasa bosan - bukan karena saya lebih baik dari orang lain, saya hanya rata-rata - tetapi disiplin ilmu yang sebenarnya tidak tepat apa yang saya inginkan. Jadi saya berbicara dengan orang tua saya, dan mereka sadar bahwa saya tidak terlalu senang dengan hal itu. Selama Natal tahun 2010, saya mendapatkan ponsel Android pertama saya. LG P500, itu ponsel murah, sangat murah, tapi saya tahu ponsel itu menjalankan Linux, dan disiplin favorit saya di universitas adalah arsitektur komputer atau semacamnya, sistem operasi. Dan kami mempelajari sedikit tentang shell dan berbicara sedikit tentang kernel Linux, dan sebagainya adalah bagian dari kernel dan semua konektivitas di kernel, dan sistem operasi sebenarnya, dan itu dulu memukau untuk saya. Dan kemudian saya mulai membangun kembali kernel Linux untuk laptop lama saya bersama seorang teman. Kami membuat laptop kami crash sebanyak 100 kali saat melakukan hal itu, tetapi kami belajar melalui prosesnya. Dan kemudian saya mulai bermain-main dengan LG saya, dan saya rasa hal pertama yang saya lakukan adalah mencoba meningkatkan kinerja karena perangkat itu sebenarnya cukup jelek. Jadi hal terbaik yang bisa saya lakukan hanyalah memeriksa parameter kernel Linux standar sebenarnya manajemen memori dan sebagainya, dan cobalah menemukan sesuatu yang sedikit lebih baik dari yang sudah ada di sana. Saya bersenang-senang sedikit saat itu.

Saya rasa saya belum pernah menceritakan hal ini sebelumnya dalam wawancara sebelumnya, namun saat itu perangkat tersebut menggunakan sistem file lama bernama YAFFS - yang berarti Yet Another Flash Sistem File, tetapi cukup lambat ketika kami mencoba memasang seperti disk swap yang didukung RAM, jadi, saya tidak ingat secara spesifik, tetapi kami melakukan berbagai macam cara yang berbeda. bereksperimen dengan itu dan kami akhirnya memasang Dalvik di atas memori RAM yang harus dibangun kembali setiap reboot karena, seperti yang Anda tahu, RAM hilang setiap kali saatnya kita reboot. Tapi itu membuat pembukaan aplikasi dan menjalankan benchmark menjadi lebih cepat, jadi kami senang. Jadi setelah itu, saya mulai menggali lebih dalam, dan mencoba mengkompilasi sumber kernel LG untuk perangkat tersebut, dan saya membuat segala macam kesalahan. penilaian dan segala macam kesalahan - jaringan Wi-Fi, apa pun - segala sesuatu yang mungkin dapat Anda bayangkan dari seseorang yang tidak punya pengalaman. Ini menyenangkan, saya belajar banyak. Saya kira setelah satu atau enam bulan melakukan hal itu, saya menjadi sedikit lebih fokus, dan saya tahu sedikit lebih baik apa yang harus saya unduh. Itulah yang kita semua inginkan pada akhirnya. Setelah itu, saya berhasil mendapatkan sejumlah donasi dan berpindah ke perangkat lain. Saya kira Nexus S, lalu Galaxy Nexus dan setelah periode itu, saya berhasil mengeluarkan aplikasi pertama saya. Saya kira saya sangat beruntung dan mampu membiayai diri saya sendiri untuk membeli perangkat baru, dan hal itu meledak dari sana. Jadi saya rasa pada akhirnya saya berhutang segalanya, saya tidak akan mengatakan XDA tapi platformnya yang diberikan XDA kepada kita.

Dan komunitas berada di baliknya dan sebagainya.

Ya ya, yang saya maksud adalah platformnya, yaitu komunitas dan forum sebenarnya. Bagi siapa pun yang mendengarkan, ini bukan sponsor berbayar atau apa pun, saya tidak dibayar untuk mengatakan ini, itu benar!

Tidak ada videonya, orang-orang tidak melihat pistol diarahkan ke kepala Anda, tidak apa-apa.

Hahaha, iya, tapi ada yang bilang aku dibayar untuk mengatakan ini, jadi aku katakan saja! Tapi ya, ya, ini adalah platform yang luar biasa bagi saya untuk membangun hal-hal keren, belajar banyak, saya telah mempelajari segalanya di sana dengan sebagian besar melakukan kesalahan dan dalam pembelajaran saya masih mengerjakan banyak masalah. Saya hancurkan Xiaomi Redmi Note 3 saya, eh bootloadernya hancur saja. Jadi saya harus menghubungkannya lagi dengan komputer Windows saya yang ada di belakang sana dan harus mem-reflash semuanya dan sudah ada di sini selama tiga bulan. Saya mendapat banyak kebencian dari semua orang karena saya tidak memperhatikan perangkat itu, jadi saya masih membuat [kesalahan], jadi bahkan setelah bertahun-tahun masih ada banyak hal yang perlu dipelajari dan saya sangat beruntung telah melalui perjalanan ini dan itu telah terjadi luar biasa.

Yah, saya kira mengingat Anda mulai dengan... LG P500 kan?

Ya, ya.

Berapa tahun yang lalu itu? Karena itu pasti ada di sekitar Android versi asli kan? Di sekitar Froyo atau apa?

Ya, itu dikirimkan bersama Froyo dan ditingkatkan ke Gingerbread beberapa bulan kemudian. Perangkat itu menurut saya tahun 2010, awal tahun 2011, mungkin lebih awal. Saya tahu akun saya di XDA dibuat pada bulan Desember 2010 tetapi saya sudah memiliki perangkatnya sebelumnya. Jadi saya kira mungkin sekitar waktu itu, ya.

Bagaimana Android telah mengembangkan kinerja sejak saat itu? Seperti apa perubahannya saat Anda menulis kernel saat itu dan menulisnya sekarang? Dan saya kira apa pendapat Anda tentang perubahan tersebut.

Dari segi kernel, saya pikir kami telah berevolusi dengan kernel Linux yang sebenarnya dan semua perubahan yang sebenarnya diinginkan oleh tim Android diimplementasikan untuk rilis Android tertentu, sehingga mereka menentukan sebagian besar fitur khusus apa yang akan dimiliki kernel, berdasarkan apa yang mereka inginkan untuk mengirim. Tapi menurut saya performa sebenarnya, lebih banyak core sebenarnya sangat membantu karena saat itu Anda tidak punya cara nyata untuk melakukannya pindahkan utas ini, atau bayangkan permintaan jaringan melalui utas latar belakang, atau setidaknya aktual secara real-time threading. Saya pikir itu adalah perubahan terbesar selama bertahun-tahun, memiliki lebih banyak cara untuk menyebarkan pekerjaan Anda, dan Android tidak melambat karena semua orang mencoba untuk mengambil sedikit bagian CPU. Lebih dari segalanya menurut saya multi-core dan multi-threading sebenarnya didukung oleh Linux. Saya pikir itu adalah perubahan terbesar.

Ah oke, lalu bagaimana pendapat Anda tentang HMP vs EAS? Karena jelas EAS hanya baru dan hanya digunakan di beberapa perangkat -- seperti Anda menggunakan Google Pixel bukan?

Ya, saat ini saya menggunakan Galaxy S8, tapi saya punya Pixel juga. Saya tidak tahu keduanya secara detail, keduanya hanyalah implementasi berbeda tentang bagaimana perangkat multi-cluster harus bertindak berdasarkan apa yang terjadi pada perangkat pada waktu tertentu. Menjalankan dua cluster berbeda dengan dua konsumsi daya berbeda, cukup sulit. Anda harus memenuhi ekspektasi tugas yang bergerak naik dan turun, dan terdapat latensi di dalamnya dan HMP adalah implementasi nyata pertama dari a arsitektur multi-cluster nyata untuk ARM, karena jika saya ingat dengan benar, sebelum HMP digunakan di dunia nyata, Samsung memiliki inisial implementasi di mana Anda menggunakan empat inti pertama, seperti inti berdaya rendah, atau empat inti berperforma tinggi tetapi tidak pernah berjalan pada waktu yang sama. Tapi kemudian dengan HMP, core siap digunakan kapan saja dan tugas hanya berpindah dari satu cluster ke cluster lain dan sebaliknya dan itu berhasil. keluar, tetapi Anda tidak memiliki banyak informasi dari penjadwal untuk menunjukkan hal ini kepada gubernur untuk benar-benar memutuskan jenis frekuensi apa yang akan digunakan pada saat itu. waktu tertentu, jadi Anda harus menghadapi, misalnya, mencoba memahami apa yang terjadi dalam [sekitar] 20 detik dan kemudian berdasarkan apa yang terjadi di sana, Anda memutuskan apa yang harus dilakukan. Mengerjakan. EAS, ini lebih [tentang] memahami apa yang akan terjadi di masa depan dan mengambil keputusan berdasarkan waktu nyata output daya dari masing-masing inti, dan kemudian ada banyak perhitungan dan hal-hal rumit di dalamnya latar belakang

Seperti model energi dan sebagainya untuk mendukung semuanya.

Ya, saya kira begitu, ini cukup rumit, saya tidak tahu secara spesifik. Saya telah membaca banyak dokumen tetapi ini cukup rumit dan tidak hanya sekedar menyalakan tombol dan menyiapkannya untuk digunakan. Saya sering mendapat pertanyaan itu, bisakah Anda menerapkan EAS di ponsel XYZ. Balasan saya selalu “Ini tidak akan berubah, tidak seperti itu, dibutuhkan seluruh tim Googler dan orang-orang dari Linaro untuk menerapkannya itu dan Anda harus memindahkan barang-barang, melakukan sesuatu, menguji barang-barang dan itu terlalu banyak pekerjaan dan semacamnya buta" dan… ya. Sulit.

Jadi Anda harus tahu persis apa yang Anda lakukan, ini bukan pekerjaan satu orang?

Ya, Anda harus tahu apa yang Anda lakukan, siapa pun dapat memilih tambalan dan menggabungkannya, tetapi pengujian sebenarnya dan memastikan tambalan berfungsi dengan benar dan Anda memerlukan mesin yang tepat untuk mendeteksi penggunaan daya setiap komponen dan ada banyak tabel di kernel tempat Anda dapat menulis daya setiap inti, dan berdasarkan itu kode akan memutuskan apa yang akan digunakan. Mengerjakan. Ini cukup rumit. Menurut saya ini bukan solusi pasti untuk semua masalah, tapi ini pasti solusi terbaik yang kita miliki saat ini.

Jadi Anda melihatnya sebagai sebuah kemajuan?

Ya tentu, bermil-mil mil jauhnya. Ini merupakan peningkatan yang pasti dari HMP atau arsitektur lainnya, karena jika Anda dapat memahami apa yang akan terjadi di masa depan, Anda dapat bereaksi lebih cepat. untuk permintaan apa pun atau apa pun yang terjadi di perangkat, itulah sebabnya Google Pixel sangat cepat dan lancar, karena semuanya terjadi hampir dalam waktu singkat. waktu sebenarnya. Ini memindahkan frekuensi ke atas dan ke bawah yang merupakan cara termudah untuk mencapai ekspektasi kinerja.

Saya kira dengan demikian, jika ada lebih banyak adopsi EAS di masa depan, bagaimana Anda melihatnya memengaruhi pengembangan Anda sendiri terkait kernel? Apakah Anda akan tetap menggunakan HMP atau menggunakan model energi yang sudah dirilis? Misalnya pada OnePlus 3, [pengembang ROM] menggunakan kembali model energi dari Google Pixel untuk EAS. Dapatkah Anda membayangkan diri Anda melakukan hal seperti itu?

Saya mungkin tidak akan melakukan itu, jika perangkat tidak dikirimkan dengan EAS maka saya mungkin tidak akan mengimplementasikannya dengan cara atau bentuk apa pun karena seperti yang saya katakan, ini adalah proses yang cukup panjang dan tidak ada seorang pun di XDA yang tahu lebih baik daripada semua insinyur ini, jadi saya rasa kami hanya mencoba bermain sebagai Tuhan.

Pada catatan tersebut berbicara tentang masa depan Android dan kernel, lalu apa pendapat Anda tentang rilis Android Oreo terbaru? Apakah menurut Anda perubahan tersebut baik? Sudahkah Anda melihat salah satu komitmen kernel baru?

Tidak banyak perubahan di sisi kernel pada Nexus 6P dan Nexus 5X, hanya sedikit perbaikan di sana-sini. Di Google Pixel, mereka melakukan iterasi pada penerapan EAS, dan mereka menghabiskan beberapa waktu untuk menyempurnakan bagian pengikat, karena sekarang pengikat tersebut, bersama dengan Project Treble, ini seperti memisahkan paket yang berbeda, jadi mereka harus melalui 50 atau 100 patch berbeda untuk meningkatkan pengikatnya dan memisahkannya menjadi beberapa bagian yang berbeda. proses. Selain itu, itu hanya pekerjaan biasa untuk rilis besar. Ketika ada rilis platform baru, Anda biasanya tidak terlalu banyak mengotak-atik kernel, karena mengacaukannya kernel Anda sebenarnya memerlukan banyak QA, jika terkadang Anda mengubah satu hal yang Anda dengar, hal itu memengaruhi sesuatu di hal lain subsistem. Itulah yang biasanya mereka lakukan, itulah mengapa Anda tidak mengalami perubahan versi kernel di antara peningkatan platform. Itu hanya banyak pekerjaan. Biasanya tidak layak tapi ya, itu sebagian besar tentang pengikat, sedikit penjadwal, dan perbaikan keamanan biasa. Saya telah membahas semuanya, tetapi tidak ada yang benar-benar menarik perhatian saya. Perhatianku hanya tertuju pada bindernya.

Ah oke, jadi yang standar saja kok.

Ya, itu cukup rumit dan jangan tanya saya secara spesifik!

Ini adalah topik yang sama sekali berbeda, apa pendapat Anda tentang F2FS dibandingkan ext4? Karena Anda akan melihat banyak orang akan mengatakan bahwa F2FS tidak stabil dan menyebabkan masalah,Saya hanya ingin tahu apa pendapat Anda tentang hal itu.

Saya juga tidak tahu [tentang] secara spesifik karena sistem file cukup keras, banyak bagian yang bergerak di sana-sini. Saya hanya akan mengutip seorang insinyur Google yang mengatakan bahwa berdasarkan pengujian mereka, F2FS tidak bekerja lebih cepat daripada ext4, dan terlebih lagi ketika mereka sedang menguji sesuatu untuk Google Pixel, F2FS tidak memberikan dukungan untuk… Saya pikir itu adalah enkripsi blok file, sedangkan ext4 untuk dukungan dia. Jadi itu saja berarti -- buang saja. Anda harus memikirkan dua hal, ext4 sedang dikerjakan selama 20 tahun dengan banyak insinyur yang sangat cerdas dari berbagai perusahaan dan mereka tahu apa yang mereka lakukan. F2FS, jika saya ingat dengan benar, diterapkan oleh Samsung. Ini adalah sistem file yang cukup baru sehingga hal-hal rumit seperti ini memerlukan waktu untuk diperbaiki dan diulangi, seperti halnya Anda dapat dilihat dari sistem file Apple yang baru saja dirilis di iOS, dan mereka akan melakukan hal yang sama untuk Mac sistem operasi. Segalanya membutuhkan waktu, Anda memerlukan tim yang besar untuk melakukan hal ini dengan benar. Saya sangat mendukung “jika berhasil, jangan sentuh” dan apa yang kita miliki saat ini -- berhasil, dan menurut saya hal ini tidak menimbulkan masalah kinerja, jadi saya tidak melihat alasan untuk melakukannya. mengacaukannya.

Ah oke, itu cukup adil! Bagaimana dengan Kartu SDFS dialihkan dari FUSE? Apa pendapat Anda tentang hal itu?

Hal ini terjadi karena sistem file FUSE yang lama adalah salah satu hal terburuk yang terjadi di Android. Performanya sangat buruk, ada banyak panggilan sistem antara kernel dan ruang pengguna dan sekarang dengan SDCardFS hal itu dilakukan dengan benar. Ini adalah sistem file normal untuk menangani hal ini, sekali lagi saya tidak tahu secara spesifik karena ini adalah hal yang sangat rumit, tetapi yang saya miliki membaca dan melihat serta mendengar dari berbagai podcast dari tim Android, pada dasarnya ini memperbaiki semua masalah dengan yang lama sistem. Itu cukup buruk, kinerjanya sangat buruk.


Lihat Bagian 2 dengan mengklik tombol ini!