Francisco Franco vom Franco Kernel Interview Teil 1

Teil 1 eines Interviews mit Francisco Franco, dem Entwickler von Franco Kernel und anderen Anwendungen für viele verschiedene Geräte.

Kürzlich hatte ich das Vergnügen, den Mann hinter einem der beliebtesten Android-Kernel aller Zeiten, dem Franco-Kernel, zu interviewen. Derzeit ist der Kernel auf vielen verschiedenen Geräten verfügbar, darunter verschiedenen Nexus- und OnePlus-Geräten sowie dem Google Pixel / Pixel XL.

In diesem Teil sprechen wir über Francisco Francos Reise in die Kernel-Entwicklung und seine Meinung zu den Veränderungen, die Android im Laufe der Jahre erfahren hat.


Ich bin Adam Conway hier auf XDA, um Francisco Franco, Entwickler des Franco-Kernels, zu interviewen! Möchten Sie sich vorstellen?

Klar, mein Name ist Francisco, wie du gerade gesagt hast, und ich schätze, ich bin schon seit 1 Million Jahren bei XDA! Habe alles Mögliche gemacht. Kernel, Apps, und in letzter Zeit habe ich bei Kerneln etwas nachgelassen, weil es nach einer Weile ermüdend wird, aber auf den meisten meiner Geräte bin ich immer noch mit voller Kraft unterwegs.

Okay, ich schätze, viele Leute sind mit Ihrer Arbeit vertraut, aber viele Leute kennen die eigentliche Person hinter der Arbeit nicht. Ich schätze also, haben Sie wirklich irgendwelche Erfahrungen mit Kerneln? Wie ein Informatikstudium oder ähnliches vorher?

Ich hatte schon immer eine Leidenschaft für Computer, wie wohl jedes andere Kind in meiner Kindheit. Als ich 18 wurde, beschloss ich, wie alle anderen auch auf die Universität zu gehen, und ich glaube, das war auch der Fall Informatik oder so etwas, aber nach etwa einem Jahr wurde mir klar, dass das nicht meine eigentliche Leidenschaft war um. Nach diesem Jahr begannen meine Erwartungen zu sinken, weil es nur Gerede und keine Taten waren, und das tat ich auch Ich fing an, mich zu langweilen – nicht, weil ich besser war als alle anderen, ich war nur durchschnittlich –, sondern wegen der eigentlichen Disziplinen waren nicht genau was ich wollte. Also habe ich mit meinen Eltern gesprochen und sie wussten, dass ich damit nicht sehr glücklich war. Zu Weihnachten 2010 bekam ich mein erstes Android-Handy. Ein LG P500, das ist ein preisgünstiges Telefon, sehr günstig, aber ich wusste, dass darauf Linux läuft, und mein Lieblingsfach an der Universität war Computerarchitektur oder so etwas, Betriebssysteme. Und wir lernten ein bisschen Shell und sprachen ein bisschen über den Linux-Kernel und was war Teil des Kernels und der gesamten Konnektivität im Kernel und des eigentlichen Betriebssystems und so weiter War faszinierend Für mich. Und dann habe ich zusammen mit einem Freund angefangen, den Linux-Kernel für meinen alten Laptop neu zu erstellen. Dabei haben wir unsere Laptops etwa 100 Mal zum Absturz gebracht, aber wir haben durch den Prozess gelernt. Und dann fing ich an, mit meinem LG zu spielen, und ich schätze, das erste, was ich tat, war, die Leistung ein wenig zu steigern, weil das Gerät eigentlich ziemlich beschissen war. Das Beste, was ich tun konnte, war, einfach die Standard-Linux-Kernel-Parameter für die tatsächlichen Ergebnisse durchzugehen Speicherverwaltung und so weiter, und versuchen Sie einfach, etwas zu finden, das ein bisschen besser ist als das, was bereits war Dort. Da hatte ich ein bisschen Spaß.

