Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/09/2011, à 02:58

01101011

Les noyaux d'OS actuels, voués à disparaître un jour ?

Bonjour,

Une petite idée m'a traversé l'esprit. Le langage C a maintenant une quarantaine d'année et est toujours en évolution. Ce dernier n'est pas mort et est largement utilisé aujourd'hui, notamment pour les kernels dont Linux qui vient de fêter ses 20 ans.

Si un jour le langage C n'est plus maintenue et n'intéresse réellement plus personne (via d'autre langages, C++, D ou autres) qu'adviendra t'il des kernels de nos jours ? Linux, les noyaux BSD, HURD, celui de Windows ou Mac OS X  et bien d'autres qui sont sauf méprise de ma part codé en C.

Une réécriture complète des noyaux ? Je parle bien du cas de figure où le C ne sera plus maintenue par personne. Rien n'empêchera de l'utiliser mes il se fera vieillissant et d'autre langage finirait par le surpasser techniquement, poussant tout le monde a en adopter d'autre. Surtout que les nouveaux langages n'ont-il pas tendance à être de haut niveau (moins proche de la machine pour être au plus près du langage humain, les rendant plus lourd et moins efficace pour certaines tâches, j'imagine mal un noyau d'OS codé en Java ou en Python…).

Ouais, un cas de figure réellement peu probable… Mais c'est rigolos d'imaginer ça.

Dernière modification par 01101011 (Le 29/09/2011, à 19:37)

#2 Le 26/09/2011, à 03:08

Pylades

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Un langage répond à un besoin. Tant que nous auront qu’il y aura Linux, kFreeBSD et compagnie, on aura besoin du C ; et des compilateurs C seront maintenus.

c. q. f. d. ∎

Et que le langage lui-même n’évolue pas, on s’en moque un peu. Si la dernière version est le C99 et que le C1x est en cours de finalisation, la plupart des noyaux sont codés en C89 ; et ça suffit amplement. Pas besoin d’ajouter de la complexité à ce langage dont un des principaux atouts est sa simplicité. wink


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#3 Le 26/09/2011, à 03:14

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Je sais que les risques pour qu'on lâche le C sont faible, mais je parle bien d'un cas, pas forcement très logique, où cela arriverait.

Au bout de quelques décennies il est sûrement possible d'avoir un langage de «même niveau» ou inférieur, plus efficace. Peut-être même que les devs C se faisant plus rare, la maintenance deviendrait trop fastidieuse.

#4 Le 26/09/2011, à 05:26

Hibou57

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

01101011 a écrit :

Une petite idée m'a traversé l'esprit. Le langage C a maintenant une quarantaine d'année et est toujours en évolution.

Évolution ? Gné ?

01101011 a écrit :

Ce dernier n'est pas mort

Bon, après cette mauvaise nouvelle, t’en as une bonne à annoncé quand‑même ?

01101011 a écrit :

Si un jour le langage C n'est plus maintenue et n'intéresse réellement plus personne (via d'autre langages, C++, D ou autres) qu'adviendra t'il des kernels de nos jours ? Linux, les noyaux BSD, HURD, celui de Windows ou Mac OS X  et bien d'autres qui sont sauf méprise de ma part codé en C.

Une réécriture complète des noyaux ?

Même si le C est un très mauvais langage (y compris C++), il ne disparaitra pas, justement à cause de ça : beaucoup trop de choses sont conçues écrites codées encodées avec, et pour ne pas avoir à les re-écrire, l’histoire se poursuivra avec. Puis comme tout le monde utilise C au motif que tout le monde utilise C, ben l’affaire est bouclée et on est pas prêt d’être sorti du bourbier.

Puis après tout, c’est comme avec le Made In China, c’est la compression des couts qui compte, pas la qualité. Et pour ça, le C convient très bien. Puis même si comme avec l’importation Chinoise, ça coute pas cher sur le cout (et pour cause, ça doit même être gratuit, alors la compression des couts doit être ultra‑maximale), mais que ça se paie cher sur le long terme (priez si vous devez maintenir et que vous pas les auteurs), on s’en fout quand‑même et on continue. D’toute façon, c’trop flippant à donf de pas faire tout pareil qu’le voisin.

Dernière modification par Hibou57 (Le 26/09/2011, à 05:37)


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne

#5 Le 26/09/2011, à 05:37

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Heu… En quoi le C est un mauvais langage ? De nombreux langage sont basés sur lui, à l'époque de sa sortie il n'y avait pas que lui et il est utilisé dans tout les kernels. Excuse moi, s'il était aussi mauvais que ça y'aurait des noyaux populaires codés autre chose qu'en C, par exemple. Et par pitié, ne me sors pas l'argument «Windows est utilisé partout, cela en fait-il un meilleur OS ?» qui n'a strictement rien à voir (je prend les devants, je sais tongue).

Dernière modification par 01101011 (Le 26/09/2011, à 05:41)

#6 Le 26/09/2011, à 07:16

grim7reaper

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

@01101011 : je vois que tu ne connais pas très bien Hibou57 : il a les boules car son langage chéri Ada a beaucoup moins de succès que le C et le C++ (sauf dans quelques pays où l’Ada perce un peu) donc il crache sur ceux qui ont réussi (quelque part ça doit le consoler…).

Hors ligne

#7 Le 26/09/2011, à 07:17

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

En même temps de ce que j'ai vu de ce personnage… smile.

Bref, d'autre avis moins constructif que le sien? tongue

#8 Le 26/09/2011, à 07:24

grim7reaper

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Typiquement, je vois bien le C disparaître des noyaux le jour où les architectures quantiques seront au point. Je pense que le C ne sera pas adapté (comme la majorité des langages que nous connaissons aujourd’hui) au fonctionnement de ces machines.

Sinon actuellement, même si le C règne en maître il n’est pas seul : il me semble que le Hurd se base sur un micronoyau L4 qui est écrit en C++ (à vérifier), Microsoft Research développe un OS en C# et Sing#. J’ai également vu un OS en Haskell.
Bon là on parle d’OS normaux, pour du RTOS (temps réel), jusqu’a maintenant je crois n’avoir vu que du C.

Hors ligne

#9 Le 26/09/2011, à 07:30

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Tout à une fin, c'est logique que le C en est une un jour alors que la terre et les humains sont encore là smile. La question est plutôt quand ? 20 ans ? 30 ? 40 ? 50 ? Quand est-ce que nos ordinateurs changeront tellement que nos langages actuels seront dépassés et voué à être remplacé par d'autre langage conçu pour ?

Peut-être qu'une évolution du C naîtra, adapté aux nouvelles architectures…

Dernière modification par 01101011 (Le 26/09/2011, à 07:30)

#10 Le 26/09/2011, à 08:16

Hibou57

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Tout à une fin, et la fin peut être encore plus rapide quand les architecture changent, pour un langage si dépendant de l’architecture que l’est le C.

En Ada, on sait ce qu’est un nombre : il se défini par un intervalle, ce qui implique au passage de penser le problème et de définir l’intervalle au préalable. En C, ben c’est la surprise selon l’implémentation sous‑jacente, et l’intervalle d’un type dépendra de l’architecture matériel sur laquelle tournera le programme. Peut-on trouver ça sérieux ?

Un langage qui ne dispose même d’un couplage stricte entre spécification et implémentation, peut on trouver ça sérieux ? Ou encore pire, un langage qui autorise la conversion d’un pointeur en un entier ou d’un entier en un pointeur, c’est pas la grosse fente de gueule ça ? Il faut ne vraiment pas avoir la moindre idée de ce qu’est un type pour ne pas être choqué(e) par une aberration pareille.

Un langage dans lequel la portée par défaut de ce qui est défini dans les implémentations, est la portée publique ? C’est sérieux ou c’est une blague ?

Un langage qui permet des assignations en guise d’expression conditionnelle, il faut avoir picolé combien de bouteilles pour trouver ça normal ?

Soit trois module A, B, C. B et C définisse tout deux un symbole D. A a une dépendance à une symbole D, et le programme est constitué de A, B et C. Un langage qui ne sait même pas résoudre la liaison à D autrement qu’en jouant avec l’ordre des paramètre sur la ligne de commande, peut on appeler ça fiable ?


Je ne vais pas allonger la liste, mais prendre la question sous un autre angle. Définissons les qualité attendues pour un bon langage. Disons faciliter la compréhension du programme, et renforcer sa fiabilité. Sont-ce des attentes légitimes ou pas ? J'ose espérer que oui wink Qu'apporte C à ces fins ? C a t-il été conçus à ces fins ? Réponses : Rien pour la première question, Non pour la seconde question.

Troisième approche, les études de cas, histoire de savoir de quoi on parle et de ne pas jouer au beauf qui dit « C c'est trop cool, tout le monde le dit », pour plutôt parler sérieusement en se basant sur des faits.

Comparing Development Costs of C and Ada

Le précédent lien a écrit :

                    C_FILE     ADA_FILE
all_lines:          1925523     1883751
SLOC:               1508695     1272771
files:               6057        9385
updates:             47775       34516
new_features:        26483       23031
Fixes:               13890       5841
Fixes/feature:        .52         .25
Fixes/KSLOC:         9.21        4.59
devel_cost:       $15,873,508 $8,446,812
cost/SLOC:          $10.52       $6.62
defects:             1020         122
defects/KSLOC:       .676        .096

Cité pour les gens qui ne prendront même pas le temps de lire le document, et je devine qu'ils/elles seront nombreux, je connais la chanson.

Dans le même genre
Imitating the big developers' process

Le précédent lien a écrit :

The division found that just ridding the software of C's undefined pointers and array index out of bounds errors translated into a significant savings, as these were traditionally the most time-expensive errors to find. In Ada, engineers found one error every 270 lines, compared with C, which recorded one bug every eighty. The time spent fixing error rates plummeted from a traditional four hours to twenty minutes.

Pour une comparaison entre les deux :
The Advantages of Ada 95
Et encore, elle est gentil cette comparaison, parce que si on comparait C ou C++ à Ada 2005, ou pire, à Ada 2012, ce serait une tuerie.

Vous parliez d’ordinateur quantique… je peux déjà vous dire que contrairement à C/C++ (*), Ada ne rencontrera aucune difficulté avec ces nouvelles architectures, pour la raison que Ada sait ce qu’est un type : en Ada, un entier, c’est entier, pas un tableau de bits wink un élément d’une énumération, c’est un symbole, pas un entier wink Une tâche, c’est un type intrinsèque du langage, pas un bricolage apporté par une librairie extérieure, une référence, c’est une référence, pas un entier ou un tableau de bits.

Enfin, j’imagine que tout ça vous dépasse et que vous ne pouvez pas imaginer le dixième de tout ce que cela signifie. Et encore, ça n’est que pour parler des anciennes versions de Ada. Je ne vous parle même pas de SPARK et des preuves formelles de fonctionnement, et de Ada 2012 et la programmation par contrat (inspirée de Eiffel).

C’est sûr que ça change de l’assembleur de « haut niveau ».

Si vous n’en avez pas assez, et que ça vous tente une comparaison de Ada et C++ ou Ada et Java, ne vous privez pas de ce plaisir, y a qu’à demander.


(*) Et ce ne sont pas que C/C++ qui disparaitront alors, mais aussi tout ce qui repose sur eux.


01101011 a écrit :

Peut-être qu'une évolution du C naîtra, adapté aux nouvelles architectures…

Impossible. C suppose une machine dont l’implémentation physique de tous les type de données repose sur des bits, et qui dispose d’un type physique dont l’implémentation est une série de 8 bits. C, c’est une forme d’assembleur, il ne pourra pas s’adapter.

Dernière modification par Hibou57 (Le 26/09/2011, à 08:27)


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne

#11 Le 26/09/2011, à 08:58

Sopo les Râ

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

T'as des actions chez Ada ?


La sieste, c'est maintenant.
   * * *
« J'ai l'intention de vivre éternellement. Pour l'instant, tout se passe comme prévu. »

Hors ligne

#12 Le 26/09/2011, à 09:25

Morgiver

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Est-ce qu'il y a une version du noyau Linux en Ada ?

Hors ligne

#13 Le 26/09/2011, à 10:29

seb24

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

01101011 : Un langage ça ne peut pas disparaitre. Même si il n'était plus maintenu il pourrait toujours être utilisé. De plus si il est maintenu c'est parce qu'il est utilisé par des projets importants.


Mini PC NUC avec Ubuntu: ebay

Hors ligne

#14 Le 26/09/2011, à 10:51

mimoun

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Hibou57 a écrit :

ça vous tente une comparaison de Ada et C++ ou Ada et Java, ne vous privez pas de ce plaisir, y a qu’à demander.

Faudrait déjà que tu démontres l'intérêt d'une telle comparaison. Ce n'est pas le tout de comparer les qualités intrinsèques d'un langage par rapport à un autre, mais si on ne compare pas le domaine d'application, ça n'a strictement aucun intérêt : on reste dans la pure théorie, et ça, les gens qui prennent les décisions sur le choix d'un langage, ils s'en foutent.
Par exemple, je veux faire une appli web qui respecte le modèle MVC, avec une importante couche métier, des accès base de données en masse, et une indépendance parfaite des différentes couches. Tu vas me conseiller quoi ? Ada parce qu'il gère mieux les pointeurs et les entiers ?

Hors ligne

#15 Le 26/09/2011, à 10:58

billou

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

grim7reaper a écrit :

Typiquement, je vois bien le C disparaître des noyaux le jour où les architectures quantiques seront au point.

Ça avant que ça n'arrive, on aura tout le temps de patienter encore quelques décénnies, tout du moins, pour le commun des mortels.
Si ces machines tiennent bien leurs promesses, autant dire que l'armée et les scientifiques seront les premiers à vouloir leur part du gateau, et que les coûts de ces machines seront tels... Que notre génération n'en verra certainement pas la couleur.

De même, du point de vue de la sécurité informatique, sans un changement globale de toute l'informatique existante, si les architectures quantiques tiennent leurs promesses, elles pourraient faire beaucoup de tort aux architectures classiques.

En attendant, la prochaine évolution majeure se fera du coté d'IBM

Dernière modification par billou (Le 26/09/2011, à 11:01)

Hors ligne

#16 Le 26/09/2011, à 11:01

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Ce que j'aime avec le post de Hibou57, c'est qu'il perd toute sa crédibilité à partir du moment où [eh, on reste poli] pour bien nous signifier son importance et à quel point il a raison :

Hibou57 a écrit :

Enfin, j’imagine que tout ça vous dépasse et que vous ne pouvez pas imaginer le dixième de tout ce que cela signifie. Et encore, ça n’est que pour parler des anciennes versions de Ada.

Voilàààà, juste ici.

Alors, petit conseil entre nous Hibou57, quand tu essaie de convaincre quelqu'un, prend jamais le doigt de ton / tes interlocuteur(s) pour le poser en plein milieu de ce que tu appel [vulgaire] et lui expliquer que c'était un abrutie de l'utiliser jusque là. On appel ça «prendre les gens de hauts» et tout le monde déteste ça. Du coup, on te considère de facto en troll ou un provocateur et tu risques fortement d'avoir du mal à débattre par la suite. M'kay ?

Dernière modification par xabilon (Le 26/09/2011, à 23:14)

#17 Le 26/09/2011, à 11:08

The Uploader

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

On est déjà vendredi ?


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#18 Le 26/09/2011, à 11:11

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

«Like caturday is everyday, trolldi is everyday too.»

#19 Le 26/09/2011, à 13:30

omc

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Hors ligne

#20 Le 26/09/2011, à 13:34

HP

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Hibou57 a écrit :

Enfin, j’imagine que tout ça vous dépasse et que vous ne pouvez pas imaginer le dixième de tout ce que cela signifie. Et encore, ça n’est que pour parler des anciennes versions de Ada.

un groupe de pop suédois fondé à Stockholm en novembre 1970. Le groupe est originellement composé d'Agnetha Fältskog, Anni-Frid Lyngstad (dite Frida), Benny Andersson et Björn Ulvaeus.

En effet, c'est pas tout récent ! tongue lol

Dernière modification par HP (Le 26/09/2011, à 13:34)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#21 Le 26/09/2011, à 15:39

Elzen

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

Ce qui est amusant, c'est qu'avec le message de 7h16 de grim7reaper, une personne dotée d'un minimum de jugeote qui aurait été là pour convaincre son auditoire que le C est un mauvais langage se serait concentrée sur les défauts du C et aurait surtout évité de mentionner l'Ada, parce qu'une comparaison C/Ada était décrédibilisée d'entrée de jeu (ou alors, il aurait fallu y mettre les formes, du genre donner l'impression de ne mentionner l'Ada que parce qu'il en avait été question au dessus).
Ça, plus le ton employé (déjà soulevé par 01101011) et d'autres détails, du genre le fait de proposer une comparaison Ada/Java qui n'avait juste rien à voir dans l'affaire… Hibou57, honnêtement, tu cherchais vraiment à tendre le bâton pour te faire battre ?



Sinon, pour répondre au sujet : toute solution logicielle finit par être obsolète un jour, vu que le reste du monde évolue. Avant que ça n'arrive aux noyaux, j'pense qu'on a le temps de voir venir, cependant. Mais a priori, un noyau ne peut pas franchement être codé dans un langage de très haut niveau, donc pour l'instant, à part le C, je n'vois pas trop en quoi on pourrait faire (en tout cas, il faut un langage compilé (donc pas Python) et qui tourne en dur (donc pas Java)).

Hors ligne

#22 Le 26/09/2011, à 15:52

01101011

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

ASM ? tongue

#23 Le 26/09/2011, à 16:17

Nasman

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

01101011 a écrit :

ASM ? tongue

Oui le langage des vrais hommes cyborgs.

Dernière modification par Nasman (Le 26/09/2011, à 16:17)


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#24 Le 26/09/2011, à 16:18

Elzen

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

L'assembleur est, au contraire, un peu trop bas niveau tongue Ça dépend trop du processeur, et c'est pas super simple à coder manuellement : il vaut mieux coder en C, qui passera de toute façon à la compilation par une étape en assembleur. On en a déjà causé (suite à une critique de Hibou57 sur le C, d'ailleurs, comme quoi l'histoire se répète) ici wink

Hors ligne

#25 Le 26/09/2011, à 18:42

Hibou57

Re : Les noyaux d'OS actuels, voués à disparaître un jour ?

ArkSeth a écrit :

parce qu'une comparaison C/Ada était décrédibilisée d'entrée de jeu

Ce sont des comparaisons C et C++ vs Ada que font les liens. Sinon, c’est sûr que comparer Ada et C, c’est totalement déloyale, je reconnais. Pourtant, comparer C++ et Ada, est bien pertinent. Et C++ est dérivé du C.

Le C est assez une horreur en lui‑même, sans qu’il soit besoin de la comparer à autre chose pour s’en apercevoir (*). On pourrait peut‑être faire une comparaison C et Pascal (**), qui pourrait sembler plus appropriée, mais, le problème c’est que Pascal n’est pas clairement standardisé, et il n’y a qu’à avoir connue FreePascal pour en savoir quelque chose, et ça terminait donc en affirmation invérifiable ou non‑pertinente.

(*) j’avais commencé sur ce ton là avec ma boutade provocatrice, qui n'a pas été comprise et qui a même été sciemment déviée sur autre chose, donc j'ai embrayé sur autre chose.

(**) Ce serait largué aussi quand‑même.


Ce serait le minimum utile que de s’interroger sur les raisons et les conséquences de la prédominance d’un si mauvais langage.

Dernière modification par Hibou57 (Le 26/09/2011, à 18:50)


Hajimemashteeeee… \(^o^)/ Tachikoma desu (^_^;)
Le saviez‑vous : le j’m’en foutisme est la cause de la plupart des fléaux du monde contemporain.
Mangez des standards : un grand bol de Standard tous les matins, et vous débutez la journée en pleine forme !
bulleforum.net — Forum de discussions, La Bulle (papotage de la vie courante ou choses trop sérieuses)

Hors ligne