THIS PROJECT IS OUTDATED! USE : https://scratch.mit.edu/projects/1315755010/ Behold, the most capable OS on scratch! This is a scratch OS using my custom Scratch Kernel. It comes with its own Process Manager, including a Shell, Compositor, some System Processes, and a Keyboard Driver to demonstrate it. It will be constantly improving. To Disable the compositor service to reduce lag, run: "service disable compositor" and then "shutdown -r" Shell Commands: pkill <ID> top pstart <Class Name> clear whoami call <class> <function>=<args> service <enable/disable/start/stop> <process> shutdown <-r> echo <text, or a single environment variable> color color <0-h> color <fg OR bg> <0-h> fastfetch export export <EV>=<NEW VAL> ls cd <.. or path> cat <filename> echo <text, or a single environment variable> > <filename> bg # Left arrow is backspace. You can run multiple commands in one command by seperating them with " || ". ATTENTION: Do not disable required services like ProcManager, systemcalls, kbdriver, or shell. If you do, you will need to go into the code and re-enable the services with the SysCall block. Filesystem uses the ';' character for seperating directories and such instead of the typical '/'. this is due to '/' being used by some browsers as a hotkey to open a menu, which breaks the system. Keep in mind: So far, the startup processes are required to stay running in order for your current session to continue fully working. The only optional process is "Compositor", which when killed, will set a fallback Scratch List in order to see the terminal. Shift is not fully supported yet. Check the ProcTemplate Sprite inside to see how you can make your own process. to set the graphics mode: call systemcalls set-graphics-mode=0 OR 1 There is also "grep" now. you can add " | grep <text>" to a command to filter the output based on your string. to reboot: call systemcalls shutdown=-r to shutdown: call systemcalls shutdown= to set the background: call compositor set-background=0 OR 1 you can also start, stop, enable, and disable processes with the call command as well: call procmanager <enable/disable/start/stop>=<process>
Credit to @__Micro for the text renderer! Check out his project I got it from: https://scratch.mit.edu/projects/820673493/ Wallpapers found from wallhaven.cc TURBOWARP NOT RECOMMENDED: I am not sure why, but when i use this project in turbowarp, the keyboard driver just stops working within the first minute. Sorry for the inconvenience. NOTE: Pause button doesn't really work that great. KNOWN ISSUES: Due to how scratch seems to work, Processes would constantly just forget theyre running when processes were updated. So due to this, i had to make a workaround, by making it restart where a process is in its loop to the start of the loop for every time a process is killed or started, for every process. Ergo, some processes may not work as expected. Only issue I've seen so far from it, is that running fast fetch will make "[ROOT] $ " appear twice and may cancel some stacked commands. I am currently trying to come up with a way to solve this. Made by me :3 VERSIONS: V1.0 - Initial Release: - Includes full Process Manager - Start, Pause, End buttons. - Process Manager Process that lets processes call it to start or end a process - Keyboard Driver Process in charge of taking user input cleanly for processes to use, (the shell's input uses this process) - The Shell Process, in charge of allowing the user to interact with the system. - The Compositor Process in charge of making the system look nice. - commands include pkill, top, pstart, and clear. V1.1 - Improvements, Commands, Small Adjustments: - added the call, service, and shutdown command. - added the "systemcalls" process which can set the graphics mode, and shut the computer down. - added whoami - Replaced the "plist" with a more modern "top" command that looks clearner. - Adjusted the Terminal and Debug positions. - Created the online-services function (not functional yet.) - Allows you to kill processes by specifying the class name instead of the ID. - Created a system call "set-background" in the "compositor" class that lets the user set a custom background when in the right graphics mode. - Compositor on by default - Changed Play, Pause, and Stop buttons to look better and be more subtle. V1.2 - New Compositor, graphics changes. - New compositor that supports more characters and colors. - You can now run multiple commands in one command by seperating them with " || ". - The top command looks much better. - Color command to preview colors, or set colors for the logs. - Fastfetch added - Echo added - Environment Variables added ($KERNEL_VERSION, $SHELL_VERSION) - Grep added V1.3 - SKFS: - SKFS added (SKUnix's file system.manager) - background command added