Ich glaube, das habe ich in früheren Interviews noch nicht gesagt, aber damals nutzte dieses Gerät ein altes Dateisystem namens YAFFS – das bedeutet Yet Another Flash Dateisystem, aber es war ziemlich langsam, als wir versuchten, es wie eine RAM-gestützte Swap-Festplatte zu mounten. Ich erinnere mich also nicht an Einzelheiten, aber wir haben alles Mögliche gemacht Experimente damit und am Ende montierten wir den Dalvik auf dem RAM-Speicher, der bei jedem Neustart neu aufgebaut werden musste, da, wie Sie wissen, der RAM bei jedem Neustart verloren geht Zeit für einen Neustart. Aber das Öffnen von Anwendungen und das Ausführen von Benchmarks ging dadurch deutlich schneller, sodass wir zufrieden waren. Danach habe ich angefangen, etwas tiefer zu gehen und zu versuchen, die Kernel-Quellen von LG für das Gerät zu kompilieren, und dabei habe ich allerhand Schlimmes gemacht Urteile und alle möglichen Fehler – Wi-Fi-Netzwerk, was auch immer – alles, was man sich von jemandem vorstellen kann, der keins hat Erfahrung. Das hat Spaß gemacht, ich habe viel gelernt. Ich schätze, nach einem Jahr oder sechs Monaten war ich etwas konzentrierter und wusste ein bisschen besser, was ich brauchte, um die Downloads zu bekommen. Das ist es, was wir alle am Ende des Tages wollen. Danach gelang es mir, einige Spenden zu sammeln und auf andere Geräte umzusteigen. Ich schätze, das Nexus S, dann das Galaxy Nexus und nach dieser Zeit gelang es mir, meine erste App herauszubringen. Ich schätze, ich hatte großes Glück und konnte mir den Kauf neuer Geräte finanzieren, und von da an explodierte alles. Letzten Endes verdanke ich also wohl alles, ich würde nicht XDA sagen, aber die Platform die uns XDA bietet.

Und die Community dahinter und so weiter.

Ja ja, ich meine die Plattform, das ist die Community und die eigentlichen Foren. Für alle, die zuhören: Das ist kein bezahlter Sponsor oder so, ich werde nicht dafür bezahlt, das zu sagen, es ist einfach wahr!

Es gibt kein Video, die Leute sehen nicht, wie die Waffe auf deinen Kopf gerichtet ist, das ist in Ordnung.

Hahaha, ja, aber jemand wird sagen, dass ich dafür bezahlt werde, das zu sagen, also sage ich es einfach! Aber ja, ja, es war für mich eine wunderbare Plattform, um coole Sachen zu bauen und viel zu lernen. Ich habe dort alles gelernt, indem ich größtenteils Fehler gemacht habe, und beim Lernen mache ich immer noch eine Menge Probleme. Ich habe mein Xiaomi Redmi Note 3 zerstört, ähm, der Bootloader ist gerade zerstört. Also muss ich es wieder mit meinem Windows-Computer verbinden, der da hinten steht, und alles neu flashen, und schon sitzt es hier seit etwa drei Monaten. Ich bekomme jede Menge Hass von allen, weil ich diesem Gerät keine Aufmerksamkeit schenke, und deshalb mache ich immer noch [Fehler], denke ich Auch nach all den Jahren gibt es noch viel zu lernen und ich hatte das große Glück, diese Reise mitgemacht zu haben, und das war es auch Eindrucksvoll.

Nun ja, ich schätze, da du mit dem angefangen hast... LG P500 war es?

Ja ja.

Wie viele Jahre ist das her? Denn das muss wohl bei den Originalversionen von Android der Fall gewesen sein, oder? In der Nähe von Froyo oder so?

