Se connecter

Informatique

Linux

Sujet : Apprendre le Linux
1
stacksmashing
Niveau 6
08 juillet 2018 à 10:51:22

Salut,

Après avoir lu quelques articles sur eBPF j'ai voulu jouer avec/découvrir comment ça marche, en lisant des tutos il y a des termes que je comprends pas, par exemple ça parle de kprobes, donc je google kprobes, et dans l'article de kprobes ça dit que l'article assume que l'on sache ce que sont les exception handlers,... je google exception handler et là il ça parle de kernel mode, de cpu exceptions, etc.... J'ai des connaissances vite-fait là dessus, je sais que le kernel tourne en mode privilégié, que l'userland fait fait appels système pour que le kernel execute ces appels et renvoie le résultat.. mais tout ça c'est succin.

Au final, pour éviter de tourner en rond, c'est quoi l'ordre des choses (de la base jusqu'aux sujets pointus)? j'ai déja fait du C, un peu d'asm, j'utilise linux courament mais je voudrais comprendre en détail les mécanismes interne (ce qui se passe dans le kernel et toutes les choses citées ci dessus)

Google_Bot
Niveau 12
08 juillet 2018 à 12:10:13

Hello.
Il y a beaucoup (beaucoup) de littérature sur le noyau Linux, à vrai dire je ne sais pas trop vers quoi t'orienter. Le bouquin http://shop.oreilly.com/product/9780596005658.do m'a l'air pas mal pour commencer, et en gratuit je vois que http://www.kroah.com/lkn/ est souvent cité.

stacksmashing
Niveau 6
09 juillet 2018 à 20:20:26

J'ai commencé le bouquin d'Oreilly :oui:

Jour 1: Le bouquin a l'air accessible, ça commence avec quelques généralités et ensuite ça part dans la gestion de la mémoire (premier chapitre). Il vaut mieux prendre des notes en cours de lecture (le livre fait 900 pages). Je continue https://image.noelshack.com/fichiers/2018/28/1/1531160311-tumblr-ml6wb71frh1qmkr8bo1-500.gif

Google_Bot
Niveau 12
09 juillet 2018 à 23:16:19

Le 09 juillet 2018 à 20:20:26 Stacksmashing a écrit :
J'ai commencé le bouquin d'Oreilly :oui:

Jour 1: Le bouquin a l'air accessible, ça commence avec quelques généralités et ensuite ça part dans la gestion de la mémoire (premier chapitre). Il vaut mieux prendre des notes en cours de lecture (le livre fait 900 pages). Je continue https://image.noelshack.com/fichiers/2018/28/1/1531160311-tumblr-ml6wb71frh1qmkr8bo1-500.gif

Bonne chance, tu nous raconteras. Je suis content de voir que tu fais ça sérieusement, c'est très rare les gens qui acceptent de s'attaquer à des sujets aussi corsés. (d'ailleurs ce sont des compétences de pointe assez recherchées donc pour peu que tu en fasses un champ d'études et ton domaine professionnel, ça peut déboucher sur un bel emploi)

stacksmashing
Niveau 6
11 juillet 2018 à 16:42:54

Fin du chapitre "Memory Adressing" :bave: C'était plutôt un soulagement quand j'ai vu la fin du chapitre, je commençais à décrocher sur certains points. Y'a des trucs plutôt simples à comprendre (le TLB par exemple), mais pour d'autres on se retrouve dans un inception d'inception.

Par exemple la partie sur l'initialisation de la mémoire lors de l'initialisation du kernel (Final kernel page table/Provisional kernel page table) mon cerveau a disparu quand je lisais, je voyais des mots sur une page sans comprendre leur signification.
Je reviendrai dessus plus tard si j'ai la foi :(

Sinon il y énormément d'acronymes/définitions/vocabulaire, de temps en temps je fais une deuxième passe de lecture pour mieux digérer (c'est comme pour les films avec un final twist, on comprend mieux/différemment quand on regarde le film une seconde fois). Dans l'ensemble c'est compréhensible :oui:

L'anglais est simple (technique) et les explications sont progressives (d'abord ça parle de mécanismes tels qu'ils étaient au départ, puis de leur amélioration au fil du temps).

à suivre

