{"id":126,"date":"2023-10-11T13:30:16","date_gmt":"2023-10-11T13:30:16","guid":{"rendered":"https:\/\/byte-bucket.com\/2023\/10\/11\/google-setzt-auf-rust-eine-rustikale-veraenderung-fuer-androids-nativen-code\/"},"modified":"2023-10-11T13:30:16","modified_gmt":"2023-10-11T13:30:16","slug":"google-setzt-auf-rust-eine-rustikale-veraenderung-fuer-androids-nativen-code","status":"publish","type":"post","link":"https:\/\/byte-bucket.com\/?p=126","title":{"rendered":"Google setzt auf Rust: Eine rustikale Ver\u00e4nderung f\u00fcr Androids nativen Code"},"content":{"rendered":"<p>Google macht mal wieder Schlagzeilen in der Tech-Welt! Diesmal geht es um die Verwendung der Programmiersprache Rust f\u00fcr nativen Code in Android. Ja, du hast richtig geh\u00f6rt &#8211; Rust rockt jetzt auch auf den mobilen Betriebssystemen!<\/p>\n<p>Das Android-Team hat bereits einige neue Komponenten des Betriebssystems in Rust geschrieben und ist so begeistert von den Ergebnissen, dass sie nun sogar Bare-Metal bzw. Embedded Rust f\u00fcr Code au\u00dferhalb der Linux-Basis einsetzen. Das klingt doch nach einer rustikalen Ver\u00e4nderung, oder?<\/p>\n<p>Google zieht eine positive Bilanz \u00fcber den Einsatz von Rust f\u00fcr nativen Code im mobilen Betriebssystem bis Ende 2022. Schon ein Jahr zuvor hatte der Tech-Gigant das Android Open Source Project f\u00fcr die Nutzung der Programmiersprache ge\u00f6ffnet. Das ist doch mal ein Zeichen von Offenheit!<\/p>\n<p>In Android 14 wurde die Protected Virtual Machine Firmware (pVM) mit Rust implementiert. Vorher hatte Google den Open-Source-Bootloader U-Boot verwendet, der in C geschrieben wurde. Doch leider wurden in U-Boot immer wieder Sicherheitsl\u00fccken entdeckt, die auf Speicherfehler zur\u00fcckzuf\u00fchren waren. Das ist nat\u00fcrlich nicht so toll, wenn man bedenkt, dass viele dieser Fehler zu kritischen Schwachstellen f\u00fchren k\u00f6nnen.<\/p>\n<p>Hier kommt Rust ins Spiel! Im Gegensatz zu C und C++ verf\u00fcgt Rust \u00fcber ein Memory-Safety-Konzept, das viele Speicherfehler vermeidet. Das ist wirklich praktisch, denn Rust kann diese Fehler verhindern, ohne den Overhead einer Speicherverwaltung wie Java oder Kotlin zu haben. Das ist wie ein Sicherheitsgurt f\u00fcr den Code &#8211; ohne dabei unbequem zu sein!<\/p>\n<p>Das Android-Team hat sich daher entschieden, die pVM-Firmware komplett neu in Rust umzusetzen, anstatt weiterhin Fehler in der U-Boot-basierten Umsetzung zu beheben. Das ist ein gro\u00dfer Schritt, aber manchmal muss man eben mutig sein, um Fortschritte zu erzielen.<\/p>\n<p>Aber halt, es gibt auch Herausforderungen! Das Memory-Safety-Konzept von Rust basiert darauf, dass ein Programm exklusiven Zugriff auf den zugewiesenen Speicher hat. Das ist allerdings nicht immer m\u00f6glich f\u00fcr Firmware-Code, der Memory-Mapped I\/O und gemeinsam genutzten Speicher verwalten muss. Hier wird es manchmal unvermeidlich, Code als &#8222;unsafe&#8220; zu kennzeichnen und Raw Pointers zu verwenden. Das ist wie der Moment, in dem man einen Helm tr\u00e4gt, aber doch ein kleines Risiko eingeht.<\/p>\n<p>Ein weiteres Problem ist die Gr\u00f6\u00dfe des Codes. Die Rust pVM-Firmware ist mit 460 KByte mehr als doppelt so gro\u00df wie ihr Vorg\u00e4nger in C. Aber hey, gr\u00f6\u00dfer ist manchmal eben besser, oder? Zumindest hoffen wir, dass die zus\u00e4tzlichen Funktionen die Gr\u00f6\u00dfe des Codes rechtfertigen.<\/p>\n<p>Alles in allem ist es spannend zu sehen, wie Google Rust f\u00fcr nativen Code in Android einsetzt. Es ist ein Schritt in die richtige Richtung, um die Sicherheit und Stabilit\u00e4t des Betriebssystems zu verbessern. Wir k\u00f6nnen gespannt sein, was die Zukunft f\u00fcr Rust und Android bereith\u00e4lt.<\/p>\n<p>Schlagw\u00f6rter: Rust + Android + MemorySafety<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google macht mal wieder Schlagzeilen in der Tech-Welt! Diesmal geht es um die Verwendung der Programmiersprache Rust f\u00fcr nativen Code in Android. Ja, du hast richtig geh\u00f6rt &#8211; Rust rockt jetzt auch auf den mobilen Betriebssystemen! Das Android-Team hat bereits einige neue Komponenten des Betriebssystems in Rust geschrieben und ist&#46;&#46;&#46;<\/p>\n","protected":false},"author":4,"featured_media":125,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=126"}],"version-history":[{"count":0,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/posts\/126\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=\/wp\/v2\/media\/125"}],"wp:attachment":[{"href":"https:\/\/byte-bucket.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/byte-bucket.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}