Ja, das wurde mit Froyo ausgeliefert und ein paar Monate später auf Gingerbread aktualisiert. Ich glaube, das Gerät stammt aus dem Jahr 2010, Anfang 2011, wahrscheinlich früher. Ich weiß, dass mein Konto bei XDA im Dezember 2010 erstellt wurde, aber ich hatte das Gerät schon vorher. Ich schätze also, ungefähr zu dieser Zeit, ja.

Wie hat sich die Leistung von Android seitdem weiterentwickelt? Wie hat sich das Schreiben von Kerneln für Sie damals und heute verändert? Und ich nehme an, was Sie von den Änderungen halten.

Was den Kernel angeht, denke ich, dass wir uns mit dem eigentlichen Linux-Kernel und allen Änderungen, die das Android-Team eigentlich wollte, weiterentwickelt haben Sie können sie für eine bestimmte Android-Version implementieren, sodass sie je nach Wunsch die meisten Sonderfunktionen des Kernels vorgeben versenden. Aber ich denke, die tatsächliche Leistung und mehr Kerne helfen tatsächlich sehr, denn damals hatte man keine wirkliche Möglichkeit dazu Verschieben Sie diesen Thread (sic) oder stellen Sie sich Netzwerkanfragen über einen Hintergrundthread oder zumindest in Echtzeit vor Einfädeln. Ich denke, das war die größte Veränderung im Laufe der Jahre: Es gibt mehr Möglichkeiten, die Arbeit zu verteilen, und Android wird nicht einfach langsamer, weil jeder versucht, sich ein bisschen CPU-Anteil zu sichern. Mehr als alles andere denke ich, dass Multi-Core und echtes Multi-Threading von Linux unterstützt werden. Ich dachte, das sei die größte Veränderung.

Ah okay, was ist dann Ihre Meinung zu HMP vs. EAS? Denn offensichtlich ist EAS nur neu und wird nur in wenigen Geräten verwendet – so wie Sie ein Google Pixel verwenden, oder?

Ja, derzeit verwende ich ein Galaxy S8, aber ich habe auch ein Pixel. Ich kenne beide nicht so genau, es handelt sich lediglich um unterschiedliche Implementierungen, wie sich ein Multi-Cluster-Gerät verhalten soll, basierend auf dem, was zu bestimmten Zeiten auf dem Gerät passiert. Es ist ziemlich schwierig, zwei verschiedene Cluster mit unterschiedlichem Stromverbrauch zu betreiben. Man muss die Erwartungen erfüllen, dass sich Aufgaben nach oben und unten bewegen, und das bringt eine Latenz mit sich, und HMP war die erste echte Implementierung von a echte Multi-Cluster-Architektur für ARM, denn wenn ich mich richtig erinnere, hatte Samsung eine erste, bevor HMP in der realen Welt zum Einsatz kam Implementierung, bei der Sie entweder die ersten vier Kerne verwendet haben, z. B. Kerne mit geringem Stromverbrauch, oder vier Kerne mit hoher Leistung, diese aber nie voll ausgelastet waren die selbe Zeit. Aber danach waren die Kerne mit dem HMP jederzeit einsatzbereit und Aufgaben wurden einfach von einem Cluster zum anderen und umgekehrt verschoben, und das hat funktioniert aus, aber Sie hatten nicht so viele Informationen vom Planer, um dies dem Gouverneur zu zeigen und tatsächlich zu entscheiden, welche Art von Frequenz dabei verwendet werden würde Man musste sich also damit befassen, zu verstehen, was in etwa 20 Sekunden passiert, und dann basierend auf dem, was dort passiert ist, zu entscheiden, was zu tun ist Tun. Bei EAS geht es mehr darum, zu verstehen, was in der Zukunft passieren wird, und darauf basierend in Echtzeit Entscheidungen zu treffen die Leistungsabgaben jedes Kerns, und dann sind es eine Menge Berechnungen und komplizierte Dinge in der Hintergrund

Wie Energiemodelle und so weiter, um alles zu untermauern.