https://image.noelshack.com/fichiers/2018/28/3/1531318617-capture-d-ecran-2018-07-11-16-12-19.png

godrik
Niveau 22
11 juillet 2018 à 18:34:33

Si tu veux en savoir plus sur la memoire, regardes "what every programmer shoyld know about memory" d'Ulrich Dreper. C'est un pave, mais c'est bien ecrit et interessant.

stacksmashing
Niveau 6
15 juillet 2018 à 10:15:44

Vous saviez que fork() renvoie 0 dans le processus fils parce que lors de la création d'un processus fils, la fonction copy_thread() force le registre eax (registre utilisé pour le retour des fonctions) à avoir la valeur 0 ? :cool: Moi je sais :cool:

Chapitre 3 "Processes" terminé, un peu plus long que le chapitre précédant (memory adressing) et beaucoup moins imbuvable, en gros ça dit q'il se passe plein de choses quand on lance un programme :bave: et aussi quand on en tue un :bave:

Belz3buth
Niveau 9
31 juillet 2018 à 20:34:32

Tu peux me dire si le bouquin est fait pour apprendre de A à Z le système ( de hardware au compilé au interpréter ).
Je fais du dev et je sens les lacunes côté système pour comprendre se que fais mon code. J'attends ta réponse :+)
Je ferai un topic ce soir en fonction de se que tu me diras

stacksmashing
Niveau 6
01 août 2018 à 11:47:10

Toujours vivant, je viens de finir le chapitre sur les interruptions, petites PLS par moment :rire:

Tu peux me dire si le bouquin est fait pour apprendre de A à Z le système ( de hardware au compilé au interpréter ).
Je fais du dev et je sens les lacunes côté système pour comprendre se que fais mon code. J'attends ta réponse :+)

Jusqu'à maintenant il a pas mal de hardware (architecture intel) qui explique le fonctionnement de certaines parties du CPU.
Par rapport à mon avancée dans el livre, à mon avis le chapitre sur les processus (chapitre 3) peut t'aider à comprendre certaines choses sur la programmation système (fonctionnement des fork/threads), mais c'est surtout tourné du côté kernel (ordonnancement, structures utilisées).

En regardant les chapitre suivants (signaux, synchronisation, memory management, systèmes de fichiers, communication interprocessus, execution de programme) il y a plein de choses que tu retrouveras en programmation, mais comme il y a une grande partie qui traîte du côté kernel je pense que tu devrai trouver un autre bouquin qui colle plus à tes attentes.

Donc si tu veux connaitre le système en profondeur c'est un bon livre, si c'est pour mieux comprendre quelques "trucs" en programmation ça me parait exagéré de tout lire.

Belz3buth
Niveau 9
01 août 2018 à 22:20:23

Merci beaucoup ! Je continue de chercher ! Merci pour la direction en tout cas ! :P

[hard]ware
Niveau 14
02 août 2018 à 03:40:03

Salut,

Le livre d'Oreilly peut m'intéresser.

  • Côté hardware pur j'y connais pas grand chose (j'ai juste survolé l'archi du Intel 8086 à la fac), mais je veux sincèrement en apprendre plus. Côté software, je connais pas trop mal le C, et j'ai touché à l'Assembleur (sur le 8086).
  • Je ne suis pas un grand lecteur. Le dernier livre que j'ai lu date de... heu ai-je déjà lu un livre en entier ?
  • Je suis loin d'être bilingue. Je me débrouille pas trop mal en anglais, mais j'ai un niveau encore bien insuffisant à mon goût, que je souhaite augmenter. Mais pour ce qui est de lire un livre en anglais
  • Côté utilisateur de Linux, je ne l'utilise qu'assez peu en profondeur. Je n'ai jamais quitté l'univers Debian (hors FreeNAS), que je n'ai jamais vraiment exploré. Mais j'aimerais en savoir plus.
  • Quelle est la portée du sujet ? Est-ce qu'on se concentre uniquement sur le noyau (dont j'ai vraiment 0 notion), ou est-ce qu'on touche aussi à ce qui tourne autour ?
  • Il est daté de 2008 2005 sur Amazon https://www.amazon.fr/Understanding-Linux-Kernel-Daniel-Bovet/dp/0596005652/ref=sr_1_1?ie=UTF8&qid=1533173274&sr=8-1&keywords=Understanding+the+Linux+Kernel , n'est-ce pas "trop vieux" ? J'imagine bien que le noyau n'est pas refait tous les jeudis, mais quand même ? Est-ce qu'après avoir lu ça, je peux dire "je connais Linux" ? Ou plutôt "je connais les fondements de Linux" ?
  • Le livre coûte tout de même 40€...

