Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pour mettre tout le monde d'accord: Window9

72 réponses
Avatar
Jo Kerr
Et oui, compatible Linux et Windows.
Voir ici:
http://www.korben.info/window-9-los-compatible-windows-et-linux.html

--
In gold we trust (c)

10 réponses

4 5 6 7 8
Avatar
talon
Richard Delorme wrote:
>
> C'est bien possible. Mais je vois aucun rapport entre ce que tu viens de
> dire et la norme POSIX.

LES POSIX_THREAD font partie d'une norme POSIX.




Je suis loin de bien connaître ce sujet, mais il me semble qu'il existe
des implémentations de la norme posix des threads, purement en userland,
par exemple les gnu pth. Même si les implémentations performantes font
appel à une partie dans le kernel (c'est le cas des threads de Linux ou
de FreeBSD). Dans ce cas ça tendrait à prouver que Stéphane a raison, si
on se place du point de vue de l'utilisateur de ces threads, en première
approximation il se fout de savoir si l'implémentation est userland ou
kernelland. En deuxième il ne s'en fout pas si l'implémentation est
incomplète ou a des performances désastreuses, mais c'est une autre
question.


--

Michel TALON
Avatar
pehache-tolai
On 23 juil, 10:21, JKB wrote:
Le 23-07-2009, ? propos de
Re: Pour mettre tout le monde d'accord: Window9,
 pehache-tolai ?crivait dans fr.comp.os.linux.debats :

> On 23 juil, 08:53, Richard Delorme wrote:

>> LES POSIX_THREAD font partie d'une norme POSIX.

> et ils sont implémentée dans Windows, si je ne m'abuse.

        Raté. Pas sous Vista. L'implantation est là :

       http://sourceware.org/pthreads-win32/

        Le type a fait un énorme boulot, mais c'est à peu pr ès du niveau de
Cygwin en terme de fiabilité. Tant qu'on reste sur un UP, ça fonction ne
à peu près, en SMP, c'est plus aléatoire (c'est même inscrit en n oir sur
blanc dans la page bugs).



OK. En plus ça n'a pas l'air activement développé et maintenu.

--
pehache
Avatar
talon
pehache-tolai wrote:
On 23 juil, 08:53, Richard Delorme wrote:
>
> LES POSIX_THREAD font partie d'une norme POSIX.

et ils sont implémentée dans Windows, si je ne m'abuse.

--
pehache



En tout cas il existe des librairies dont le but principal est de
masquer la différence entre Unix et Windows et d'offrir une interface
commune aux threads, par exemple chez Boost.


--

Michel TALON
Avatar
remy
Richard Delorme a écrit :
Le 23/07/2009 07:11, Stephane TOUGARD a écrit :
JKB wrote:
Tu ne comprends rien à rien et tu ne t'es _jamais_ posé la question
de savoir ce qu'est un mutex ni a fortiori une opération atomique (au
passage, si on savait faire ça en userland, ça simplifierait pas mal le
boulot des développeurs et ça éviterait aussi de se taper le
développement d'une libc sous Unix). Implanter de tels trucs en userland
pose un tas de problèmes, en particulier d'atomicité. Même en
kernelland, c'est difficile à faire (c'est pour cela que linuxthreads a
été abandonné au profit de NPTL car linuxthreads n'était en particulier
pas capable de rendre sem_post() async safe.). Retourne jouer aux billes.


C'est bien possible. Mais je vois aucun rapport entre ce que tu viens de
dire et la norme POSIX.



LES POSIX_THREAD font partie d'une norme POSIX.




c'est possible je n'en sais rien

par contre là si je ne m'abuse la problématique est tout autre

si le thread est en userland cela revient à redécouper le temps du
process en sous ensemble

et si le thread est dans le noyau cela offre la posibilité exploitée
ou pas je n'en sais rien, de considérer le thread comme un processus
indépendant du process qui a lancé le thread
d'un point de vue de la gestion du temps machine

toute la subtilité doit se cacher dans les méandres de la norme posix

parce que à l'époque où je codais en java les thread étaient un sous
ensemble de process java ,mais ils n''étaient peut être pas posix je
ne me suis pas posé la question a l'epoque



remy



--
http://remyaumeunier.chez-alice.fr/
Avatar
JKB
Le 23-07-2009, ? propos de
Re: Pour mettre tout le monde d'accord: Window9,
remy ?crivait dans fr.comp.os.linux.debats :
Richard Delorme a écrit :
Le 23/07/2009 07:11, Stephane TOUGARD a écrit :
JKB wrote:
Tu ne comprends rien à rien et tu ne t'es _jamais_ posé la question
de savoir ce qu'est un mutex ni a fortiori une opération atomique (au
passage, si on savait faire ça en userland, ça simplifierait pas mal le
boulot des développeurs et ça éviterait aussi de se taper le
développement d'une libc sous Unix). Implanter de tels trucs en userland
pose un tas de problèmes, en particulier d'atomicité. Même en
kernelland, c'est difficile à faire (c'est pour cela que linuxthreads a
été abandonné au profit de NPTL car linuxthreads n'était en particulier
pas capable de rendre sem_post() async safe.). Retourne jouer aux billes.


C'est bien possible. Mais je vois aucun rapport entre ce que tu viens de
dire et la norme POSIX.



LES POSIX_THREAD font partie d'une norme POSIX.




c'est possible je n'en sais rien

