Citation :
Je parlais du WinMain à la place du main...
|
main() c'est standard C, ça te refile une console.
WinMain() c'est standard Windows, tu n'as pas de console (par défaut). Un programme windows n'est pas destiné à être utilisé en mode console, donc on fait la distinction. Y'a aussi un aspect historique avec des paramètres hérités de Win16, alors nécessaires car sous DOS.
Citation :
Citation :
J'ai jamais lu de raison valable de critiquer ce choix. Windows n'est pas destiné à être utilisé en mode console
|
Ben en utilisation serveur pure, c'est une verrue, un truc qui n'a rien à voir avec l'usage du système peut emporter la bécane... Quant à la probabilité minable de plantage de l'interface graphique euh... tu es un peu de mauvaise fois quand même
|
Plantage dans win32.sys ils sont rares. Je retrouve pas le liens vers les dernières statistiques, mais c'était la plus petite cause de BSOD il me semble. Hormis les drivers tiers, c'est essentiellement dans le kernel que ça se passe.
Ca n'a pas d'impact sur la sécurité d'un serveur. C'est sollicité que pour la partie graphique. Pour la consommation de ressources, win32.sys fait 1.75 Mo sur mon XP. Si ton serveur est à 2Mo près, c'est pas ça qui va résoudre ton problème.
Citation :
Citation :
Au passage un Linuxien qui traite Windows de sectaire ça me faire rire. Un Linuxien sectaire extrêmiste, c'est un pléonasme.
|
Il y a des linuxiens qui sont objectifs il y en a aussi, bon ok il font pas partie des 80% de neuneus qui trainent sur DLFP et qui se prennent pour des w4rl0rds parce qu'il ont Linux en dual boot depuis 3 semaines. Mais entre nous je préfére le neuneu linuxien arrogant à son homologue windosien, le linuxien a au moins le mérite dêtre motivé.
Et oui MS aime bien prendre un standard et le réadapter à sa sauce pour le cloisonner.
|
Aller le vilain MS qui vole les standards. Et qu'auraient-ils du faire ? Utiliser POSIX ? Cette API C à base de char * qui ne permet donc pas l'utilisation d'UNICODE ? Cette API qui n'avait pas encore normalisé les thread et les ACL alors que MS avait déjà sorti DirectX ?
Même Linux, LE clone d'UNIX, LE M. OS Standard, il apporte des extensions à tour de bras, c'est dire...
Citation :
Citation :
Pour le développement biensûr que non, ils ont pas droit de toucher au code source.
|
C'est quoi l'utilité du truc alors? En faire du pq, du papier peint?
|
C'est pour les spécialistes du développement système Windows style drivers (MVP Windows). C'est normal de pas pouvoir le modifier. N'importe quel projet sérieux laisse pas n'importe qui modifier n'importe quoi. Sous Linux c'est pareil, le premier venu il se voit pas refiler un accès en écriture au code.
Citation :
et combien de fois la roue est réinventée entre les libs de détection matériel, les outils de gestion de paquetage etc...
|
C'est ce qui discrédite cet OS selon moi. Soit c'est trop, soit c'est pas assez. Après on parle de standard.
Citation :
Bref les mecs qui font du libre ne sont pas une horde de communistes barbus et lobotomisés aux ordres de RMS.
|
J'ai pas dit ça. Je suis favorable au libre. D'ailleurs je file des coups de mains à quelques projets. C'est juste que c'est pas la panacée. A croire certains GPL c'est le label "bug free, super qualité, code propre". Ben non. Croire qu'un mec va débuger ton code moisi c'est du délire, et y'a plein de domaines où les applications commerciales sont meilleures. Et à commencer par tout ce qui n'est pas purement technique, et qui compte peut être plus. Car GPL c'est un truc d'informaticiens, bénévoles qui font ça dans leur temps libre, pour se détendre presque, qui aiment bien faire de nouvelles features, mais qui aiment pas passer du temps à tester le déploiement, à se prendre la tête sur la configuration, à aider les débutants, à écrire des tutorials & exemples, etc... Et là les produits commerciaux font la différence. Même si techniquement ils sont moins bons, t'as des mecs qui ont bossé à ce que tu utilises le truc simplement, que tu l'installes facilement, que la doc soit riche et à jour, etc... Y'a pleins de projets qui marchent bien en théorie, mais intégrés à d'autres projets libres ça conflicte, ça marche plus, etc... D'ailleurs la plupart des projets GPL sérieux y'a une société commerciale derrière qui fait son beurre là dessus, à commencer par Linux. Les projets GPL sans mec payés à faciliter l'utilisation du bidule, bien souvent ça te confirme que free ça se traduit par libre et pas gratuit. Car un développeur monopolisé à faire fonctionner un truc gratuit ça peut couter beaucoup plus cher qu'une appli commerciale.
Citation :
Citation :
La défragmentation tu vas peut être enfin apporter une réponse à cette histoire que Linux n'en n'a pas besoin, parce que c'est un bel OS magique qui n'est pas fragmenté. On en a déjà aprlé ici, pas eu de réponse, toujours un lien vers une ligne évasive sur le net "pas besion d'être défragmenté...".
|
Euh c'est un peu compliqué. Bon je tente :
un fichier logique doit etre ecrit dans des secteurs (secteurs qui composent le disque dur) pour faire correspondre un fichier logique à un fichier physique.
Le fichier physique est donc un ensemble de blocs physiques qui doivent etre alloués au fichier logique
Il y a différentes méthodes d'allocation, c'est là que çà va se jouer :
Les allocations contigues ou par zone (on va zapper la par zone) : en gros un fichier occupe un ensemble de blocs contigus. Un espace suffisant doit donc etre réservé selon 2 méthodes : on prend le premier trou qui convient ou on choisit le trou dont la taille est la plus proche du fichier. Si le fichier est étendu il faut le déplacer vers une zone libre plus importante ce qui est très couteux. Avantage de ces méthodes : simplicité Inconvénients : très mauvaise utilisation de lespace libre qui implique que des blocs libres vont etre de plus en plus difficiles à trouver doù nécessité de recompactage (défragmentation).
|
A un détail près je suis d'accord : comment faire autrement ? => Lire la suite...
Citation :
Lallocation indexée : le fichier est vue comme une structure de données, en gros une table est créée sur un bloc avec ses entrées vide qui sont mises à jour au fur et à mesure de lallocation et de lévolution du fichier, les blocs physiques du fichiers peuvent etre dispersés nimporte où sur le disque, lespace et donc beaucoup mieux géré et la fragmentation quasi nulle.
|
Tu vois c'est ça que j'arrive décidément pas à piger. Quand la FAT découpe son fichier en plusieurs tronçons sur le disque, c'est un système merdique. Quand c'est Linux qui "disperse nimporte où sur le disque", c'est pas de la fragmentation, c'est un truc génial.
Moi je pars d'un principe simple. J'ai une partition vide de 3Go. Je copie 3 fichiers de 1Go. Ok. Tous les FS/OS vont les copier les 3 à la queue leleu. Ok.
Je supprime le premier fichier, le troisième fichier. J'ai 1Go de libre - 1Go d'occupé - 1Go de libre. Ok.
Je copie un fichier de 2Go. Sous Windows ça fragmente. Ok. Par quel miracle sous Linux ça fragmente pas ?
Citation :
Les systèmes de fichiers sous linux vont meme plus loin pour optimiser (il utilise une liste de listes chainées qui elles contiennent les blocs physiques). Enfin sous linux, les systèmes sont plus ou optimisés pour des fichiers de petites tailles (reiserfs) grosse taille( xfs, jfs)
Linconvénient est que cest moins rapide que lallocation contigue mais bon cest plus fiable et plus adaptée au serveur.
|
La FAT est un très bon système de fichier pour ce qu'il a été conçu : les disquettes. La FAT12 est minuscule en mémoire, même y'a 20 ans elle pouvait être intégralement chargée. C'est un système de fichier destiné à manipuler un petit nombre de fichiers. Son gros inconvénient est que les répertoires sont vus comme de simples fichiers, et il sont dispatchés partout sur le disque et ça devient n'importe quoi avec FAT32 ou là elle mérite bien le terme FAT (=> gros). Une recherche de fichiers sur un disque FAT ça prend des plombes. Il faut parcourir tout le disque pour avoir l'arborescence, la tête de lecture de cesse de faire des aller-retour. En plus la table FAT est de taille fixe, très faible avec FAT12, mais énorme avec FAT32, ce qui fait qu'elle peut se retrouver swappée, bref, c'est la mort.
NTFS c'est autre chose. NTFS utilise une MFT, une table contigue qui stocke l'arboresce et les infos sur les fichiers (nom, date/ heure création, droits, etc...). La MFT n'est pas fragmentée, ce qui rend une recherche de fichier bien plus rapide. De plus les fichiers de toute petite taille y sont directement stockés. Idem pour les répertoires de taille raisonnable, s'ils sont très gros ils sont structurés sous forme de b-tree dans un fichier en dehors de la MFT.
La MFT pointe le contenu des fichiers appelés extents dont la taille est variable. Là aussi contrairement à FAT t'es pas obligé de parcourir toute la liste des clusters pour savoir où se trouve le dernier. Pour chaque extent on connait sa position virtuelle dans le fichier. Avec FAT, si ton fichier fait 4Go, vu que les clusters sont chaines, il faut parcourir toute la liste des clusters dans la FAT pour trouver où se situe la fin du fichier sur le disque. Avec NTFS, si ton fichier tient sur un seul extent, tu sais de suite où est sa fin. C'est très proche des inodes en somme.
Comme les derniers fs Linux, NTFS 5 est journalisé, gère les quotas, les liens physiques, les ACL, les points de montage, les sparse files, les noms POSIX, ...
Mais NTFS gère aussi en transparence la compression, le cryptage, les flux multiples dans un même fichier, les reparse points, les noms UNICODE...
Citation :
Tu connais la Glib ? Essaye, çà métamorphose lapproche quon a du C.
|
Moaui. Je préfère rester en C++ avec la STL, au moins c'est standard...
Message édité par HelloWorld le 03-12-2004 à 22:14:45
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite