Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Modeled after FHS 2.3 from Filesystem Hierarchy Standard Group. Writers, editors, contributors, and referances from the model document are: Paul 'Rusty' Russell , Daniel Quinlan , Christopher Yeoh
- This document is in draft, as it may be unintentionally violating copyrights, and license agreements due to lack of communication and is not intended for any use other than theory and postulation on an alternative File System Organization (FSO). Copy, use of this document, or any derivative works must follow the license(s), laws, and stipulations under which the model document was published under.
- Author of this document: Joshua R. Marshall (jrmarsh2@svsu.edu , this email is expected to be valid until 2016)
- CONVENTIONS:
- “/”:root of the active file system
- “<OS name>”:folder which contains an entire operating system
- “//”:the root structure of the running or active operating system
- “~”:an account's abstracted location
- “FS”: file system, the mass of files and folders available to an operating system
- “FSO”:a file system's internal organization
- “OS”: operating system
- “default”:an account from which all other accounts at the same level inherit data from, and the OS's base “default” from which all other defaults inherit their data
- “<privilage level>”:<privilege level> is shown as “level<x>” and <x> is replaced with a number. Privileges decrease as the number increases for defined groups. Defined groups must include root access, and administrator access. Optional groups are adult users, child users, and guests. These groups are placed into folders “level0”, “level1”, “level2”, “level3”, and “level4” without quotation marks.
- “+”: a program's name
- Any text given in quotation marks, the implementation should ignore the quotationmarks.
- STRUCTURES:
- root structure:
- /<OS name>
- /<OS name2>
- /<OS nameX>
- an OS's structure:
- //default
- //level0/default
- //level0/system
- //level1/default
- //level2/default
- //level3/default
- //level4/default
- an account's base structure:
- ~/programs
- ~/programs/limits.conf
- ~/libraries
- ~/personal
- ~/settings.conf
- ~/immutableSettings.conf
- a program's defined structure:
- +/+.<?>
- +/+.limits
- a program's optional defined structure components:
- +/libraries
- +/media
- +/temp
- +/settings.conf
- REQUIRED PROGRAMS AND LOCATIONS:
- “//default/programs” must contain:
- “backup”:Utility with a variety of backup settings //optional
- “cat”: Utility to concatenate files to standard output
- “cp”: Utility to copy files and directories
- “date”: Utility to print or set the system data and time
- “df”: Utility to report filesystem disk space usage
- “echo”: Utility to display a line of text
- “false”: Utility to do nothing, unsuccessfully
- “hostname”: Utility to show or set the system’s host name //optional
- “kill”: Utility to send signals to processes //needs specification
- “login”: Utility to begin a session on the system
- “logout”:Utility to end a session on the system
- “ls”: Utility to list directory contents
- “mkdir”: Utility to make directories //change to mk (make) which creates a blank file and may be given a type. If this type is “.folder” it creates a folder. If its “.link” a path should be included after to create a link. “mknod” functionality must be added to this function.
- “more”: Utility to page through text //not needed, use arrows to go up/down, shift+arrow to scroll pages,and enter or escape to leave/finish the document/text.
- “mount”: Utility to mount and unmount a filesystem
- “mv”: Utility to move/rename files //must utilize “cp” and “rm” to move the data.
- “ps”: Utility to report process status
- “pwd”: Utility to print name of current working directory
- “rm”: Utility to remove files or directories
- “sed”: The ‘sed’ stream editor //change to “editor” and doesn't matter as long as its cli.
- “sh”: The Bourne command shell
- “stty”: Utility to change and print terminal line settings
- “sync”: Utility to flush filesystem buffers
- “true”: Utility to do nothing, successfully
- “sysinfo”: Utility to print system information //include all hardware specifications, and OS data.
- “//level0/system/programs” must contain:
- “kernel”
- “dmesg”: Utility to print or control the kernel message buffer
- “//level0/default/programs” must contain:
- “root”: Utility to gain system privilages
- SUGGESTED WORKINGS:
- The active FS should be an abstraction on top of the physical drives and partitions.
- Accounts must have the following folders: personal, programs, and libraries. Accounts must have a file named “settings.conf” which has support for at least automatic file opening and execution associations and running background and startup programs with control settings and features which allow multi-threaded/simultaneous program start, privileges required(program requires certain privileges to start and asks for a password), and waiting for another program to finish. There must be method to restore “settings.conf” from a alternate copy or “//<privilege level>/default/settings.conf”. “settings.conf” must define program file size limits.
- The user may not delete any inherited data, but may override them unless forbade in immutableSettings.conf.
- ~/libraries must contain all libraries universal to the user and programs they run. All +/library must inherit libraries from ~/libraries
- ~/programs must contain all programs available to the user by the system and through installations.
- Programs must run at the lowest possible privilege and if they request higher permissions, they must say what the privileges are they are requesting, and what access that will give the program. These settings may be granted during the installation up to the user's own privilages.
- Program data must only exist in the program's folder, and interact with other programs only when permissions are given.
- The “system” account must contain all data needed to recover, boot, and run the OS. System will start the OS, provide services not needed by other accounts, and background programs that the administrator(s) may want running all the time with minimal interference(such as nginx, or Apache).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement