Giter Club home page Giter Club logo

pnfs's Introduction

PNFS

Introduction

This is a filesystem that is designed and implemented for a school assignment. The structure is kinda based on ext2 and runs on a “virtual” HDD. That have 250 blocks, where each block is 512 bytes.

The name PNFS stands for PowerNexFileSystem. But I haven’t decided if I want to use this in PowerNex.

License

Mozilla Public License, version 2.0 - See LICENSE or here.

Design

Blocks

  • Block 0
  • Header
  • Block 1-16
  • Node x8 // Total of 128 Nodes
  • Block 17
  • Root DirBlock
    • DirEntries x8

Class diagram

images/classdiagram.png

Tree

digraph tree {
		graph [
			rankdir = LR,
			ranksep = 1
		];
		node [
			fontsize = "16"
			shape = "ellipse"
		];
		edge [
		];


		"start" [
			style=filled,
			fillcolor=green,
			label="Filesystem root"
		];
		"start" -> "root";

		"root" [
			shape="record",
			style=filled,
			fillcolor=cyan,			
			label="***fs_node***|id = 1|type = dir"
		];
		"root" -> "root_direntry":d [
			shape="record",
			label = "directoryEntries()"
		];
  "root_direntry" [
			shape="record",
			style=filled,
			fillcolor=pink,
			label="<d>***fs_direntry[]**|<d0> .(1) | <d1> ..(1) | <d2> bin(2) | <d3> data(3)"
		];

		"root_direntry":d0 -> "root" [
			label="getNode(1)"
		];

		"root_direntry":d1 -> "root" [
			label="getNode(1)"
		];

		"root_direntry":d2 -> "bin" [
			label="getNode(2)"
		];

		"root_direntry":d3 -> "data" [
			label="getNode(3)"
		];

	
  
		"bin" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 2|type = dir"
		];
		"bin" -> "bin_direntry":d [
			shape="record",
			label = "directoryEntries()"
		];
		"bin_direntry" [
			shape="record",
			style=filled,
			fillcolor=pink,
			label="<d>***fs_direntry[]***| <d0> .(1) | <d1> ..(1) | <d2> bin(2) | <d3> data(3)"
		];

		"bin_direntry" [
			shape="record",
			label="<d>***fs_direntry[]***| <d0> .(2) | <d1> ..(1) | <d2> helloworld(4) | <d3> testprogram(5)"
		];

		"bin_direntry":d0 -> "bin" [
			label="getNode(2)"
		];

		"bin_direntry":d1 -> "root" [
			label="getNode(1)"
		];

		"bin_direntry":d2 -> "helloworld" [
			label="getNode(4)"
		];

		"bin_direntry":d3 -> "testprogram" [
			label="getNode(5)"
		];

		"data" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 3|type = dir"
		];
		"data" -> "data_direntry":d [			
			shape="record",
			label = "directoryEntries()"
		];
		"data_direntry" [
			shape="record",
			style=filled,
			fillcolor=pink,
			label="<d>***fs_direntry[]***| <d0> .(3) | <d1> ..(1) | <d2> image.bmp(6) | <d3> sound.ogg(7)"
		];

		"data_direntry":d0 -> "data" [
			label="getNode(3)"
		];

		"data_direntry":d1 -> "root" [
			label="getNode(1)"
		];

		"data_direntry":d2 -> "image.bmp" [
			label="getNode(6)"
		];

		"data_direntry":d3 -> "sound.ogg" [
			label="getNode(7)"
		];


		"helloworld" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 4|type = file"
		];
		"testprogram" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 5|type = file"
		];
		"image.bmp" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 6|type = file"
		];
		"sound.ogg" [
			shape="record",
			style=filled,
			fillcolor=cyan,
			label="***fs_node***|id = 7|type = file"
		];
}

pnfs's People

Contributors

m4gnv5 avatar vild avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pnfs's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.