Tu sais, le seul moyen de ne pas fabriquer des failles, c’est de ne pas développer.
Les pointeurs ne sont qu’un outil, il faut apprendre à les utiliser, comprendre à quoi ils servent et enfin prendre suffisamment de recul pour savoir quand les utiliser ou non.
Se limiter parce qu’il y a un risque n’est àmha pas la meilleure solution.
mouais, moi je vois un noyau linux captif dans un windows, et un noyau linux captif dans un environnement Android, plus des linux enfermés dans des clouds.
Pourquoi captif ? Linux est en relation direct avec plein de monde, sur Android, il gère les communications externe, les interactions avec l’utilisateur, etc. d’accord, il n’est pas en relation direct avec les applicatifs puisqu’il y a Dalvik en intermédiaire. Mais je ne trouve pas que le noyau Linux soit captif.
Sur windows, il communique avec les applications et le hardware, il rend service à l’utilisateur qui lui est peut-être captif (c’est mon cas au boulot 😭), mais le noyau n’est pas captif… au pire, on ne l’a pas laissé emmener ses amis (GNU) avec lui.
J’ai un système à simuler qui contient un certain nombre d’éléments. Plusieurs process qui accède aux données pour répondre aux messages à la place des vrais systèmes en temps réél.
Lorsqu’on change des données pour changer d’état, je veux que l’ensemble soit toujours cohérent.
D’où l’idée de faire du transactionnel. Mais je n’ai pas besoin de persistance, à la fin de mon test, je vais réinitialiser l’ensemble pour le suivant.
Oui. Je me demandais juste s’il n’y avait pas mieux. Après l’avantage de cette solution, c’est que on peut avoir des process codé dans d’autres langages.
Sauf que l’agence de sécurité aéronautique américaine a délégué la certification à Boing… ne cherchait pas de conflit d’intérêt ou d’indépendance, c’est la sécurité des passagers qui prime…
Il faut compiler le driver et le charger avec modprobe.
Non, n’importe quelle carte sur le BUS PCI doit donner son vendorID et son ID. C’est une fois en possession de cette information que le noyau peut charger le bon driver.
Si la carte n’est pas reconnu :
Vérifier qu’elle est correctement enfoncée dans le connecteur PCI.
Changer la carte de slot au cas où une soudure ait sautée (peu probable)
La remplacer par une carte que tu sais fonctionner.
Vérifier si la carte est reconnue sur un autre PC (Windows)
Oui :
Redémarrer avec un live CD linux et refaire un lspci.
Je vois un cas d’usage dont il ne faut pas abuser pour la lecture…
intn=50;charstr[n];…// Si len(source) >= 50, il n’y a pas la place pour le caractère// terminal. Donc on peut l’ajouter directement.// Par contre, attention à la compréhension du code.strncpy(str,source,n)[n-1]='\0';…
Pour maîtriser le temps Réel, il faut voir ça comme de l’échantillonnage en fréquence. Il te manque une donnée : le temps de réponse voulue.
Question 1 : À la réception du message au bout de combien de temps, l’action doit être réalisée ?
Question 2 : À la lecture du message, en combien de temps l’action est réalisée ?
À partir de là, tu peux déterminer et prouver que ton logiciel répond en temps et en heure.
Dans ton exemple, la réponse à la question 2 est : 4s.
Avec 4s de traitement, ta période ne peut descendre en dessous de 4s (voir un poil plus).
Disons 5s. Donc, tu peux garantir que le traitement sera réaliser 10s après la réception. Des fois ce sera 4,1s des fois 9,1s. Mais toujours moins de 10s.
Si tu n’as pas cette problématique de temps de réponse voulu, j’aurais tendance à utiliser des solutions bloquante de type : select pour la lecture et communication inter thread pour prévenir en sécurité de la réception. Cette solution sera sûrement plus réactive, mais le temps non garanti.
Question : As-tu vraiment besoin de la maîtrise de ton temps réel pour ton application ? Tu ne donne pas beaucoup de détail (OS ou Bare metal), plateforme, etc.
Si tu as un CPU multi cœur par exemple, et que tu peux dédier un cœur à ça, alors, tu peux faire un thread bloquant qui va te garantir une réponse en moins de 5s. Mais ton cœur n’est pas disponible pour autre chose… c’est un choix de design à faire.
Ton problème c’est que soit c’est les clients qui payent le journal, donc le journal fait plaisir à ses clients, donc est partial. La solution c’est de payer un impôt pour la presse ? Non, car le journal serait à la solde de l’État…
[^] # Re: Quelques liens pour t'aider
Posté par Anthony Jaguenaud . En réponse au message exercice en python3. Évalué à 2.
Salut,
commençons par le début. Quand je lance ce programme, j’ai une erreur.
Mon interpréteur python n’aime pas la ligne :
Que cherches-tu as tester ?
Peux-tu m’expliquer l’erreur suivante ?
TypeError: object of type 'int' has no len()# Un autocollant RTFM
Posté par Anthony Jaguenaud . En réponse au sondage Quel objet inutile avez‐vous sur votre bureau ?. Évalué à 3.
Je ne l’ai jamais collé, mais il est là !
[^] # Re: Garantie de disponibilité pièces de rechanges
Posté par Anthony Jaguenaud . En réponse au journal L'increvable le retour. Évalué à 1.
En montant l’escalier…
--->[]
[^] # Re: sécurité et pointeurs
Posté par Anthony Jaguenaud . En réponse au message structure dans une fonction sans pointeur. Évalué à 3.
Tu sais, le seul moyen de ne pas fabriquer des failles, c’est de ne pas développer.
Les pointeurs ne sont qu’un outil, il faut apprendre à les utiliser, comprendre à quoi ils servent et enfin prendre suffisamment de recul pour savoir quand les utiliser ou non.
Se limiter parce qu’il y a un risque n’est àmha pas la meilleure solution.
# Utiliser ton gestionnaire de paquet ?
Posté par Anthony Jaguenaud . En réponse au message mon programme n'arrive pas a trouver la lib. Évalué à 2.
Sur debian, sokoban est dans le paquet : games-puzzle
Je ne l’ai pas trouvé pour fedora.
[^] # Re: Mais il va rester quoi à Linux ?
Posté par Anthony Jaguenaud . En réponse au journal Windows est enfin prêt pour le desktop. Évalué à 3.
Pourquoi captif ? Linux est en relation direct avec plein de monde, sur Android, il gère les communications externe, les interactions avec l’utilisateur, etc. d’accord, il n’est pas en relation direct avec les applicatifs puisqu’il y a Dalvik en intermédiaire. Mais je ne trouve pas que le noyau Linux soit captif.
Sur windows, il communique avec les applications et le hardware, il rend service à l’utilisateur qui lui est peut-être captif (c’est mon cas au boulot 😭), mais le noyau n’est pas captif… au pire, on ne l’a pas laissé emmener ses amis (GNU) avec lui.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Merci pour les réponses. Par contre, je ne vois pas la section « Why Not Use TinyDB » :'(
[^] # Re: Transactionnel et en RAM sont incompatibles
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 5.
La durabilité doit être le temps d’un test. La base sera réinitialisé pour le suivant.
Donc, la transaction sera durable dans mon environnement et mon besoin.
[^] # Re: Transactionnel et en RAM sont incompatibles
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
J’ai un système à simuler qui contient un certain nombre d’éléments. Plusieurs process qui accède aux données pour répondre aux messages à la place des vrais systèmes en temps réél.
Lorsqu’on change des données pour changer d’état, je veux que l’ensemble soit toujours cohérent.
D’où l’idée de faire du transactionnel. Mais je n’ai pas besoin de persistance, à la fin de mon test, je vais réinitialiser l’ensemble pour le suivant.
[^] # Re: Redis ?
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Je vais regarder, merci.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Bah, mon besoin c’est surtout de partager les états de mon système qui sont des (clé—valeur)… Une base relationnel me semble un peu overkill.
[^] # Re: sqlite en RAM
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
Oui. Je me demandais juste s’il n’y avait pas mieux. Après l’avantage de cette solution, c’est que on peut avoir des process codé dans d’autres langages.
# ZODB
Posté par Anthony Jaguenaud . En réponse au message Base de donnée en RAM. Évalué à 2.
J’avais trouvé ça. Quelqu’un l’a-t-il utilisé ?
Y-a-t-il mieux ?
[^] # Re: Pas mieux, ou presque
Posté par Anthony Jaguenaud . En réponse au message Qt : positionnement "proportionnel" d'un bouton. Évalué à 3.
Regarde du côté des ressorts (stretch) en mettant les bon coef. ça doit faire ce que tu veux…
voir là.
Tu met dans un VBoyLayout un stretch dessus, un HBoxLayout, un stretch dessous.
Dans le HBoxLayout un stretch gauche, bouton, strech droite.
C’est des souvenir ;-)
J’espère avoir pu t’aider.
[^] # Re: 737 Too Much
Posté par Anthony Jaguenaud . En réponse au lien Le Boeing 737 Max et les limites du logiciel avec un matériel mal conçu. Évalué à 4.
Sauf que l’agence de sécurité aéronautique américaine a délégué la certification à Boing… ne cherchait pas de conflit d’intérêt ou d’indépendance, c’est la sécurité des passagers qui prime…
[^] # Re: Vraiment présente ?
Posté par Anthony Jaguenaud . En réponse au message Cherche driver linux : TNT5004. Évalué à 2. Dernière modification le 11 avril 2019 à 17:22.
Il faut que tu installes les headers du noyau.
Par contre, je suis intéressé par le résultat du
lspci.[^] # Re: Vraiment présente ?
Posté par Anthony Jaguenaud . En réponse au message Cherche driver linux : TNT5004. Évalué à 2.
Sur ma machine Virtuelle :
Il liste tous ce que le noyau détecte, mais ça ne veut pas dire qu’il sache les prendre en compte.
[^] # Re: Vraiment présente ?
Posté par Anthony Jaguenaud . En réponse au message Cherche driver linux : TNT5004. Évalué à 2.
Oups
Non, n’importe quelle carte sur le BUS PCI doit donner son vendorID et son ID. C’est une fois en possession de cette information que le noyau peut charger le bon driver.
Si la carte n’est pas reconnu :
Voila mes idées là, maintenant, tout de suite.
Bonne chance.
[^] # Re: Java > 1.8
Posté par Anthony Jaguenaud . En réponse au journal Java XII est dehors. Évalué à 1.
Et le java ? La téléréalité ? :-p
---->[]
[^] # Re: Retour de fonction
Posté par Anthony Jaguenaud . En réponse au sondage De quelle pratique de développement avez‐vous honte ?. Évalué à 2.
Ok, je ne pensais pas. Merci d’améliorer ma culture.
[^] # Re: Retour de fonction
Posté par Anthony Jaguenaud . En réponse au sondage De quelle pratique de développement avez‐vous honte ?. Évalué à 2.
Non, si ta source est plus petite que str, le dernier caractère ne sera pas écrit… et rien ne prouve qu’il vaille '\0'.
[^] # Re: Retour de fonction
Posté par Anthony Jaguenaud . En réponse au sondage De quelle pratique de développement avez‐vous honte ?. Évalué à 4.
Je vois un cas d’usage dont il ne faut pas abuser pour la lecture…
# Join
Posté par Anthony Jaguenaud . En réponse au message Trier un fichier CSV avec une boucle while read en Bash. Évalué à 2.
J’ai pas tout saisi, mais un petit
man joinpourra peut-être t’aider.# Problématique Temps Réel
Posté par Anthony Jaguenaud . En réponse au message Polling ou Interrupt ?. Évalué à 3.
Pour maîtriser le temps Réel, il faut voir ça comme de l’échantillonnage en fréquence. Il te manque une donnée : le temps de réponse voulue.
Question 1 : À la réception du message au bout de combien de temps, l’action doit être réalisée ?
Question 2 : À la lecture du message, en combien de temps l’action est réalisée ?
À partir de là, tu peux déterminer et prouver que ton logiciel répond en temps et en heure.
Dans ton exemple, la réponse à la question 2 est : 4s.
Avec 4s de traitement, ta période ne peut descendre en dessous de 4s (voir un poil plus).
Disons 5s. Donc, tu peux garantir que le traitement sera réaliser 10s après la réception. Des fois ce sera 4,1s des fois 9,1s. Mais toujours moins de 10s.
Si tu n’as pas cette problématique de temps de réponse voulu, j’aurais tendance à utiliser des solutions bloquante de type :
selectpour la lecture et communication inter thread pour prévenir en sécurité de la réception. Cette solution sera sûrement plus réactive, mais le temps non garanti.Question : As-tu vraiment besoin de la maîtrise de ton temps réel pour ton application ? Tu ne donne pas beaucoup de détail (OS ou Bare metal), plateforme, etc.
Si tu as un CPU multi cœur par exemple, et que tu peux dédier un cœur à ça, alors, tu peux faire un thread bloquant qui va te garantir une réponse en moins de 5s. Mais ton cœur n’est pas disponible pour autre chose… c’est un choix de design à faire.
[^] # Re: Le temps
Posté par Anthony Jaguenaud . En réponse au journal Grand débat. Évalué à 5.
Ton problème c’est que soit c’est les clients qui payent le journal, donc le journal fait plaisir à ses clients, donc est partial. La solution c’est de payer un impôt pour la presse ? Non, car le journal serait à la solde de l’État…
Il n’y a pas de solution !