Effectivement, il n'y a pas, comme je l'ai dit, de définition précise d'Unix "officielle", tout du moins à ma connaissance. Mais, la définition pourrait être: avoir un design proche (à quelques détails près, mais reste à donner la signification de détail dans ce contexte, je vous l'accorde) de ce que Pike & Kernighan décrivent dans leurs livres et publications sur le sujet. Je pense pas qu'il soit possible facilement d'établir une liste de critères suffisants pour désigner un système Unix, mais il y'a certainement moyen de donner une liste *non-exhaustive* de conditions nécessaires, et dans ce cas il ne fait aucun doute que la présence d'un noyau monolithique en fait partie: c'est quand même la base des bases du design d'un OS, le choix entre monolithique, µk, layered, vertically-structured, SAS, exo, .. :-)
L'appellation Unix peut en effet paraitre abusive dans la mesure où Unix a longtemps désigné seulement le Unix Time-Sharing System. Bien que malheureusement je ne retrouve plus cette citation de Pike, encore une fois (oui, une autre), il disait lui-même cependant que le système originel devrait être appelé the Unix Time-Sharing System (ou UTSS), alors que la famille d'OS à laquelle il a donné naissance, et une définition vague, devrait être appelé Unix. Quand Pike parle d'Unix, il désigne une catégorie générique avec un design commun: on le voit bien dans son papier sur Plan9.
Cette coutume d'appeler par le nom de l'original est probablement un abus de langage, mais elle est très courante, et plus spécialement en informatique. Ainsi, on parle de Mach pour la famille des µk Mach (qui n'ont qu'un design et des interfaces en commun), on parle de L4 pour la famille des µk qui répondent à l'API/ABI L4, comme on parle de frigidère pour les réfrigérateurs :-) Beaucoup de solutions au problème de l'appellation de ces systèmes sont employés, on voit notamment: Un*x, Unix-like. Auquel on devrait rajouter: Unix-compatible. Mais, le -like est très vague: on ne précise pas le degré de ressemblance.
Je sais bien comment ils ont implémenté ça sur Windows NT (je suis, quand même :-). Mais, le fait qu'elle fournisse une couche Unix (plus qu'une couche de compatibilité, j'entends bien) ne fait qu'augmenter la ressemblance avec Unix par rapport à un système comme GNU/Hurd, et ne le rend pas un système qu'on pourrait dire « Unix »: il ne répond pas à au moins un critère, que j'ai énoncé, qui est fondamental si on regarde n'importe quel schéma d'Unix.
Concernant POSIX, il me semble avoir été clair sur l'égalité: OS whatever qui implémente POSIX = OS POSIX-compliant. Avoir des interfaces communes en grande partie avec POSIX (je ne dis pas être POSIX-compliant: de vieux Unix, qui sont incontestablement des Unix, ne respectent que peu POSIX) est probablement un des critères pour être Unix-compatible. C'est même un degré de compatibilité Unix. Mais en aucun cas une condition suffisante pour être un Unix.
[^] # Re: Quelques remarques en vrac
Posté par Manuel Menal . En réponse à la dépêche MacOS X reçoit enfin un système de fichier journalisé. Évalué à 1.
Effectivement, il n'y a pas, comme je l'ai dit, de définition précise d'Unix "officielle", tout du moins à ma connaissance. Mais, la définition pourrait être: avoir un design proche (à quelques détails près, mais reste à donner la signification de détail dans ce contexte, je vous l'accorde) de ce que Pike & Kernighan décrivent dans leurs livres et publications sur le sujet. Je pense pas qu'il soit possible facilement d'établir une liste de critères suffisants pour désigner un système Unix, mais il y'a certainement moyen de donner une liste *non-exhaustive* de conditions nécessaires, et dans ce cas il ne fait aucun doute que la présence d'un noyau monolithique en fait partie: c'est quand même la base des bases du design d'un OS, le choix entre monolithique, µk, layered, vertically-structured, SAS, exo, .. :-)
L'appellation Unix peut en effet paraitre abusive dans la mesure où Unix a longtemps désigné seulement le Unix Time-Sharing System. Bien que malheureusement je ne retrouve plus cette citation de Pike, encore une fois (oui, une autre), il disait lui-même cependant que le système originel devrait être appelé the Unix Time-Sharing System (ou UTSS), alors que la famille d'OS à laquelle il a donné naissance, et une définition vague, devrait être appelé Unix. Quand Pike parle d'Unix, il désigne une catégorie générique avec un design commun: on le voit bien dans son papier sur Plan9.
Cette coutume d'appeler par le nom de l'original est probablement un abus de langage, mais elle est très courante, et plus spécialement en informatique. Ainsi, on parle de Mach pour la famille des µk Mach (qui n'ont qu'un design et des interfaces en commun), on parle de L4 pour la famille des µk qui répondent à l'API/ABI L4, comme on parle de frigidère pour les réfrigérateurs :-) Beaucoup de solutions au problème de l'appellation de ces systèmes sont employés, on voit notamment: Un*x, Unix-like. Auquel on devrait rajouter: Unix-compatible. Mais, le -like est très vague: on ne précise pas le degré de ressemblance.
Je sais bien comment ils ont implémenté ça sur Windows NT (je suis, quand même :-). Mais, le fait qu'elle fournisse une couche Unix (plus qu'une couche de compatibilité, j'entends bien) ne fait qu'augmenter la ressemblance avec Unix par rapport à un système comme GNU/Hurd, et ne le rend pas un système qu'on pourrait dire « Unix »: il ne répond pas à au moins un critère, que j'ai énoncé, qui est fondamental si on regarde n'importe quel schéma d'Unix.
Concernant POSIX, il me semble avoir été clair sur l'égalité: OS whatever qui implémente POSIX = OS POSIX-compliant. Avoir des interfaces communes en grande partie avec POSIX (je ne dis pas être POSIX-compliant: de vieux Unix, qui sont incontestablement des Unix, ne respectent que peu POSIX) est probablement un des critères pour être Unix-compatible. C'est même un degré de compatibilité Unix. Mais en aucun cas une condition suffisante pour être un Unix.