par contre là si je ne m'abuse la problématique est tout autre

si le thread est en userland cela revient à redécouper le temps du
process en sous ensemble

et si le thread est dans le noyau cela offre la posibilité exploitée
ou pas je n'en sais rien, de considérer le thread comme un processus
indépendant du process qui a lancé le thread
d'un point de vue de la gestion du temps machine

toute la subtilité doit se cacher dans les méandres de la norme posix

parce que à l'époque où je codais en java les thread étaient un sous
ensemble de process java ,mais ils n''étaient peut être pas posix je
ne me suis pas posé la question a l'epoque



Oh pétard !... J'espère qu'avec une telle compréhension, tu ne codes
pas des trucs sensibles avec les threads Posix...

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Avatar
Nicolas George
Michel Talon, dans le message <h497so$lf5$, a
écrit :
Je suis loin de bien connaître ce sujet, mais il me semble qu'il existe
des implémentations de la norme posix des threads, purement en userland,
par exemple les gnu pth.



Le P de GNU pth ne veut pas dire POSIX, il veut dire portable, et ce ne sont
pas des threads POSIX, mais alors vraiment pas du tout.

Les GNU pth sont des threads coopératifs (par opposition à préemptifs) : les
tâches commutent quand elles arrivent à des points de commutation,
explicites ou implicites (dans les fonctions d'entrées-sorties bloquantes).
Avatar
remy
JKB a écrit :


Oh pétard !... J'espère qu'avec une telle compréhension, tu ne codes
pas des trucs sensibles avec les threads Posix...





je n'ai pratiquement jamais écrit du code en langage C, dans le
pratiquement tu peux noter une petite exception pour un driver linux
bête et méchant mais rien de très compliqué une carte entre sortie
proprio

tout le code haut niveau (base de donnée, applicatif ) c'est du java
alors les thread posix ....

je te les laisse sans aucune arrière pensée :-)

mais je te rassure j'ai codé pas mal d'applicatif multi thread,
enfin de compte n'importe quel code java qui dépasse les 10 k de code
source ,est relativement efficace, se doit de les implémenter




remy

--
http://remyaumeunier.chez-alice.fr/
Avatar
Stephane TOUGARD
Toxico Nimbus wrote:

Si l'implémentation complète de la norme POSIX sous Windows requiert
impérativement du code exécuté en mode noyau, et que Microsoft ne veut
pas écrire ce code, alors Windows ne sera jamais POSIX. Même Cygwin ne
peut pas toucher au noyau Windows.



Sais tu quels systemes sont 100% POSIX ?

Les BSD ne le sont pas, meme Linux ne doit pas faire le compte. Windows
NT 3.51 est POSIX.1, on est loin du compte pour dire que NT est une
implementation complete de POSIX. Il en va bien sur de meme avec Cygwin,
il est clair et net que des parties de la normes sont zapees.

Mais ca ne fait pas de Cygwin un emulateur POSIX. Ca en fait une
implementation partielle.
Avatar
pehache-tolai
On 23 juil, 09:08, Toxico Nimbus wrote:


Si l'implémentation complète de la norme POSIX sous Windows requiert
impérativement du code exécuté en mode noyau, et que Microsoft ne v eut
pas écrire ce code, alors Windows ne sera jamais POSIX. Même Cygwin n e
peut pas toucher au noyau Windows.



Peut-être, mais ça ne change rien au débat "cygwin est-il une
implémentation ou une émulation de la norme POSIX".

Pour ma part je suis d'accord avec ST, c'est une implémentation (peut-
être incomplète) et pas une émulation.

--
pehache
Avatar
talon
Nicolas George <nicolas$ wrote:
Michel Talon, dans le message <h497so$lf5$, a
écrit :
> Je suis loin de bien connaître ce sujet, mais il me semble qu'il existe
> des implémentations de la norme posix des threads, purement en userland,
> par exemple les gnu pth.

Le P de GNU pth ne veut pas dire POSIX, il veut dire portable, et ce ne sont
pas des threads POSIX, mais alors vraiment pas du tout.



Comme je disais, je ne suis pas du tout spécialiste. Cependant sur la
première page de Gnu pth je lis:

Pth is a very portable POSIX/ANSI-C based library for Unix platforms
which provides non-preemptive priority-based scheduling for multiple
threads of execution (aka ``multithreading'') inside event-driven
applications. All threads run in the same address space of the server
application, but each thread has it's own individual program-counter,
run-time stack, signal mask and errno variable.
...
Additionally Pth provides an optional emulation API for POSIX.1c threads
("Pthreads") which can be used for backward compatibility to existing
multithreaded applications.

Les GNU pth sont des threads coopératifs (par opposition à préemptifs) : les
tâches commutent quand elles arrivent à des points de commutation,
explicites ou implicites (dans les fonctions d'entrées-sorties bloquantes).



Oui, et alors? Je ne suis pas du tout certain que la norme des pthreads
demande qu'ils soient préemptifs.
J'ai un vague souvenir d'avoir lu que la norme a été rédigée de façon
telle qu'on puisse la satisfaire aussi bien avec une vraie
inmplémentation basées sur le scheduler de l'OS qu'avec des "green
threads". (Voir Butenhof page 190.)
Evidemment avec une implémentation userland on ne profite pas des
multiprocesseurs, donc la performance est réduite, mais ça peut ne pas
avoir d'importance selon les cas de figure.




--

Michel TALON
4 5 6 7 8