{"id":99682,"date":"2021-04-07T16:22:45","date_gmt":"2021-04-07T14:22:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android"},"modified":"2021-04-07T16:22:45","modified_gmt":"2021-04-07T14:22:46","slug":"rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","title":{"rendered":"Rust \u00e9 inclu\u00eddo entre as principais linguagens para desenvolvimento da plataforma Android","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A empresa Google anunciou a inclus\u00e3o da linguagem de programa\u00e7\u00e3o Rust entre as linguagens permitidas para o desenvolvimento da plataforma Android. O compilador da linguagem Rust foi adicionado \u00e0 \u00e1rvore de c\u00f3digos-fonte do Android em 2019, mas o suporte para essa linguagem permaneceu experimental. Entre os primeiros componentes em Rust que devem ser integrados ao Android est\u00e3o novas implementa\u00e7\u00f5es do mecanismo de comunica\u00e7\u00e3o entre processos Binder e o stack Bluetooth.    <\/p>\n<p>A implementa\u00e7\u00e3o do Rust foi realizada no \u00e2mbito de um projeto para aumentar a seguran\u00e7a, promover t\u00e9cnicas de programa\u00e7\u00e3o segura e melhorar a efic\u00e1cia na detec\u00e7\u00e3o de problemas relacionados \u00e0 mem\u00f3ria no Android. Observa-se que cerca de 70% de todas as vulnerabilidades cr\u00edticas identificadas no Android s\u00e3o causadas por erros relacionados \u00e0 mem\u00f3ria. O uso da linguagem Rust, que se concentra em um gerenciamento seguro de mem\u00f3ria e fornece gerenciamento autom\u00e1tico de mem\u00f3ria, permitir\u00e1 reduzir o risco de vulnerabilidades causadas por erros de mem\u00f3ria, como acessos a \u00e1reas de mem\u00f3ria ap\u00f3s a libera\u00e7\u00e3o e estouros de buffer.    <\/p>\n<p>A seguran\u00e7a na gest\u00e3o da mem\u00f3ria \u00e9 garantida em Rust durante a compila\u00e7\u00e3o atrav\u00e9s da verifica\u00e7\u00e3o de refer\u00eancias, rastreamento de propriedade de objetos e considera\u00e7\u00e3o do tempo de vida dos objetos (escopo), al\u00e9m da avalia\u00e7\u00e3o da validade de acesso \u00e0 mem\u00f3ria durante a execu\u00e7\u00e3o do c\u00f3digo. Rust tamb\u00e9m oferece ferramentas para proteger contra estouros inteiros, exige a inicializa\u00e7\u00e3o obrigat\u00f3ria de vari\u00e1veis antes de seu uso, lida melhor com erros na biblioteca padr\u00e3o, aplica o conceito de imutabilidade (immutable) de refer\u00eancias e vari\u00e1veis por padr\u00e3o e proporciona uma forte tipagem est\u00e1tica para minimizar erros l\u00f3gicos.        <\/p>\n<p>No Android, a seguran\u00e7a na gest\u00e3o da mem\u00f3ria \u00e9 garantida nas linguagens j\u00e1 suportadas, como Kotlin e Java, mas elas n\u00e3o s\u00e3o adequadas para o desenvolvimento de componentes do sistema devido ao alto custo de sobrecarga. Rust permite obter um desempenho pr\u00f3ximo ao das linguagens C e C++, o que possibilita seu uso para o desenvolvimento de partes de baixo n\u00edvel da plataforma e componentes para intera\u00e7\u00e3o com hardware.       <\/p>\n<p>Para garantir a seguran\u00e7a do c\u00f3digo em C e C++ no Android, s\u00e3o aplicadas isolamento sandbox, an\u00e1lise est\u00e1tica e testes de fuzzing. As capacidades de isolamento sandbox s\u00e3o limitadas e atingiram seu limite (a fragmenta\u00e7\u00e3o adicional em processos n\u00e3o \u00e9 vi\u00e1vel em termos de consumo de recursos). Entre as limita\u00e7\u00f5es do uso do sandbox, mencionam-se os altos custos operacionais e o aumento do consumo de mem\u00f3ria, causados pela necessidade de criar novos processos, al\u00e9m do surgimento de atrasos adicionais relacionados ao uso de IPC.     <\/p>\n<p>No entanto, o sandbox n\u00e3o elimina vulnerabilidades no c\u00f3digo, apenas reduz os riscos e torna os ataques mais complicados, uma vez que para a explora\u00e7\u00e3o \u00e9 necess\u00e1rio identificar n\u00e3o uma, mas v\u00e1rias vulnerabilidades. Os m\u00e9todos baseados em testes de c\u00f3digo s\u00e3o limitados na medida em que, para detectar erros, \u00e9 necess\u00e1rio criar condi\u00e7\u00f5es que provoquem o problema. Cobrir todas as poss\u00edveis variantes n\u00e3o \u00e9 vi\u00e1vel, portanto, muitos erros permanecem n\u00e3o detectados.               <\/p>\n<p>Para processos do sistema no Android, a Google segue a \"regra dos dois\", segundo a qual qualquer c\u00f3digo adicionado deve atender a no m\u00e1ximo duas condi\u00e7\u00f5es de tr\u00eas: trabalhar com dados de entrada n\u00e3o verificados, usar uma linguagem de programa\u00e7\u00e3o insegura (C\/C++) e executar sem isolamento rigoroso de sandbox (possuir privil\u00e9gios elevados). Dessa regra, se conclui que o c\u00f3digo para lidar com dados externos deve ser cortado para privil\u00e9gios m\u00ednimos (isolado) ou escrito em uma linguagem de programa\u00e7\u00e3o segura.         <\/p>\n<p>A Google n\u00e3o tem como objetivo reescrever o c\u00f3digo existente em C\/C++ em Rust, mas planeja utilizar esta linguagem para o desenvolvimento de novo c\u00f3digo. Utilizar Rust para novos c\u00f3digos faz sentido, visto que, estatisticamente, a maioria dos erros aparece em c\u00f3digos novos ou recentemente modificados. Especificamente, cerca de 50% dos erros identificados relacionados \u00e0 mem\u00f3ria no Android s\u00e3o encontrados em c\u00f3digo escrito h\u00e1 menos de um ano.      <center><img decoding=\"async\" alt=\"Rust \u00e9 inclu\u00eddo entre as principais linguagens para desenvolvimento da plataforma Android\" src=\"\/wp-content\/uploads\/2021\/04\/4b33e5ecee70284872fc42dabcbfc372.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54918\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android. \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u044f\u0437\u044b\u043a\u0430 Rust \u0431\u044b\u043b \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0434\u0435\u0440\u0435\u0432\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0442\u0435\u043a\u0441\u0442\u043e\u0432 Android \u0435\u0449\u0451 \u0432 2019 \u0433\u043e\u0434\u0443, \u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0430\u043b\u0430\u0441\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439. \u041e\u0434\u043d\u0438\u043c\u0438 \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 Rust, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 Android, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f Binder \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":99683,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-99682","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Rust \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2021-04-07T14:22:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-04-07T14:22:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rust \u00e9 inclu\u00eddo entre as principais linguagens para desenvolvimento da plataforma Android | ProHoster","description":"A Google anunciou a inclus\u00e3o da linguagem de programa\u00e7\u00e3o Rust entre as linguagens aceit\u00e1veis para o desenvolvimento da plataforma Android.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Rust \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0432 \u0447\u0438\u0441\u043b\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Google \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f Rust \u0432 \u0447\u0438\u0441\u043b\u043e \u044f\u0437\u044b\u043a\u043e\u0432, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0445 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Android.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/rust-vklyuchyon-v-chislo-osnovnyh-yazykov-dlya-razrabotki-platformy-android","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2021-04-07T14:22:46+00:00","article:modified_time":"2021-04-07T14:22:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99682","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-04-07 15:21:42","updated":"2022-10-08 03:45:48","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=99682"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99682\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/99683"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=99682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=99682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=99682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}