3 ms·
> * To convert Linux kernel subsystems into Python so I can quickly understand them (I'm a C programmer but everyone reads Python faster). Do you have an examp
by throwup238 2y ago
> * To convert Linux kernel subsystems into Python so I can quickly understand them (I'm a C programmer but everyone reads Python faster).
Do you have an example chat of this output? Sounds interesting. Do you just dump the C source code into the prompt and ask it to convert to Python?
- tptacek 2y agoNo, ChatGPT is way cooler than that. It's already read every line of kernel code ever written. I start with a subsystem: the device mapper is a good recent example. I ask things like "explain the linux device mapper. if it was a class in an object-oriented language, what would its interface look like?" and "give me dm_target as a python class". I get stuff like: def linear_ctr(target, argc, argv): print("Constructor called with args:", argc, argv) # Initialize target-specific data here return 0 def linear_dtr(target): print("Destructor called") # Clean up target-specific data here def linear_map(target, bio): print("Mapping I/O request") # Perform mapping here return 0 linear_target = DmTarget(name="linear", version=(1, 0, 0), module="dm_mod") linear_target.set_ctr(linear_ctr) linear_target.set_dtr(linear_dtr) linear_target.set_map(linear_map) info = linear_target.get_info() print(info) (A bunch of stuff elided). I don't care at all about the correctness of this code, because I'm just using it as a roadmap for the real Linux kernel code. The example use case code is an example of something GPT 4o provides that I didn't even know I wanted.
- throwup238 2y agoThat's awesome. Have you tried asking it to convert Python (psuedo-ish) code back into C that interfaces with the kernel?
- tptacek 2y agoNo, but only because I have no use for it. I wouldn't be surprised if it did a fine job! I'd be remiss if I didn't note that it's way better at doing this for the Linux kernel than with codebases like Zookeeper and Kubernetes (though: maybe o1 makes this better, who knows?). I do feel like someone who skipped like 8 iPhone models (cross-referencing, EIEIO, lsp-mode, code explorers, tree-sitter) and just got an iPhone 16. Like, nothing that came before this for code comprehension really matters all that much?
- INGSOCIALITE 2y agoit's all placeholders - that's my experience with gpt trying to write slop code
- throwup238 2y agoThose are placeholders for user callbacks passed to the device mapper subsystem. It’s a usage example not implementation code.
- jeffhuys 2y agoThen ask it to expand. Be specific.
- tptacek 2y agoI wasn't about to paste 1000 lines of Python into the thread; I just picked an interesting snippet.