Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Table of Contents

Unix File System

  • In this project, It has been designed and implemented a simplifies UNIX like file system in C++. File system that uses i-nodes blocks and data blocks to keep your files and use, a i-node structure as single link i-nodes(not supports double link and triple link i-nodes).File attributes will include size, last modification date and time, and name of the file. No permissions or owner attributes will be kept. Add Fig 4.33-Fig 4.34

  • Program that creates an empty file system as a 1 MB Linux file. This file includes all the information about file system including the i-nodes, data blocks, free blocks and i-nodes, directories, data, etc.

  • The sample run of the program will be like -> makeFileSystem 4 400 mySystem.dat

  • where 4 is the block size of the file system in KB for both data blocks and i-node blocks, and 400 is the number of free i-nodes for an empty file system. mySystem.dat is the Linux file that contains all the file system. When you work on the file system, this file contains all the information for the file system. The size of mySystem.dat will be exactly 1 MB all the time whether it contains any information or not.

  • And program that performs file system operation on the file system. You can observe all system operation -> Commands usage

BadgesBadgesBadgesBadgesBadgesBadgesBadgesBadgesBadges


Architecture of File system

arch_file_system

There are 5 main structures in the above file system. It is placed in 1mb file system in order from left to right. Superblock holds metadata about all file system. Bitmaps connects inodes and blocks to apply operations.It holds emptiness or fullness information specific inodes or blocks.(1 or 0).

The Inode describes a file system object such as file,directory,links etc. Each inode stores the metadata(last modification,name,size etc.) about objects,block locations.

It has been placed unused part between Inode and blocks. Because the start of the superblock and the end of the file system should be at a modularly easy computable value. It has been calculated size that cannot be created as block.

Unused part = 1 mb - sizeof(Superblock + Bitmaps + Inodes + blocks)

To Superblock, It has been calculated number of blocks as block size and remaining from other informations(superblock,bitmaps,inode).

Installation

  • All the code required to get started

Clone

Compile

  • Compile and run with g++ -Werror -o makeFileSystem makeFileSystem.cpp && ./makeFileSystem [BlockSize] [inodeCount] [fileSystem-Data file] to create the file system.
  • g++ -Werror -o p1 makeFileSystem.cpp && g++ -Werror -o p2 fileSystemOper.cpp
  • Compile g++ -Werror -o ./fileSystemOper fileSystemOper.cpp to perform operations in file system.
  • Then usage that the following operations -> - Commands usage

Compile with debug mode

  • You can add -DDEBUG keyword end of the compile command g++ -Werror -o makeFileSystem makeFileSystem.cpp -DDEBUG

Commands

  • list : Lists the contents of the directory shown by path on the screen.
  • mkdir : Create the directory, if they do not already exist.
  • rmdir : Remove directory if given directory is empty and path is correct.
  • dumpe2fs : List block count, inode count,free block and inodes, block size, number of files and directories and all occupies inodes some informations(blocks, filename)
  • write : Creates and writes data to the file.
  • read : Reads data from the file.
  • del : Deletes file from the path.

Commands usage

  • list: ./fileSystemOper fileSystem.data list [path-Folder]

  • mkdir: ./fileSystemOper fileSystem.data mkdir [path-Folder]

  • rmdir: ./fileSystemOper fileSystem.data rmdir [path-Folder]

  • dumpe2fs:./fileSystemOper fileSystem.data dumpe2fs

  • write: ./fileSystemOper fileSystem.data write [path-File] [linuxFile]

  • read: ./fileSystemOper fileSystem.data read [path-File] [linuxFile]

  • del: ./fileSystemOper fileSystem.data del [path-File]

Support

Reach out to me at one of the following places!


About

It has been implemented as based on Unix File System in C++.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages