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

a marqué ce sujet comme résolu.

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 :)

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.

+0 -0

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

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 !

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).

+0 -0

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 :)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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