HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Saltflow
spdk_blob_top_fs
C2024–2024
Saltflow / spdk_blob_top_fs

spdk_blob_top_fs

A VFS layer on top of SPDK blob layer

2Distinct people
2Mentions
0Explicit recommenders
6GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A VFS layer on top of SPDK blob layer

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour2 dated mentions

Observed mentions: 2024-05-31 18:20:40 UTC to 2024-05-31 21:23:54 UTC.

012024-05-31 18:00:00 UTC to 2024-05-31 19:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 31, 18:002024-05-31 19:00:00 UTC to 2024-05-31 20:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 31, 19:002024-05-31 20:00:00 UTC to 2024-05-31 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-05-31 21:00:00 UTC to 2024-05-31 22:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 31, 21:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 31, 18:002024-05-31 18:00:00 UTC2024-05-31 19:00:00 UTC101
May 31, 19:002024-05-31 19:00:00 UTC2024-05-31 20:00:00 UTC000
May 31, 20:002024-05-31 20:00:00 UTC2024-05-31 21:00:00 UTC000
May 31, 21:002024-05-31 21:00:00 UTC2024-05-31 22:00:00 UTC101

What Hacker News says

2 sources
> OK, change FUSE to SPDK, you get your userspace VFS layer: https://github.com/Saltflow/spdk_blob_top_fs I am not familiar with this project. It looks to be a VFS-like framework for userspace? If so, I don't see how that changes the nature of a kernel. I can implement any amount of kernel-like features on top of any operating system, provided I have Turing completeness. By that argument, I can take pre-NT enhanced mode Windows, arguably one of the least microkernel kernels there is (AFAIK it even has large part of its UI system running in kernel space), run an L4 kernel within it as a userspace application, and declare that "Windows 3.11 is now a microkernel"? As long as this SPDK thing does not rid me of VFS, it's just adding stuff in userspace? > That's up to you to keep around. No need to compile in subsystems and drivers you don't ne
Read the rest
ed. I genuinely did not follow Linux kernel development for quite a long time (as opposed to other OSes, like OpenBSD for example). Are you saying that nowadays (or maybe back then even), I can compile out VFS, the POSIX layer, the VM layer, kernel memory allocators? If so, that's indeed a big step towards microkernel-ness! > These objections are pedantry around what exactly is micro about a microkernel. You're saying I'm pedantic about what is a microkernel, I'm saying your definition of "microkernel" seems surprisingly broad, and question the merit of the term under that definition. According to you, where does a microkernel stop, and a monolithic kernel start, then? > Your message passing is my delegation through, say, netlink. netlink is not only one of many communication paths in Linux, it isn't even a raw message passing mechanism in the microkernel sense! It's built on top of POSIX and the socket layer, which are surfaced through many individual system calls into the kernel, and whose implementation is a pretty thick sandwich to get down to the actual mechanism that passes the message, i.e. that implements how the actual data is made available from one address space to another (zero-copy or not). Compare this with e.g. QNXs very simple, low level message passing protocol in its microkernel: https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrin... This is the actual low level mechanism, on top of which POSIX and pretty much everything else is built, outside of the microkernel. So it's actually quite the opposite of netlink! > Perhaps you are describing an exokernel concept where only the barest minimum is run in kernel mode? Liedtke's Minimality Principle states: "A concept is tolerated inside the microkernel only if moving it outside the kernel, i.e., permitting competing implementations, would prevent the implementation of the system's required functionality." So it seems that your "exokernel" definition matches my "microkernel" definition. Now, that definition represents an ideal that may not always be achieved in practive, but even then, the word "micro" in "microkernel" alone indicates that what should run in kernel mode should, at the very least, be extremely small. For my senses, I don't think "all of POSIX and VFS" is cutting it for that. > even L4 isn't a "true" microkernel if you are ultra-pedantic and run on processors with, say, userspace interrupts. I am actually open on what the "proper" definition of a microkernel is, but if the current state of the Linux kernel is included in that, and again if my present understanding of Linux is accurate and up to date (i.e. POSIX, VFS, allocators, all of the vm layer, and many many more things are still integral and inseparable parts running in kernel mode), i.e. if the term "microkernel" is not sufficient to separate such a kernel from QNX's Nucleus, or L4, then that term strikes me as rather useless. FWIW, I don't think I have ever seen any Linux kernel maintainer, including Linus, referring to their kernel as a microkernel. I have seen the exact opposite in the famous debate with Tanenbaum, but that was decades ago, so I have to be open to the possibility that the shape of the Linux kernel may have changed significantly since then.
In Ask HN: Why are all major operating systems monolithic?
OK, change FUSE to SPDK, you get your userspace VFS layer: https://github.com/Saltflow/spdk_blob_top_fs > Just because you've delegated some small parts into userspace, does not mean that you don't still have a massive monolithic kernel with metric tons of infrastructure and subsystems all running in the same kernel address space, oftentimes not even as dedicated threads. That's up to you to keep around. No need to compile in subsystems and drivers you don't need. HID is pushed userspace by HID-BPF and it works great. USB, I2C, SPI can all be handled by direct messages to the device. These objections are pedantry around what exactly is micro about a microkernel. UIO lets you drive any hardware via userspace memory maps, it's just usually easier to slap it into a pre-built kernel subsystem more than any need for code to be in kernel mode.
Read the rest
> A monolithic [sic] kernel is a tiny kernel that does not do much more than message passing. Linux is very far away from that, your "userspace servers" for FUSE and similar things are better called "delegates" for subsystems that still reside in the kernel itself. Your message passing is my delegation through, say, netlink. Perhaps you are describing an exokernel concept where only the barest minimum is run in kernel mode? Mach runs a lot more in kernel mode than necessary, even L4 isn't a "true" microkernel if you are ultra-pedantic and run on processors with, say, userspace interrupts.
In Ask HN: Why are all major operating systems monolithic?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.