Modern macOS doesn't support iSCSI volumes (an 'iSCSI initiator' in weird iSCSI parlance). If you're not familiar, these are basically SCSI-over-TCP/IP block devices, i.e. network devices that expose a 'drive' and speak SCSI so the system can use them like any other drive. They have plenty of cool uses, and I use them extensively in my homelab.
There used to be commercial drivers that performed decently (I even paid for one for a while), and a bare-bones-but-workable open-source one, but with the deprecation of kernel extensions those went away. There's still one commercial one but it's really expensive and I'm done paying for it for my homelab. I have access to Claude, I have patience, I can make architectural choices, and I can read Swift and C++.
The modern way of writing macOS drivers is using DriverKit, which allows you to run arbitrary drivers in userspace. They communicate with the kernel through a specific API, and since they run in userspace, they're isolated (theoretically!) from crashing the system.
So I set Claude Code to the task of writing a DriverKit iSCSI initiator from scratch. I gave it full reign over a disposable macOS VM and a real iSCSI share from the NAS. It's burning through my Fable allotment, and it's gotten quite far. It can mount drives, format them, write, read. APFS is unstable and prone to random system freezes, so we're working on that. But I'm still amazed at what 'vibe' coding can do. ExFAT works, pretty much.
Setting up a system for DriverKit development is a ROYAL pain in the ass. Disabling SIP, sure, but there's a lot of itty-bitty details to set up as well. Further system extension permissions, about a billion "ARE YOU SURE YOU WANT TO DO THIS?" prompts. Once it's done it's done, but it took a lot of fiddly manual work. Getting a DriverKit extension notarized and signed as a hobbyist is also apparently pretty fraught. I'll get there when I get there, I guess.
What I have so far is a working (ish) driver that can talk to, and mount, an iSCSI target from a real NAS, format it, perform some operations. It works much better on not-APFS. I'm currently seeing a lot of hangs inside Apple APFS code, and all the interfaces and APIs have rough edges.
It's extensively fuzzed, and I will do a metric-ton more fuzzing, auditing, and testing, both manual and AI-driven.
The intent is to open-source it when it's done. I'll keep posting updates here.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | 0 | 0 | 24-10-2018 | |
| 2 | 0 | 0 | 26-10-2018 | |
| 3 | 0 | 0 | 24-03-2026 | |
| 4 | 0 | 0 | 24-02-2026 | |
| 5 | 0 | 0 | 24-11-2016 | |
| 6 | 0 | 0 | 24-11-2016 | |
| 7 | 0 | 0 | 24-11-2016 | |
| 8 | Vulnerability giving attackers full control of Macs is under active exploitation | 0 | 10 | 14-08-2026 |
| 9 | Não consigo acessar o stream no Mac | 0 | 0 | 04-07-2026 |