2023-12-05 16:51:45 -08:00
|
|
|
# Releases
|
|
|
|
|
2024-01-11 20:53:31 -08:00
|
|
|
## AcadiaOS 0.1.1 (WIP)
|
|
|
|
|
|
|
|
### Denali
|
|
|
|
|
|
|
|
- AHCI Driver can use more than one command slot.
|
|
|
|
- Resets AHCI Controller on start.
|
|
|
|
- Uses IDENTIFY DEVICE to get sector size.
|
|
|
|
|
|
|
|
### Glacier
|
|
|
|
|
|
|
|
- Unit Testing setup for Host Machine
|
|
|
|
- Unit Tests for: Vector
|
|
|
|
- Added Iterators for: Vector, Array, ArrayView
|
|
|
|
- HashMap Move Semantics
|
|
|
|
|
|
|
|
### Yunq
|
|
|
|
|
|
|
|
- Moved message parsing/serialization to shared library.
|
|
|
|
|
2023-12-05 16:51:45 -08:00
|
|
|
## 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.
|
|
|
|
|