@ecmaos/kernel 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +183 -0
- package/dist/assets/browser-CMMYvNrB.js +1 -0
- package/dist/assets/index-BIxR48pa.js +496 -0
- package/dist/assets/index-CqxoKfXc.css +32 -0
- package/dist/assets/topbar.min-tONqjFMV.js +6 -0
- package/dist/favicon.ico +0 -0
- package/dist/importable-fonts/1Row.js +219 -0
- package/dist/importable-fonts/3-D.js +824 -0
- package/dist/importable-fonts/3D Diagonal.js +1670 -0
- package/dist/importable-fonts/3D-ASCII.js +1028 -0
- package/dist/importable-fonts/3x5.js +618 -0
- package/dist/importable-fonts/4Max.js +412 -0
- package/dist/importable-fonts/5 Line Oblique.js +617 -0
- package/dist/importable-fonts/AMC 3 Line.js +428 -0
- package/dist/importable-fonts/AMC 3 Liv1.js +428 -0
- package/dist/importable-fonts/AMC AAA01.js +1550 -0
- package/dist/importable-fonts/AMC Neko.js +1044 -0
- package/dist/importable-fonts/AMC Razor.js +734 -0
- package/dist/importable-fonts/AMC Razor2.js +938 -0
- package/dist/importable-fonts/AMC Slash.js +1040 -0
- package/dist/importable-fonts/AMC Slider.js +632 -0
- package/dist/importable-fonts/AMC Thin.js +734 -0
- package/dist/importable-fonts/AMC Tubes.js +836 -0
- package/dist/importable-fonts/AMC Untitled.js +836 -0
- package/dist/importable-fonts/ANSI Regular.js +722 -0
- package/dist/importable-fonts/ANSI Shadow.js +722 -0
- package/dist/importable-fonts/ASCII New Roman.js +422 -0
- package/dist/importable-fonts/Acrobatic.js +1241 -0
- package/dist/importable-fonts/Alligator.js +719 -0
- package/dist/importable-fonts/Alligator2.js +720 -0
- package/dist/importable-fonts/Alpha.js +2273 -0
- package/dist/importable-fonts/Alphabet.js +733 -0
- package/dist/importable-fonts/Arrows.js +826 -0
- package/dist/importable-fonts/Avatar.js +630 -0
- package/dist/importable-fonts/B1FF.js +376 -0
- package/dist/importable-fonts/Banner.js +2495 -0
- package/dist/importable-fonts/Banner3-D.js +821 -0
- package/dist/importable-fonts/Banner3.js +719 -0
- package/dist/importable-fonts/Banner4.js +719 -0
- package/dist/importable-fonts/Barbwire.js +826 -0
- package/dist/importable-fonts/Basic.js +826 -0
- package/dist/importable-fonts/Bear.js +930 -0
- package/dist/importable-fonts/Bell.js +637 -0
- package/dist/importable-fonts/Benjamin.js +144 -0
- package/dist/importable-fonts/Big Chief.js +820 -0
- package/dist/importable-fonts/Big Money-ne.js +1149 -0
- package/dist/importable-fonts/Big Money-nw.js +1149 -0
- package/dist/importable-fonts/Big Money-se.js +1251 -0
- package/dist/importable-fonts/Big Money-sw.js +1251 -0
- package/dist/importable-fonts/Big.js +2205 -0
- package/dist/importable-fonts/Bigfig.js +335 -0
- package/dist/importable-fonts/Binary.js +373 -0
- package/dist/importable-fonts/Block.js +1692 -0
- package/dist/importable-fonts/Blocks.js +1135 -0
- package/dist/importable-fonts/Bloody.js +1024 -0
- package/dist/importable-fonts/Bolger.js +723 -0
- package/dist/importable-fonts/Braced.js +527 -0
- package/dist/importable-fonts/Bright.js +617 -0
- package/dist/importable-fonts/Broadway KB.js +325 -0
- package/dist/importable-fonts/Broadway.js +1153 -0
- package/dist/importable-fonts/Bubble.js +1631 -0
- package/dist/importable-fonts/Bulbhead.js +435 -0
- package/dist/importable-fonts/Caligraphy.js +2158 -0
- package/dist/importable-fonts/Caligraphy2.js +2114 -0
- package/dist/importable-fonts/Calvin S.js +314 -0
- package/dist/importable-fonts/Cards.js +628 -0
- package/dist/importable-fonts/Catwalk.js +825 -0
- package/dist/importable-fonts/Chiseled.js +935 -0
- package/dist/importable-fonts/Chunky.js +518 -0
- package/dist/importable-fonts/Coinstak.js +825 -0
- package/dist/importable-fonts/Cola.js +624 -0
- package/dist/importable-fonts/Colossal.js +1141 -0
- package/dist/importable-fonts/Computer.js +718 -0
- package/dist/importable-fonts/Contessa.js +412 -0
- package/dist/importable-fonts/Contrast.js +616 -0
- package/dist/importable-fonts/Cosmike.js +617 -0
- package/dist/importable-fonts/Crawford.js +843 -0
- package/dist/importable-fonts/Crawford2.js +843 -0
- package/dist/importable-fonts/Crazy.js +1344 -0
- package/dist/importable-fonts/Cricket.js +843 -0
- package/dist/importable-fonts/Cursive.js +625 -0
- package/dist/importable-fonts/Cyberlarge.js +430 -0
- package/dist/importable-fonts/Cybermedium.js +430 -0
- package/dist/importable-fonts/Cybersmall.js +226 -0
- package/dist/importable-fonts/Cygnet.js +558 -0
- package/dist/importable-fonts/DANC4.js +430 -0
- package/dist/importable-fonts/DOS Rebel.js +1138 -0
- package/dist/importable-fonts/DWhistled.js +1034 -0
- package/dist/importable-fonts/Dancing Font.js +732 -0
- package/dist/importable-fonts/Decimal.js +374 -0
- package/dist/importable-fonts/Def Leppard.js +5538 -0
- package/dist/importable-fonts/Delta Corps Priest 1.js +923 -0
- package/dist/importable-fonts/Diamond.js +825 -0
- package/dist/importable-fonts/Diet Cola.js +624 -0
- package/dist/importable-fonts/Digital.js +1287 -0
- package/dist/importable-fonts/Doh.js +2555 -0
- package/dist/importable-fonts/Doom.js +834 -0
- package/dist/importable-fonts/Dot Matrix.js +1025 -0
- package/dist/importable-fonts/Double Shorts.js +342 -0
- package/dist/importable-fonts/Double.js +533 -0
- package/dist/importable-fonts/Dr Pepper.js +570 -0
- package/dist/importable-fonts/Efti Chess.js +520 -0
- package/dist/importable-fonts/Efti Font.js +886 -0
- package/dist/importable-fonts/Efti Italic.js +886 -0
- package/dist/importable-fonts/Efti Piti.js +548 -0
- package/dist/importable-fonts/Efti Robot.js +626 -0
- package/dist/importable-fonts/Efti Wall.js +418 -0
- package/dist/importable-fonts/Efti Water.js +418 -0
- package/dist/importable-fonts/Electronic.js +1232 -0
- package/dist/importable-fonts/Elite.js +518 -0
- package/dist/importable-fonts/Epic.js +936 -0
- package/dist/importable-fonts/Fender.js +728 -0
- package/dist/importable-fonts/Filter.js +547 -0
- package/dist/importable-fonts/Fire Font-k.js +947 -0
- package/dist/importable-fonts/Fire Font-s.js +947 -0
- package/dist/importable-fonts/Flipped.js +420 -0
- package/dist/importable-fonts/Flower Power.js +1043 -0
- package/dist/importable-fonts/Four Tops.js +424 -0
- package/dist/importable-fonts/Fraktur.js +1534 -0
- package/dist/importable-fonts/Fun Face.js +732 -0
- package/dist/importable-fonts/Fun Faces.js +732 -0
- package/dist/importable-fonts/Fuzzy.js +723 -0
- package/dist/importable-fonts/Georgi16.js +3745 -0
- package/dist/importable-fonts/Georgia11.js +4074 -0
- package/dist/importable-fonts/Ghost.js +949 -0
- package/dist/importable-fonts/Ghoulish.js +731 -0
- package/dist/importable-fonts/Glenyn.js +441 -0
- package/dist/importable-fonts/Goofy.js +636 -0
- package/dist/importable-fonts/Gothic.js +936 -0
- package/dist/importable-fonts/Graceful.js +754 -0
- package/dist/importable-fonts/Gradient.js +923 -0
- package/dist/importable-fonts/Graffiti.js +630 -0
- package/dist/importable-fonts/Greek.js +951 -0
- package/dist/importable-fonts/Heart Left.js +425 -0
- package/dist/importable-fonts/Heart Right.js +424 -0
- package/dist/importable-fonts/Henry 3D.js +829 -0
- package/dist/importable-fonts/Hex.js +374 -0
- package/dist/importable-fonts/Hieroglyphs.js +457 -0
- package/dist/importable-fonts/Hollywood.js +1029 -0
- package/dist/importable-fonts/Horizontal Left.js +625 -0
- package/dist/importable-fonts/Horizontal Right.js +625 -0
- package/dist/importable-fonts/ICL-1900.js +1346 -0
- package/dist/importable-fonts/Impossible.js +1236 -0
- package/dist/importable-fonts/Invita.js +616 -0
- package/dist/importable-fonts/Isometric1.js +1147 -0
- package/dist/importable-fonts/Isometric2.js +1147 -0
- package/dist/importable-fonts/Isometric3.js +1147 -0
- package/dist/importable-fonts/Isometric4.js +1147 -0
- package/dist/importable-fonts/Italic.js +413 -0
- package/dist/importable-fonts/Ivrit.js +901 -0
- package/dist/importable-fonts/JS Block Letters.js +311 -0
- package/dist/importable-fonts/JS Bracket Letters.js +413 -0
- package/dist/importable-fonts/JS Capital Curves.js +420 -0
- package/dist/importable-fonts/JS Cursive.js +617 -0
- package/dist/importable-fonts/JS Stick Letters.js +413 -0
- package/dist/importable-fonts/Jacky.js +875 -0
- package/dist/importable-fonts/Jazmine.js +1031 -0
- package/dist/importable-fonts/Jerusalem.js +747 -0
- package/dist/importable-fonts/Katakana.js +824 -0
- package/dist/importable-fonts/Kban.js +719 -0
- package/dist/importable-fonts/Keyboard.js +933 -0
- package/dist/importable-fonts/Knob.js +420 -0
- package/dist/importable-fonts/Konto Slant.js +231 -0
- package/dist/importable-fonts/Konto.js +229 -0
- package/dist/importable-fonts/LCD.js +616 -0
- package/dist/importable-fonts/Larry 3D 2.js +925 -0
- package/dist/importable-fonts/Larry 3D.js +925 -0
- package/dist/importable-fonts/Lean.js +1692 -0
- package/dist/importable-fonts/Letters.js +625 -0
- package/dist/importable-fonts/Lil Devil.js +834 -0
- package/dist/importable-fonts/Line Blocks.js +522 -0
- package/dist/importable-fonts/Linux.js +423 -0
- package/dist/importable-fonts/Lockergnome.js +413 -0
- package/dist/importable-fonts/Madrid.js +417 -0
- package/dist/importable-fonts/Marquee.js +825 -0
- package/dist/importable-fonts/Maxfour.js +424 -0
- package/dist/importable-fonts/Merlin1.js +841 -0
- package/dist/importable-fonts/Merlin2.js +943 -0
- package/dist/importable-fonts/Mike.js +311 -0
- package/dist/importable-fonts/Mini.js +900 -0
- package/dist/importable-fonts/Mirror.js +1304 -0
- package/dist/importable-fonts/Mnemonic.js +3703 -0
- package/dist/importable-fonts/Modular.js +733 -0
- package/dist/importable-fonts/Morse.js +190 -0
- package/dist/importable-fonts/Morse2.js +190 -0
- package/dist/importable-fonts/Moscow.js +624 -0
- package/dist/importable-fonts/Mshebrew210.js +423 -0
- package/dist/importable-fonts/Muzzle.js +421 -0
- package/dist/importable-fonts/NScript.js +1655 -0
- package/dist/importable-fonts/NT Greek.js +950 -0
- package/dist/importable-fonts/NV Script.js +2108 -0
- package/dist/importable-fonts/Nancyj-Fancy.js +829 -0
- package/dist/importable-fonts/Nancyj-Improved.js +827 -0
- package/dist/importable-fonts/Nancyj-Underlined.js +827 -0
- package/dist/importable-fonts/Nancyj.js +827 -0
- package/dist/importable-fonts/Nipples.js +825 -0
- package/dist/importable-fonts/O8.js +628 -0
- package/dist/importable-fonts/OS2.js +735 -0
- package/dist/importable-fonts/Octal.js +374 -0
- package/dist/importable-fonts/Ogre.js +627 -0
- package/dist/importable-fonts/Old Banner.js +722 -0
- package/dist/importable-fonts/Pagga.js +535 -0
- package/dist/importable-fonts/Patorjk's Cheese.js +1437 -0
- package/dist/importable-fonts/Patorjk-HeX.js +1235 -0
- package/dist/importable-fonts/Pawp.js +924 -0
- package/dist/importable-fonts/Peaks Slant.js +623 -0
- package/dist/importable-fonts/Peaks.js +825 -0
- package/dist/importable-fonts/Pebbles.js +1029 -0
- package/dist/importable-fonts/Pepper.js +419 -0
- package/dist/importable-fonts/Poison.js +1240 -0
- package/dist/importable-fonts/Puffy.js +821 -0
- package/dist/importable-fonts/Puzzle.js +523 -0
- package/dist/importable-fonts/Pyramid.js +837 -0
- package/dist/importable-fonts/Rammstein.js +726 -0
- package/dist/importable-fonts/Rectangles.js +615 -0
- package/dist/importable-fonts/Red Phoenix.js +735 -0
- package/dist/importable-fonts/Relief.js +718 -0
- package/dist/importable-fonts/Relief2.js +718 -0
- package/dist/importable-fonts/Reverse.js +1126 -0
- package/dist/importable-fonts/Roman.js +1029 -0
- package/dist/importable-fonts/Rot13.js +368 -0
- package/dist/importable-fonts/Rotated.js +323 -0
- package/dist/importable-fonts/Rounded.js +718 -0
- package/dist/importable-fonts/Rowan Cap.js +635 -0
- package/dist/importable-fonts/Rozzo.js +718 -0
- package/dist/importable-fonts/Runic.js +633 -0
- package/dist/importable-fonts/Runyc.js +634 -0
- package/dist/importable-fonts/S Blood.js +635 -0
- package/dist/importable-fonts/SL Script.js +627 -0
- package/dist/importable-fonts/Santa Clara.js +616 -0
- package/dist/importable-fonts/Script.js +1494 -0
- package/dist/importable-fonts/Serifcap.js +412 -0
- package/dist/importable-fonts/Shadow.js +1102 -0
- package/dist/importable-fonts/Shimrod.js +627 -0
- package/dist/importable-fonts/Short.js +316 -0
- package/dist/importable-fonts/Slant Relief.js +935 -0
- package/dist/importable-fonts/Slant.js +1296 -0
- package/dist/importable-fonts/Slide.js +624 -0
- package/dist/importable-fonts/Small Caps.js +522 -0
- package/dist/importable-fonts/Small Isometric1.js +734 -0
- package/dist/importable-fonts/Small Keyboard.js +467 -0
- package/dist/importable-fonts/Small Poison.js +730 -0
- package/dist/importable-fonts/Small Script.js +1098 -0
- package/dist/importable-fonts/Small Shadow.js +900 -0
- package/dist/importable-fonts/Small Slant.js +1098 -0
- package/dist/importable-fonts/Small Tengwar.js +313 -0
- package/dist/importable-fonts/Small.js +1098 -0
- package/dist/importable-fonts/Soft.js +742 -0
- package/dist/importable-fonts/Speed.js +1302 -0
- package/dist/importable-fonts/Spliff.js +527 -0
- package/dist/importable-fonts/Stacey.js +740 -0
- package/dist/importable-fonts/Stampate.js +723 -0
- package/dist/importable-fonts/Stampatello.js +1381 -0
- package/dist/importable-fonts/Standard.js +2237 -0
- package/dist/importable-fonts/Star Strips.js +936 -0
- package/dist/importable-fonts/Star Wars.js +720 -0
- package/dist/importable-fonts/Stellar.js +825 -0
- package/dist/importable-fonts/Stforek.js +424 -0
- package/dist/importable-fonts/Stick Letters.js +413 -0
- package/dist/importable-fonts/Stop.js +719 -0
- package/dist/importable-fonts/Straight.js +414 -0
- package/dist/importable-fonts/Stronger Than All.js +924 -0
- package/dist/importable-fonts/Sub-Zero.js +630 -0
- package/dist/importable-fonts/Swamp Land.js +829 -0
- package/dist/importable-fonts/Swan.js +990 -0
- package/dist/importable-fonts/Sweet.js +1340 -0
- package/dist/importable-fonts/THIS.js +721 -0
- package/dist/importable-fonts/Tanja.js +820 -0
- package/dist/importable-fonts/Tengwar.js +1038 -0
- package/dist/importable-fonts/Term.js +601 -0
- package/dist/importable-fonts/Test1.js +421 -0
- package/dist/importable-fonts/The Edge.js +721 -0
- package/dist/importable-fonts/Thick.js +526 -0
- package/dist/importable-fonts/Thin.js +626 -0
- package/dist/importable-fonts/Thorned.js +523 -0
- package/dist/importable-fonts/Three Point.js +322 -0
- package/dist/importable-fonts/Ticks Slant.js +623 -0
- package/dist/importable-fonts/Ticks.js +623 -0
- package/dist/importable-fonts/Tiles.js +825 -0
- package/dist/importable-fonts/Tinker-Toy.js +728 -0
- package/dist/importable-fonts/Tombstone.js +524 -0
- package/dist/importable-fonts/Train.js +627 -0
- package/dist/importable-fonts/Trek.js +644 -0
- package/dist/importable-fonts/Tsalagi.js +565 -0
- package/dist/importable-fonts/Tubular.js +825 -0
- package/dist/importable-fonts/Twisted.js +829 -0
- package/dist/importable-fonts/Two Point.js +220 -0
- package/dist/importable-fonts/USA Flag.js +633 -0
- package/dist/importable-fonts/Univers.js +1138 -0
- package/dist/importable-fonts/Varsity.js +726 -0
- package/dist/importable-fonts/Wavy.js +904 -0
- package/dist/importable-fonts/Weird.js +627 -0
- package/dist/importable-fonts/Wet Letter.js +727 -0
- package/dist/importable-fonts/Whimsy.js +1042 -0
- package/dist/importable-fonts/Wow.js +117 -0
- package/dist/index.html +14 -0
- package/dist/swapi.js +2712 -0
- package/package.json +182 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2025 Jay Mathis <code@mathis.network>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# The Web Kernel
|
|
2
|
+
|
|
3
|
+
[](https://ecmaos.sh)
|
|
4
|
+
|
|
5
|
+
[ecmaOS](https://ecmaos.sh) is a [browser-based operating system kernel](https://global.discourse-cdn.com/spiceworks/original/4X/8/7/b/87b7be8e7e2cd932affe5449dba69dc16e30d721.gif) and suite of applications written in TypeScript. It's the successor of [web3os](https://github.com/web3os-org/kernel).
|
|
6
|
+
|
|
7
|
+
The goal is to create a kernel and supporting apps that tie together modern web technologies and utilities to form an "operating system" that can run on modern browsers, not just to create a "desktop experience". Its main use case is to provide a consistent environment for running web apps, but it has features that allow for more powerful custom scenarios. The kernel could also be used as a platform for custom applications, games, and more.
|
|
8
|
+
|
|
9
|
+
[](https://docs.ecmaos.sh)
|
|
10
|
+
[](https://ecmaos.sh)
|
|
11
|
+
[](https://ecmaos.sh)
|
|
12
|
+
[](https://github.com/ecmaos/ecmaos/commit/main)
|
|
13
|
+
[](https://github.com/ecmaos/ecmaos/issues)
|
|
14
|
+
[](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
|
|
15
|
+
|
|
16
|
+
[](https://github.com/sponsors/mathiscode)
|
|
17
|
+
[](https://github.com/ecmaos/ecmaos/graphs/contributors)
|
|
18
|
+
[](https://github.com/ecmaos/ecmaos/blob/main/LICENSE)
|
|
19
|
+
[](https://github.com/ecmaos/ecmaos/compare)
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- TypeScript, WebAssembly
|
|
24
|
+
- Filesystem supporting multiple backends powered by [@zenfs/core](https://github.com/zen-fs/core)
|
|
25
|
+
- Terminal interface powered by [xterm.js](https://xtermjs.org)
|
|
26
|
+
- Pseudo-streams, allowing redirection and piping
|
|
27
|
+
- Device framework with a common interface for working with hardware: WebBluetooth, WebSerial, WebHID, WebUSB, etc.
|
|
28
|
+
- Some devices have a builtin CLI, so you can run them like normal commands: `# /dev/bluetooth`
|
|
29
|
+
- Install any client-side npm package (this doesn't mean it will work out of the box as expected)
|
|
30
|
+
- Event manager for dispatching and subscribing to events
|
|
31
|
+
- Process manager for running applications and daemons
|
|
32
|
+
- Interval manager for scheduling recurring operations
|
|
33
|
+
- Memory manager for managing pseudo-memory: Collections, Config, Heap, and Stack
|
|
34
|
+
- Storage manager for managing Storage API capabilities: IndexedDB, localStorage, etc.
|
|
35
|
+
- Internationalization framework for translating text powered by [i18next](https://www.i18next.com)
|
|
36
|
+
- Window manager powered by [WinBox](https://github.com/nextapps-de/winbox)
|
|
37
|
+
- `SWAPI`: An API server running completely inside a service worker using [Hono](https://hono.dev)
|
|
38
|
+
- `Metal`: An API server for allowing connections to physical systems from ecmaOS using [Hono](https://hono.dev)
|
|
39
|
+
|
|
40
|
+
## Basic Overview
|
|
41
|
+
|
|
42
|
+
- `Kernel`
|
|
43
|
+
- Authentication (WebAuthn)
|
|
44
|
+
- Components (Web Components/Custom Elements)
|
|
45
|
+
- Devices
|
|
46
|
+
- DOM
|
|
47
|
+
- Events (CustomEvents)
|
|
48
|
+
- Filesystem (ZenFS)
|
|
49
|
+
- Internationalization (i18next)
|
|
50
|
+
- Interval Manager (setInterval)
|
|
51
|
+
- Log Manager (tslog)
|
|
52
|
+
- Memory Manager (Abstractions)
|
|
53
|
+
- Process Manager
|
|
54
|
+
- Protocol Handlers (web+ecmaos://...)
|
|
55
|
+
- Service Worker Manager
|
|
56
|
+
- Shell
|
|
57
|
+
- Storage (IndexedDB, localStorage, sessionStorage, etc.)
|
|
58
|
+
- Terminal (xterm.js)
|
|
59
|
+
- User Manager
|
|
60
|
+
- Window Manager (WinBox)
|
|
61
|
+
- Workers (Web Workers)
|
|
62
|
+
|
|
63
|
+
- `Apps`
|
|
64
|
+
- These are full applications that are developed to work with ecmaOS
|
|
65
|
+
- `Core`
|
|
66
|
+
- Core modules provide the system's essential functionality; this includes the kernel itself
|
|
67
|
+
- `Commands`
|
|
68
|
+
- Commands are small utilities that aren't quite full Apps, provided by the shell
|
|
69
|
+
- `Devices`
|
|
70
|
+
- Devices get loaded on boot, e.g. /dev/bluetooth, /dev/random, /dev/battery, etc.
|
|
71
|
+
- A device can support being "run" by a user, e.g. `# /dev/battery status`
|
|
72
|
+
- Devices may also be directly read/written, and will behave accordingly
|
|
73
|
+
- An individual device module can provide multiple device drivers, e.g. `/dev/usb` provides `/dev/usb-mydevice-0001-0002`
|
|
74
|
+
- `Utils`
|
|
75
|
+
- Utilities used during development
|
|
76
|
+
|
|
77
|
+
## Command Examples
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
ai "Despite all my rage" # use env OPENAI_API_KEY --set sk-
|
|
81
|
+
cat /var/log/kernel.log
|
|
82
|
+
cd /tmp
|
|
83
|
+
echo "Hello, world!" > hello.txt
|
|
84
|
+
chmod 700 hello.txt
|
|
85
|
+
chown user hello.txt
|
|
86
|
+
clear
|
|
87
|
+
cp /tmp/hello.txt /tmp/hi.txt
|
|
88
|
+
download hello.txt
|
|
89
|
+
edit hello.txt
|
|
90
|
+
env hello --set world ; env
|
|
91
|
+
fetch https://ipecho.net/plain > /tmp/myip.txt
|
|
92
|
+
install jquery
|
|
93
|
+
ls /dev
|
|
94
|
+
mkdir /tmp/zip ; cd /tmp/zip
|
|
95
|
+
upload
|
|
96
|
+
mount myuploadedzip.zip /mnt/zip -t zip
|
|
97
|
+
cd .. ; pwd
|
|
98
|
+
unzip zip/myuploaded.zip
|
|
99
|
+
mv zip/myuploaded.zip /tmp/backup.zip
|
|
100
|
+
passwd old new
|
|
101
|
+
play /root/test.mp3
|
|
102
|
+
ps
|
|
103
|
+
rm /tmp/backup.zip
|
|
104
|
+
screensaver
|
|
105
|
+
snake
|
|
106
|
+
stat /tmp/hello.txt
|
|
107
|
+
touch /tmp/test.bin
|
|
108
|
+
umount /mnt/zip
|
|
109
|
+
user add --username user
|
|
110
|
+
su user
|
|
111
|
+
video /root/video.mp4
|
|
112
|
+
zip /root/tmp.zip /tmp
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Device Examples
|
|
116
|
+
|
|
117
|
+
```sh
|
|
118
|
+
/dev/audio test
|
|
119
|
+
/dev/battery status
|
|
120
|
+
/dev/bluetooth scan
|
|
121
|
+
echo "This will error" > /dev/full
|
|
122
|
+
/dev/gamepad list
|
|
123
|
+
/dev/geo position
|
|
124
|
+
/dev/gpu test
|
|
125
|
+
/dev/hid list
|
|
126
|
+
/dev/midi list
|
|
127
|
+
echo "Goodbye" > /dev/null
|
|
128
|
+
/dev/presentation start https://wikipedia.org
|
|
129
|
+
cat /dev/random --bytes 10
|
|
130
|
+
/dev/sensors list
|
|
131
|
+
/dev/serial devices
|
|
132
|
+
/dev/usb list
|
|
133
|
+
/dev/webgpu test
|
|
134
|
+
cat /dev/zero --bytes 10 > /dev/null
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Note: many device implementations are incomplete, but provide a solid starting point
|
|
138
|
+
|
|
139
|
+
## Early Days
|
|
140
|
+
|
|
141
|
+
The kernel is currently in active development. It is not considered stable and the structure and API are very likely to change in unexpected and possibly unannounced ways until version 1.0.0. Use cautiously and at your own risk.
|
|
142
|
+
|
|
143
|
+
Things to keep in mind:
|
|
144
|
+
|
|
145
|
+
- The kernel is designed to be run in an environment with a DOM (i.e. a browser)
|
|
146
|
+
- Many features are only available on Chromium-based browsers, and many more behind feature flags
|
|
147
|
+
- Command interfaces won't match what you might be used to from a traditional Linux environment; not all commands and options are supported. Over time, Linuxish commands will be fleshed out and made to behave in a more familiar way.
|
|
148
|
+
- Globbing doesn't work in the terminal yet
|
|
149
|
+
|
|
150
|
+
## Development
|
|
151
|
+
|
|
152
|
+
[Turborepo](https://turbo.build/repo) is used to manage the monorepo, and [pnpm](https://pnpm.io) is used for package management.
|
|
153
|
+
|
|
154
|
+
A good place to start is viewing the `scripts` property of [package.json](./package.json) in the root of the repository.
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Clone
|
|
158
|
+
git clone https://github.com/ecmaos/ecmaos.git
|
|
159
|
+
|
|
160
|
+
# Install dependencies
|
|
161
|
+
cd ecmaos && pnpm install
|
|
162
|
+
|
|
163
|
+
# Run the dev server
|
|
164
|
+
pnpm run dev
|
|
165
|
+
|
|
166
|
+
# Run the docs server
|
|
167
|
+
pnpm run dev:docs
|
|
168
|
+
|
|
169
|
+
# Build
|
|
170
|
+
pnpm run build
|
|
171
|
+
|
|
172
|
+
# Run tests
|
|
173
|
+
pnpm run test
|
|
174
|
+
pnpm run test:watch
|
|
175
|
+
pnpm run test:coverage
|
|
176
|
+
pnpm run test:bench
|
|
177
|
+
pnpm run test:ui
|
|
178
|
+
|
|
179
|
+
# Generate modules
|
|
180
|
+
turbo gen device # generate a new device template
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Also see [turbo.json](./turbo.json) and [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as e}from"./index-BIxR48pa.js";var o=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")};const r=e(o),s=Object.freeze(Object.defineProperty({__proto__:null,default:r},Symbol.toStringTag,{value:"Module"}));export{s as b};
|