Ja, ich denke schon, es ist ziemlich kompliziert, ich kenne nicht alle Einzelheiten, ich habe eine Menge Dokumente gelesen, aber es ist ziemlich kompliziert und es geht nicht nur darum, einen Schalter einzuschalten und es einsatzbereit zu haben. Ich bekomme oft die Frage: Kann man EAS auf einem XYZ-Telefon implementieren? Meine Antworten sind immer „Es geht nicht darum, einen Knopf zu drehen, es ist nicht so, es brauchte ein ganzes Team von Google-Mitarbeitern und Leuten von Linaro, um es umzusetzen Das und man muss Dinge bewegen, Dinge tun, Dinge testen, und das ist einfach zu viel Arbeit und zu viel Aufwand blind" und... ja. Es ist schwer.

Sie müssen also genau wissen, was Sie tun, es ist kein Ein-Mann-Job?

Ja, Sie müssen wissen, was Sie tun, jeder kann die Patches auswählen und zusammenführen, aber für das eigentliche Testen und Sicherstellen, dass es richtig funktioniert, benötigen Sie eine geeignete Maschine um den Stromverbrauch jeder Komponente zu ermitteln, und es gibt eine Reihe von Tabellen im Kernel, in die Sie die Leistung jedes Kerns schreiben können, und auf dieser Grundlage entscheidet der Code, was getan werden soll Tun. Es ist ziemlich kompliziert. Ich glaube nicht, dass es eine definitive Lösung für alle Probleme ist, aber es ist definitiv die beste, die wir derzeit haben.

Sie sehen darin also eine Verbesserung?

Ja sicher, Meilen, Meilen, Meilen entfernt. Es ist eine deutliche Verbesserung gegenüber HMP oder jeder anderen Architektur, denn wenn Sie verstehen, was in der Zukunft passieren wird, können Sie viel schneller reagieren auf jede Anfrage oder was auch immer auf dem Gerät passiert, deshalb ist das Google Pixel so schnell und flüssig, weil alles fast intern passiert Echtzeit. Dabei werden die Frequenzen nach oben und unten verschoben, was der einfachste Weg ist, die Erwartungen an die Leistung zu erfüllen.

Ich denke also, wenn es in Zukunft eine stärkere Einführung von EAS geben wird, wie wird sich das Ihrer Meinung nach auf Ihre eigene Entwicklung in Bezug auf Kernel auswirken? Würden Sie weiterhin bei HMP bleiben oder würden Sie sich für bereits veröffentlichte Energiemodelle entscheiden? Beim OnePlus 3 verwenden [ROM-Entwickler] beispielsweise das Energiemodell von Google Pixel für EAS wieder. Könnten Sie sich vorstellen, so etwas zu tun?

Ich werde das wahrscheinlich nicht tun. Wenn das Gerät nicht von vornherein mit EAS ausgeliefert wird, werde ich es wahrscheinlich in keiner Weise implementieren, weil Wie gesagt, es ist ein ziemlich langwieriger Prozess und niemand bei XDA weiß es besser als all diese Ingenieure, also versuchen wir einfach, Gott zu spielen, denke ich.

Wenn wir über die Zukunft von Android und Kerneln sprechen: Was halten Sie von der jüngsten Version von Android Oreo? Finden Sie die Veränderungen gut? Haben Sie sich die neuen Kernel-Commits angesehen?

