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. #41
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    décembre 2003
    Messages
    1 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2003
    Messages : 1 875
    Points : 2 782
    Points
    2 782
    Par défaut
    Citation Envoyé par Jiji66 Voir le message
    Il est possible de programmer en pseudo "languages-trucs" beaucoup de choses; cela ne justifie pas pour autant d'affirmer que l'ajout d'une couche d'abstraction "object" améliore l’efficacité ou la compréhension intime de ce qu'il se passe au niveau du matériel.
    Pour de la compréhension intime, alors ce sera de l'assembleur. Le C et le C++ cachent les mêmes choses, qui font que ce n'est pas du tout intime au niveau matériel. Enfin bref c'est pas parce que je manipule 2 pointeurs en C/C++, que je me sens intime avec le matériel. Avec l'assembleur, là oui, ça commence à être intime.

    Pour le pseudo C++, ça veut juste souvent dire, pas d'héritage, pas de template, etc. Mais par contre, il y a toujours le truc super efficace, l'encapsulation. D'ailleurs, le javascript, le php, le python, ont introduit des doses de pseudo C++. On se demande pourquoi.

    En fait, l'encapsulation, c'est le truc universel où tous les développeurs devraient être d'accord sur les avantages que cela apporte.

  2. #42
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    août 2010
    Messages
    1 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : août 2010
    Messages : 1 615
    Points : 3 617
    Points
    3 617
    Par défaut
    Citation Envoyé par SimonDecoline Voir le message
    Rust a un compilateur, un débogueur, un générateur de doc, etc... ça alors mais quel exploit ! C'est vraiment le seul langage du monde à faire ça...
    Et du coup c'est quoi la commande cargo pour intégrer et réutiliser une lib C ou fortran ?
    Bien sûr que ce n'est pas le seul. Mais il n'empêche que le côté "prêt à coder" est un avantage sur d'autres technos. gdb et Doxygen ne sont pas automatiquement installés quand tu "installes" C et C++.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  3. #43
    Chroniqueur Actualités

    Homme Profil pro
    Rédacteur technique
    Inscrit en
    juin 2016
    Messages
    1 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 1 921
    Points : 41 050
    Points
    41 050
    Par défaut Les derniers correctifs du projet Rust for Linux montrent que le langage Rust avance à grands pas vers Linux
    Les derniers correctifs du projet Rust for Linux montrent que le langage Rust avance à grands pas vers le noyau
    Torvalds estime que cela pourrait être prêt pour la version 5.14

    Linux 5.13 a été publié fin juin sans le support du langage Rust, mais Linus Torvalds a déclaré en avril que le projet Rust for Linux a maintenant beaucoup avancé et pourrait être fusionné avec la prochaine mouture du noyau, Linux 5.14. Miguel Ojeda, chef du projet Rust for Linux, a soumis un nouvel ensemble de correctifs à la liste de diffusion de Linux qui résume les progrès du projet visant à permettre l'utilisation de Rust aux côtés de C pour l'implémentation du noyau. Les progrès sont significatifs, allant de l'utilisation d'un compilateur Rust bêta, le test du support des architectures ARM et RISC-V, de nouvelles abstractions Rust, etc.

    Miguel Ojeda est un informaticien du CERN à Genève, en Suisse, qui travaille maintenant à plein temps sur le projet Rust for Linux. Dans son billet, il a commencé par expliquer que les allocations infaillibles ont été supprimées par le biais d'un crate de bibliothèque standard "alloc" personnalisé. En effet, une allocation infaillible, c'est lorsqu'un développeur suppose qu'une allocation de mémoire va toujours réussir. Si elle ne réussit pas, Rust met fin au processus. Les allocations infaillibles ne sont pas acceptables dans le noyau, car les échecs provoquent une panique du noyau. Une allocation faillible permet au développeur de tester le succès.

    Nom : s_20200829_100658.jpg
