Faire des programmes "systèmes" (os) en ruby ?

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, je cherche à savoir si il est possible de programmer pour le système en Ruby. Je m'explique : en gros je cherche à faire des scripts systèmes pour faire de la configuration, ou gérer des périphériques, comme on pourrais faire en Python. (Le but n'étant pas d'avoir une comparaison ruby/python). Je précise que je suis débutant dans les 2 langages et que j'ai pris le temps de comprendre un petit peu pour tester et donc je préfère le ruby mais je me rabattrai sur le python si ce n'est pas possible. Merci d'avance :)

+0 -0
Auteur du sujet

Bonjour,

Ruby te permet d'aller aussi loin dans la programmation système que ce que Python te permettra. Donc si tu préfère Ruby, tu peux te lancer sans problème.

firm1

Merci :D Je me demandais juste au niveau des "bibliothèques" (je ne sais pas comme ça s'appel en Ruby) si il y en avais, Ruby étant moins populaire que python, il peut être moins fournis.

Édité par TheSuperGeek

+0 -0
Staff

Je me demandais juste au niveau des "bibliothèques" (je ne sais pas comme ça s'appel en Ruby) si il y en avais, Ruby étant moins populaire que python, il peut être moins fournis.

TheSuperGeek

En Ruby on les appelle des gems, et tu trouveras un paquet de gems ici. Peux-tu décrire exactement ce que tu veux faire pour qu'on puisse te rediriger vers le bon gem ? Car il y a déjà pas mal de truc dans la lib standard notamment dans le module Kernel

Auteur du sujet

Génial le site rubygems, merci :)

Peux-tu décrire exactement ce que tu veux faire pour qu'on puisse te rediriger vers le bon gem ? Car il y a déjà pas mal de truc dans la lib standard notamment dans le module Kernel

firm1

Alors, ça viens comme ça je me dis "mince j'aurais besoin de ça" mais par exemple j'avais besoin de faire un script qui lis si j'avais mon 2ème écran de connecté et que si c'étais le cas sois je peux directement régler la résolution et la disposition des écrans soit il exécute le script généré par arrandr. (dans ce style là, après avec rubygems je pense que je vais pouvoir trouver :) ) En tous cas merci beaucoup !

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

En fait cela dépend assez fortement de l'OS, mais sous Linux le use-case que tu viens de décrire est tout à fait réalisable du moment que le langage supporte la lecture et l'écriture de fichiers.

Du reste pour être au même niveau que python en termes de système il te suffit uniquement de pouvoir binder des fonctions en C au travers de la FFI. Du moment que ton langage sait faire ça (et je suis quasiment certain que Ruby le peut), tu peux charger la libc et réaliser des appels système, y compris en l'absence d'un module standard dédié.

Par contre en termes système, il persiste un petit bémol : Ruby ne gère pas les threads POSIX, mais embarque plutôt son système de threads à lui dans le userland. Ça peut être un critère limitant (par exemple, tu ne pourras probablement pas monitorer la charge CPU du thread courant en te servant simplement de l'appel-système gettid et en lisant les temps dans /proc ou au moyen d'un équivalent de psutils).

Édité par nohar

I was a llama before it was cool

+1 -0
Auteur du sujet

Salut, j'ai trouvé ceci : https://github.com/postmodern/ffi-libc (bon alors je ne sais pas à quoi ça sert…)

Par contre en termes système, il persiste un petit bémol : Ruby ne gère pas les threads POSIX, mais embarque plutôt son système de threads à lui dans le userland. Ça peut être un critère limitant (par exemple, tu ne pourras probablement pas monitorer la charge CPU du thread courant en te servant simplement de l'appel-système gettid et en lisant les temps dans /proc ou au moyen d'un équivalent de psutils).

nohar

Euh, mais il y a pas un moyen de le faire "en interne" ? Merci beaucoup :)

+0 -0
Staff

Ça je sais pas. Je connaissais déjà très bien Perl et Python le jour où j'ai essayé Ruby donc je n'ai jamais vraiment cherché à creuser ce langage qui est à mes yeux un mix des deux.

I was a llama before it was cool

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte