EuroBSDCon 2011 – Day 1 – FreeBSD Kernel

bsd2011logo

Et c’est parti ! premier jour de l’EuroBSDCon 2011 à Utrecht. Au programme, un cours de Marshall Kirk McKusick sur les différentes fonctions du kernel FreeBSD.

Marshall Kirk McKusick

Le Dr. Marshall Kirk McKusick, professeur d’université, est depuis 10 ans un développeur et un commiter dans le projet FreeBSD. Il a en particulier mis au point FFS. Il est l’auteur du livre The Design and Implementation of the 4.4BSD Operating System. Il a participé à de nombreuses conférences, dont les BSDCons.

L’exposé

Kirk nous l’avait promis en commençant, il essaierait de faire attention à son accent américain … heureusement pour moi, il a tenu sa promesse. L’exposé est très vivant, souvent ludique, mais certains pourront lui reprocher d’être trop généraliste (au moins pour la première partie) pour ceux ayant déjà de bonnes bases dans les principes des systèmes d’exploitation. Il est à noter que je me suis inspiré de beaucoup de ses articles et de ses livres pour écrire deux de mes  cours (Systèmes d’exploitationApplication concurrentes)…  On ne trouvera donc pas surprenant d’y trouver une grande part des sujets abordés aujourd’hui.

 Matin

La première partie de l’exposé s’est concentrée sur les grandes fonctions d’un kernel, avec tout naturellement un focus particulier sur celui de FreeBSD. Les thèmes abordés furent les suivants :

  • Process structure : nous y avons vu la structure interne des processus sur FreeBSD, y compris les structures de données, sans rentrer trop dans les détails de l’implémentation. Un rappel également des modes de communication avec le noyau au travers des syscall.
  • Locking : les différents types de synchronisation bloquantes ou non bloquantes, à travers les sémaphores et les autres mutex.
  • Communications : les types de communications dans le noyau (gestion des interruptions, etc..)
  • Process groups and sessions : les notions de groupes et de session de processus, ainsi que les différents modèles de threads (KThreads, rfork)
  • Jails : une très brève description des jails FreeBSD.
  • Scheduling : l’ordonnancement des processus, avec leurs différents états et les algorithmes d’ordonnancement.
  • Signals and timers : la communication inter-process via les signaux et l’épineux problème de la gestion des timers.
  • Virtual memory management : la gestion de la mémoire virtuelle, à travers les différentes structures et les algorithmes de traitements des défauts de page.

 

Après-midi

Une présentation nettement plus technique l’après midi, avec les notions d’E/S sur freeBSD :

  • I/O data structures : les types de données traitant les E/S, avec un rappel sur les  différentes couches du noyau les traitant.
  • Disk management : une présentation très intéressante sur les différentes fonctions de la couche GEOM de FreeBSD, ainsi que les couches d’abstraction CAM et ATA
  • Multiplexing I/O : comment permettre à un processus d’utiliser plusieurs E/S simultanément
  • Autoconfiguration strategy : la stratégie mise en place sur FreeBSD pour l’auto-configuration (comment FreeBSD fait pour mettre à jour sa configuration drivers par rapport à un matériel qui peut évoluer).

Conclusion

Un cours très intéressant et très vivant, nécessitant tout de même de bonnes connaissances dans les principes des systèmes d’exploitation, ainsi qu’en architecture matérielle (MMU, DMA, etc..).

Je pense mettre à jours certains de mes cours, par rapports à des sujets abordés, que j’avais un peu mis de côté.

J’aurais aimé poursuivre le cours sur la 2ème journée, où Kirk abordera les Filesystems et le réseau sous FreeBSD, mais je pense plutôt suivre les cours consacrés à DTrace et NetGRAPH. A demain.

Vus : 2022
Publié par OsEr : 15