First pass at 0.1.0 release notes.
This commit is contained in:
parent
067da8709c
commit
f1c67d88ed
|
@ -0,0 +1,89 @@
|
|||
# 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.
|
||||
|
Loading…
Reference in New Issue