Auf der Kernel-Seite gab es beim Nexus 6P und Nexus 5X nicht so viele Änderungen, nur hier und da kleine Korrekturen. Auf dem Google Pixel haben sie die EAS-Implementierung wiederholt und einige Zeit damit verbracht, den Ordnerbereich zu verbessern, denn jetzt ist der Ordner zusammen mit Project Treble, es ist so, als würde man verschiedene Pakete aufteilen, also müssen sie 50 oder 100 verschiedene Patches durchlaufen, um den Ordner zu verbessern und ihn in verschiedene Pakete aufzuteilen Prozesse. Ansonsten war es ganz normale Arbeit für eine große Veröffentlichung. Wenn es eine neue Plattformversion gibt, beschäftigt man sich normalerweise nicht so sehr mit dem Kernel, weil man mit dem herumspielt Im Kernel benötigen Sie tatsächlich viel Qualitätssicherung. Wenn Sie manchmal eine Sache ändern, hören Sie, dass sich dies auf etwas anderes auswirkt Teilsystem. Das ist es, was sie normalerweise tun, deshalb kommt es zwischen Plattform-Upgrades nicht zu einem Kernel-Versionssprung. Es ist einfach eine Menge Arbeit. Normalerweise lohnt es sich nicht, aber ja, es waren hauptsächlich Ordnerkram, ein bisschen Planer und die üblichen Sicherheitskorrekturen. Ich habe sie alle durchgesehen, aber nichts hat mich wirklich beeindruckt. Meine Aufmerksamkeit wurde nur auf den Ordner gelenkt.

Ah okay, also eigentlich nur das Standardmaterial.

Ja, sie sind ziemlich kompliziert und fragen Sie mich nicht nach Einzelheiten!

Das ist ein ganz anderes Thema. Was ist Ihre Meinung zu F2FS im Vergleich zu ext4? Denn wie Sie sehen, werden viele Leute sagen, dass F2FS instabil ist und so etwas und Probleme verursacht.Ich frage mich nur, was Sie davon halten.

Ich weiß auch nichts Genaues, weil Dateisysteme ziemlich schwierig sind und es hier und da viele bewegliche Teile gibt. Ich zitiere nur einen Google-Ingenieur, der sagt, dass F2FS laut seinem Test nicht schneller ist als ext4, und darüber hinaus wann Sie haben Dinge für Google Pixel getestet, F2FS bot keine Unterstützung für … Ich glaube, es war Dateiblockverschlüsselung, während ext4 dafür Unterstützung bietet Es. Das allein bedeutet also: Schrott es einfach. Man muss über zwei Dinge nachdenken: An ext4 wird seit etwa 20 Jahren mit vielen sehr klugen Ingenieuren verschiedener Unternehmen gearbeitet, und sie wissen, was sie tun. F2FS wurde, wenn ich mich richtig erinnere, von Samsung implementiert. Da es sich um ein ziemlich neues Dateisystem handelt, brauchen so komplizierte Dinge wie Sie Zeit, um sie zu verbessern und zu iterieren können Sie dem Apple-Dateisystem entnehmen, das gerade auf iOS veröffentlicht wurde, und sie werden das Gleiche auch für Mac tun Betriebssystem. Dinge brauchen Zeit, man braucht ein riesiges Team, um diese Dinge richtig zu machen. Ich bin ein großer Befürworter von „Wenn es funktioniert, fassen Sie es nicht an“ und was wir derzeit haben: Es funktioniert, und ich glaube nicht, dass es zu Leistungsproblemen führt, daher sehe ich keinen Grund dafür Leg dich damit an.

Ah okay, das ist fair genug! Wie wäre es mit SDCardFS wird von FUSE umgeschaltet? Was wäre Ihre Meinung dazu?

Das geschah, weil das ältere FUSE-Dateisystem eines der schlimmsten Dinge war, die auf Android passiert sind. Die Leistung war schrecklich, es gab viele Systemaufrufe zwischen dem Kernel und dem Benutzerbereich und jetzt mit SDCardFS ist alles ordnungsgemäß erledigt. Es ist ein normales Dateisystem, damit umzugehen. Auch hier kenne ich die Einzelheiten nicht, da es eine sehr komplizierte Sache ist, aber was ich weiß Nachdem ich aus verschiedenen Podcasts des Android-Teams gelesen und gesehen und gehört habe, wurden im Grunde alle Probleme mit den alten behoben System. Das war ziemlich schrecklich, die Leistung war schrecklich.


Schauen Sie sich Teil 2 an, indem Sie auf diese Schaltfläche klicken!