@ecmaos/kernel 0.2.5 → 0.2.6

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.
Files changed (2) hide show
  1. package/README.md +22 -9
  2. package/package.json +9 -5
package/README.md CHANGED
@@ -79,10 +79,6 @@ The goal is to create a kernel and supporting apps that tie together modern web
79
79
  - 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
80
80
  - Confusingly, the Kernel loads the BIOS — not the other way around
81
81
 
82
- - `Core`
83
- - Core modules provide the system's essential functionality; this includes the kernel itself
84
- - Other core modules include BIOS, Jaffa, Metal, SWAPI, as well as the main `@ecmaos/types` package
85
-
86
82
  - `Commands`
87
83
  - Commands are small utilities that aren't quite full Apps, provided by the shell
88
84
  - Some builtin commands that exist now will be moved into separate apps over time
@@ -136,8 +132,8 @@ The goal is to create a kernel and supporting apps that tie together modern web
136
132
  - See the [./MODULES.md](./MODULES.md) file for a list of community modules; submit a PR to add your module!
137
133
  - Modules are dynamically loaded into the kernel at boot and can be enabled or disabled
138
134
  - They are specified during build via the `VITE_KERNEL_MODULES` environment variable
139
- - e.g. `VITE_KERNEL_MODULES=@ecmaos-modules/boilerplate@0.1.2,@your/package@1.2.3`
140
- - Versions must be exact and are mandatory - you cannot use NPM version specifiers
135
+ - e.g. `VITE_KERNEL_MODULES=@ecmaos-modules/boilerplate@0.1.0,@your/package@1.2.3`
136
+ - Versions must be pinned and are mandatory - you cannot use NPM version specifiers
141
137
  - They can provide additional functionality, devices, commands, etc.
142
138
  - They offer a [common interface](./core/types/modules.ts) for interacting with the kernel
143
139
  - Generally they should be written in [AssemblyScript](https://www.assemblyscript.org), but this isn't required
@@ -161,6 +157,20 @@ The goal is to create a kernel and supporting apps that tie together modern web
161
157
  - `Utils`
162
158
  - Utilities and configuration used during development
163
159
 
160
+ ## Important Files and Directories
161
+
162
+ - `/bin/`: Built-in commands
163
+ - `/bios/`: The BIOS filesystem
164
+ - `/boot/init`: A script that runs on boot
165
+ - `/dev/`: All devices are here
166
+ - `/etc/packages`: A list of installed packages to load on boot
167
+ - `/home/`: Contains user home directories
168
+ - `/proc/`: A directory containing various dynamic system information
169
+ - `/root/`: The home directory for the root user
170
+ - `/usr/bin/`: Executable packages get linked here
171
+ - `/usr/lib/`: All installed packages are here
172
+ - `/var/log/kernel.log`: The kernel log
173
+
164
174
  ## Command Examples
165
175
 
166
176
  ```sh
@@ -252,8 +262,9 @@ Things to keep in mind:
252
262
  - Things have changed a lot since the tests were written, so they need to be updated and fixed
253
263
  - The kernel is designed to be run in an environment with a DOM (i.e. a browser)
254
264
  - Many features are only available on Chromium-based browsers, and many more behind feature flags
265
+ - There will be a lot of technical challenges to overcome, and many things will first be implemented in a non-optimal way
255
266
  - 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.
256
- - Globbing doesn't work in the terminal yet
267
+ - Globbing doesn't work in the terminal yet, [but is supported at the filesystem level](https://zenfs.dev/core/functions/fs.promises.glob.html)
257
268
 
258
269
  ## Development
259
270
 
@@ -269,9 +280,9 @@ git clone https://github.com/ecmaos/ecmaos.git
269
280
  cd ecmaos && pnpm install
270
281
 
271
282
  # Run the dev server
272
- pnpm run dev
283
+ pnpm run dev:kernel
273
284
 
274
- # Run the docs server
285
+ # Run the docs server (optional)
275
286
  pnpm run dev:docs
276
287
 
277
288
  # Build
@@ -285,7 +296,9 @@ pnpm run test:bench
285
296
  pnpm run test:ui
286
297
 
287
298
  # Generate modules
299
+ turbo gen app # generate a new app template
288
300
  turbo gen device # generate a new device template
301
+ turbo gen module # generate a new module template
289
302
  ```
290
303
 
291
304
  Also see [turbo.json](./turbo.json) and [CONTRIBUTING.md](./CONTRIBUTING.md) for more information.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ecmaos/kernel",
3
3
  "description": "ecmaOS: Micro-kernel and framework for web technologies",
4
- "version": "0.2.5",
4
+ "version": "0.2.6",
5
5
  "license": "MIT+Apache-2.0",
6
6
  "homepage": "https://ecmaos.sh",
7
7
  "repository": "https://github.com/ecmaos/ecmaos",
@@ -30,7 +30,11 @@
30
30
  "Lots of unfinished work; watch your step"
31
31
  ],
32
32
  "tips": [
33
- "You can 'run' some devices that offer a CLI - for example, '/dev/battery --help'"
33
+ "If it ever fails to boot, check your logs or try clearing all data",
34
+ "You can run some devices that offer a CLI - e.g. '/dev/battery --help'",
35
+ "Use the 'install' command to install packages - e.g. 'install @ecmaos-apps/news'",
36
+ "Use the 'news' command to see the latest news about ecmaOS",
37
+ "Type 'ls /bin' to see all built-in commands"
34
38
  ],
35
39
  "type": "module",
36
40
  "files": [
@@ -164,16 +168,16 @@
164
168
  "winbox": "^0.2.82",
165
169
  "@ecmaos/bios": "^0.1.1",
166
170
  "@ecmaos-devices/audio": "^0.0.2",
167
- "@ecmaos-devices/gamepad": "^0.0.2",
168
171
  "@ecmaos-devices/battery": "^0.0.2",
169
- "@ecmaos-devices/geo": "^0.0.2",
170
172
  "@ecmaos-devices/bluetooth": "^0.0.2",
173
+ "@ecmaos-devices/gamepad": "^0.0.2",
174
+ "@ecmaos-devices/geo": "^0.0.2",
171
175
  "@ecmaos-devices/gpu": "^0.0.2",
172
176
  "@ecmaos-devices/hid": "^0.0.2",
173
177
  "@ecmaos-devices/midi": "^0.0.2",
174
178
  "@ecmaos-devices/presentation": "^0.0.2",
175
- "@ecmaos-devices/serial": "^0.0.2",
176
179
  "@ecmaos-devices/sensors": "^0.0.2",
180
+ "@ecmaos-devices/serial": "^0.0.2",
177
181
  "@ecmaos-devices/usb": "^0.0.2",
178
182
  "@ecmaos-devices/webgl": "^0.0.2"
179
183
  },