Affichages : 2385
Taille : 48,4 Ko

    Ojeda a écrit que les intrinsèques de panique de "compiler_builtins" sont toujours là, mais ils seront résolus en partitionnant "core" via des portes de fonctionnalités. La première, pour désactiver la fonctionnalité de virgule flottante, vient d'être acceptée en amont. « À terme, l'objectif est d'avoir tout ce dont le noyau a besoin dans "alloc" en amont et de le supprimer de l'arbre du noyau », a-t-il déclaré. Plusieurs autres améliorations majeures ont été apportées au support général de Rust. Les sous-sections suivantes les couvrent.

    Support d'un compilateur Rust bêta

    Rust for Linux nécessite de nouvelles fonctionnalités dans le compilateur Rust (rustc) ainsi que dans le code du noyau. Mais jusqu'à présent, le projet n'a utilisé que les versions nightly de rustc, car il a besoin des derniers correctifs et des fonctionnalités instables. Cela n'est plus désormais nécessaire, car le noyau peut maintenant être compilé avec les versions bêta et stable de rustc. Pour le moment, le projet utilise la version 1.54-beta1 comme compilateur de référence. À la fin de ce mois, la version 1.54 de rustc sera publiée, et le projet passera à cette version comme référence.

    Notez que le noyau nécessite toujours des fonctionnalités instables, même s'il est compilé avec une version stable de rustc. Ainsi, Ojeda a déclaré que l'équipe ne pourra pas garantir que les futures versions de rustc fonctionneront sans changements dans l'arbre du noyau. « De ce fait, jusqu'à ce que toutes les fonctionnalités instables dont nous avons besoin soient stabilisées, nous supporterons une seule version de rustc pour chaque version du noyau », a-t-il déclaré. L'écriture de tests unitaires pour le code du noyau Rust fonctionne maintenant avec l'attribut standard Rust #test.

    Ils ne s'exécutent pas encore dans le noyau, mais selon Ojeda, « l'objectif est de les faire fonctionner dans l'espace du noyau, afin que nous puissions tester le code qui dépend des fonctionnalités du noyau ».

    Architectures et support du compilateur

    « Nous avons demandé à Compiler Explorer d'ajouter le support de tous les compilateurs alternatifs. Au moment d'écrire ces lignes, ils ont déjà ajouté mrustc et GCC Rust ; et rustc_codegen_gcc sera bientôt disponible », a-t-il déclaré. Autrement dit, les architectures ARM et RISC-V sont maintenant supportées, grâce au travail sur rustc_codgen_gcc, qui est un codegen GCC pour rustc. Cela signifie que rustc effectue la compilation initiale du code Rust, mais que GCC (la collection de compilateurs GNU) effectue la compilation finale, ce qui permet la prise en charge des architectures que GCC supporte.

    Il existe une proposition pour fusionner ce travail dans la base de code principale de Rust, ce qui soulève un problème de licence, car Rust utilise les licences MIT et Apache v2 alors que GCC utilise la GPLv3. La Fondation Rust a examiné la question et a conclu que : « le changement proposé n'aura pas d'impact sur la licence de rustc sauf lorsqu'il est construit avec le back-end gcc, auquel cas la GPLv3 s'appliquera au binaire résultant » – ce qui signifie le binaire du compilateur, pas les applications qu'il compile.

    Abstractions Rust et mises à jour des pilotes

    Ojeda a annoncé que l'équipe de Rust for Linux a développé de nouvelles abstractions Rust qui utilisent les implémentations du noyau C, notamment : red-black trees, reference-counted objects, file descriptor creation, tasks, files, io vectors, etc. En outre, l'équipe a aussi amélioré le support des pilotes : améliorations de "file_operations" (plus d'opérations supportées, état arbitraire), de la macro module!, des macros d'enregistrement, des pilotes de plateforme rudimentaires ("probe" et "remove"), la réduction du code passe-partout, etc.

    Selon le message d'Ojeda, sur Binder, il y a maintenant un support pour le transfert des descripteurs de fichiers et des hooks LSM ; et l'équipe travaille sur des chiffres préliminaires de performance. De plus, un travail est en cours sur un pilote d'exemple Rust, bcm2835-rng. Il s'agit du générateur de nombres aléatoires matériel présent sur les Raspberry Pi Zero(W), Classic, Two et Three. Il y a d'autres petites améliorations, comme le fait que les pilotes sont limités sur les fonctionnalités instables qu'ils peuvent utiliser.

    Quel est le statut des séries de correctifs ?

    Selon Ojeda, la prise en charge de Rust est toujours considérée comme expérimentale. Cependant, comme indiqué en avril, le support est suffisamment bon pour que les développeurs du noyau puissent commencer à travailler sur les abstractions Rust pour les sous-systèmes et écrire des pilotes et autres modules. Il faut noter que les séries actuelles de correctifs viennent "linux-next", donc la première exécution a eu lieu mardi dernier.

    Soutien de la communauté à Rust for Linux

    Le projet bénéficie d'un soutien important de la part de l'industrie. En avril, Google a déclaré : « Nous pensons que Rust est désormais prêt à rejoindre le langage C en tant que langage pratique pour l'implémentation du noyau et que cela réduirait le nombre de bogues et de failles de sécurité potentiels ». Google sponsorise Ojeda pour qu'il travaille à temps plein sur le projet pendant un an, par l'intermédiaire de l'ISRG (Internet Security Research Group). L'ISRG a déclaré le mois dernier que cela s'inscrivait dans le cadre des efforts visant à faire évoluer l'infrastructure logicielle critique d'Internet vers un code sûr pour la mémoire.

    L'ISRG est également l'organisation à but non lucratif à l'origine des certificats de sécurité gratuits Let's Encrypt. Ojeda a mentionné que le groupe Linux Systems de Microsoft contribue et espère soumettre certains pilotes Hyper-V écrits en Rust. Arm promet une assistance avec Rust pour Linux sur les systèmes basés sur ARM. IBM a contribué au support du noyau Rust pour son processeur PowerPC. Plus de détails devraient être révélés lors de la prochaine conférence Linux Plumbers en septembre. En attendant, le projet est disponible sur GitHub.

    Linus Torvalds a déclaré à plusieurs reprises qu'il se réjouissait de la possibilité d'utiliser Rust aux côtés de C pour le développement du noyau, et a déclaré à en avril que le projet a atteint un point où il pourrait être fusionné avec la version 5.14 du noyau.

    Sources : Miguel Ojeda, Rust for Linux

    Et vous ?

    Quel est votre avis sur le sujet ?

    Voir aussi

    Linux 5.13 est disponible avec le support de l'Apple M1, Landlock, FreeSync HDMI et a été publié sous le nom de code "Opossums on Parade"

    La prise en charge de Rust pour le développement du noyau Linux commence à prendre forme, le langage fait un premier pas vers la branche "Linux-Next"

    La prise en charge de Rust pour le développement du noyau Linux fait l'objet d'une nouvelle série de discussions, après une proposition de RFC

    Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux, et aurait qualifié le C++ de « langage de m... », après le message de Google
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  4. #44
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    septembre 2020
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2020
    Messages : 28
    Points : 97
    Points
    97
    Par défaut
    "Google sponsorise Ojeda pour qu'il travaille à temps plein sur le projet pendant un an"

    Suis-je le seul à penser que venant d'un grand groupe, ce type d'investissement semble démesurément ridicule aux regard des enjeux / bénéfices techniques ?

    C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).

    j'ai pas suivi en détail, mais c'est le reflexe pavlovien que ça inspire en première lecture

  5. #45
    Membre expert
    Inscrit en
    juin 2009
    Messages
    1 022
    Détails du profil
    Informations forums :
    Inscription : juin 2009
    Messages : 1 022
    Points : 3 136
    Points
    3 136
    Par défaut
    Citation Envoyé par coder_changer_vie Voir le message
    C'est pas comme si le noyau était largement utilisé par Google pour Android (à vérifier mais je dois pas être loin si c'est un fork).
    Sans compter les ~900 000 serveurs de googles qui génèrent genre 90% de leur chiffre d'affaire...

Discussions similaires

  1. Avec quel ordinateur avez-vous fait vos premiers pas en informatique ?
    Par Stéphane le calme dans le forum Actualités
    Réponses: 16
    Dernier message: 09/03/2021, 21h15
  2. Robots auto-associateurs : premiers pas vers le Terminator II T-1000
    Par ToTo13 dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 12/10/2013, 19h59
  3. premier pas vers SAP
    Par xxman dans le forum SAP
    Réponses: 1
    Dernier message: 10/10/2011, 07h42
  4. Premier pas vers une application J2ME
    Par sassou409 dans le forum Développement Mobile en Java
    Réponses: 2
    Dernier message: 30/06/2010, 17h30

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