IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 381
    Points : 196 409
    Points
    196 409
    Par défaut Après Microsoft et Linux, Apple montre de plus en plus d'intérêt pour l'utilisation de Rust
    Après Microsoft et Linux, c'est au tour d'Apple de montrer de plus en plus d'intérêt pour l'utilisation de Rust
    dans la programmation de bas niveau

    Apple semble s'intéresser de plus en plus à l'utilisation de Rust pour la programmation de bas niveau. Voici la description d'une offre d'emploi ainsi que les qualifications requises :

    « Vous êtes passionné par le développement de logiciels sécurisés et performants au niveau des systèmes ? Nous développons et déployons des logiciels qui constituent la base de certains des services les plus importants d'Apple, notamment iCloud, Maps, iTunes, etc. Notre logiciel garantit que les services d'Apple sont fiables, évolutifs, rapides et sécurisés. Dans ce rôle, vous aurez une occasion unique de participer à la fourniture de certains des services cloud les plus importants au monde ».
    • 3-5 ans d'expérience avec C.
    • Expérience avec Rust souhaitable et un énorme plus
    • Expérience de travail avec les réseaux de bas niveau.
    • Expertise avec les systèmes d'exploitation de type Unix.
    • Compétences de communication claires.

    « Nous recherchons un ingénieur logiciel expérimenté avec une passion pour les réseaux informatiques et la sécurité. Faites partie d'une petite équipe hautement qualifiée de services d'infrastructure réseau chez Apple.

    « L'équipe Apple Cloud Traffic fournit une couche réseau sécurisée pour étayer les applications destinées aux consommateurs. Basée sur une implémentation personnalisée d'IPsec, elle doit gérer le chiffrement de chaque paquet passant entre les serveurs au sein et entre les vastes centres de données, avec une surcharge minimale. Les protocoles RPC sécurisés personnalisés gèrent la saisie, l'authentification et l'autorisation de tous les flux de trafic.

    « Les performances et la sécurité des systèmes que nous construisons sont essentielles. Nous nous connectons directement aux interfaces du noyau Linux de bas niveau, en utilisant des E / S asynchrones et des threads pour distribuer la charge de travail. Après une première incursion très réussie dans Rust, nous migrons une base de code établie de C vers Rust et créons de nouvelles fonctionnalités principalement dans Rust ».

    Rust de plus en plus évoqué pour la programmation système

    Le développement du système UNIX a débuté en 1969 et son code a fait l’objet de réécriture en langage C en 1972. En 1985, c’était la sortie de Windows 1.0. Même si le code source du système d’exploitation de la firme de Redmond est fermé, l’entreprise elle-même a indiqué que le noyau du système d’exploitation est principalement écrit en C. C’est pareil pour Linux dont la plus grosse part de la base de code est écrite en C. En matière de programmation système, le langage C peut désormais être considéré comme l’actuelle norme. « Le langage C est le nouvel assembleur », déclarait alors Josh Triplett d’Intel.

    Le C s’est imposé aux travailleurs de la filière programmation système pour plusieurs raisons. À l'occasion de l'édition 2019 de l'Open Source Technology Summit, Josh Triplett est revenu sur certaines d'entre elles. Tout d'abord, en tant que langage évolué, le C permet aux développeurs de gagner en matière d’utilisabilité et de productivité ; c’est moins de lignes du code pour accomplir les mêmes tâches en comparaison à l’assembleur. C’est aussi un niveau de performance qui proche de celui de l’assembleur. Ensuite, le passage au C n’induit pas de pertes en termes de possibilités que l’assembleur offre.

    Pourtant, lors de l'édition 2019 du Linux Security Summit, des chercheurs en sécurité ont mis le doigt sur l’une des plus grosses tares que le langage C traîne : les problèmes liés à la gestion de la mémoire – dépassements de mémoire tampon, allocations non libérées, accès à des zones mémoire invalides ou libérées, etc. D’après les chiffres du dictionnaire Common Vulnerabilities and Exposure (CVE), 15,9 % des 2288 vulnérabilités qui ont affecté le noyau Linux en 20 ans sont liées à des dépassements de mémoire tampon. Lors de sa sortie à l’Open Source Technology Summit, l’ingénieur d’Intel est revenu sur ce détail en ajoutant que « les développeurs ont besoin d’un langage évolué qui apporte réponse aux problèmes qui ne peuvent être résolus en C et qui introduit des fonctionnalités intéressantes. »

    C'est dans ce contexte que Rust a été évoqué et l'ingénieur a estimé que « Rust est le futur de la programmation système et C le nouvel assembleur », prenant la peine d'expliquer en quoi.


    La communauté Linux est elle-même lancée sur des réflexions en lien à la façon d’intégrer la prise en charge de Rust. « Nous devons adopter une approche de prise en charge identique à celle des compilateurs et procéder à la vérification de la disponibilité de divers drapeau de compilation à l’étape de configuration », a précisé Linus Torvalds. La sortie du créateur du célèbre noyau open source marque en principe son accord avec le principe de la prise en charge de plus en plus importante du langage Rust au sein de Linux.

    Nom : microsoft.png
