11 ms·
Using Claude Code to modernize a 25-year-old kernel driver
- unethical_ban 1y agoNeat stuff. I just got Claude code and am training myself on Rails, I'm excited to have assistance working through some ideas I have and seeing it handle this kind of iterative testing is great. One note: I think the author could have modified sudoers file to allow loading and unloading the module* without password prompt.
- anyfoo 1y ago... which would allow you to load arbitrary code into the kernel, pretty much bypassing any and all security. You might as well not have a password at all. Which, incidentally, can be a valid strategy for isolated external dev boards, or QEMU VMs. But on a machine with stuff you care about? You're basically ripping it open.
- unethical_ban 1y agoHe was already loading "arbitrary" Claude code, no? I'm suggesting there was a way to skip password entry by narrowly tailoring an exception. Another thought, IIRC in the plugins for Claude code in my IDE, you can "authorize" actions and have manual intervention without having to leave the tool. My point is there were ways I think they could have avoided copy/paste.
- anyfoo 1y agoWhile I personally would have used a dedicated development target, the workflow he had at least allowed him to have a good look at any and all code changes, before approving with the root password. That is a bit different than allowing unconfirmed loading of arbitrary kernel code without proper authentication.
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- deleted 1y ago[deleted]
- nico 1y agoClaude is really good with frameworks like Rails. Both because it’s probably seen a lot of code in its training set, and because it works way better when there is a very well defined structure
- frumplestlatz 1y ago> One note: I think the author could have modified sudoers file to allow loading and unloading the module* without password prompt. Even a minor typo in kernel code can cause a panic; that’s not a reasonable level of power to hand directly to Claude Code unless you’re targeting a separate development system where you can afford repeated crashes.
- theptip 1y agoA good case study. I have found these two to be good categories of win: > Use these tools as a massive force multiplier of your own skills. Claude definitely makes me more productive in frameworks I know well, where I can scan and pattern-match quickly on the boilerplate parts. > Use these tools for rapid onboarding onto new frameworks. I’m also more productive here, this is an enabler to explore new areas, and is also a boon at big tech companies where there are just lots of tech stacks and frameworks in use. I feel there is an interesting split forming in ability to gauge AI capabilities - it kinda requires you to be on top of a rapidly-changing firehose of techniques and frameworks. If you haven’t spent 100 hours with Claude Code / Claude 4.0 you likely don’t have an accurate picture of its capabilities. “Enables non-coders to vibe code their way into trouble” might be the median scenario on X, but it’s not so relevant to what expert coders will experience if they put the time in.
- bicx 1y agoThis is a good takeaway. I use Claude Code as my main approach for making changes to a codebase, and I’ve been doing so every day for months. I have a solid system I follow through trial and error, and overall it’s been a massive boon to my productivity and willingness to attempt larger experiments. One thing I love doing is developing a strong underlying data structure, schema, and internal API, then essentially having CC often one-shot a great UI for internal tools. Being able to think at a higher level beyond grunt work and framework nuances is a game-changer for my career of 16 years.
- kccqzy 1y agoThis is more of a reflection of how our profession has not meaningfully advanced. OP talks about boilerplate. You talk about grunt work. We now have AI to do these things for us. But why do such things need to exist in the first place? Why hasn't there been a minimal-boilerplate language and framework and programming environment? Why haven't we collectively emphasized the creation of new tools to reduce boilerplate and grunt work?
- abathologist 1y ago
- 0xbadcafebee 1y agoI had a suspicion AI would lower the barrier to entry for kernel hacking. Glad to see it's true. We could soon see much wider support for embedded/ARM hardware. Perhaps even completely new stripped-down OSes for smart devices.
- giancarlostoro 1y agoIf used correctly it can help you get up to speed quicker, sadly most people just want it to build the house instead of using it to help them hammer nails.
- eviks 1y agoNothing was lowered because there was no barrier: > As a giant caveat, I should note that I have a small bit of prior experience working with kernel modules, and a good amount of experience with C in general But yeah, the dream of new OSes is sweet...
- baq 1y agoI'd bet a couple dollars that it'd take a week for someone who hasn't hacked on the kernel at all, but knows some C and two weeks for someone who doesn't even know C but is a proficient programmer. This would previously take months. We're talking about an order of magnitude quicker onboarding. This is absolutely massive.
- mrheosuper 1y ago>new stripped-down OSes for smart devices. What's wrong with exist one?
- deleted 1y ago[deleted]
- Brendinooo 1y agoWhen I read an article like this it makes me think about how the demand for work to be done was nowhere close to being fully supplied by the pre-LLM status quo.
- measurablefunc 1y agoIt's never about lack of work but lack of people who have the prerequisite expertise to do it. If you don't have experience w/ kernel development then no amount of prompting will get you the type of results that the author was able to achieve. More specifically, in theory it should be possible to take all the old drivers & "modernize" them to carry them forward into each new version of the kernel but the problem is that none of the LLMs are capable of doing this work w/o human supervision & the number of people who can actually supervise the LLMs is very small compared to the amount of unmaintained drivers that could be ported into newer kernels. There is a good discussion/interview¹ between Alan Kay & Joe Armstrong about how most code is developed backwards b/c none of the code has a formal specification that can be "compiled" into different targets. If there was a specification other than the old driver code then the process of porting over the driver would be a matter of recompiling the specification for a new kernel target. In absence of such specification you have to substitute human expertise to make sure the invariants in the old code are maintained in the new one b/c the LLMs has no understanding of any of it other than pattern matching to other drivers w/ similar code. ¹https://www.youtube.com/watch?v=axBVG_VkrHI https://www.youtube.com/watch?v=axBVG_VkrHI
- ekidd 1y agoThere is usually a specification for how hardware works. But: 1. The original hardware spec is usually proprietary, and 2. The spec is often what the hardware was supposed to do. But hardware prototype revisions are expensive. So at some point, the company accepts a bunch of hardware bugs, patches around them in software, ships the hardware, and reassigns the teams to a newer product. The hardware documentation won't always be updated. This is obviously an awful process, but I've seen and heard of versions of it for over 20 years. The underlying factors driving this can be fixed, if you really want to, but it will make your product totally uncompetitive.
- fourthark 1y agoUpgrades and “collateral evolution” are very strong use cases for Claude. I think the training data is especially good, and ideally no logic needs to change.
- rvz 1y agoNo tests whatsoever. This isn't getting close to being merged into mainline and it will stay out-of-tree for a long time. That's even before taking on the brutal linux kernel mailing lists for code review explaining what that C code does which could be riddled with bugs that Claude generated. No thanks and no deal.
- deleted 1y ago[deleted]
- yeasku 1y ago[flagged]
- firesteelrain 1y agoUpvoted you however it did solve the author’s problem and if he decides to post to GitHub then it could help someone later. Plenty of people working on retro architectures that wish they had things like this
- geor9e 1y agoThe authors using it. You're implying software created solely to fulfill one persons desires is a bad thing.
- yeasku 1y ago[flagged]
- squeakywhite 1y agoThe post was created to show how AI helped this person solve their particular problem - which it appeared to do successfully. Other people commenting about AI hype on the post isn't an indication that the post itself was created to hype AI, or that that the post itself is "bad".
- 1y ago
- tedk-42 1y agoReally is an exciting future ahead. So many lost arts that don't need a dedicated human to relearn deep knowledge required to make an update. A reminder though these LLM calls cost energy and we need reliable power generation to iterate through this next tech cycle. Hopefully all that useless crypto wasted clock cycle burn is going to LLM clock cycle burn :)
- rvz 1y ago> Really is an exciting future ahead. So many lost arts that don't need a dedicated human to relearn deep knowledge required to make an update. You would certainly need an expert to make sure your air traffic control software is working correctly and not 'vibe coded' the next time you decide to travel abroad safely. We don't need a new generation who can't read code and are heavily reliant on whatever a chat bot said because: "you're absolutely right!". > Hopefully all that useless crypto wasted clock cycle burn is going to LLM clock cycle burn :) Useful enough for Stripe to building their own blockchain and even that and the rest of them are more energy efficient than a typical LLM cycle. But the LLM grift (or even the AGI grift) will not only cost even more than crypto, but the whole purpose of its 'usefulness' is the mass displacement of jobs with no realistic economic alternative other than achieving >10% global unemployment by 2030. That's a hundred times more disastrous than crypto.
- peteforde 1y agoHave you ever read David Graeber's Bullshit Jobs? Because if not, you really should.
- konfusinomicon 1y agoyes they do! those are the humans that pass down those lost arts even if the audience is a handful. to trust an amalgamation of neurally organized binary carved intricately into metal with deep and often arcane knowledge and the lineage of lessons that produced it is so absurd that if a catastrophe that destroyed life as we know it did occur, we deserve our fate of devolution back to stone tools and such.
- anonymousiam 1y agoI hope Dmitry did a good job. I've got a box of 2120 tapes with old backups from > 20 years ago, and I'm in the process of resurrecting the old (486) computer with both of my tape drives (floppy T-1000 and SCSI DDS-4). It would be nice to run a modern kernel on it.
- csmantle 1y agoIt's a good example of a developer who knows what to do with and what to expect from AI. And a healthy sprinkle of skepticism, because of which he chose to make the driver a separate module.
- Keyframe 1y agopipe dream - now automate Asahi development to M3, M4, and onwards.
- flykespice 1y agoHow long would the prompt be? Longer than C++ standard specification?
- mschuster91 1y agothe problem here is that Apple, while at least not standing actively in the way (like console manufacturers), provides zero documentation on how stuff works internally. You gotta reverse-engineer everything, and that either takes at least a dozen highly qualified and thus rare and expensive-to-hire people or someone hard on the autism-hyperfixation spectrum with lots of free time to spare and/or the ability to turn it into an academic project. AI can't help at all here because even if it were able to decompile Apple's driver code, it would not be able to draft a coherent mental model on how things work. M3, to answer the second part why AI won't be of much help, onwards use a massively different GPU architecture that needs to be worked out, again, from scratch. And all of that while there is a substantial number of subsystems remaining on M1, M2 and its variants that aren't supported at all, only partially supported or with serious workarounds, or where the code quality needs massive work to get upstreamed into Linux. And on top of that, a number of contributors burned out along the way, some from dealing with the ultra-neckbeard faction amongst Linux kernel developers, some from other mental health issues, and Alyssa departed for Intel recently.
- Keyframe 1y agoYou mean to tell me those agents aren't PhD-level experts in every field as we were told by OpenAI?? I'm shocked! Seriously though, it does seem a menial task in itself to reverse engineer what's going on. Would be a really powerful show of force by one of leading AI providers if they setup shop like that to do it in the open.. if they could.
- mschuster91 1y ago
- aussieguy1234 1y agoAI works better when it has an example. In this case, all the code needed for the driver to work was already there as the example. It just had to update the code to reflect modern kernel development practices. The same approach can be used to modernise other legacy codebases. I'm thinking of doing this with a 15 year old PHP repo, bringing it up to date with Modern PHP (which is actually good).
- AdieuToLogic 1y agoSomething not yet mentioned by other commenters is the "giant caveat": As a giant caveat, I should note that I have a small bit of prior experience working with kernel modules, and a good amount of experience with C in general, so I don’t want to overstate Claude’s success in this scenario. As in, it wasn’t literally three prompts to get Claude to poop out a working kernel module, but rather several back-and-forth conversations and, yes, several manual fixups of the code. It would absolutely not be possible to perform this modernization without a baseline knowledge of the internals of a kernel module. Of note is the last sentence: It would absolutely not be possible to perform this modernization without a baseline knowledge of the internals of a kernel module. This is critical context when using a code generation tool, no matter which one chosen. Then the author states in the next section: Interacting with Claude Code felt like an actual collaboration with a fellow engineer. People like to compare it to working with a “junior” engineer, and I think that’s broadly accurate: it will do whatever you tell it to do, it’s eager to please, it’s overconfident, it’s quick to apologize and praise you for being “absolutely right” when you point out a mistake it made, and so on. I don't know what "fellow engineers" the author is accustomed to collaborating with, junior or otherwise, but the attributes enumerated above are those of a sycophant and not any engineer I have worked with. Finally, the author asserts: I’m sure that if I really wanted to, I could have done this modernization effort on my own. But that would have required me to learn kernel development as it was done 25 years ago. This could also be described as "understanding the legacy solution and what needs to be done" when the expressed goal identified in the article title is: ... modernize a 25-year-old kernel driver Another key activity identified as a benefit to avoid in the above quote is: ... required me to learn ...
- rmoriz 1y agoGatekeeping is toxic. I love agents explaining me projects I don‘t know. Recently I cloned sources of Firefox and asked qwen-code (tool not significant) about the AI features of Firefox and how it‘s implemented. Learning has become awesome.
- deleted 1y ago[deleted]
- rmoriz 1y agoI was banned from an OpenSource project [1] recently because I suggested a bug fix. Their „code of conduct“ not only prevents PRs but also comments on issues with information that was retrieved by any AI tool or resource. Thinking about asking Claude to reimplement it from scratch in Rust… [1] https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CODE_OF_CONDUCT.md https://codeberg.org/superseriousbusiness/gotosocial/src/bra...
- sreekanth850 1y ago/ Suddenly i saw this: //Update regarding corporate sponsors: we are open to sponsorship arrangements with organizations that align with our values; see the conditions below.// They should know that beggars cant be choosers.
- 3836293648 1y agoThat's not begging. That's a premptive rejection for people who think they can take control of the project through money.
- driverdan 1y agoIt's pretty funny that they say "We are not interested in input from right-wingers, nazis, ... or capitalists." and then say they're open to corporate sponsorships. If they want to be consistent they'd only be open to government or individual sponsors, not corps.
- QuadmasterXLII 1y agoThat must be so hard for you.
- rmoriz 1y agoThe bugs are on them. I‘ve fixed them in my fork but of course I‘ll migrate to a non-discriminating alternative.
- 1y ago
- deleted 1y ago[deleted]
- meander_water 1y ago> Be as specific as possible, making sure to use the domain-specific keywords for the task. If you don't have the technical understanding of a language or framework, there is going to be a lot of ambiguity in your prompts. This specificity gap leads the LLM to fill in those gaps for you, which may not be what you intended. And that's usually where bugs hide. I think this is the flip side to being a "force multiplier"
- SV_BubbleTime 1y ago“I need a C class that has a constructor for a tuple” I would hope Claude would be like “Hold on man…”
- petesergeant 1y ago> I need a C class that has a constructor for a tuple | I'll create a simple C++ class with a constructor that takes a tuple. Here's an example... > nah C | C doesn't have classes or constructors - those are C++ features. In C, you would use a struct and create an initialization function. Here's how you'd handle a tuple-like structure:
- qayxc 1y agoHm. That was interesting, so I ran it as prompt to Qwen3-Coder (which I run locally). It spat out a bunch of C functions together with a C struct and commented: This implementation provides: Generic Tuple Structure: A flexible tuple that can hold different types of elements (int, double, string, float) Constructor Function: tuple_create() initializes a new tuple with specified size Type-Safe Setters: tuple_set_int(), tuple_set_double(), tuple_set_string(), tuple_set_float() Type-Safe Getters: tuple_get_int(), tuple_get_double(), tuple_get_string(), tuple_get_float() Memory Management: Automatic memory allocation and deallocation Utility Functions: tuple_print() for displaying tuple contents tuple_destroy() for cleanup Seems to be a common enough request to be present in the model's training data :D Even the code looked fine, apart from being a very naive and thus slow implementation.
- codedokode 1y ago
- brainless 1y agoEmpowering people is a lovely thing. Here the author has a passion/side project they have been on for a while. Upgrading the tooling is a great thing. Community may not support this since the niche is too narrow. LLM comes in and helps in the upgrade. This is exactly what we want - software to be custom - for people to solve their unique edge cases. Yes author is technical but we are lowering the barrier and it will be lowered even more. Semi technical people will be able to solve some simpler edge cases, and so one. More power to everyone.
- punnerud 1y agoWhat was the new speed after the upgrade?
- qayxc 1y agoSince it's the still the same driver addressing the same hardware it should be identical.
- Cthulhu_ 1y ago...it's a tape drive, they have mechanically fixed speeds. Why do you ask?
- punnerud 1y agoHe wrote “The tradeoff, of course, is that the data rate is limited by the speed of the floppy controller,”. Implying it could be faster by switching the controller. I guess tape drives could in theory have way way faster transfer speeds, as other tape drives does.
- yieldcrv 1y agoI’ve been doing assembly subroutines in Solidity for years with LLMs, I wouldn't even have tried beforehand
- athrowaway3z 1y ago> so I loaded the module myself, and iteratively pasted the output of dmesg into Claude manually, One of the things that has Claude as my goto option is its ability to start long-running processes, which it can read the output of to debug things. There are a bunch of hacks you could have used here to skip the manual part, like piping dmesg to a local udp port and having Claude start a listener.
- mattmanser 1y agoI think that's the thing holding a lot of coders back on agentic coding, these little tricks are still hard to get working. And that feedback loop is so important. Even something simple like getting it to run a dev server in react can have it opening multiple servers and getting confused. I've watched streams where the programmer is constantly telling it to use an already running server.
- jabl 1y agoBlast from the past! When I was a kid we had such a floppy tape device connected to a 386 or 486 computer my parents had. I think it was a Colorado Jumbo 250. I think the actual capacity was 125MB, but the drive or the backup software had some built-in compression, hence why it was marketed as a 250MB drive. Never tried to use it with the Linux ftape driver, though. It wouldn't surprise me if the drive and the tapes are still somewhere in my parents storage. Could be a fun weekend project to try it out, though I'm not sure I have any computer with a floppy interface anymore. And I don't think there's anything particularly interesting on those tapes either. In any case, cool project! Kudos to the author!
- driverdan 1y agoI've been trying to remember the tape drive we had on our 486 when I was a kid and that's it. Thank you!
- vkaku 1y agoExcellent. This is the kind of W that needs more people to jump into.
- MagicMoonlight 1y agoIs Claude code better than ChatGPT?
- Amadiro 1y agoIn my experiments claude4 opus generated by far the best code (for my taste and purposes) but it's also a pretty expensive model. I think I used up $40 in one evening of frantic vibe-coding.
- prameshbajra 1y agoI have been testing both Claude code and Codex CLI for the past few weeks and I found codex output to be better than claude. I like how Claude code is more advanced in terms of CLI functionality but I prefer Codex output (with model high) If you do not want to pay for both, then you can pick anyone and go with it. I don't think the difference is huge.
- sedatk 1y agoOff-topic, but I wish Linux had a stable ABI for loadable kernel modules. Obviously the kernel would have to provide shims for internal changes because internal ABI constantly evolves, so it would be costly and the drivers would probably run slower over time. Yet, having the ability to use a driver from 15 years ago can be a huge win at times. That kind of compatibility is one of the things I love about Windows.
- fruitworks 1y agoI think this would be terrible for the driver ecosystem. I don't want to run 15 year old binary blob drivers because they technicially still work. Just get the source code published into mainline.
- eisa01 1y agoI've used Claude Code in the past month to do development on CoMaps [1] using the 20 USD/month plan. I've been able to do things that I would not have the competence for otherwise, as I do not have a formal software engineering background and my main expertise is writing python data processing scripts. E.g., yesterday I fixed a bug [2] by having Claude compare the CarPlay and iOS search implementations. It did at first suggest another code change than the one that fixed it, but that felt just like a normal part of debugging (you may need to try different things) Most of my contributions [3] have been enabled by Claude, and it's also been critical to identify where the code for certain things are located - it's a very powerful search in the code base And it is just amazing if you need to write a simple python script to do something, e.g., in [4] Now this would obviously not be possible if everyone used AI tools and no one knew the existing code base, so the future for real engineers and architects is bright! [1] https://codeberg.org/comaps/comaps https://codeberg.org/comaps/comaps [2] https://codeberg.org/comaps/comaps/pulls/1792 https://codeberg.org/comaps/comaps/pulls/1792 [3] https://codeberg.org/comaps/comaps/pulls?state=all&type=all&labels=&milestone=0&project=0&assignee=0&poster=362595&sort=&q= https://codeberg.org/comaps/comaps/pulls?state=all&type=all&... [4] https://codeberg.org/comaps/comaps/pulls/1782 https://codeberg.org/comaps/comaps/pulls/1782
- maelito 1y agoThanks for your contributions to Comaps. As the main developer of cartes.app, I'm happy to see libre traction in the world of maps. Hope to make the bridge soon with i18n of cartes.app. I also use LLMs to work on it. Mistral, mostly.
- knowaveragejoe 1y agoHow are you using Claude Code with the $20/mo plan? Aren't you still paying the API prices on top of the $20/mo?
- JohnnyMarcone 1y agoThey allow limited use on the $20 plan last I knew.
- mintflow 1y agoWhen I was port fd.io vpp to apple platform for my App, there is code that's implement coroutine in inline ASM in a C file but not in Apple supported syntax, I have succesfully use Claude web interface to get the job done (Claude code was not yet released), though as like in this article, I have strong domain specific knowledge to provide a relevant prompt to the code. Nowadays I heavily rely Claude Code to write code, I start a task by creating a design, then I write a bunch of prompt which cover the design details and detail requirements and interaction/interface with other compoments. So far so good, it boost the productivity much. But I am really worrying or still not be able to believe this is the new norm of coding.
- globular-toast 1y agoI don't think we really need an article a day fawning over LLMs. This is what they do. Yep. Only thing I got from this is nostalgia from the old PC with its internals sprawled out everywhere. I still use desktop PCs as much as I can. My main rig is almost ten years old and it's been upgraded countless times although is now essentially "maxed out". Thank god for PC gamers, otherwise I'm not sure we'd still have PCs at all.
- codedokode 1y agoLLMs are also good for writing quick experiments and benchmarks to satisfy someone's curiosity. For example, once I was wondering, how much time does it take to migrate a cache line between cores when several processes access the same variable - and after I wrote a detailed benchmark algorithm, LLM generated the code instantly. Note that I described the algorithm completely and what it did is just translated it into the code. Obviously I could write the code myself, but I might need to lookup a function (how does one measure elapsed time?), I might make mistakes in C, etc. Another time a made a benchmark to compare linear vs tree search for finding a value in a small array. It's very useful when you get the answer in several minutes rather than half a hour.
- codedokode 1y agoAlso I wanted to add that LLMs (at least free ones) are pretty dumb sometimes and do not notice obvious thing. For example, when writing tests they generate lot of duplicated code and do not move it into a helper function, or do not combine tests using parametrization. I have to do it manually every time. Maybe it is because they generate the code in one pass and cannot return back and fix the issues. LLM makers, you should allow LLMs to review and edit the generated code.
- jlei523 1y agoAlso I wanted to add that LLMs (at least free ones) are pretty dumb sometimes and do not notice obvious thing. For example, when writing tests they generate lot of duplicated code and do not move it into a helper function, or do not combine tests using parametrization. I have to do it manually every time. Do you prompt it to reduce duplicated code?
- codedokode 1y agoI can prompt anything but I would prefer it not to make obvious mistakes from the start.
- jlei523 1y ago
- fho 1y agoI wonder if the author could now go one step further and wrote some code to interface the take drive with an ESP32, thereby removing the floppy drive from the equation and going straight to USB.
- rob_c 1y agoI imagine pull requests are welcome :p
- IshKebab 1y ago> From this point forward, since loading/unloading kernel modules requires sudo, I could no longer let Claude “iterate” on such sensitive operations by itself. Hilarious! https://xkcd.com/1200/ https://xkcd.com/1200/
- undebuggable 1y agoImagine the horror when a random stranger finally installs and sets up that bloody printer on your laptop.
- DrNosferatu 1y agoUses like this will only get more pervasive.
- fruitworks 1y agoIf we allow it
- DrNosferatu 1y agoIf it delivers what we need, isn't it a net positive? And clearly define what we need with specs and thorough tests.
- fruitworks 1y agoDo we need code generated from a stochastic model of previous code? I think we need actual people who are familiar with the kernel and hardware and are capable of reasoning about it. We are constantly reminded that LLMs are the future despite the real world evidence to the contrary. Look at what happens when LLMs are trained on the output of other LLMs, such as the low quality code flooding the internet. It is all a self-solving problem set in motion.
- jason-johnson 1y agoAs sad as it makes some version of me to say, the majority of code that gets written every day doesn't need to be good code. I am doing a pet side project right now, completely with copilot. I haven't written a line of code, documentation or anything else. The code is pretty poor but I don't care because I just need it to take a specific input and produce a specific output and I only need this to happen once and then I'll throw the whole thing away. As I mentioned elsewhere: this didn't get me the result faster than I could have done by hand, but it did let me not spend the entire time in deep focus trying to write all this.
- rob_c 1y agoThe alternative is to go back to stone tablet in the cave with Plato.
- jillesvangurp 1y agoI think this is illustrative of the kind of productive things you can do with an LLM if you know what you are doing. Is it perfect, no. Can they do useful things if you prompt correctly, absolutely. It helps knowing what you are doing and having enough skill to make good judgment calls yourself. There are currently multiple posts per day on HN that escalate into debates on LLMs being useful or not. I think this is a clear example that it can be. And results count. Porting and modernizing some ancient driver is not that easy. There's all sorts of stuff that gets dropped from the kernel because it's just too old to bother maintaining it and when nobody does, deleting code becomes the only option. This is a good example. I imagine, there are enough crusty corners in the kernel that could benefit from a similar treatment. I've had similar mixed results with agentic coding sometimes impressing me and other times disappointing me. But if you can adapt to some of these limitations it's alright. And this seems to be a bit of a moving goalpost thing as well. Things that were hard a few months ago are now more doable.
- mexicocitinluez 1y agoThe more you use the tools, the more you're able to recognize the situations in which they're useful. These studies keep popping up where they randomly decide whether someone will use AI to assist in a feature or not and it's hard for me to explain just how stupid that is. And how it's a fundamental misunderstanding of when and how you'd want to use these tools. It's like being a person who hangs up drywall with screws and your boss going "Hey, I'm gonna flip a coin and if it's heads you'll have to use the hammer instead of a screwdriver" and that being the method in which the hammer is judged. I don't wake and go "I'm going to use AI today". I don't use it to create entire features. I use it like a dumb assistant. > I've had similar mixed results with agentic coding sometimes impressing me and other times disappointing me. But if you can adapt to some of these limitations it's alright. And this seems to be a bit of a moving goalpost thing as well. Things that were hard a few months ago are now more doable. Exactly my experience too.
- jillesvangurp 1y ago> I don't use it to create entire features. I actually do this now. That's one of those things that went from impossible to doable under some circumstances. Still a bit of a coin flip but it can work well in some code bases. I still have a mental block even asking for these things under the assumption it would not work anyway. But I've been pleasantly surprised a few times where this actually works.
- d4rkp4ttern 1y ago> using these tools as a massive force multiplier… Even before tools like CC it was the case that LLMs enabled venturing into projects/areas that would be intimidating otherwise. But Claude-Code (and codex-cli as of late) has made this massively more true. For example I recently used CC to do a significant upgrade of the Langroid LLM-Agent framework from Pydantic V1 to V2, something I would not have dared to attempt before CC: https://github.com/langroid/langroid/releases/tag/0.59.0 https://github.com/langroid/langroid/releases/tag/0.59.0 I also created nice collapsible html logs [2] for agent interactions and tool-calls, inspired by @badlogic/Zechner’s Claude-trace [3] (which incidentally is a fantastic tool!). [2] https://github.com/langroid/langroid/releases/tag/0.57.0 https://github.com/langroid/langroid/releases/tag/0.57.0 [3] https://github.com/badlogic/lemmy/tree/main/apps/claude-trace https://github.com/badlogic/lemmy/tree/main/apps/claude-trac... And added a DSL to specify agentic task termination conditions based on event-sequence patterns: https://langroid.github.io/langroid/notes/task-termination/ https://langroid.github.io/langroid/notes/task-termination/ Needless to say, the docs are also made with significant CC assistance.
- rob_c 1y agoQudos to the author. I keep beating on the drum that they correctly point out. It's not perfect. But it saves hours and hours of work in generating compared to small conceptual debugging. The era of _needing_ teams of people to spit out boilerplate is coming to an end. I'm not saying doing learn to write it, learning demands doing, making mistakes and personal growth. But after you've mastered this there's no need to waste time writing booklet plate on the clock unless you truly enjoy it. This is a perfect example of time taken to debug small mistakes << time to start from scratch as a human. Time, equivalent money, energy saved all a testament to what is possible with huge context windows and generic modern LLMs :) :) :)
- bgwalter 1y agoThere is literally a GitHub repository, six years old, that ports an out-of-tree ftape driver to modern Linux: https://github.com/Godzil/ftape https://github.com/Godzil/ftape Could it be that Misanthropic has trained on that one?
- lloydatkinson 1y ago> Maybe this driver have problems on SMP machines. > Maybe this driver have problems on 64Bit x86 machines. Ouch. The part where it says it’s not possible to use a normal floppy and the tape flip anymore seemed odd enough, but those last points should scare anyone away from trying these on anything important.
- bgwalter 1y agoYes, Godzil's repo could have the issues you point out but still give hints to Claude what APIs to replace. Or the latest possibly-Claude-plagiarized version perhaps has the same issues.
- lloydatkinson 1y agoI hope it gets mainlined again!
- wg0 1y agoI have used Gemeni and OpenAI models too but at this point - Sonnet is next level undisputed King. I was able to port a legacy thermal printer user mode driver from legacy convoluted JS to pure modern Typescript in two to three days at the end of which printer did work. Same caveats apply - I have decent understanding of both languages specifically various legacy JavaScript patterns for modularity to emulate other language features that don't exist in JavaScript such as classes etc.
- piskov 1y agoCheck swe-bench results but for C#. It’s literally pathetic how these things just memorize, not achieve any actual problem-solving https://arxiv.org/html/2506.12286v3 https://arxiv.org/html/2506.12286v3
- antonvs 1y agoYou've misunderstood the study that you linked. LLMs certainly memorize, and this can certainly skew benchmarks, but that's not all they do. Anyone with experience with LLMs will have experienced their actual problem solving ability, which is often impressive. You'd be better off learning to use them, than speculating without basis about why they won't work.
- piskov 1y agoWhat exactly did I misunderstand? Also “learn to use them” feels you’re holding it wrong vibes. See also https://machinelearning.apple.com/research/illusion-of-thinking https://machinelearning.apple.com/research/illusion-of-think...
- criticalfault 1y agoWould be good to do the same to 'modernize' disassembled drivers for various devices in mobile phones. Would give postmarketos a boost.
- lukaslalinsky 1y agoI mainly use Claude Code for things I know, where I just don't want to focus on the coding part. However, I recently found a very niche use. I have a small issue with an open source project. Instead of just accepting it, it occurred to me I can just clone the repo, and ask CC to look into my issue. For example, I was annoyed with Helix/Zed that replacing parameter in Zig code only works for function declarations, not function calls. I suspected it will be in the tree-sitter grammar, but I let it go through the Zed source code, then it asked for the grammar, so I cloned it and gave it access to that, and it happily fixed the grammar for me and tested the results. It needed a few nudges to make the fix properly, but I spent maybe 5 minutes on this, while CC was probably working for half an hour. I even had it fork the repo, and open the PR for me. In the end I have an useful change that people will benefit from, that I'd never attempt myself.
- miki123211 1y agoIMO, the most under-appreciated trick when working with these coding agents is to give them an automatic way to check their work.
- grim_io 1y agoWhat a great use case. It demonstrates how much the LLM use can boost productivity on specific tasks where the complete manual implementation would take much longer than the verification.
- MrContent04 1y agoIt’s fascinating to see LLMs breathe new life into legacy code. But I wonder — if AI rewrites outpace human review, are we just creating a new layer of technical debt? Maybe the real challenge is balancing modernization with long-term maintainability.