@ecmaos/kernel 0.2.0 → 0.2.1
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/README.md +33 -33
- package/dist/.vite/manifest.json +65 -0
- package/dist/Poison-ChSGZazu.js +1244 -0
- package/dist/Poison-ChSGZazu.js.map +1 -0
- package/dist/{assets/browser-BgTges7v.js → browser-Bg2k_w8R.js} +2 -2
- package/dist/browser-Bg2k_w8R.js.map +1 -0
- package/dist/{assets/index-_qi20yzV.js → empty-DV8na5Rc.js} +1065 -1450
- package/dist/empty-DV8na5Rc.js.map +1 -0
- package/dist/index.html +2 -2
- package/dist/{assets/install-BQEEL5Go.js → install-BIXZ5bsq.js} +5 -7
- package/dist/install-BIXZ5bsq.js.map +1 -0
- package/dist/kernel.d.ts +282 -0
- package/dist/kernel.js +5 -0
- package/dist/kernel.js.map +1 -0
- package/dist/{assets/topbar.min-Cqn7CAGT.js → topbar.min-cv6_CM7b.js} +2 -2
- package/dist/topbar.min-cv6_CM7b.js.map +1 -0
- package/dist/ui.d.ts +35 -0
- package/dist/ui.js +21 -0
- package/dist/ui.js.map +1 -0
- package/package.json +9 -6
- package/dist/assets/bios-Bf2cwaR2.wasm +0 -0
- package/dist/assets/browser-BgTges7v.js.map +0 -1
- package/dist/assets/index-_qi20yzV.js.map +0 -1
- package/dist/assets/install-BQEEL5Go.js.map +0 -1
- package/dist/assets/topbar.min-Cqn7CAGT.js.map +0 -1
- /package/dist/{assets/index-C56A6-ta.css → kernel.css} +0 -0
package/README.md
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://ecmaos.sh)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> Made with ❤️ by [Jay Mathis](https://jaymath.is)
|
|
6
|
+
>
|
|
7
|
+
> [](https://github.com/mathiscode) [](https://github.com/mathiscode)
|
|
8
|
+
|
|
9
|
+
[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 primarily in TypeScript, AssemblyScript, and C++. It's the successor of [web3os](https://github.com/web3os-org/kernel).
|
|
6
10
|
|
|
7
11
|
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 repurposed as a platform for custom applications, games, and more.
|
|
8
12
|
|
|
@@ -30,10 +34,6 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
30
34
|
[](https://ecmaos.bsky.social)
|
|
31
35
|
[](https://www.reddit.com/r/ecmaos)
|
|
32
36
|
|
|
33
|
-
> Made with ❤️ by [Jay Mathis](https://jaymath.is)
|
|
34
|
-
>
|
|
35
|
-
> [](https://github.com/mathiscode) [](https://github.com/mathiscode)
|
|
36
|
-
|
|
37
37
|
## Features
|
|
38
38
|
|
|
39
39
|
- TypeScript, WebAssembly, AssemblyScript, C++
|
|
@@ -56,34 +56,6 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
56
56
|
|
|
57
57
|
## Basic Overview
|
|
58
58
|
|
|
59
|
-
- `Kernel`
|
|
60
|
-
- Authentication (WebAuthn)
|
|
61
|
-
- Components (Web Components/Custom Elements)
|
|
62
|
-
- Devices
|
|
63
|
-
- DOM
|
|
64
|
-
- Events (CustomEvents)
|
|
65
|
-
- Filesystem (ZenFS)
|
|
66
|
-
- Internationalization (i18next)
|
|
67
|
-
- Interval Manager (setInterval)
|
|
68
|
-
- Log Manager (tslog)
|
|
69
|
-
- Memory Manager (Abstractions)
|
|
70
|
-
- Process Manager
|
|
71
|
-
- Protocol Handlers (web+ecmaos://...)
|
|
72
|
-
- Service Worker Manager
|
|
73
|
-
- Shell
|
|
74
|
-
- Storage (IndexedDB, localStorage, sessionStorage, etc.)
|
|
75
|
-
- Terminal (xterm.js)
|
|
76
|
-
- User Manager
|
|
77
|
-
- WASM Loader
|
|
78
|
-
- Window Manager (WinBox)
|
|
79
|
-
- Workers (Web Workers)
|
|
80
|
-
|
|
81
|
-
- `BIOS`
|
|
82
|
-
- The BIOS is a C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality
|
|
83
|
-
- The BIOS has its own filesystem, located at `/bios` — this allows data to be copied in and out of the BIOS for custom code and utilities
|
|
84
|
-
- The main idea is that data and custom code can be loaded into it from the OS for WASM-native performance, as well as providing various utilities
|
|
85
|
-
- Confusingly, the Kernel loads the BIOS — not the other way around
|
|
86
|
-
|
|
87
59
|
- `Apps`
|
|
88
60
|
- These are full applications that are developed specifically to work with ecmaOS
|
|
89
61
|
- An app is an npm package, in which the bin file has a shebang line of `#!ecmaos:bin:app:myappname`
|
|
@@ -94,6 +66,12 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
94
66
|
- To publish to Verdaccio, run `# npm publish --registry http://localhost:4873` in your app's development environment
|
|
95
67
|
- Then to install from your local registry, run `# install @myscope/mypackage --registry http://localhost:4873`
|
|
96
68
|
|
|
69
|
+
- `BIOS`
|
|
70
|
+
- The BIOS is a C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality
|
|
71
|
+
- The BIOS has its own filesystem, located at `/bios` — this allows data to be copied in and out of the BIOS for custom code and utilities
|
|
72
|
+
- The main idea is that data and custom code can be loaded into it from the OS for WASM-native performance, as well as providing various utilities
|
|
73
|
+
- Confusingly, the Kernel loads the BIOS — not the other way around
|
|
74
|
+
|
|
97
75
|
- `Core`
|
|
98
76
|
- Core modules provide the system's essential functionality; this includes the kernel itself
|
|
99
77
|
- Other core modules include Metal, SWAPI, BIOS, as well as the main `@ecmaos/types` package
|
|
@@ -108,6 +86,28 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
108
86
|
- Devices may also be directly read/written, and will behave accordingly (or have no effect)
|
|
109
87
|
- An individual device module can provide multiple device drivers, e.g. `/dev/usb` provides `/dev/usb-mydevice-0001-0002`
|
|
110
88
|
|
|
89
|
+
- `Kernel`
|
|
90
|
+
- Authentication (WebAuthn)
|
|
91
|
+
- Components (Web Components/Custom Elements)
|
|
92
|
+
- Devices
|
|
93
|
+
- DOM
|
|
94
|
+
- Events (CustomEvents)
|
|
95
|
+
- Filesystem (ZenFS)
|
|
96
|
+
- Internationalization (i18next)
|
|
97
|
+
- Interval Manager (setInterval)
|
|
98
|
+
- Log Manager (tslog)
|
|
99
|
+
- Memory Manager (Abstractions)
|
|
100
|
+
- Process Manager
|
|
101
|
+
- Protocol Handlers (web+ecmaos://...)
|
|
102
|
+
- Service Worker Manager
|
|
103
|
+
- Shell
|
|
104
|
+
- Storage (IndexedDB, localStorage, sessionStorage, etc.)
|
|
105
|
+
- Terminal (xterm.js)
|
|
106
|
+
- User Manager
|
|
107
|
+
- WASM Loader
|
|
108
|
+
- Window Manager (WinBox)
|
|
109
|
+
- Workers (Web Workers)
|
|
110
|
+
|
|
111
111
|
- `Metal`
|
|
112
112
|
- Metal is an API server for allowing connections to physical systems from ecmaOS using [Hono](https://hono.dev)
|
|
113
113
|
- Authenticated and encrypted connections with JWK/JWE/JOSE
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_browser-Bg2k_w8R.js": {
|
|
3
|
+
"file": "browser-Bg2k_w8R.js",
|
|
4
|
+
"name": "browser",
|
|
5
|
+
"isDynamicEntry": true,
|
|
6
|
+
"imports": [
|
|
7
|
+
"_empty-DV8na5Rc.js"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"_empty-DV8na5Rc.js": {
|
|
11
|
+
"file": "empty-DV8na5Rc.js",
|
|
12
|
+
"name": "empty",
|
|
13
|
+
"dynamicImports": [
|
|
14
|
+
"_topbar.min-cv6_CM7b.js",
|
|
15
|
+
"_browser-Bg2k_w8R.js",
|
|
16
|
+
"src/tree/lib/commands/install.ts",
|
|
17
|
+
"node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"_kernel.css": {
|
|
21
|
+
"file": "kernel.css",
|
|
22
|
+
"src": "_kernel.css"
|
|
23
|
+
},
|
|
24
|
+
"_topbar.min-cv6_CM7b.js": {
|
|
25
|
+
"file": "topbar.min-cv6_CM7b.js",
|
|
26
|
+
"name": "topbar.min",
|
|
27
|
+
"isDynamicEntry": true,
|
|
28
|
+
"imports": [
|
|
29
|
+
"_empty-DV8na5Rc.js"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js": {
|
|
33
|
+
"file": "Poison-ChSGZazu.js",
|
|
34
|
+
"name": "Poison",
|
|
35
|
+
"src": "node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js",
|
|
36
|
+
"isDynamicEntry": true
|
|
37
|
+
},
|
|
38
|
+
"src/tree/kernel.ts": {
|
|
39
|
+
"file": "kernel.js",
|
|
40
|
+
"name": "kernel",
|
|
41
|
+
"src": "src/tree/kernel.ts",
|
|
42
|
+
"isEntry": true,
|
|
43
|
+
"imports": [
|
|
44
|
+
"_empty-DV8na5Rc.js"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"src/tree/lib/commands/install.ts": {
|
|
48
|
+
"file": "install-BIXZ5bsq.js",
|
|
49
|
+
"name": "install",
|
|
50
|
+
"src": "src/tree/lib/commands/install.ts",
|
|
51
|
+
"isDynamicEntry": true,
|
|
52
|
+
"imports": [
|
|
53
|
+
"_empty-DV8na5Rc.js"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"src/ui.ts": {
|
|
57
|
+
"file": "ui.js",
|
|
58
|
+
"name": "ui",
|
|
59
|
+
"src": "src/ui.ts",
|
|
60
|
+
"isEntry": true,
|
|
61
|
+
"imports": [
|
|
62
|
+
"_empty-DV8na5Rc.js"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|