Compare commits
25
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d059ff1ffb | ||
|
|
16038e55e7 | ||
|
|
019c377914 | ||
|
|
26e2fd947e | ||
|
|
7157a57513 | ||
|
|
c8c7c2983d | ||
|
|
91bc0e5ea2 | ||
|
|
2cf879c4b9 | ||
|
|
fcc9809248 | ||
|
|
63b67f5878 | ||
|
|
e55da49900 | ||
|
|
521633c9a4 | ||
|
|
0cd32a0f64 | ||
|
|
f2e5f3535a | ||
|
|
2159578bdf | ||
|
|
7abb38ccbe | ||
|
|
c2aaf1a5c9 | ||
|
|
021aa0d82e | ||
|
|
6fa008ed79 | ||
|
|
e922f086c2 | ||
|
|
605ec9d817 | ||
|
|
c70c0b52c3 | ||
|
|
452cc0c8c8 | ||
|
|
3d334b8e8b | ||
|
|
b9643a7b56 |
No files matched your search
+32
-2
@@ -22,8 +22,32 @@ steps:
|
||||
commands:
|
||||
- git fetch --tags
|
||||
- find . -type f -print0 | xargs -0 dos2unix
|
||||
- chmod +x /drone/src/*.sh
|
||||
- /drone/src/compile.sh
|
||||
- chmod +x /drone/src/toolchain/*.sh
|
||||
- /drone/src/toolchain/compile.sh
|
||||
|
||||
- name: deploy-docs
|
||||
image: alpine:latest
|
||||
depends_on:
|
||||
- compile
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
- develop
|
||||
- feature/mkdocs
|
||||
volumes:
|
||||
- name: docs-htdocs
|
||||
path: /htdocs
|
||||
commands:
|
||||
- apk add --no-cache rsync
|
||||
- |
|
||||
if [ "${DRONE_BRANCH}" = "master" ]; then
|
||||
DEST="/htdocs/master"
|
||||
else
|
||||
DEST="/htdocs/develop"
|
||||
fi
|
||||
- mkdir -p "$DEST"
|
||||
- rsync -a --delete site/ "$DEST/"
|
||||
- echo "Documentation deployed to ${DRONE_BRANCH}"
|
||||
|
||||
- name: upload-iso-artifact
|
||||
image: alpine/git
|
||||
@@ -64,3 +88,9 @@ steps:
|
||||
webhook_token:
|
||||
from_secret: discord_webhook_secret
|
||||
message: "**Asuro Build**\n\n{{#success build.status}}✅ Build successful!\n\n{{else}}❌ Build failed!\n\n{{/success}}Repository: `{{repo.namespace}}/{{repo.name}}`\nBranch: `{{commit.branch}}`\nCommit: `{{commit.sha}}`\nAuthor: `{{commit.author}} <{{commit.email}}>`\n\nGitea Diff: [Link](<{{commit.link}}>)\nDrone Build: [Link](<{{build.link}}>)\n\nMessage: {{commit.message}}"
|
||||
|
||||
volumes:
|
||||
- name: docs-htdocs
|
||||
host:
|
||||
path: /mnt/user/htdocs/asuro_docs
|
||||
|
||||
+3
-1
@@ -16,5 +16,7 @@ dockerout.txt
|
||||
AGENTS.md
|
||||
lessons_learnt.md
|
||||
*.log
|
||||
/doc/*.md
|
||||
wasuro
|
||||
src/core/core.version.pas
|
||||
site/*
|
||||
!site/.gitkeep
|
||||
+5
-3
@@ -5,19 +5,21 @@ VOLUME ["/code"]
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl dos2unix wget git make nasm binutils xorriso grub-pc-bin gcc gcc-multilib && \
|
||||
curl dos2unix wget git make nasm binutils xorriso grub-pc-bin gcc gcc-multilib \
|
||||
python3 python3-pip && \
|
||||
apt-get clean my room
|
||||
|
||||
RUN pip3 install --no-cache-dir --break-system-packages "mkdocs>=1.6,<2" mkdocs-material
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
ARG FPC_VERSION=3.2.2
|
||||
RUN curl -sL https://sourceforge.net/projects/freepascal/files/Linux/$FPC_VERSION/fpc-$FPC_VERSION.i386-linux.tar/download | tar -xf - && \
|
||||
pushd fpc-$FPC_VERSION.i386-linux && ./install.sh && popd && \
|
||||
rm -rf fpc-$FPC_VERSION.i386-linux
|
||||
|
||||
COPY compile.sh /compile.sh
|
||||
ADD https://raw.githubusercontent.com/fsaintjacques/semver-tool/master/src/semver /usr/bin/semver
|
||||
RUN chmod +x /usr/bin/semver
|
||||
WORKDIR /code
|
||||
RUN find . -type f -print0 | xargs -0 dos2unix
|
||||
ENTRYPOINT ["/bin/bash", "-c"]
|
||||
CMD ["/compile.sh"]
|
||||
CMD ["find toolchain -name '*.sh' -exec dos2unix {} + 2>/dev/null; find toolchain -name '*.sh' -exec chmod +x {} +; bash toolchain/compile.sh"]
|
||||
@@ -0,0 +1,75 @@
|
||||
{ Compatibility shim: wasuro references the old unit name 'lmemorymanager'.
|
||||
Since wasuro/ cannot be modified, this unit re-exports the public API of
|
||||
memory.heap so that 'uses lmemorymanager' continues to compile. }
|
||||
unit lmemorymanager;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
memory.heap;
|
||||
|
||||
const
|
||||
ALLOC_UNIT = memory.heap.ALLOC_UNIT;
|
||||
DATA_OFFSET = memory.heap.DATA_OFFSET;
|
||||
PAGE_SIZE_LMM = memory.heap.PAGE_SIZE_LMM;
|
||||
TOTAL_UNITS = memory.heap.TOTAL_UNITS;
|
||||
BITMAP_DWORDS = memory.heap.BITMAP_DWORDS;
|
||||
SIZE_PREFIX = memory.heap.SIZE_PREFIX;
|
||||
LARGE_ALLOC_MAGIC = memory.heap.LARGE_ALLOC_MAGIC;
|
||||
|
||||
type
|
||||
PHeapPageHeader = memory.heap.PHeapPageHeader;
|
||||
THeapPageHeader = memory.heap.THeapPageHeader;
|
||||
|
||||
procedure init;
|
||||
function kalloc(size : uint32) : void;
|
||||
function klalloc(size : uint32) : void;
|
||||
procedure klfree(address : uint32);
|
||||
function kpalloc(address : uint32) : void;
|
||||
procedure kfree(area : void);
|
||||
function lmm_total_free : uint32;
|
||||
function lmm_page_count : uint32;
|
||||
|
||||
implementation
|
||||
|
||||
procedure init;
|
||||
begin
|
||||
memory.heap.init;
|
||||
end;
|
||||
|
||||
function kalloc(size : uint32) : void; inline;
|
||||
begin
|
||||
kalloc := memory.heap.kalloc(size);
|
||||
end;
|
||||
|
||||
function klalloc(size : uint32) : void; inline;
|
||||
begin
|
||||
klalloc := memory.heap.klalloc(size);
|
||||
end;
|
||||
|
||||
procedure klfree(address : uint32); inline;
|
||||
begin
|
||||
memory.heap.klfree(address);
|
||||
end;
|
||||
|
||||
function kpalloc(address : uint32) : void; inline;
|
||||
begin
|
||||
kpalloc := memory.heap.kpalloc(address);
|
||||
end;
|
||||
|
||||
procedure kfree(area : void); inline;
|
||||
begin
|
||||
memory.heap.kfree(area);
|
||||
end;
|
||||
|
||||
function lmm_total_free : uint32; inline;
|
||||
begin
|
||||
lmm_total_free := memory.heap.lmm_total_free;
|
||||
end;
|
||||
|
||||
function lmm_page_count : uint32; inline;
|
||||
begin
|
||||
lmm_page_count := memory.heap.lmm_page_count;
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -0,0 +1,7 @@
|
||||
unit types;
|
||||
|
||||
interface
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
echo "Generating Documentation..."
|
||||
echo " "
|
||||
echo "Dowloading Pasdoc..."
|
||||
wget https://github.com/pasdoc/pasdoc/releases/download/v0.16.0/pasdoc-0.16.0-linux-x86_64.tar.gz -O pasdoc.tar.gz
|
||||
echo "Extracting Pasdoc..."
|
||||
tar -xf pasdoc.tar.gz
|
||||
echo "Creating doc output directory..."
|
||||
mkdir ./doc
|
||||
echo "Removing old docs"
|
||||
rm -rf ./doc/*
|
||||
echo "Generating Docs..."
|
||||
./pasdoc/bin/pasdoc -N "Asuro" -T "Asuro OS Documentation" -O "html" -E ./doc/ -S sources.list --use-tipue-search
|
||||
echo "Docgen finished."
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
echo " "
|
||||
echo "======================="
|
||||
echo " "
|
||||
echo "Compiling Stub..."
|
||||
echo " "
|
||||
nasm -f elf src/stub/stub.asm -o lib/stub.o
|
||||
nasm -f elf src/stub/splash_tga.asm -o lib/splash_tga.o
|
||||
@@ -0,0 +1 @@
|
||||
# Placeholder
|
||||
@@ -0,0 +1 @@
|
||||
# Placeholder
|
||||
@@ -0,0 +1,32 @@
|
||||
# Asuro OS
|
||||
|
||||
Asuro is a 32-bit x86 operating system kernel written in Free Pascal and x86 assembly.
|
||||
|
||||
## Documentation Structure
|
||||
|
||||
- **Kernel Entry** -- The `asuro.pas` main unit and boot sequence.
|
||||
- **Architecture (x86)** -- CPU initialization, descriptor tables, interrupt handling, fault handlers, memory management, and process scheduling for the i386 target.
|
||||
- **Boot** -- Splash screen and early boot visuals.
|
||||
- **Core** -- Foundational libraries including data structures, encoding algorithms, string handling, graphics primitives, and the kernel panic subsystem.
|
||||
- **Memory** -- Heap allocator (`kalloc`/`kfree`) and page-level allocation.
|
||||
- **Processes** -- Process lifecycle, round-robin scheduling, and inter-process messaging.
|
||||
- **I/O** -- Standard I/O (shell command dispatch) and the system log fan-out.
|
||||
- **Debug** -- Execution tracer with ring-buffer call stack recording.
|
||||
- **Drivers** -- Hardware abstraction covering PCI/USB buses, HID devices, networking (E1000, TCP/IP stack), storage (IDE, AHCI, VFS, file systems), video (VESA, LVGL, double-buffering), serial I/O, and timers.
|
||||
- **Services** -- Background daemons for graphics rendering and USB hotplug.
|
||||
- **Applications** -- Userland commands and utilities: terminal, text editor, disk tools, network tools, and a WebAssembly runtime.
|
||||
- **Compatibility** -- Shim layers for legacy code.
|
||||
- **LVGL Headers** -- Configuration and patches for the LVGL v9.2.2 GUI library.
|
||||
- **Planning** -- Design documents and architectural notes for subsystems under development.
|
||||
- **Toolchain** -- Build pipeline documentation covering compilation, linking, and ISO generation.
|
||||
|
||||
## Building
|
||||
|
||||
The kernel is built inside Docker using a containerized FreePascal 3.2.2 toolchain:
|
||||
|
||||
```bash
|
||||
docker compose build builder
|
||||
docker compose run builder
|
||||
```
|
||||
|
||||
The documentation site will be available at `http://docs.asuro.xyz`.
|
||||
@@ -0,0 +1 @@
|
||||
# Placeholder
|
||||
@@ -0,0 +1 @@
|
||||
# Placeholder
|
||||
@@ -0,0 +1 @@
|
||||
# Placeholder
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Loaded 20 of 420 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user