Wikipedia says about file systems:

a filesystem is a type of data store which can be used to store, retrieve and update a set of files. The term could refer to the abstract data structures used to define files, or to the actual software or firmware components that implement the abstract ideas.

Is there a more formal definition? Is there a terminology to address the different parts?

Is a filesystem

  • the actual physical bit structure on the disk (or "storage device")?
  • the kernel code that operates on it? (or generally software or firmware components)
  • the kernel API that makes it possible for user programs to use it?
  • the mental model? (ie. abstract ideas)
  • the specification? (is it the "abstract data structures"?)

Do then some of these parts that make it up have distinct terms for them?

有帮助吗?

解决方案

No, there is not a more formal definition of a file system, as the above definition describes fully a "system of managing files". However, there are terms for your various bullet points.

The actual physical bit structure on the disk is named a "block", a "node", or a "physical format" depending on the context. "Blocks" identifies the minimum unit of disk addressing (the actual addressing format has a different name), "Node" identifies the expected interpretation of the bits if the "block" contains file navigation data, and "physical format" identifies the expected bits in relationship to the entire file system design (this term is seldom used).

The kernel code that operates on a file system is typically called a "driver". It reads the blocks, and interprets the bits within according to the overall filesystem structure.

The kernel API that makes it possible for user programs to use a file system is typically the "file system interface", which might or might not expose the details of the filesystem implementation (depending on operating system, a possible filesystem abstraction layer, etc).

The mental model of a file system is the file system's "model" or "design"

The specification is the written documentation which describes the "model" or "design". It often contains details which help clarify if an implementation is conforming to the design. Failure to conform to the design is considered an incorrect implementation of the specification. Specifications may include required data structures, required results from particular api calls, or any other requirements.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top