# PeOS 0.11.0 Technical Alpha

## What's new since 0.10.1

- **Pegasus, the web browser.** It has an engine of its own, written for
  PeOS: HTML, CSS (with flexbox, grid, custom properties, `calc()`,
  gradients, shadows, `sticky`), layout and painting. Pages come over
  HTTPS; images (PNG, JPEG, GIF, SVG), forms (GET and POST), find in page
  (Ctrl+F), selecting text and copying it with Caps, the zoom of the text
  (Ctrl+plus and minus), bookmarks (the star, Ctrl+D), downloads into
  `/home/Downloads`, up to eight tabs (Ctrl+T, Ctrl+W, Ctrl+Tab). Words typed
  in the address bar are searched with DuckDuckGo. Wikipedia, the news in
  text versions, documentation and search work well.
- **HTTPS for every program**: TLS 1.3 and 1.2 (mbedTLS 3.6, checking the
  server against Mozilla's roots) and an HTTP/1.1 client in libpeos, with
  gzip, redirects and cookies; random bytes from the kernel. `appget`
  installs apps from `https://` addresses.
- **Orbit, a real terminal**: the line can be edited (arrows, Home, End,
  word jumps), past commands come back with the arrows and Ctrl+R, the
  last 500 are kept (`history`), and there is a cursor and scrollback.
- **Consigli** (Tips), a new app with the tips of the system, among them
  how to copy and paste: in PeOS that is **Caps+A** and **Caps+S**, with
  Caps held like one more modifier.
- **Faster big programs**: a new memory allocator in libpeos; a page of
  1.6 MB went from minutes to seconds.
- **For developers**: the [Starlight App Kit](../starlight-app-kit) 0.9.0
  lets an app draw its own pixels beside its controls, with the mouse, the
  keyboard, the pointer's shape and the clipboard on them, and use
  `peos/http.h` for HTTP and HTTPS.

## About this release

The PeOS meant to be tried by someone who did not build it: boot the ISO in
a virtual machine and you are on the desktop. It is an alpha: the point is
to show what PeOS looks like and how fast it feels, and to let developers
write simple apps for it.

## What is in it

- **Starlight**, the desktop (0.14.0, the "Soft UI"): pearl grey surfaces and
  night/neon cards, a dock on the left and an app manager, a top bar with the
  network, volume and clock, widgets on the desktop (clock, calendar,
  volume, CPU, network), notifications, a day and a night theme with four
  accents, resizable windows.
- **Apps**: Pegasus (the browser), Calendar (events and reminders), Monitor
  (CPU, memory, disk, network, processes), Settings, Curiosity (files),
  Voyager (text editor), Calculator, Orbit (terminal), Consigli (tips), the
  installer and two developer demos.
- **Languages**: English (the default) and Italian, for the system and its
  apps, chosen in Settings > General > Language and applied at once.
- **Live session**: the ISO boots with BIOS and UEFI; everything runs from
  RAM and can be written to while it runs.
- **Network**: DHCP, DNS, TCP and UDP in a userland service (netd), on
  virtio-net, Intel e1000/e1000e and Realtek RTL8169 cards; TLS and HTTP in
  libpeos.
- **Pointer**: USB mice and absolute tablets (the pointer follows the host's
  without capture), PS/2 mice, virtio tablets.
- **For developers**: the Starlight App Kit 0.9.0 builds apps on macOS, Linux
  or WSL, and `make serve` + `appget` installs them in a running VM, no
  rebuild of PeOS needed. The API reference is in
  [starlight-app-kit/docs/api-reference.md](../starlight-app-kit/docs/api-reference.md).

## Known limits

- **Pegasus has no JavaScript.** Pages that need it to show anything (web
  applications, many shops and social networks) do not work; pages of text,
  Wikipedia, documentation and search do. Some CSS is not drawn yet
  (`transform` beyond `translate`, `radial-gradient`, filters, animations),
  and there is no video, no audio on pages, no printing. Large pages take a
  few seconds under emulation.
- **Windows can be drawn over other things**: Starlight sometimes leaves
  parts of a window on top of what should cover them. To be fixed after
  this release.
- **Tested in QEMU** (macOS, UEFI and BIOS). In UTM (x86_64 emulated on Apple
  Silicon) it boots, with keyboard, network and audio. VirtualBox and VMware
  are not tested yet: please report what you find.
- **x86-64 only**, with a CPU that has XSAVE (any Intel Core or AMD Ryzen).
  512 MB of RAM is the minimum, 1 GB is comfortable (more for big pages).
- **The live session is in RAM**: what you change (settings, calendar
  events, files, bookmarks, downloads, installed apps) is lost when the VM
  is switched off. The About panel says "live session".
- **Network cards**: virtio-net, e1000 (82540EM), e1000e (82574), RTL8169.
  VMware's vmxnet3 is not supported (choose "e1000" or "e1000e"). Wi-Fi only
  on the RTL8723BE of real hardware.
- **Disks**: AHCI (SATA) and ATA. No NVMe and no virtio-blk: the installer
  cannot install on them (VMware's new VMs use NVMe: add a SATA disk).
- **USB**: xHCI (USB 3) for keyboards, mice and tablets; USB 2 (EHCI) only for
  storage, no USB 1 controllers. In a VM choose a USB 3.0 controller, or a
  PS/2 mouse.
- **Video**: the firmware's framebuffer, at the resolution the firmware
  chooses; under QEMU, virtio-gpu can change it. No 3D acceleration.
- **Audio**: Intel HD Audio only.
- **Keyboard layouts**: US and Italian.
- **Slow under emulation**: UTM on Apple Silicon emulates the whole x86 CPU;
  PeOS works but frames are slow there.
- **Recovery**: if netd stops, init starts it again and the network comes
  back (tested); Starlight is started again the same way, but the apps that
  were open do not come back on screen.
- **Installing**: the installer runs from the live ISO and erases the whole
  target disk, which must be SATA/AHCI (in UTM: interface "IDE"; in VMware:
  SATA, not NVMe). The installed disk boots with **UEFI only**. On real
  hardware it is possible but not guaranteed.
- Messages of the kernel (in the boot log) and of the terminal are in
  English only.

## Files

| File | |
|---|---|
| `peos-0.11.0.iso` | The live ISO: boot it as a CD in any VM (BIOS or UEFI). |
| `peos-0.11.0-hdd.img.xz` | A disk image with PeOS installed, for QEMU (UEFI, AHCI). |
| `SHA256SUMS-0.11.0` | The checksums. |

## Versions

PeOS 0.11.0, Starlight 0.14.0, Starlight App Kit 0.9.0 (SDK 1.8.0, SLUI SDK
1.0.10). Built from the commit the About panel shows.

## Credits

Pegasus draws text with Outfit, Source Serif 4 and JetBrains Mono (SIL Open
Font License), images with stb_image and NanoSVG, and makes secure
connections with mbedTLS (Apache License 2.0); the list is in Pegasus, at
`pegasus:credits`.
