> For the complete documentation index, see [llms.txt](https://osl.mistium.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://osl.mistium.com/legacy-osl-originos/legacy-osl.md).

# About Legacy OSL

OSL began life inside **originOS**, a graphical desktop environment where every program was a window and the operating system provided features like a camera, simulated input, inter-window messaging and a permission system.

This documentation covers **OSL.go**, the standalone compiler. Most of the language carries over unchanged, but some originOS *environment* features have **no equivalent** in compiled OSL, because there is no surrounding desktop OS to provide them. Those pages are collected here so the knowledge isn't lost - they describe how things worked in originOS and remain useful if you're reading or porting old originOS programs.

> The pages below describe **originOS behaviour** and generally do **not** work in compiled OSL.go programs. Where a modern replacement exists, it's noted.

## Not available in compiled OSL

| originOS feature                                                                        | Modern replacement                                                                    |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [Camera](/legacy-osl-originos/camera.md)                                                | - (no equivalent)                                                                     |
| [Mouse cursor control](/legacy-osl-originos/mouse-cursor.md)                            | [`osl/window`](/graphics-osl-window/window.md) input, within a window                 |
| [Input simulation](/legacy-osl-originos/input-simulation.md)                            | - (no equivalent)                                                                     |
| [Send data between windows](/legacy-osl-originos/send-data-between-windows.md)          | - (use [`net`](/packages/web/net.md)/[`serve`](/packages/web/serve.md))               |
| [Interfacing with right-click](/legacy-osl-originos/interfacing-with-rightclick.md)     | - (no equivalent)                                                                     |
| [Permissions](/legacy-osl-originos/permissions.md)                                      | - (the OS sandbox is gone)                                                            |
| [OFSF file model](/legacy-osl-originos/files.md) - `open()`, `fileGet()`, `listFiles()` | [`osl/fs`](/packages/system/fs.md)                                                    |
| [`import()` as a function](/legacy-osl-originos/import.md)                              | the [`import` statement](/introduction/getting-started.md#project-structure--imports) |

## Replaced by a package, kept for reference

| originOS page                                                              | Now use                                        |
| -------------------------------------------------------------------------- | ---------------------------------------------- |
| [Desktop notifications](/legacy-osl-originos/notifications.md)             | [`osl/notify`](/packages/terminal/notify.md)   |
| [The window system](/legacy-osl-originos/the-window-system.md)             | [`osl/window`](/graphics-osl-window/window.md) |
| [Running other languages](/legacy-osl-originos/running-other-languages.md) | [`osl/lua`](/packages/concurrency/lua.md)      |
| [Sound](/legacy-osl-originos/sound.md)                                     | [`osl/sound`](/packages/media/sound.md)        |

## Preserved originals

Where a general page was rewritten with OSL.go-specific information, a copy of the original is kept under [`legacy-osl/originals/`](https://github.com/Mistium/OSL-Docs/blob/main/legacy-osl/originals/README.md) so nothing is lost.
