- Il y a sûrement un utilitaire qui permet de faire ça sous Mandrake
(drakconf ?) mais comme je ne connais pas cette distribution je ne
pourrais pas te l'affirmer.
- Tu passes root avec su dans un terminal ?
Fais: vi /etc/resolv.conf
Tu te positionnes sur la ligne "nameserver 10.0.0.138"
C'est une excellente remarque, le retour de tout appel système doit
être testé :)
Dans mon petit exemple, il faut donc tester le retour des fonctions
"open" et "select".
Même sans timeout, select() peut être interrompu par un signal
(dans ce cas valeur de retour == -1 et errno == EINTR), c'est
important d'en tenir compte.
Je pense que tu devrais virer le "nameserver 10.0.0.138".
Ca doit être l'adresse "interne" de ton modem Speedtouch, le
problème c'est que cette adresse n'est pas accessible sur ton LAN
(pas d'adresse IP sur ton PC et pas de route).
Donc, à chaque fois que ta machine essaie de faire une requête
DNS, elle tente en 1er sur 10.0.0.138, route la requête par la route
par défaut (Internet), et vu qu'une adresse en 10.x.x.x n'est pas
routable tu te prends un timeout à chaque fois.
Because Bochs emulates every x86 instruction and all the devices in a PC system, it does not reach high emulation speeds. [...] Users who have an x86 processor and want the highest emulation speeds may want to consider PC virtualization software such as plex86 (free software) or VMware (proprietary and commercial). Another related project is QEMU.
Chaque instruction x86 est complètement émulée contrairement à QEMU
qui fait une compilation dynamique à la volée (comme JIT).
Sur plateforme x86, pouvoir détourner une IRQ et l'exécuter nécessite
des droits particuliers en mode protégé (ring 0).
Tu ne pourras pas avoir un gestionnaire d'IRQ en user-land sachant que
ce gestionnaire d'IRQ doit toujours être accessible (il doit donc toujours
être dans un espace "fixe", à savoir l'espace noyau). La réalisation d'un
module noyau me parait nécessaire.
Un ouvrage intéressant et qui pourrait t'aider est "Linux Device Drivers":
Bien sûr... les 3 formateurs de la boîte B lisent le petit millier de lignes de code de la boîte A, le comprennent instantanément et forment en 2 temps 3 mouvements les 10 personnes pour le support...
T'as besoin de comprendre le code de OpenOffice pour faire une formation
sur OpenOffice ?
Note que je suis d'accord avec l'ensemble de tes arguments, d'ailleurs
je n'utilise pas du LL pour rien ;)
Ma remarque était juste destinée à montrer que quand tu es un
"petit" (PME), il est extrêmement difficile à mon sens de vendre qqch
sous GPL. Je ne dis pas que le propriétaire ça rox.
m'dame, comment je vis en vendant un truc à 100 euros si mon voisin, il peut le prendre et le vendre à 50 euros ?
Tu veux savoir ? tu peux pas : tu crèves et c'est normal.
Ah, c'est normal de crever quand on essaie de vivre en vendant son
soft, tout en étant un minimum altruiste en le mettant sous GPL, avec
un tiers qui vend lui aussi moins cher en apportant aucune valeur
ajoutée ?
Le concept est ... intéressant. Et c'est toi qui parle de méritocratie
un peu plus bas ?
Si on généralise l'exemple que j'ai donné ci-dessus. Une boite A
fait un soft GPL, assure du support et de la formation dessus. Bref,
la panoplie complète de services, sur lesquels on est censé pouvoir
gagner de l'argent.
La boite A a 10 développeurs, 3 béta-testeurs, 1 "documentaliste",
10 personnes pour faire le support et 3 "formateurs".
Bien, maintenant on prend comme exemple la boite B qui vend
le soft de A, sans rien apporter, elle a 10 personnes pour faire
le support et 3 "formateurs".
Question 1 : quelle boite a le moins de frais ?
Question 2 : quelle boite pique des clients à l'autre ?
Question subsidiaire: que se passe-t'il si B pique trop de clients à A?
J'aimerais bien que ça se passe comme tu le décris dans ton post,
malheureusement, il y en a toujours pour profiter sans contribuer.
Concrètement avec la GPL tu ne peux pas si tu veux rétribution juste pour la partie "code", vu qu'effectivement, n'importe qui qui a le code
peut le redistribuer légalement.
RMS a beau jeu de déclarer "Free" comme dans "Free Speech" et pas
"Free Beer". Je m'appelle A, je développe un soft GPL et je ne fais pas de
support associé (parce que le soft est facile à utiliser, j'en ai pas les
moyens, etc.) et je vends mon truc 100 euros. J'ai envie d'être rétribué
pour mon boulot (le code source), et c'est normal il faut bien que je
mange, je dois amortir la R&D, payer les développeurs, le matériel, etc.
Il faudra m'expliquer comment je fais pour vivre avec B qui récupère
le code légalement et le vend 50 euros, tout en ayant rien foutu ni
contribué au passage.
De toute façon, même avec des services associés (formation, support),
je ne vois pas ce qui empêche B de le faire aussi à moindre frais (il aura
eu le coût du développement en moins).
Bref, faire du flouze avec du code GPL, ça marche peut-être dans le
monde de RMS (bisounours land ?) où il n'y a pas de profiteur, à mon
sens dans le monde réel ça ne marche pas.
On va te dire que si tu mets ton code en GPL, tu profites de la
"communauté" pour avoir sans bourse délier:
- De la documentation, des tutoriaux, etc.
- Des traductions,
- Des testeurs et des corrections de bugs,
- Des nouvelles fonctionnalités.
Ca, c'est vrai essentiellement pour les gros projets relativement
généralistes qui peuvent drainer pas mal de monde. Pour un petit projet,
avoir une communauté qui bosse dessus, ce n'est pas évident.
Comme pas mal de monde, j'ai vu Jean Dujardin dans "un gars, une
fille", série que je trouvais sympa. J'avais aussi vu les sketches de
Braïce qui circulent sur le Net.
Je m'étais dit que ça pouvait donner qqch de relativement correct,
mais je me suis trompé.
Hormis cet exemple un peu poussé il est vrai ;) , je vais régulièrement
au ciné et je suis quand même assez souvent déçu.
Il y a vraiment un autre phénomène qu'ils ne comprennent pas,
c'est que les gens en ont marre de raquer 20 euros pour un CD, 7-8
euros pour voir un film au ciné (et ne parlons même pas des prix des
DVD), alors qu'on a strictement aucune garantie sur la qualité!
Qui ne s'est jamais fait avoir à acheter un CD où sur les 15 pistes,
on s'aperçoit qu'il y a 2 ou 3 chansons sympa et le reste est de la
daube ? Qui n'a jamais payé le prix fort pour un DVD pour s'apercevoir
après que le film était un navet de compétition ?
Dernièrement j'ai été voir Braïce de Naïce au ciné, ben j'ai vraiment
eu l'impression de m'être fait voler.
de toute façon la mmu x86 ne sait pas gérer plsu de 4096 segments partagés
???? Ca n'a strictement rien à voir.
Le principe même du segment de mémoire partagée est de mapper
les mêmes adresses physiques dans des tables de pages
différentes (appartenant à des processus différents).
Les tables de pages, on peut en créer autant qu'on veut (dans la
limite de la RAM dispo, évidemment). Après, l'OS met ce qu'il veut
dans les tables de pages.
Après, ne pas confondre avec la segmentation (avec les registres
CS, DS, etc.) où un index est codé sur 13 bits (de mémoire), ce qui
fait 8192 segments possibles.
En fait je suis prêt à faire l'éloge des threads le jour où elle permettront de faire ce qu'on peut faire aujourd'hui avec shm:
J'ai lu ta discussion avec pasBill sur le sujet. Seulement, les threads
ça n'a pas le même usage, et ça ne répond pas au même besoin que
SHM. C'est 2 choses complètement différentes.
Un thread, c'est un fil d'exécution. Les threads à l'intérieur d'un
processus se partagent le même espace d'adressage (voir mon
post un peu plus bas sur le fonctionnement pour i386). Donc quand
on modifie l'espace d'adressage, c'est valable pour tous les threads.
Après je ne comprends pas bien la remarque sur le ralentissement
par rapport aux 3 Go. Tu peux expliciter ?
Au fait, juste une remarque par rapport aux SHM. Sur un système
Linux/Unix, tu as des limitations par rapport au nombre et à la taille
de segments SHM que tu peux créér.
Par exemple, sous Linux, maximum 4096 segments pour le
_système_. Tu vas me dire que sous Linux c'est tunable (ce qui est
vrai), mais c'est pas forcément le cas de tous les Unix.
A mon avis, l'utilisation de mprotect() aura effet sur tous les threads
du processus.
Les threads se partagent exactement le même espace d'adressage
(logique, c'est le principe même). Concrètement, au niveau de la MMU
ça veut dire mêmes tables de pages ("mêmes" dans le sens
"partagées", pas recopiées entre threads).
Vu que les tables de pages sont les mêmes, un appel à mprotect()
qui modifie justement ces tables de pages impliquera que l'action
impactera tous les threads.
Pour info, sur les CPU i386, un changement de tâche se fait à l'aide
d'un changement de TSS (Task State Segment). Dans ce TSS, on
trouve le registre CR3 qui indique l'adresse du catalogue de pages
(lui même pointant vers les tables de pages). Pour toutes les threads
d'un même processus, le registre CR3 est le même.
Meme remarque que pbpg: boucler sur un spinlock fait rarement gagner du CPU par rapport à un appel système bloquant. Et si oui, un changement d'algo devrait être sérieusement envisagé.
Je crois surtout que tu n'as rien compris aux spinlocks.
Un spinlock, c'est fait pour protéger une section critique extrêmement courte.
Quand il n'y a pas de contention (en principe la plupart du temps),
le spinlock ne boucle pas: un spinlock consiste juste en une
instruction "test&set" du processeur et une boucle si le test échoue.
Quand le test n'échoue pas et que le lock peut être pris, il n'y a pas
de boucle et pas de CPU consommé.
A ton avis, pourquoi les spinlocks sont autant utilisés dans le noyau
Linux ?
Après, comparer un spinlock à un appel système, c'est n'importe
quoi. Sur Linux / i386, un appel système s'effectue par interruption
(int 0x80). Tu regarderas le nombre de cycles que prend une
instruction de ce genre sur un CPU, associé avec ça à la sauvegarde
du contexte du processus, je te garantis que ton spinlock aura
terminé bien avant.
Après, il y a évidemment le fait qu'on peut faire facilement plein de
choses sous Windows qu'il est très compliqué, voire impossible de faire sous Linux, par exemple :
- Monter des Lecteur CD/DVD virtuels (pour par exemple Copier un CD sur le disque dur et utiliser l'image ainsi créée comme si le CD original était dans un lecteur CD)
Tu plaisantes ou quoi ? On peut faire ça depuis des lustres sous Linux
avec le montage en "loopback":
Oui c'est pour ça que je ne m'en offusque pas, ça sera surement
corrigé lors de la version finale :)
La doc en ligne c'est man, info, etc...
Pour yum, c'est "yum --help" ou "man yum".
Je ne pense pas qu'il soit dans l'esprit de Fedora d'avoir plein de doc. Le but est le "just works".
Mais tu voulais quoi comme doc ?
Un lien utile pour utiliser Fedora (ici c'est FC3) : http://www.fedorafaq.org/(...)(...)
J'aurais voulu avoir une doc sur le WEB expliquant comment gérer
proprement les packages avec rpm/yum, tout bêtement.
Merci pour ton lien, je vais y jeter un coup d'oeil.
Fais une mise à jours :
- yum update
C'est ce que j'avais fait juste après l'installation, il y a eu
effectivement pas mal de packages mis à jour (une centaine
je crois).
Yum, en tant qu'outil en ligne de commande marche bien. Je l'apprécie beaucoup. Par contre il est lent. Mais je le préfère à apt par exemple.
Je le trouve vraiment horriblement lent. C'est mon reproche principal.
Après, j'ai pas eu le temps d'en faire le tour :)
Sinon, par curiosité, qu'est-ce que tu reproches à apt ?
Pareil, j'ai à peu près compris le README de Git, par contre je ne vois
pas du tout comment c'est censé être utilisé de manière distribuée
par les développeurs du noyau (ça cause en réseau ?). Le README
explique comment fonctionne l'outil, pas comment il est utilisé.
On lit que Linus a testé plusieurs SCM, oui mais il en a retenu un ou
pas ? si oui lequel, et si non pourquoi, quels sont les manques des
outils actuels ?
[^] # Re: DNS ?
Posté par galactikboulay . En réponse au message eth0 et les protocoles. Évalué à 3.
(drakconf ?) mais comme je ne connais pas cette distribution je ne
pourrais pas te l'affirmer.
- Tu passes root avec su dans un terminal ?
Fais: vi /etc/resolv.conf
Tu te positionnes sur la ligne "nameserver 10.0.0.138"
Tu tappes 2 fois "d"
Tu fais ":wq"
[^] # Re: Module noyau ?
Posté par galactikboulay . En réponse au message IRQ en C. Évalué à 3.
être testé :)
Dans mon petit exemple, il faut donc tester le retour des fonctions
"open" et "select".
Même sans timeout, select() peut être interrompu par un signal
(dans ce cas valeur de retour == -1 et errno == EINTR), c'est
important d'en tenir compte.
[^] # Re: DNS ?
Posté par galactikboulay . En réponse au message eth0 et les protocoles. Évalué à 4.
Ca doit être l'adresse "interne" de ton modem Speedtouch, le
problème c'est que cette adresse n'est pas accessible sur ton LAN
(pas d'adresse IP sur ton PC et pas de route).
Donc, à chaque fois que ta machine essaie de faire une requête
DNS, elle tente en 1er sur 10.0.0.138, route la requête par la route
par défaut (Internet), et vu qu'une adresse en 10.x.x.x n'est pas
routable tu te prends un timeout à chaque fois.
[^] # Re: Module noyau ?
Posté par galactikboulay . En réponse au message IRQ en C. Évalué à 2.
au-dessus.
Un squelette écrit à la va-vite (désolé pas testé):
fd_set rfds;
int fd[4], max_fd = -1;
fd[0] = open("/dev/ttyS0",O_RDWR,0600);
fd[1] = open("/dev/ttyS1",O_RDWR,0600);
fd[2] = open("/dev/ttyS2",O_RDWR,0600);
fd[3] = open("/dev/ttyS3",O_RDWR,0600);
for(i=0;i<4;i++)
if (fd[i] > max_fd)
max_fd = fd[i];
while(1) {
FD_ZERO(&rfds);
for(i=0;i<4;i++) FD_SET(fd[i],&rfds);
select(max_fd+1,&rfds,NULL,NULL,NULL);
for(i=0;i<4;i++)
{
if (FD_ISSET(fd[i],&rfds)) {
printf("qqch recu sur ttyS%d\n",i);
}
}
}
Un "man select()" t'expliquera comment marchent FD_SET, FD_CLR,
etc.
# DNS ?
Posté par galactikboulay . En réponse au message eth0 et les protocoles. Évalué à 4.
Peux-tu poster (avec et sans utilisation de dhcp):
- le résultat de "ifconfig -a"
- le résultat de "route -n"
- le contenu de /etc/resolv.conf
[^] # Re: Qemu, KQEMU & qvm86
Posté par galactikboulay . En réponse au journal Qemu, KQEMU & qvm86. Évalué à 3.
Tell me about performance when running Bochs.
Because Bochs emulates every x86 instruction and all the devices in a PC system, it does not reach high emulation speeds. [...] Users who have an x86 processor and want the highest emulation speeds may want to consider PC virtualization software such as plex86 (free software) or VMware (proprietary and commercial). Another related project is QEMU.
Chaque instruction x86 est complètement émulée contrairement à QEMU
qui fait une compilation dynamique à la volée (comme JIT).
# Linux Kernel Module Programming Guide
Posté par galactikboulay . En réponse au message appel systeme. Évalué à 5.
http://www.tldp.org/LDP/lkmpg/2.6/html/index.html(...)
Notamment le chapitre 8 donne un exemple concret.
# Module noyau ?
Posté par galactikboulay . En réponse au message IRQ en C. Évalué à 2.
Sur plateforme x86, pouvoir détourner une IRQ et l'exécuter nécessite
des droits particuliers en mode protégé (ring 0).
Tu ne pourras pas avoir un gestionnaire d'IRQ en user-land sachant que
ce gestionnaire d'IRQ doit toujours être accessible (il doit donc toujours
être dans un espace "fixe", à savoir l'espace noyau). La réalisation d'un
module noyau me parait nécessaire.
Un ouvrage intéressant et qui pourrait t'aider est "Linux Device Drivers":
http://lwn.net/Kernel/LDD3/(...)
Si je ne me trompe pas, la gestion des IRQ devrait être abordée dedans.
[^] # Re: Petites critiques à l'égard de RMS
Posté par galactikboulay . En réponse à la dépêche La réaction de Richard Stallman aux récents évènements autour de BitKeeper. Évalué à 4.
T'as besoin de comprendre le code de OpenOffice pour faire une formation
sur OpenOffice ?
[^] # Re: Petites critiques à l'égard de RMS
Posté par galactikboulay . En réponse à la dépêche La réaction de Richard Stallman aux récents évènements autour de BitKeeper. Évalué à 2.
je n'utilise pas du LL pour rien ;)
Ma remarque était juste destinée à montrer que quand tu es un
"petit" (PME), il est extrêmement difficile à mon sens de vendre qqch
sous GPL. Je ne dis pas que le propriétaire ça rox.
[^] # Re: Petites critiques à l'égard de RMS
Posté par galactikboulay . En réponse à la dépêche La réaction de Richard Stallman aux récents évènements autour de BitKeeper. Évalué à 2.
Ah, c'est normal de crever quand on essaie de vivre en vendant son
soft, tout en étant un minimum altruiste en le mettant sous GPL, avec
un tiers qui vend lui aussi moins cher en apportant aucune valeur
ajoutée ?
Le concept est ... intéressant. Et c'est toi qui parle de méritocratie
un peu plus bas ?
Si on généralise l'exemple que j'ai donné ci-dessus. Une boite A
fait un soft GPL, assure du support et de la formation dessus. Bref,
la panoplie complète de services, sur lesquels on est censé pouvoir
gagner de l'argent.
La boite A a 10 développeurs, 3 béta-testeurs, 1 "documentaliste",
10 personnes pour faire le support et 3 "formateurs".
Bien, maintenant on prend comme exemple la boite B qui vend
le soft de A, sans rien apporter, elle a 10 personnes pour faire
le support et 3 "formateurs".
Question 1 : quelle boite a le moins de frais ?
Question 2 : quelle boite pique des clients à l'autre ?
Question subsidiaire: que se passe-t'il si B pique trop de clients à A?
J'aimerais bien que ça se passe comme tu le décris dans ton post,
malheureusement, il y en a toujours pour profiter sans contribuer.
[^] # Re: Petites critiques à l'égard de RMS
Posté par galactikboulay . En réponse à la dépêche La réaction de Richard Stallman aux récents évènements autour de BitKeeper. Évalué à 3.
peut le redistribuer légalement.
RMS a beau jeu de déclarer "Free" comme dans "Free Speech" et pas
"Free Beer". Je m'appelle A, je développe un soft GPL et je ne fais pas de
support associé (parce que le soft est facile à utiliser, j'en ai pas les
moyens, etc.) et je vends mon truc 100 euros. J'ai envie d'être rétribué
pour mon boulot (le code source), et c'est normal il faut bien que je
mange, je dois amortir la R&D, payer les développeurs, le matériel, etc.
Il faudra m'expliquer comment je fais pour vivre avec B qui récupère
le code légalement et le vend 50 euros, tout en ayant rien foutu ni
contribué au passage.
De toute façon, même avec des services associés (formation, support),
je ne vois pas ce qui empêche B de le faire aussi à moindre frais (il aura
eu le coût du développement en moins).
Bref, faire du flouze avec du code GPL, ça marche peut-être dans le
monde de RMS (bisounours land ?) où il n'y a pas de profiteur, à mon
sens dans le monde réel ça ne marche pas.
On va te dire que si tu mets ton code en GPL, tu profites de la
"communauté" pour avoir sans bourse délier:
- De la documentation, des tutoriaux, etc.
- Des traductions,
- Des testeurs et des corrections de bugs,
- Des nouvelles fonctionnalités.
Ca, c'est vrai essentiellement pour les gros projets relativement
généralistes qui peuvent drainer pas mal de monde. Pour un petit projet,
avoir une communauté qui bosse dessus, ce n'est pas évident.
[^] # Re: Qualité des produits...
Posté par galactikboulay . En réponse au journal Des dérapages du piratage.... Évalué à 5.
fille", série que je trouvais sympa. J'avais aussi vu les sketches de
Braïce qui circulent sur le Net.
Je m'étais dit que ça pouvait donner qqch de relativement correct,
mais je me suis trompé.
Hormis cet exemple un peu poussé il est vrai ;) , je vais régulièrement
au ciné et je suis quand même assez souvent déçu.
# Qualité des produits...
Posté par galactikboulay . En réponse au journal Des dérapages du piratage.... Évalué à 3.
c'est que les gens en ont marre de raquer 20 euros pour un CD, 7-8
euros pour voir un film au ciné (et ne parlons même pas des prix des
DVD), alors qu'on a strictement aucune garantie sur la qualité!
Qui ne s'est jamais fait avoir à acheter un CD où sur les 15 pistes,
on s'aperçoit qu'il y a 2 ou 3 chansons sympa et le reste est de la
daube ? Qui n'a jamais payé le prix fort pour un DVD pour s'apercevoir
après que le film était un navet de compétition ?
Dernièrement j'ai été voir Braïce de Naïce au ciné, ben j'ai vraiment
eu l'impression de m'être fait voler.
[^] # Re: vs POSIX shared memory, X, nouvelles threads
Posté par galactikboulay . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 3.
???? Ca n'a strictement rien à voir.
Le principe même du segment de mémoire partagée est de mapper
les mêmes adresses physiques dans des tables de pages
différentes (appartenant à des processus différents).
Les tables de pages, on peut en créer autant qu'on veut (dans la
limite de la RAM dispo, évidemment). Après, l'OS met ce qu'il veut
dans les tables de pages.
Après, ne pas confondre avec la segmentation (avec les registres
CS, DS, etc.) où un index est codé sur 13 bits (de mémoire), ce qui
fait 8192 segments possibles.
[^] # Re: vs POSIX shared memory, X, nouvelles threads
Posté par galactikboulay . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 2.
J'ai lu ta discussion avec pasBill sur le sujet. Seulement, les threads
ça n'a pas le même usage, et ça ne répond pas au même besoin que
SHM. C'est 2 choses complètement différentes.
Un thread, c'est un fil d'exécution. Les threads à l'intérieur d'un
processus se partagent le même espace d'adressage (voir mon
post un peu plus bas sur le fonctionnement pour i386). Donc quand
on modifie l'espace d'adressage, c'est valable pour tous les threads.
Après je ne comprends pas bien la remarque sur le ralentissement
par rapport aux 3 Go. Tu peux expliciter ?
Au fait, juste une remarque par rapport aux SHM. Sur un système
Linux/Unix, tu as des limitations par rapport au nombre et à la taille
de segments SHM que tu peux créér.
Par exemple, sous Linux, maximum 4096 segments pour le
_système_. Tu vas me dire que sous Linux c'est tunable (ce qui est
vrai), mais c'est pas forcément le cas de tous les Unix.
[^] # Re: vs POSIX shared memory, read-only
Posté par galactikboulay . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 2.
du processus.
Les threads se partagent exactement le même espace d'adressage
(logique, c'est le principe même). Concrètement, au niveau de la MMU
ça veut dire mêmes tables de pages ("mêmes" dans le sens
"partagées", pas recopiées entre threads).
Vu que les tables de pages sont les mêmes, un appel à mprotect()
qui modifie justement ces tables de pages impliquera que l'action
impactera tous les threads.
Pour info, sur les CPU i386, un changement de tâche se fait à l'aide
d'un changement de TSS (Task State Segment). Dans ce TSS, on
trouve le registre CR3 qui indique l'adresse du catalogue de pages
(lui même pointant vers les tables de pages). Pour toutes les threads
d'un même processus, le registre CR3 est le même.
[^] # Re: vs POSIX shared memory, read-only
Posté par galactikboulay . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 2.
Je crois surtout que tu n'as rien compris aux spinlocks.
Un spinlock, c'est fait pour protéger une section critique extrêmement courte.
Quand il n'y a pas de contention (en principe la plupart du temps),
le spinlock ne boucle pas: un spinlock consiste juste en une
instruction "test&set" du processeur et une boucle si le test échoue.
Quand le test n'échoue pas et que le lock peut être pris, il n'y a pas
de boucle et pas de CPU consommé.
A ton avis, pourquoi les spinlocks sont autant utilisés dans le noyau
Linux ?
Après, comparer un spinlock à un appel système, c'est n'importe
quoi. Sur Linux / i386, un appel système s'effectue par interruption
(int 0x80). Tu regarderas le nombre de cycles que prend une
instruction de ce genre sur un CPU, associé avec ça à la sauvegarde
du contexte du processus, je te garantis que ton spinlock aura
terminé bien avant.
[^] # Re: Quelques idées en vrac
Posté par galactikboulay . En réponse au journal Quels sont les avantages de Windows ?. Évalué à 4.
Tu plaisantes ou quoi ? On peut faire ça depuis des lustres sous Linux
avec le montage en "loopback":
mount -t iso9660 -o loop image.iso /mnt
Et ça marche avec n'importe quel filesystem.
[^] # Re: vs POSIX shared memory, X
Posté par galactikboulay . En réponse à la dépêche PTT : un outil de trace pour la NPTL. Évalué à 6.
Sur i386, sur les 4 Go de l'espace virtuel, c'est réparti ainsi:
- 3 Go processus utilisateur
- 1 Go espace noyau
Les 1 Go de l'espace noyau (commençant à 0xC0000000) sont
systématiquement mappés dans tous les processus.
# Pointeur non initialisé
Posté par galactikboulay . En réponse au message passer une struct dans une shared memory POSIX. Évalué à 2.
caddr_t shm_ptr1;
struct transport* transp_shm_ptr1 = (struct transport*) shm_ptr1;
trajet = *transp_shm_ptr1;
shm_ptr1 n'est pas initialisé. Tu mets cette valeur dans trans_shm_ptr1;
Tu accèdes à la zone mémoire pointée par trans_shm_ptr1 ensuite.
Et *boum*.
Le code correct serait:
struct transport* transp_shm_ptr1;
[...]
shm_ptr1 = mmap ((caddr_t) 0, 3, PROT_READ, MAP_SHARED,shm_etage1, 0 );
transp_shm_ptr1 = (struct transport*) shm_ptr1;
trajet = *transp_shm_ptr1;
Tout cela n'enlève rien à la très pertinente remarque de pasBill sur le fait
que tu DOIS tester le code de retour des fonctions.
# Erreur de compilation non affichée
Posté par galactikboulay . En réponse au message probleme a l'installation de glib 2.2.3. Évalué à 2.
make[2]: *** [stamp-gmarshal.h] Erreur 1
make[2]: Leaving directory `/home/noja/Mestéléchargements/glib-2.2.3/gobject'
make[1]: *** [all-recursive] Erreur 1
make[1]: Leaving directory `/home/noja/Mes téléchargements/glib-2.2.3'
make: *** [all-recursive-am] Erreur 2
Le ./configure n'a affiché aucun warning, rien ?
[^] # Re: Expérience perso (sans prétention)
Posté par galactikboulay . En réponse au journal FC4T2 is out (i386, amd64, ppc). Évalué à 2.
Oui c'est pour ça que je ne m'en offusque pas, ça sera surement
corrigé lors de la version finale :)
J'aurais voulu avoir une doc sur le WEB expliquant comment gérer
proprement les packages avec rpm/yum, tout bêtement.
Merci pour ton lien, je vais y jeter un coup d'oeil.
C'est ce que j'avais fait juste après l'installation, il y a eu
effectivement pas mal de packages mis à jour (une centaine
je crois).
Je le trouve vraiment horriblement lent. C'est mon reproche principal.
Après, j'ai pas eu le temps d'en faire le tour :)
Sinon, par curiosité, qu'est-ce que tu reproches à apt ?
[^] # Source
Posté par galactikboulay . En réponse à la dépêche Linus développe un remplaçant original à BitKeeper. Évalué à 8.
http://www.kernel.org/pub/linux/kernel/people/torvalds/(...)
La dernière version est la 0.04.
[^] # Re: précisions ?
Posté par galactikboulay . En réponse à la dépêche Linus développe un remplaçant original à BitKeeper. Évalué à 6.
pas du tout comment c'est censé être utilisé de manière distribuée
par les développeurs du noyau (ça cause en réseau ?). Le README
explique comment fonctionne l'outil, pas comment il est utilisé.
On lit que Linus a testé plusieurs SCM, oui mais il en a retenu un ou
pas ? si oui lequel, et si non pourquoi, quels sont les manques des
outils actuels ?