Dans Amazon, il est nommé "[Essayez de comprendre] Comment fonctionne Linux ~ Connaissance de base du système d'exploitation et du matériel acquise grâce à des expériences et des illustrations". .. On l'appelle souvent un livre sat en raison du nom de pseudo de l'auteur Takeuchi-san.
Le code C distribué par M. Takeuchi est ici, et le code que j'ai réécrit dans Rust est [ici](https: //) Il peut être trouvé sur github.com/gyu-don/linux-in-practice).
Ci-dessous le poème.
J'avais moi-même un certain intérêt pour Linux et la mémoire, donc il n'y avait pas beaucoup de nouveau contenu. Cependant, je me sens très bien de le lire. Comme il est étiqueté «Essayer et comprendre», vous pouvez réellement essayer ce qui est écrit pour approfondir votre compréhension. Je l'ai entendu d'une manière ou d'une autre, mais je suis vraiment content d'avoir pu essayer quelque chose que je n'avais pas vraiment essayé.
pros: --Il n'y a aucun doute (du moins pour moi) que Rust est plus facile à écrire que C pour autre chose que les appels système.
struct
et immplate Drop
pour ne pas oublier de fermer le fichier (bien que cela soit difficile en C mais peut être fait en C ++).cons:
«J'ai décidé de faire de mon mieux pour écrire les parties qui n'avaient pas d'emballage ou qui ne se sentaient pas très bien.
--C La chaîne de terminaison NUL est difficile à créer sans utiliser le tas (si le tas est correct, CString :: new (...)
semble bon)
nix
ʻioctlest gênante. Je ne savais pas comment gérer le
BLKSSZGET requis dans le livre sat avec la macro ʻioctl
, donc j'ai utilisé ʻioctl de
libc`.Je voulais le terminer avec Rust Vive, mais après tout, tant que l'interface était à l'origine basée sur C, ce ne serait pas pratique sans compter sur un wrapper, et j'ai senti que le wrapper n'était pas parfait.
Pourtant, je pense que c'est vraiment pratique de pouvoir gérer les erreurs avec Result
, et même si vous n'aimez pas le wrapper, vous pouvez le faire vous-même sans trop de tracas, et cela ne semble pas être mauvais.