Compare commits
No commits in common. "f1c67d88ed391ed28dfd46067a2b8d317fc327ae" and "815a603c1c8d646581f1286d3a2047b64bca1f9f" have entirely different histories.
f1c67d88ed
...
815a603c1c
89
RELEASES.md
89
RELEASES.md
|
@ -1,89 +0,0 @@
|
|||
# Releases
|
||||
|
||||
## AcadiaOS 0.1.0 (2023-12-08)
|
||||
|
||||
This marks the first release of AcadiaOS! There is very little user functionality currently but a
|
||||
lot of foundational work has been done.
|
||||
|
||||
### Zion Kernel
|
||||
|
||||
Capability-based microkernel.
|
||||
|
||||
Boot Process:
|
||||
- Initializes GDT and IDT.
|
||||
- Sets up a separate stack for page faults and general protection faults.
|
||||
- Enables SSE.
|
||||
- Minimally initializes the APIC in order to use its timer as well as map the PS/2 Keyboard and PCI
|
||||
interrupts.
|
||||
- Enables Syscalls using the sysenter instruction.
|
||||
- Enables the scheduler.
|
||||
- Loads the Yellowstone init program and yields to it.
|
||||
|
||||
Features:
|
||||
- Physical memory manager can dole out single pages as well as continuous chunks. Freed pages and
|
||||
chunks can be reused.
|
||||
- Kernel memory allocation done primarily using a slab allocator for sizes up to 128 bytes. (Larger
|
||||
allocations are done by simply incrementing a pointer and are never truly freed. However currently
|
||||
none occur.).
|
||||
- Round robin scheduler with a single priority level.
|
||||
|
||||
Interface:
|
||||
- Capability-based interface.
|
||||
- Process Management: ProcessInit, ProcessExit.
|
||||
- Thread Management: ThreadCreate, ThreadStart, ThreadExit.
|
||||
- Memory Management: MemoryObjectCreate, MemoryObjectCreateContiguous, MemoryObjectCreatePhysical,
|
||||
MemoryObjectDuplicate, MemoryObjectInspect, AddressSpaceMap, AddressSpaceUnmap.
|
||||
- IPC with Channels, Ports, and Endpoints.
|
||||
- Channel: ChannelCreate, ChannelSend, ChannelRecv.
|
||||
- Ports: PortCreate, PortSend, PortRecv, PortPoll.
|
||||
- Endpoints: EndpointCreate, EndpointSend, EndpointRecv, ReplyPortSend, ReplyPortRecv.
|
||||
- Capability Management: CapDuplicate, CapRelease.
|
||||
- Irq Management: IrqRegister.
|
||||
- Synchronization: ProcessWait, ThreadWait, MutexCreate, MutexLock, MutexRelease, SemaphoreCreate,
|
||||
SemaphoreWait, SemaphoreSignal.
|
||||
- Debug Output: Debug.
|
||||
|
||||
### Yellowstone
|
||||
|
||||
Initialization process that starts up the other necessary boot processes then maintains a registry
|
||||
of the available IPC Servers running on the system.
|
||||
|
||||
- Spawns the AHCI Client "Denali".
|
||||
- Once it is online, reads the GPT and spawns the VFS service "VictoriaFallS".
|
||||
- Once it is online, reads "init.txt" and spawns the processes listed in the file from the /bin dir.
|
||||
|
||||
|
||||
### Denali
|
||||
|
||||
Barebones AHCI Driver.
|
||||
|
||||
- Reads the SATA PCI region the HBAs associated with it.
|
||||
- Starts the Denali service to allow clients to read directly from disk.
|
||||
- Currently only one command port is used so reads are done in serial.
|
||||
|
||||
### VictoriaFallS
|
||||
|
||||
Barebones VFS Server. Currently passes all calls to it directly to the ext2 filesystem at the root
|
||||
of the VFS.
|
||||
|
||||
- Allows reading of files and directories.
|
||||
- Does not cache results or inodes so all calls go directly to the AHCI Server.
|
||||
|
||||
|
||||
### Teton
|
||||
|
||||
Very basic terminal and shell.
|
||||
|
||||
- Supports ls, pwd, cd, and exec commands.
|
||||
- All commands must use absolute paths.
|
||||
- Starts a child process when using exec and waits for it to complete.
|
||||
|
||||
### Yunq
|
||||
|
||||
IDL for IPC on AcadiaOS with cpp codegen for messages, clients, and servers.
|
||||
|
||||
- Supports serializing capabilities for IPC.
|
||||
- Supports repeated integer fields.
|
||||
- Supports string files.
|
||||
- Allows namespacing cpp definitions.
|
||||
|
|
@ -1,9 +1,12 @@
|
|||
# System TODO
|
||||
|
||||
## Yellowstone
|
||||
|
||||
- Start the next service from a configuration file.
|
||||
|
||||
## Denali
|
||||
|
||||
- Add the ability to send multiple Ahci commands at once.
|
||||
|
||||
## VictoriaFalls
|
||||
|
||||
- Cache the fs structure rather than reading it each time.
|
||||
|
|
10
zion/TODO.md
10
zion/TODO.md
|
@ -17,9 +17,19 @@
|
|||
|
||||
- Use a buddy allocator with a real free when an object is too large for
|
||||
the slab allocator.
|
||||
- Free kernel stacks on thread/process exit.
|
||||
|
||||
## Process Management
|
||||
|
||||
- Clean up process state and capabilities when it exits.
|
||||
|
||||
## Processor
|
||||
|
||||
- Enable all instruction types before passing to user space.
|
||||
|
||||
## Faults and Interrupts
|
||||
|
||||
- Exit process rather than panicking on unhandled Page Fault (and others).
|
||||
- Add additional fault handlers to avoid GP faults.
|
||||
- Improve process for registering interrupt handlers.
|
||||
|
||||
|
|
Loading…
Reference in New Issue