Maison > développement back-end > C++ > [Auto-apprentissage sur la rouille] . Introduction

[Auto-apprentissage sur la rouille] . Introduction

Susan Sarandon
Libérer: 2024-12-30 15:04:10
original
812 Les gens l'ont consulté

[Rust Self-Study] . Intro

1.0.1 Préface

Ce projet (à la fois le code et les notes) a été documenté au cours de mon parcours d'auto-apprentissage avec Rust. Il peut contenir des inexactitudes ou des expressions peu claires, je demande donc votre compréhension. Si vous en profitez, tant mieux.

1.0.2 Pourquoi utiliser Rust

  • Rust est fiable et efficace.

  • Rust peut remplacer C et C par des performances similaires mais sécurité plus élevée, et il ne nécessite pas de recompilation fréquente pour vérifier les erreurs comme C et C . Les principaux avantages incluent :

    • Sécurité de la mémoire (empêche le déréférencement de pointeur nul, les pointeurs suspendus et les courses de données).
    • Sécurité des threads (garantit que le code multithread est sécurisé avant l'exécution).
    • Évite les comportements non définis (par exemple, tableau hors limites, variables non initialisées ou accès à la mémoire libérée).
  • Rust fournit des fonctionnalités de langage moderne (par exemple, des génériques, des traits, des correspondances de modèles).

  • Rust propose une chaîne d'outils moderne. Rust's Cargo partage des principes similaires avec le pip de Python. Contrairement à la lourde configuration des dépendances de C/C, Cargo offre une expérience de gestion des dépendances conviviale semblable à Python, tout en conservant les performances de niveau C/C.

1.0.3 Scénarios applicables

  • Lorsque des performances sont requises : Rust peut contrôler la mémoire aussi précisément que C (en utilisant unsafe) tout en offrant des commodités modernes (par exemple, un système de propriété et une correspondance de modèles). Python, en revanche, donne la priorité à l'efficacité des développeurs mais sacrifie les performances.

  • Lorsque la sécurité de la mémoire est critique : les vérifications statiques de Rust au moment de la compilation garantissent une sécurité élevée de la mémoire, ce qui la rend parfaitement adaptée aux scénarios nécessitant une prévention des erreurs, tels que les systèmes d'exploitation, les systèmes embarqués et les serveurs réseau. .

  • Lorsqu'une utilisation efficace des processeurs multicœurs est nécessaire : Rust prend en charge nativement une concurrence efficace et une programmation multicœur sans sacrifier la sécurité, ce qui le rend particulièrement avantageux dans les scénarios nécessitant un débit élevé et des tâches simultanées ( par exemple, serveurs Web, systèmes distribués, informatique en temps réel).

Rust excelle dans les domaines suivants :

  • Services Web
  • WebAssembly (Rust et C/C surpassent considérablement C# et Java en termes de performances)
  • Outils de ligne de commande
  • Programmation réseau
  • Appareils embarqués
  • Programmation système

1.0.4 Comparaison avec d'autres langues

Category Language Features
Machine Code Binary Closest to hardware, executed directly by CPU.
Assembly Assembly Uses mnemonics to replace machine code, e.g., MOV AX, BX.
Low-level C, C Close to hardware, provides limited abstraction.
Mid-level Rust, Go Performance similar to low-level languages with higher abstraction.
High-level Python, Java Higher-level abstraction, easier to read and use.

Les langages de haut niveau et de bas niveau ne sont pas strictement opposés mais existent sur un spectre continu :

    Les langages
  • de niveau inférieur offrent un meilleur contrôle sur le matériel mais nécessitent un codage plus complexe et une efficacité de développement moindre.

  • Les langages
  • de niveau supérieur offrent une plus grande abstraction et automatisation, mais peuvent introduire une surcharge d'exécution et perdre un contrôle matériel précis.

Les avantages de Rust :

  • Hautes performances
  • De fortes garanties de sécurité
  • Excellent support pour la concurrence

La position de Rust en tant que langage de niveau intermédiaire offre les avantages suivants :

  • C/C : Excellentes performances mais manque de sécurité ; Rust assure la sécurité avec des performances comparables.

  • Java/C# : Assure la sécurité de la mémoire (grâce au garbage collection) et offre de nombreuses fonctionnalités, mais les performances sont plus faibles ; Rust atteint des niveaux de sécurité similaires avec des performances supérieures.

1.0.5 Histoire de la rouille

Rust est né d'un projet de recherche de Mozilla, le navigateur Firefox étant un exemple d'application notable.

Mozilla a développé le moteur de navigateur expérimental Servo en utilisant Rust (lancé en 2012, première version préliminaire publiée en 2016). L’architecture de Servo est entièrement parallélisée. Malheureusement, en août 2020, Mozilla a licencié la plupart des membres de l'équipe de développement de Servo. Depuis le 17 novembre 2020, Servo a été transféré à la Linux Foundation. Certaines fonctionnalités de Servo ont déjà été intégrées à Firefox.

La version Quantum de Firefox intègre le moteur de rendu CSS de Servo. Rust a apporté des améliorations significatives des performances à Firefox.

1.0.6 Utilisateurs de Rust et études de cas

  • Google : Le système d'exploitation Fuschia, où Rust constitue 30 % de la base de code.

  • Amazon : un système d'exploitation basé sur Linux conçu pour exécuter des conteneurs directement sur du bare metal ou des machines virtuelles.

  • System76 : Développement du système d'exploitation sécurisé de nouvelle génération Redox entièrement dans Rust.

  • Stanford et Université du Michigan : système d'exploitation en temps réel intégré utilisé dans les produits cryptographiques de Google.

  • Microsoft : Réécriture de certains composants de bas niveau sous Windows à l'aide de Rust.

  • Microsoft : Le projet WinRT/Rust.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal