Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
ecb28e6
Merge pull request #13 from dexoron/main
emexos Feb 18, 2026
78e602e
push
emexos Feb 18, 2026
bf0310b
might fixed bootup screen
emexos Feb 18, 2026
94076a4
[KPROC] moved the kproc logic to kernel_processes, [FM] moved fm to p…
emexos Feb 18, 2026
81162d2
[BOOT] new bootscreen print logic (moved print), [CONSOLE] new consol…
emexos Feb 18, 2026
3809ad5
just renamed exec to packages
emexos Feb 18, 2026
816f79a
[CPIO] cpio newc parser, [RD] loading ram disk with cpio
emexos Feb 19, 2026
224ea5e
keyboard fixed, init script fixed, prompt fixed
emexos Feb 19, 2026
fa677bd
emex parser, packaging
emexos Feb 19, 2026
0c6b65b
path fixes, make fixes
emexos Feb 19, 2026
5337555
delete limine file
emexos Feb 19, 2026
c4c9aba
moved console init functions to general inits
emexos Feb 19, 2026
9410d5f
random scopes
emexos Feb 21, 2026
2071c92
finally jumping to userspace
emexos Feb 22, 2026
ec39225
moved fs_init to inits/
emexos Feb 22, 2026
40e546d
libc works... kinda.....
emexos Feb 23, 2026
c8cfb88
[user] new userspace shell
emexos Feb 25, 2026
fb37545
[GFX] fixed scroll_up, [USER] fixed crashing when executing command, …
emexos Feb 27, 2026
94ea216
fs commands
emexos Feb 28, 2026
fd91d8b
feat: moved website code to this repo
Feb 28, 2026
1304529
feat: added workflow to deploy website automatically
Voxi0 Feb 28, 2026
739eb4c
feat: added editorconfig and updated flake
Feb 28, 2026
ab8e554
chore: removed empty file from `docs`
Feb 28, 2026
b6f8a94
chore: updated flake
Feb 28, 2026
40ff1d4
chore: resolving compiler warnings and such
Feb 28, 2026
83a52ca
feat: beautifying readme
Feb 28, 2026
a644701
fix: added `const char *s` back to `#define FHDR` in `console.h`
Mar 1, 2026
813cac1
Merge pull request #14 from Voxi0/main
emexos Mar 1, 2026
27988b7
new commands: cat, cd
emexos Mar 1, 2026
b7e935b
new devices: fb0, null, zero, input/mouse0, input/keyboard0, hdd0; [F…
emexos Mar 1, 2026
e2ba8c8
implemented a tty and urandom/random, moved fb0 + tty0 from ioctl to …
emexos Mar 2, 2026
454a9c7
design changes, ioctl syscall
emexos Mar 3, 2026
45c0602
better readme
emexos Mar 3, 2026
69f37f5
ipc, whatever
emexos Mar 8, 2026
1af6ec6
lsblk command, hdd0 renamed to hda, new /sys/block
emexos Mar 8, 2026
7d6b17b
new panic screen
emexos Mar 9, 2026
768451d
new panic screen
emexos Mar 9, 2026
bbbdbfb
new panic screen
emexos Mar 9, 2026
386e89b
new panic screen...
emexos Mar 9, 2026
941eee6
new logging tags, changed panic screen design a bit
emexos Mar 9, 2026
46de549
fixed slow printing with >8bytes per time< copying, design changes on…
emexos Mar 9, 2026
ef33c7b
Mouse driver, .emxrc file parser, reboot command
emexos Mar 11, 2026
eed6350
Update README.md
D3LTA2033 Mar 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
root = true

[*]
indent_style = tab
trim_trailing_whitespaces = true
insert_final_newline = false
charset = utf-8

[*.nix]
indent_size = 2

[*.{c,h,ld}]
indent_size = 4
54 changes: 54 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Deploy website

# Set permissions of the `GITHUB_TOKEN` to allow deployment to Github Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete
concurrency:
group: "pages"
cancel-in-progress: false

# Workflow triggers
on:
# Whenever any changes are made to `web/` from either a push or merging a pull request
push:
paths:
- "web/**"
pull_request:
paths:
- "web/**"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Workflow actions
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
# Clone repository
- name: Checkout
uses: actions/checkout@v4

# Configure Github Pages
- name: Setup Pages
uses: actions/configure-pages@v5

# Upload build - In this case it's just static files e.g. HTML and CSS
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload specific directory
path: './web'

# Deploy to Github Pages
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ build/
!build/src/kernel/console/functions/edit.c.o

# Libraries/Dependencies
include/limine
include/limine/*
#!include/limine/limine.h

.DS_Store
Expand All @@ -17,8 +17,9 @@ tools/png
tools/bmp
tools/lg.py

dsk/hdd0
dsk/disk.img
.github/*

logo.txt

src/kernel/console/functions/edit.c

Expand Down
3 changes: 3 additions & 0 deletions .zed/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"project_name": "emexOS",
}
77 changes: 41 additions & 36 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ all: $(ISO)
fetchDeps:
@echo "[DEPS] Fetching dependencies/libraries"
@mkdir -p $(INCLUDE_DIR)
#@mkdir -p $(BUILD_DIR)/src/kernel/console/functions

@echo "[DEPS] Fetching Limine"
@rm -rf $(INCLUDE_DIR)/limine
@git clone https://codeberg.org/Limine/Limine.git --branch=v10.3.0-binary --depth=1 $(INCLUDE_DIR)/limine
@echo "[DEPS] Building limine binary"
@$(MAKE) -C $(INCLUDE_DIR)/limine
@rm -rf $(LIMINE_DIR)
@git clone https://codeberg.org/Limine/Limine.git --branch=v10.x-binary --depth=1 $(LIMINE_DIR)
@rm -rf $(LIMINE_DIR)/.git
@echo "[DEPS] Fetching Limine protocol header file"
@wget https://codeberg.org/Limine/limine-protocol/raw/branch/trunk/include/limine.h -O $(LIMINE_DIR)/limine.h

disk:
@mkdir -p $(DISK_DIR)
Expand All @@ -34,24 +35,16 @@ $(BUILD_DIR)/kernel.elf: src/kernel/linker.ld $(OBJS)
userspace:
@$(MAKE) -C src/userspace

# Ensure host limine tool exists (Linux/macOS binary).
# Compile Limine
$(LIMINE_TOOL):
@$(MAKE) -C $(LIMINE_DIR)

# Create bootable ISO
$(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL)
$(ISO): limine.conf $(LIMINE_TOOL) $(BUILD_DIR)/kernel.elf disk userspace
@echo "[ISO] Creating bootable image..."
@rm -rf $(ISODIR)
@rm -f $(DISK_DIR)/initrd.cpio
@mkdir -p $(ISODIR)/boot/limine $(ISODIR)/EFI/BOOT
#@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/
@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_a.elf
@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_b.elf
#@cp activeslot.txt $(ISODIR)/boot/activeslot.cfg # slot system

@cp $< $(ISODIR)/boot/limine/
@cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/
@cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/

@mkdir -p $(ISODIR)/boot
@mkdir -p $(ISODIR)/boot/ui
@mkdir -p $(ISODIR)/boot/ui/fonts
Expand All @@ -60,26 +53,38 @@ $(ISO): limine.conf $(BUILD_DIR)/kernel.elf disk userspace $(LIMINE_TOOL)
@mkdir -p $(ISODIR)/boot/keymaps
@mkdir -p $(ISODIR)/boot/images
@mkdir -p $(ISODIR)/boot/programs
@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_a.elf
@cp $(BUILD_DIR)/kernel.elf $(ISODIR)/boot/kernel_b.elf
@cp $< $(ISODIR)/boot/limine/
@cp $(addprefix $(INCLUDE_DIR)/limine/limine-, bios.sys bios-cd.bin uefi-cd.bin) $(ISODIR)/boot/limine/
@cp $(addprefix $(INCLUDE_DIR)/limine/BOOT, IA32.EFI X64.EFI) $(ISODIR)/EFI/BOOT/

@echo "[MOD] creating executables..."
@cp src/userspace/hello.elf $(ISODIR)/boot/programs/hello.elf

#@echo "[MOD] copying configs..."
#@cp shared/theme/bootconf.emcg $(ISODIR)/boot/bootconf.emcg
#@cp shared/theme/font8x15.bin $(ISODIR)/boot/liminefont.f15

@echo "[MOD] copying assets..."
@cp shared/ui/assets/bootlogo.bin $(ISODIR)/boot/ui/assets/
#@cp shared/images/logo.bmp $(ISODIR)/boot/images/
#@cp shared/images/background.bmp $(ISODIR)/boot/images/
@cp shared/images/frog.bmp $(ISODIR)/boot/images/

#@cp shared/images/bg.jpg $(ISODIR)/boot/

@echo "[MOD] copying keymaps..."
@cp shared/keymaps/US.map $(ISODIR)/boot/keymaps/
@cp shared/keymaps/DE.map $(ISODIR)/boot/keymaps/
#@cp shared/keymaps/PL.map $(ISODIR)/boot/keymaps/
@echo "[MK] copying executables..."
@mkdir -p $(DISK_DIR)/rd/user/apps
@mkdir -p $(DISK_DIR)/rd/user/bin
@mkdir -p $(DISK_DIR)/rd/bin
@mkdir -p $(DISK_DIR)/rd/emr/system
@cp -r src/userspace/apps/shell/shell.emx $(DISK_DIR)/rd/user/apps/
@cp -r src/userspace/apps/system/system.emx $(DISK_DIR)/rd/emr/system/
@cp -r src/userspace/apps/gui/gui.emx $(DISK_DIR)/rd/user/apps/

@echo "[MK] copying files..."
#@cp limine.conf $(DISK_DIR)/rd/boot/
@cp src/userspace/apps/login/login.elf $(DISK_DIR)/rd/emr/system
@cp src/userspace/bin/echo/echo.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/hello/hello.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/ls/ls.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/tree/tree.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/cat/cat.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/cd/cd.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/lsblk/lsblk.elf $(DISK_DIR)/rd/bin/
@cp src/userspace/bin/reboot/reboot.elf $(DISK_DIR)/rd/bin/


@echo "[MK] creating initrd.cpio..."
@chmod +x tools/initrd.sh
./tools/initrd.sh
@cp $(DISK_DIR)/initrd.cpio $(ISODIR)/boot/

@xorriso -as mkisofs -b boot/limine/limine-bios-cd.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
Expand Down Expand Up @@ -123,4 +128,4 @@ $(BUILD_DIR)/%.asm.o: %.asm
clean:
@echo "[CLR] Cleaning..."
@rm -rf $(BUILD_DIR)
@echo "[OK]"
@echo "[OK]"
Loading