The Folder Layout for the Alien Engine focuses on being Flexible, Accurage, and Simple. The folder layout has changed several times. The original Engine uses three major folders in place of theoretical partitions "User", "Secure" and "System" in order to seperate things by their permissions and secure access to scripts...etc; this concept has been depreciated unless the Alien Engine in the future builds its own Kernel and Operating System Layers. The current structure is inspired by Linux and POSIX Systems however instead of using notation for folder names, the names are intact and uppercased. Shorthand for important names and Variables within the Alien Engine is avoided in order to make it easier to understand the documented code and purpose of a layout.
"Apps" is the equivilent of "Program Files" in Windows, "/bin/" (Binary) in Linux, and "Apps" in OS X. It contains Apps that are available to all Users globally. Data for Apps may be stored globally in the App's Personal Folder, Database Registry, or the User's 'Profile/%User%/AppData/' Folder.
"Cache" is commonly named "Temp", "/tmp", "/proc" (which is a Live Cache for Running Processes)...etc; the Cache folder is for Applications, Modules...etc to Cache files that are still necessary to be used, however may also be cleared at will. Currently there are no Libraries using the Cache folder, however expansion in the next Milestone Release may make use of it if adds efficiency.
"Config" is known in Linux as "/etc/" (Editable Text Configuration), use of Text Configuration is minimized as the Database and Registry can store variables & information Securely using a `Permissions`, `ContentType`, `Owner.ID`, and `Owner.Class` POSIX inspired System. With the Registry and Resources Layers making use of BSBCR (Browser Session Based Comamnd Recall) `Commands` provide access to information in an effective way.
"Interfaces" contain Client/User Interfaces that launches all Apps, Views/ContentBlocks, Pages...etc through BSBCR (Browser Session Based Command Recall) using AJAX (HTTP Requests) + JSON Data in order to achieve a fully functional transformable HTML5 Interface on a modern device. The purpose of the "Interfaces" folder is to allow expansion beyond Computers in the near future for Mobile Devices and Tablets suchas Android, iOS, & other Portible Devices.
"Libraries" contains Global Object Classes that are available within the Alien Engine PHP Namespace. Libraries may or may not have a companion Interface or App. Linux commonly abbreviates thir version of the "Library" folder as "/lib/", "/lib32/", and "/lib64/".
"Modules" are system components essential to the Alien Engine which may or may not be Activated / Deactivated through Settings in the Database editable by an Admin.
"Profiles" is the equivilent of the Windows "C:/User/" or "C:/Documents & Settings" Folders. OS X uses the Folder "/Users/", Linux Systems use the "/Home/" folder. The name "Profiles" is what's used in Alien because 'User' is too vauge to describing the data & purpose, and "/Home/" is also misleading. Expansion for Devices may possibly at a later time be mounted at the locations "/Profiles/%Username%"/Devices/" (for personal mounts) or '/Devices/' for System Devices. Examples of mountable devices are: Hard Drive, Portible Storage, Network Drives / Clouds...etc
"Scripts" make use of Modular Libraries and don't contain reusable code for multiple purposes to the same extent that Libraries do. Library Methods execute code in a linear way similar to Scripts; however, a Library focuses on containg Modular Components that can be reused.