Est-ce que vous me le conseillez ?

A la fois le sujet m'intéresse sincèrement, à la fois, est-ce un bon début ?
900 pages en anglais ça fait peur je dois dire.
En même temps si je peux en tirer un savoir (utile qui plus est), et même m'améliorer en anglais, ça vaut le coup.

Vous en pensez quoi ? :noel:

:merci:

stacksmashing
Niveau 6
02 août 2018 à 11:18:09

Je suis loin d'être bilingue. Je me débrouille pas trop mal en anglais, mais j'ai un niveau encore bien insuffisant à mon goût, que je souhaite augmenter. Mais pour ce qui est de lire un livre en anglais

Niveau langue comme je l'avais dit plus haut, c'est plutôt simple à comprendre, tu as quelques mots spécifiques dans chaque chapitre + l'anglais technique habituel.

Il est daté de 2008 n'est-ce pas "trop vieux" ? J'imagine bien que le noyau n'est pas refait tous les jeudis, mais quand même ?

Le livre traite du kernel 2.6 et là on est arrivé au 4 :( en cherchant vite fait il n'y a pas l'air d'y avoir de livre sur le kernel 3 ou 4 donc c'est ça ou rien. Mais bon, j'imagine que ça doit bien poser les bases pour comprendre la plupart des articles sur le kernel :(

stacksmashing
Niveau 6
24 août 2018 à 11:10:23

Chapitre 5 sur la synchronisation terminé :bave:

Mes connaissances sur la synchronisation avant lecture :

Je connais les mutex :-(

après lecture :

RCU, semaphore, memory barrier, spinlock, seqlock :cool: je maîtrise :cool:

Google_Bot
Niveau 12
25 août 2018 à 02:18:28

Nous avons créé un monstre :hap:
(non plus sérieusement fonce, je me répète mais c'est un domaine fascinant et il y a moyen de bosser sur des projets vraiment dingues si tu te débrouilles bien avec ce genre de connaissances)

stacksmashing
Niveau 6
03 septembre 2018 à 11:03:09

Chapitre 6 Time measurements fini
https://www.noelshack.com/2018-36-1-1535965009-immxl1il50urlthzssaphtah-e8-347x387.jpg

Au suivant https://image.noelshack.com/fichiers/2017/19/1494279332-risicreepy2.png

non plus sérieusement fonce, je me répète mais c'est un domaine fascinant et il y a moyen de bosser sur des projets vraiment dingues si tu te débrouilles bien avec ce genre de connaissances

À priori niveau pro je pars pas dans ce domaine, mais effectivement ça serait pas mal à la fin du livre d'essayer de faire un projet qui réunit plusieurs de ces connaissances :bave: Voire 1 mini projet par chapitre :bave:

Pseudo supprimé
Niveau 7
03 septembre 2018 à 11:15:17

Si tu veux apprendre des choses, tu peux taper i386.pdf dans google et lire ce fameux pdf. Tu vas comprendre plein de choses sur les OS modernes.

stacksmashing
Niveau 6
03 septembre 2018 à 20:10:39

Le 03 septembre 2018 à 11:15:17 SithisMinion a écrit :
Si tu veux apprendre des choses, tu peux taper i386.pdf dans google et lire ce fameux pdf. Tu vas comprendre plein de choses sur les OS modernes.

Il y a trop d'informations partout :bave:

stacksmashing
Niveau 6
24 octobre 2018 à 21:48:08

https://image.noelshack.com/fichiers/2018/43/3/1540410446-zombie-hand-blog-header.jpg

Toujours vivant, rassurez vous.

J'ai un peu moins de temps en ce moment, c'est pourquoi j'ai cassé la linéarité de la lecture pour focus les choses qui m’intéressent plus :oui:

J'ai cassé memory management ( :content:) pour lire System Calls (terminé)

1
Sujet : Apprendre le Linux
   Retour haut de page
Consulter la version web de cette page