Affichages : 40122
Taille : 255,0 Ko

    De façon graduelle, Microsoft migre vers Rust au détriment du C/C++ que l’entreprise ne juge plus acceptable pour la mise sur pied d’applications dites système. Motif : Rust offre de meilleures garanties en matière de sécurisation des logiciels que le couple C/C++. Les initiatives allant dans le sens de faire un usage plus extensif du langage se multiplient donc chez l'éditeur. Cette année par exemple, Microsoft a annoncé l’arrivée d’un nouveau membre dans la famille des outils de projection de langage dont fait partie C++/WinRT : Rust/WinRT. C’est une projection du langage Rust entièrement standard pour les API Windows Runtime, implémentée comme une bibliothèque basée sur des fichiers d'en-tête, et conçue pour vous fournir un accès de première classe à l'API Windows moderne.

    Windows Runtime (WinRT) est le Runtime de Windows. Il constitue la base des applications de la Plateforme universelle de Windows (UWP). Il se base sur les API COM (Component Object Model) sous le capot et il est conçu pour être accessible par des projections de langage. WinRT peut également être utilisé pour des choses comme les pilotes, ce qui se prête à un code natif très performant. Microsoft soutient principalement ce cas d'utilisation avec C++/WinRT. Mais depuis ce jeudi, Rust a rejoint C++ avec Rust/WinRT. Une bonne nouvelle pour les développeurs Rust.

    En effet, ces projections de langage prennent les métadonnées décrivant les différentes API et fournissent des liaisons naturelles pour le langage de programmation cible. Comme vous pouvez l'imaginer, cela permet aux développeurs de créer plus facilement des applications et des composants pour Windows en utilisant le langage de leur choix. Vous pouvez alors utiliser ces API Windows pour créer des applications de bureau, des applications de stockage ou quelque chose de plus unique comme un composant, un service NT ou un pilote de périphérique.

    Source : Apple

    Et vous ?

    Que pensez-vous de Rust ?
    Est-il, selon vous, un bon candidat pour pallier les lacunes du C/C++ décriées par les chercheurs en sécurité ?

    Voir aussi :

    Le langage Rust est la meilleure chance offerte à l'industrie informatique pour la mise sur pied d'applications système sécurisées, d'après Microsoft
    L'année 2020 est-elle celle de Rust au sein du noyau Linux ? C'est ce que suggère une sortie de Linus Torvalds qui donne des instructions sur l'introduction de son support au système de build
    « Rust est le futur de la programmation système et C le nouvel assembleur », d'après un ingénieur d'Intel, qui explique pourquoi il est pertinent de passer à Rust
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 477
    Points : 1 332
    Points
    1 332
    Billets dans le blog
    1
    Par défaut
    je trouve que dire de "C/C++" que c'est une vraie passoire et mal programmé, est aller vite en besogne, sert certain son peu regardant, mais ce n'ait pas le cas de tout le monde , Lire les cahiers sur dévellopez de bonne conduite de programmation ils sont encore en ligne.

    d'autre part je n'ai pas besoin de vouloir prouver que mon langage XXX est le meilleurs au détriment YYY ... Bref de savoir que certaines entreprises prennent RUST me suffit. Quand au reste libre à moi de choisir selon mes besoins.

  3. #3
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 414
    Points : 1 508
    Points
    1 508
    Par défaut Les outils, la stabilité et l'historique
    Un nouveau langage, rust, dont tout le monde parle. J'ai essayé. Un bête "hello world" en C, compilé avec GCC, fait entre 7 et 8 ko. Le même en Rust, donne peu ou prou le même code assembleur (oui, je regarde le code assembleur) et le linker en fait un fichier de 7Mo. Oui, oui, oui...
    Les projets où je programme sont des projets perso, et c'est soit en C soit en ASM parce que je cible des µcontrolleurs. Il n'y a même pas de compilateur C++. Alors, le rust...

  4. #4
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 740
    Points
    3 740
    Billets dans le blog
    12
    Par défaut
    Hello

    @JPLAROCHE, le problème avec C/C++ est que tu auras beau avoir les meilleurs développeurs, tu n'es jamais à l'abri d'une fuite de mémoire, aussi le langage est permissif rien ne t'oblige à utiliser les smarts pointers, avec Rust c'est implicite.

    @CaptainDangeax, actuellement j'ai 2.8Mo, je pense que c'est le static linking qui veut ça
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    je trouve que dire de "C/C++" que c'est une vraie passoire et mal programmé, est aller vite en besogne, sert certain son peu regardant, mais ce n'ait pas le cas de tout le monde , Lire les cahiers sur dévellopez de bonne conduite de programmation ils sont encore en ligne.
    Les bonnes pratiques c'est très bien, et même indispensable en C++, mais ça ne sont pas des garanties.
    En C++ avoir un code bien sécurisé est une tache complexe qui n'est pas a la portée du premier venu et qui requiert une attention de tout les instants, même pour les développeurs chevronnés, car la moindre inattention peut très vite se transformer en faille de sécurité. Et la plupart des sociétés (notamment Microsoft, Oracle, Mozilla, Apple) qui ont fait des revues de vulnérabilité sur leurs grosses applications C++ sont arrivées a des résultats similaires : même avec des politiques de qualité élevées, environ 70% des failles de sécurité critiques relèvent de catégories de problèmes qui seraient techniquement impossibles avec un langage comme Rust.

    Citation Envoyé par JPLAROCHE Voir le message
    d'autre part je n'ai pas besoin de vouloir pouver que mon langage XXX est le meilleurs au détriment YYY ... Bref de savoir que certaine entreprise prennent RUST me suffit. Quand au reste libre à moi de choisir selon mes besoins.
    Il ne s'agit pas de prouver que le langage X est meilleur que le langage Y, mais de connaitre leur différence pour savoir lequel est le plus adapté à quelle situation.

    Citation Envoyé par CaptainDangeax Voir le message
    Un nouveau langage, rust, dont tout le monde parle. J'ai essayé. Un bête "hello world" en C, compilé avec GCC, fait entre 7 et 8 ko. Le même en Rust, donne peu ou prou le même code assembleur (oui, je regarde le code assembleur) et le linker en fait un fichier de 7Mo. Oui, oui, oui...
    Les projets où je programme sont des projets perso, et c'est soit en C soit en ASM parce que je cible des µcontrolleurs. Il n'y a même pas de compilateur C++. Alors, le rust...
    La différence de taille pour une compilation basique est tout a fait normale vu que, par défaut, Rust lie la lib standard en statique et inclus plus d'infos de débogage.
    Mais si tu compile avec la bibliothèque liée dynamiquement et que tu strippe les info de débogage, les tailles sont quasi identique à du C++. En fait, c'est même légèrement plus petit en Rust chez moi, mais l'écart est tellement faible que je suppose que ça doit varier en fonction des version de compilateurs.

  6. #6
    Membre expérimenté

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 477
    Points : 1 332
    Points
    1 332
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Uther Voir le message
    Les bonnes pratiques c'est très bien, et même indispensable en C++, mais ça ne sont pas des garanties.
    En C++ avoir un code bien sécurisé est une tache complexe qui n'est pas a la portée du premier venu et qui requiert une attention de tout les instants, même pour les développeurs chevronnés, car la moindre inattention peut très vite se transformer en faille de sécurité. Et la plupart des sociétés (notamment Microsoft, Oracle, Mozilla, Apple) qui ont fait des revues de vulnérabilité sur leurs grosses applications C++ sont arrivées a des résultats similaires : même avec des politiques de qualité élevées, environ 70% des failles de sécurité critiques relèvent de catégories de problèmes qui seraient techniquement impossibles avec un langage comme Rust.
    D'abords merci pour la réponse , je préfère votre réponse, le langage Rust par définition oblige le programmeur à respecter cette sécurité pour moi c'était une évidence.

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2016
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2016
    Messages : 223
    Points : 561
    Points
    561
    Par défaut
    le seul projet made in rust que j'utilisais au quotidien c'était servo pour firefox. Après des mois d'attente d'améliorations suite aux nombreux crash que celui ci provoquait et subissait au jour le jour j'ai abandonné et je suis repartit vers chromium. de là à dire que rust n'atteint pas ses objectifs, voir, est tout buggé, il n'y a que la possibilité que les dev de servo sont mauvais qui m'en empêche. Mais bon ça me laisse songeur quand à ces décisions. On verra bien ce que ça donne.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Points : 49
    Points
    49
    Par défaut
    Rust semble vraiment intéressant... Vu le support des éditeurs, il y a moyen que ce langage attire pas mal de développeurs... Donc la création de librairie et le cercle vertueux qui va avec.
    Pour moi, c'est quand même plus un remplaçant de C que de C++.
    De ce que je vois, la communauté C++ a réagi pour pallier au manque de sécurisation "automatique" (gros avantage de Rust) avec la création de checker post compilation (à automatiser donc...) :
    https://devblogs.microsoft.com/cppbl...019-preview-2/
    Il existe l'équivalent pour Clang.
    Ces outils ne sont pas terminés, mais c'est pour moi cela est très prometteur, par contre, je ne vois rien d'équivalent en C... (ceci dit, il est possible que ces checkers fonctionnent sur du code C).
    It's time to kickass nvidia and chew 3dfx/ati bubblegum !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par mh-cbon Voir le message
    le seul projet made in rust que j'utilisais au quotidien c'était servo pour firefox. Après des mois d'attente d'améliorations suite aux nombreux crash que celui ci provoquait et subissait au jour le jour j'ai abandonné et je suis repartit vers chromium. de là à dire que rust n'atteint pas ses objectifs, voir, est tout buggé, il n'y a que la possibilité que les dev de servo sont mauvais qui m'en empêche. Mais bon ça me laisse songeur quand à ces décisions. On verra bien ce que ça donne.
    Sauf que la comparaison n'est pas valable : Firefox n'est pas totalement écrit en Rust, loin de là, il y a encore énormément de C++
    Donc attribuer les crash de Firefox à Rust, c'est risqué

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 61
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par freesket Voir le message
    Rust semble vraiment intéressant... Vu le support des éditeurs, il y a moyen que ce langage attire pas mal de développeurs... Donc la création de librairie et le cercle vertueux qui va avec.
    Pour moi, c'est quand même plus un remplaçant de C que de C++.
    De ce que je vois, la communauté C++ a réagi pour pallier au manque de sécurisation "automatique" (gros avantage de Rust) avec la création de checker post compilation (à automatiser donc...) :
    https://devblogs.microsoft.com/cppbl...019-preview-2/
    Il existe l'équivalent pour Clang.
    Ces outils ne sont pas terminés, mais c'est pour moi cela est très prometteur, par contre, je ne vois rien d'équivalent en C... (ceci dit, il est possible que ces checkers fonctionnent sur du code C).
    Rust est le remplaçant de C ET de C++, car il a un système de type largement, voire plus évolué que celui de C++, et lui au moins n'a pas une spécification de 1500 pages complètement incohérente. Quiconque a voulu écrire un parser C++ sait de quoi je parle.
    C++ vivra de son inertie, mais il est enfin temps de se débarrasser de ce dinosaure mal conçu.

  11. #11
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 552
    Points : 15 463
    Points
    15 463
    Par défaut
    Citation Envoyé par mh-cbon Voir le message
    le seul projet made in rust que j'utilisais au quotidien c'était servo pour firefox. Après des mois d'attente d'améliorations suite aux nombreux crash que celui ci provoquait et subissait au jour le jour j'ai abandonné et je suis repartit vers chromium. de là à dire que rust n'atteint pas ses objectifs, voir, est tout buggé, il n'y a que la possibilité que les dev de servo sont mauvais qui m'en empêche. Mais bon ça me laisse songeur quand à ces décisions. On verra bien ce que ça donne.
    Attribuer a un langage les défaut d'un programme c'est déjà cavalier en soi comme raisonnement, mais en plus Firefox est très loin d'être majoritairement en Rust ce qui rend la chose d'autant plus incorrecte.

    Citation Envoyé par Montaigne Voir le message
    Rust est le remplaçant de C ET de C++, car il a un système de type largement, voire plus évolué que celui de C++, et lui au moins n'a pas une spécification de 1500 pages complètement incohérente. Quiconque a voulu écrire un parser C++ sait de quoi je parle.
    Ce a quoi on peu facilement rétorquer que c'est difficile de comparer Rust sur ce point, vu qu'il ne dispose pas d'une spécification officielle.
    Je ne dirais pas que le système de type est plus évolué, juste différent. En particulier, il n'est pas basé sur un système de hiérarchie des classes, ce qui peut être vu comme une qualité ou un inconvénient.

Discussions similaires

  1. Réponses: 43
    Dernier message: 01/12/2011, 20h10
  2. Réponses: 103
    Dernier message: 08/06/2010, 15h12
  3. Réponses: 116
    Dernier message: 05/02/2010, 11h07
  4. [JTIDY]PLus d'information pour l'utiliser
    Par zephyr dans le forum Documents
    Réponses: 3
    Dernier message: 02/02/2007, 13h22
  5. win xp ne redémarre plus après install de Linux et Grub
    Par midiweb dans le forum Windows XP
    Réponses: 7
    Dernier message: 14/06/2006, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo