Comment comprendre le "coeur" de mon système

karabe

Membre actif
6 Mai 2005
169
8
Bonjour,

La question que je vais vous poser va peut-être vous sembler un peu bizarre mais je vais essayer d'être aussi clair que possible :

À l'heure actuelle je n'ai aucune notion en programation mais je compte m'y former.

Cependant, outre le fait de programmer, ce qui m'interesse plus encore c'est comprendre le fonctionnement interne de ma machine.
En effet, je voudrais pouvoir comprendre comment fonctionne le noyau UNIX (c'est bien comme ça qu'on dit ?), le système OS X, la manière dont fonctionne le terminal, etc.

Je ne sais pas si je dois commencer par apprendre un langage de programation (si oui lequel) pour comprendre cela, ou bien si c'est une autre approche que je dois adopter.

Pour être un peu plus prosaïque : par exemple, dans le cas ou surviendrais un gros problème sur mon mac et qu'une alerte kernel apparaît je veux être en mesure de comprendre pourquoi.

Je me doute bien que ma demande est un peu "floue" mais j'espère que vous aurez compris. En gros j'aimerais m'aventurer dans ce domaine peu accessible situé entre le "hardware" et le "software".

PS : Si vous avez des sites ou des références bibliographiques je suis preneur.

PS bis : Ma demande s'applique aussi à Windows. J'ai d'ailleurs posté un message identique sur un forum de développeurs PC.

Edit : ne m'en voulez pas si ce que je vais dire vous semble très naïf mais j'ai trouvé l'illustration parfaite de ce que je voulais dire : j'aimerai par exemple être en mesure de comprendre exactement ce qu'il se passe lorsque l'on fait ça
http://news.com.com/1606-2_3-6101573.html?tag=ne.vid
 
J'avais envie moi aussi de connaitre le fonctionnement interne de MacOS X, mais contrairement à toi, j'ai déja fait pas mal de programmation.
J'ai trouvé le livre "Mac OS X Internals" d'Amit Singh, et je le trouve vraiment génial (mais en Anglais).
 
Bonsoir Karabe,

Vaste programme, je dirai potasser des bouquins sur les os en général puis te focaliser sur OS X ou un autre (Wind...). Mais bon OS X basé sur Unix est peut-être un investissement plus rentable car tu fais d'une pierre deux coups.
Mais je pense qu'il faudra faire un choix, les plateformes MAC et PC sont de plus en plus complexes, la connaissance des 2 me semble assez difficile pour quelqu'un qui n'est pas de le bain tous les jours.
Alors au niveau des langages, tu vas avoir plus que l'embaras du choix. Avantage, pas mal sont portables à 100% sur un grand nombre d'OS sans retouches ou alors avec des modifications mineures.
Tes soirées sont déjà réservées pour de longs mois ou de longues années.
 
DualG4 a dit:
J'avais envie moi aussi de connaitre le fonctionnement interne de MacOS X, mais contrairement à toi, j'ai déja fait pas mal de programmation.
J'ai trouvé le livre "Mac OS X Internals" d'Amit Singh, et je le trouve vraiment génial (mais en Anglais).
en effet il a l'air excellent ce livre.
http://www.osxbook.com/ (site du livre)
 
Merci beaucoup pour vos réponses.
Vos conseils, ajoutés à ceux donnés par des PCistes m'aident beaucoup. Je vois à peu près le programme à présent.
Je vais m'initier au C/C++, potasser le bouquin que tu m'as conseillé DualG4, lire un ou deux livres équivlents sur Windows, consulter les sites internet spécialisés, les forums etc.

Tes soirées sont déjà réservées pour de longs mois ou de longues années.

Elles sont déjà très occuppées par mes recherches et apprentissages sur le graphisme et la PAO mais ça fait tellement longtemps que je veux me mettre à la programmation que je me debrouillerai pour faire cohabiter les deux hobbies...

En tous cas encore merci pour vos conseils.
 
karabe a dit:
Merci beaucoup pour vos réponses.
Vos conseils, ajoutés à ceux donnés par des PCistes m'aident beaucoup. Je vois à peu près le programme à présent.
Je vais m'initier au C/C++, potasser le bouquin que tu m'as conseillé DualG4, lire un ou deux livres équivlents sur Windows, consulter les sites internet spécialisés, les forums etc.



Elles sont déjà très occuppées par mes recherches et apprentissages sur le graphisme et la PAO mais ça fait tellement longtemps que je veux me mettre à la programmation que je me debrouillerai pour faire cohabiter les deux hobbies...

En tous cas encore merci pour vos conseils.
1 - c
2 - maitriser le dev sur un noyeau (faire un kext / kmod /driver IO (sysctl ioctl thread memory ) indispensable
3 - libc (connaitre les sources) et archive storage ELF /MACH-O ...
4 - ASM indispensable
5 - HARDWARE et power interface smb/bios/bus ecetera indispensable
6 - FILESYSTEM /MVC
7 - télécharger les sources du noyeau indispensable
8 - savoir le construire correctement ( connaitre les sources ) indispensable
9 - bootstrap et machine victim indispensable

10 - avoir - de 16 ans au commencement (6 à 10 ans de boulot )

voila pour maitriser un noyeau monolityque (freeBSD , Linux )

pour mach/l4 ... il faut encore rajouter une couche

les kernel hackers sont une infime communauté par rapport au 7 milliard d'individus
et une tres tres tres tres tres petite communauté dans le monde du dev

:zen:
 
Systèmes d'exploitation

GNU Hurd : Page d'accueil du projet GNU Hurd de la Free Software Foundation.

The Mach project home page : Page d'accueil du projet Mach de
l'Open Software Foundation.
Voir en particulier la page des manuels

The Nachos project home page : Page d'accueil du projet Nachos, qui est un simulateur de
système d'exploitation destiné àl'enseignement.


Systèmes de fichiers

Journal File Systems : Article en ligne de la Linux Gazette sur les système de fichiers journalisés.
 
Zeusviper a dit:
Systèmes d'exploitation

GNU Hurd : Page d'accueil du projet GNU Hurd de la Free Software Foundation.

The Mach project home page : Page d'accueil du projet Mach de
l'Open Software Foundation.
Voir en particulier la page des manuels

The Nachos project home page : Page d'accueil du projet Nachos, qui est un simulateur de
système d'exploitation destiné àl'enseignement.


Systèmes de fichiers

Journal File Systems : Article en ligne de la Linux Gazette sur les système de fichiers journalisés.

http://linuxfr.org/2005/05/19/18952.html :D