{"id":25012863,"url":"https://github.com/lrmulkayhee/javascript-os","last_synced_at":"2025-03-30T04:12:09.093Z","repository":{"id":257304751,"uuid":"857870181","full_name":"lrmulkayhee/javascript-os","owner":"lrmulkayhee","description":"JavaScript OS is a comprehensive operating system simulation written in JavaScript. It provides a wide range of functionalities including process management, memory management, file system operations, and more.","archived":false,"fork":false,"pushed_at":"2025-01-28T14:54:05.000Z","size":90,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T21:50:28.819Z","etag":null,"topics":["benchmark","commands","javascript","operating-system","operating-system-learning","os","simulation","testing"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lrmulkayhee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-15T20:16:37.000Z","updated_at":"2025-01-28T14:54:08.000Z","dependencies_parsed_at":"2024-09-15T21:35:56.991Z","dependency_job_id":null,"html_url":"https://github.com/lrmulkayhee/javascript-os","commit_stats":null,"previous_names":["lrmulkayhee/javascript-os"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lrmulkayhee%2Fjavascript-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lrmulkayhee%2Fjavascript-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lrmulkayhee%2Fjavascript-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lrmulkayhee%2Fjavascript-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lrmulkayhee","download_url":"https://codeload.github.com/lrmulkayhee/javascript-os/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246273558,"owners_count":20750906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","commands","javascript","operating-system","operating-system-learning","os","simulation","testing"],"created_at":"2025-02-05T06:18:09.262Z","updated_at":"2025-03-30T04:12:09.073Z","avatar_url":"https://github.com/lrmulkayhee.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript OS\nJavaScript OS is a comprehensive operating system simulation written in JavaScript. It provides a wide range of functionalities including process management, memory management, file system operations, and more.\n\n## Features\n\n- **Process Management**: Create, run, and terminate processes.\n- **Memory Management**: Load, store, and manipulate data in memory.\n- **File System**: Create, read, write, and delete files.\n- **Network Utilities**: Perform network operations like ping, traceroute, and netstat.\n- **Package Management**: Install, uninstall, and update packages.\n- **Backup and Restore**: Backup and restore system data.\n- **User Management**: Add, delete, and list users.\n- **Automation Scripts**: Schedule and run tasks automatically.\n- **Logging**: Comprehensive logging for system operations.\n- **Configuration Management**: Manage system configurations.\n- **Shell Interface**: Interactive shell for executing commands.\n- **Virtual File System**: Simulate a file system for the OS.\n- **Task Management**: Manage and schedule tasks.\n- **Text Editing**: Basic text editor functionality.\n- **Window Management**: Manage application windows.\n- **Inter-Process Communication**: Facilitate communication between processes.\n- **Web Server**: Built-in web server for handling HTTP requests.\n- **Database Management**: Manage and interact with databases.\n- **Performance Benchmarks**: Benchmark various system components.\n- **Testing**: Unit and integration tests for system components.\n\n## Directory Structure\n```\nproject/\n├── fs/ # File system root\n├── src/\n│   ├── index.js # Entry point\n│   ├── WebServer.js\n│   ├── commands/ # Command modules\n│   │   ├── file-management/\n│   │   │   ├── FileCommands.js\n│   │   ├── system-monitoring/\n│   │   │   ├── MemoryCommands.js\n│   │   ├── process-management/\n│   │   │   ├── ProcessCommands.js\n│   ├── os/ # Operating system core\n│   │   ├── OperatingSystem.js\n│   │   ├── Process.js\n│   │   ├── cli.js\n│   │   ├── configManager.js\n│   │   ├── database.js\n│   │   ├── fileManager.js\n│   │   ├── fileSystem.js\n│   │   ├── IPC.js\n│   │   ├── Logger.js\n│   │   ├── MemoryManager.js\n│   │   ├── Network.js\n│   │   ├── PackageManager.js\n│   │   ├── ProcessScheduler.js\n│   │   ├── Shell.js\n│   │   ├── TaskManager.js\n│   │   ├── TextEditor.js\n│   │   ├── UserManager.js\n│   │   ├── VirtualFileSystem.js\n│   │   ├── WindowManager.js\n│   ├── network-utilities/\n│   │   ├── ping.js\n│   │   ├── traceroute.js\n│   │   ├── netstat.js\n│   ├── package-management/\n│   │   ├── install.js\n│   │   ├── uninstall.js\n│   │   ├── update.js\n│   ├── backup-restore/\n│   │   ├── backup.js\n│   │   ├── restore.js\n│   ├── user-management/\n│   │   ├── add-user.js\n│   │   ├── delete-user.js\n│   │   ├── list-users.js\n│   ├── automation-scripts/\n│   │   ├── schedule-task.js\n│   │   ├── run-task.js\n├── test/ # Test directory\n│   ├── unit/\n│   │   ├── backup.test.js\n│   │   ├── cli.test.js\n│   │   ├── configManager.test.js\n│   │   ├── database.test.js\n│   │   ├── FileCommands.test.js\n│   │   ├── fileManager.test.js\n│   │   ├── install.test.js\n│   │   ├── logger.test.js\n│   │   ├── MemoryCommands.test.js\n│   │   ├── netstat.test.js\n│   │   ├── packageManager.test.js\n│   │   ├── ping.test.js\n│   │   ├── ProcessCommands.test.js\n│   │   ├── restore.test.js\n│   │   ├── shell.test.js\n│   │   ├── taskManager.test.js\n│   │   ├── textEditor.test.js\n│   │   ├── traceroute.test.js\n│   │   ├── uninstall.test.js\n│   │   ├── update.test.js\n│   │   ├── userManager.test.js\n│   │   ├── webServer.test.js\n│   │   ├── windowManager.test.js\n│   ├── integration/\n│   │   ├── OperatingSystem.test.js\n│   ├── checklist/\n│   │    ├── functionality-checklist.md\n│   │    ├── performance-checklist.md\n│   ├── benchmarks/\n│   │   ├── backup-restore-benchmark.js\n│   │   ├── cli-benchmark.js\n│   │   ├── config-manager-benchmark.js\n│   │   ├── database-benchmark.js\n│   │   ├── file-operations-benchmark.js\n│   │   ├── logger-benchmark.js\n│   │   ├── memory-benchmark.js\n│   │   ├── network-benchmark.js\n│   │   ├── package-management-benchmark.js\n│   │   ├── process-benchmark.js\n│   │   ├── shell-benchmark.js\n│   │   ├── task-manager-benchmark.js\n│   │   ├── user-management-benchmark.js\n│   │   ├── web-server-benchmark.js\n│   │   ├── window-manager-benchmark.js\n├── .gitignore\n├── package.json\n├── package-lock.json\n├── README.md\n```\n\n## Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/yourusername/javascript-os.git\n    cd javascript-os\n    ```\n\n2. Install dependencies:\n    ```sh\n    npm install\n    ```\n\n3.  Start the operating system shell:\n    ```sh\n    node src/index.js\n    ```\n\n    4. Use the following commands in the shell:\n\n    ### Memory Commands\n\n    - `load \u003cvalue\u003e`: Load a value into the accumulator.\n    - `store \u003caddress\u003e`: Store the accumulator value at the specified memory address.\n    - `add \u003cvalue\u003e`: Add a value to the accumulator.\n    - `sub \u003cvalue\u003e`: Subtract a value from the accumulator.\n    - `mul \u003cvalue\u003e`: Multiply the accumulator by a value.\n    - `div \u003cvalue\u003e`: Divide the accumulator by a value.\n    - `print`: Print the value of the accumulator.\n    - `clear`: Clear the accumulator.\n\n    ### File Commands\n\n    - `createFile \u003cfilename\u003e`: Create a new file.\n    - `readFile \u003cfilename\u003e`: Read the contents of a file.\n    - `writeFile \u003cfilename\u003e \u003ccontent\u003e`: Write content to a file.\n    - `deleteFile \u003cfilename\u003e`: Delete a file.\n\n    ### Process Commands\n\n    - `createProcess \u003cinstructions\u003e`: Create a new process with a list of instructions.\n    - `runProcess \u003cpid\u003e`: Run a process by its PID.\n    - `terminateProcess \u003cpid\u003e`: Terminate a process by its PID.\n\n    ## Additional Commands\n\n    ### Network Utilities\n\n    - `ping \u003caddress\u003e`: Ping a network address.\n    - `traceroute \u003caddress\u003e`: Perform a traceroute to a network address.\n    - `netstat`: Display network statistics.\n\n    ### Package Management\n\n    - `install \u003cpackage\u003e`: Install a package.\n    - `uninstall \u003cpackage\u003e`: Uninstall a package.\n    - `update \u003cpackage\u003e`: Update a package.\n\n    ### Backup and Restore\n\n    - `backup`: Backup system data.\n    - `restore`: Restore system data from a backup.\n\n    ### User Management\n\n    - `addUser \u003cusername\u003e`: Add a new user.\n    - `deleteUser \u003cusername\u003e`: Delete a user.\n    - `listUsers`: List all users.\n\n    ### Automation Scripts\n\n    - `scheduleTask \u003ctask\u003e`: Schedule a task.\n    - `runTask \u003ctask\u003e`: Run a scheduled task.\n\n    ### Shell Interface\n\n    - `help`: Display available commands.\n    - `exit`: Exit the shell.\n\n    ### Web Server\n\n    - `startServer`: Start the built-in web server.\n    - `stopServer`: Stop the built-in web server.\n\n    ### Database Management\n\n    - `query \u003csql\u003e`: Execute a SQL query on the database.\n\n    ### Configuration Management\n\n    - `setConfig \u003ckey\u003e \u003cvalue\u003e`: Set a configuration key-value pair.\n    - `getConfig \u003ckey\u003e`: Get the value of a configuration key.\n\n    ### Logging\n\n    - `viewLogs`: View system logs.\n\n    ### Task Management\n\n    - `listTasks`: List all scheduled tasks.\n    - `cancelTask \u003ctaskId\u003e`: Cancel a scheduled task.\n\n    ### Text Editing\n\n    - `editFile \u003cfilename\u003e`: Open a file in the text editor.\n\n    ### Window Management\n\n    - `openWindow \u003capp\u003e`: Open an application window.\n    - `closeWindow \u003capp\u003e`: Close an application window.\n\n    ### Inter-Process Communication\n\n    - `sendMessage \u003cpid\u003e \u003cmessage\u003e`: Send a message to a process.\n\n    ## Testing\n\n    To run the unit tests:\n    ```sh\n    npm test\n    ```\n\n    To run specific tests:\n    ```sh\n    npm run test:unit\n    npm run test:integration\n    ```\n\n    ## Benchmarks\n\n    To run performance benchmarks:\n    ```sh\n    npm run benchmark\n    ```\n\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request.\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flrmulkayhee%2Fjavascript-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flrmulkayhee%2Fjavascript-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flrmulkayhee%2Fjavascript-os/lists"}