puter
puter copied to clipboard
Is puter a real operating system, or is it just a web page?
Is puter a real operating system, or is it just a web page? How is the app on it implemented? Where is the data stored, on a server? I am very curious about these. Thanks for your answer.
Is puter a real operating system
Short Answer
We call Puter a high-level distributed operating system because it sits on top of a traditional/regular/"device-bound" OS and offers to applications all the interfaces that they would expect from the OS. Like the OS running the applications on your computer, Puter has a filesystem, interfaces to swap implementations of common functionality (drivers), and it manages resources used by multiple programs.
Definitions
Let's look at a couple definitions of "Operating System" to compare:
Google / Oxford Definition
the software that supports a computer's basic functions, such as scheduling tasks, executing applications, and controlling peripherals.
Source: Google / Oxford. This definition is not strongly in favour of Puter being an OS, but "high-level OS" still works here. Instead of supporting the basic functions of a computer, Puter supports the basic functions of a system of interacting applications and services. "Scheduling tasks" is a weird facet of this definition - is it talking about CPU scheduling or something more like Cron? That's unclear. Puter doesn't need a CPU scheduler because it runs on a lower-level OS, but it does need to manage how and when apps access resources like the filesystem and other services, and that has a concurrency model - you could consider that higher-level scheduling. I'd say executing applications is an unequivocal "yes" for Puter. Controlling peripherals is definitely not something Puter handles, but the higher-level equivalent would be interfacing with the browser; this re-frames the web page as not being what Puter is, but instead something Puter uses to interact with the user.
Wikipedia Definition
An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.
Source: Wikipedia. This definition is much more in favour of Puter being an OS. First, is says an OS is "system software". Wikipedia further defines system software as "software designed to provide a platform for other software", and there's no ambiguity here; a quick browse through docs.puter.com will show you this is true for Puter. Does Puter manage computer hardware? Not directly, but it could manage local hardware using custom Puter drivers on a local machine or could manage infrastructure via supporting services. Does Puter provide common services for computer programs? Yes, it absolutely does do that.
"just a web page"
Puter's relationship with a web page is not an "is a" relationship but rather a "has a" relationship: Puter has a GUI that targets the web browser. Puter's GUI is also helps facilitate communication between apps in the same page (after all, no sense bouncing messages off the server if we don't need to), which does create some ambiguity here. However, Puter's backend does a lot of heavy-lifting too; it caches data from the filesystem on the closest server to where the data is being used, it coerces requests and responses to multiple providers of the same service so that applications don't need to deal with provider-specific quirks, and it manages access control for files and resources. So, Puter is not "just a web page" or even "just a server", it is both of these working together, and there may even be multiple GUI and server instances involved in a single session.