CeDOS - main (log)

Update Readme Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 25 Jul 2025 22:58:14 +0200
run.sh: Automatically create logs folder Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 25 Jul 2025 22:45:39 +0200
shell.nix: Fix missing build dependencies Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 25 Jul 2025 22:06:03 +0200
tests: Add first test Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Thu, 24 Jul 2025 00:01:13 +0200
libcedos: Add return value to process_wait Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 25 Jul 2025 19:27:34 +0200
kernel: sched: Add return value to process_wait Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 25 Jul 2025 19:26:26 +0200
ci: Execute tests and pack results Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Thu, 24 Jul 2025 00:02:16 +0200
run.sh: Refactor script Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Thu, 24 Jul 2025 00:32:55 +0200
libcedos: Fix file descriptor argument naming The arguments cannot be named stdin and stdout as this can collide with the global variables by the same name Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Wed, 23 Jul 2025 22:45:55 +0200
kernel: serial: Add batch write function Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Wed, 23 Jul 2025 22:12:47 +0200
kernel: Make init process configurable Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Wed, 23 Jul 2025 21:43:58 +0200
kernel: Make stdout for applications configurable Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Wed, 23 Jul 2025 21:14:57 +0200
ci: Upload artifacts Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 20 Jun 2025 20:44:52 +0200
Add forgejo workflow for building Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Thu, 19 Jun 2025 23:49:01 +0200
cmake: Cut trailing newline on version string Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 20 Jun 2025 20:05:25 +0200
Treat all warnings as errors Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Wed, 11 Jun 2025 18:06:16 +0200
Add 3D application Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Mon, 09 Jun 2025 15:38:28 +0200
Eliminate all warnings Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 08 Jun 2025 19:01:27 +0200
Add clang-format Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 08 Jun 2025 14:35:19 +0200
gitignore: Add compile_commands.json Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sat, 07 Jun 2025 09:30:42 +0200
treewide: Fix headers NULL is already part of stddef.h and need not be redefined. Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sat, 07 Jun 2025 09:29:07 +0200
Implement serial console driver Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 01 Jun 2025 18:43:38 +0200
fix: fat: Fix some type discrepencies Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 06 Jun 2025 16:13:20 +0200
fat12: Add DOS name support to FAT12 driver Reason: genimage/mtools does not support VFAT-style long file names Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Mon, 02 Jun 2025 23:14:39 +0200
string: Add case-sensitive string comparison Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 06 Jun 2025 15:34:53 +0200
string: Add new non-standard functions for stripping strings These functions will left-strip or right-strip any given string and write the result to a buffer. Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Fri, 06 Jun 2025 15:17:12 +0200
local logfiles Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 01 Jun 2025 20:49:51 +0200
Add environment file and logs directory to gitignore Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Thu, 05 Jun 2025 22:20:17 +0200
Add all build folders to gitignore Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 01 Jun 2025 15:04:58 +0200
cmake: Build image using genimage Luckily, genimage is very flexible and has support for any feature this project might need. The configuration file makes it clearer how the image is structured and we no longer need sudo for image generation. Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Mon, 02 Jun 2025 23:32:09 +0200
Add cmake build system Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 01 Jun 2025 15:04:17 +0200
Add nix-shell for cross compiler Signed-off-by: Celina Sophie Kalus <hello@celinakalus.de>
Celina Sophie Kalus
Sun, 01 Jun 2025 15:03:18 +0200
imgview: Add RLE decoder and refactor code
Celina Sophie Kalus
Sun, 07 Jan 2024 00:20:33 +0100
Merge branch 'experimental/rtc-alarm' into develop
Celina Sophie Kalus
Tue, 02 Jan 2024 19:56:13 +0100
sched: Use kernel entry as idle process Previously, we created a new page directory for the entry process and had a whole lot of if statements in the scheduler to treat the idle process specially. Instead, we now just use the page directory we got from the bootloader, and enter the idle process from the kernel main. That way, we don't waste pages, we keep the startup context on the idle process stack, and have a cleared-up scheduler function that does not occlude what happens in PID 0.
Celina Sophie Kalus
Tue, 26 Dec 2023 21:56:13 +0100
apps: Added status bar as separate app
Celina Sophie Kalus
Sun, 10 Dec 2023 18:55:31 +0100
vga/con: Added ANSI code for storing and resetting cursor pos
Celina Sophie Kalus
Sun, 10 Dec 2023 18:55:00 +0100
time: Added syscall for current time
Celina Sophie Kalus
Sun, 10 Dec 2023 18:30:02 +0100
Merge branch 'hotfix/several-hotfixes' into develop
Celina Sophie Kalus
Sat, 09 Dec 2023 21:47:00 +0100
Merge branch 'hotfix/hardware-crash' into develop
Celina Sophie Kalus
Fri, 08 Dec 2023 21:46:52 +0100
Merge branch 'hotfix/hardware-crash' into develop
Celina Sophie Kalus
Fri, 08 Dec 2023 20:35:21 +0100
boot: Move second stage back to 0x1000 This will allow the boot image to grow bigger in the future.
Celina Sophie Kalus
Fri, 08 Dec 2023 20:31:49 +0100
Merge branch 'feature/scheduling' into develop
Celina Sophie Kalus
Thu, 07 Dec 2023 21:29:43 +0100
Merge branch 'feature/fat-revamped' into develop
Celina Sophie Kalus
Thu, 07 Dec 2023 21:29:30 +0100
boot img: Increase root directory size
Celina Sophie Kalus
Wed, 06 Dec 2023 23:22:36 +0100
cat: Corrected fopen check
Celina Sophie Kalus
Wed, 06 Dec 2023 23:22:04 +0100
file: Return early on invalid file descriptors
Celina Sophie Kalus
Wed, 06 Dec 2023 23:21:38 +0100
vga/con: Proper functions for screen and line clearing
Celina Sophie Kalus
Wed, 06 Dec 2023 23:11:46 +0100
vga/con: Fix colors
Celina Sophie Kalus
Wed, 06 Dec 2023 23:11:12 +0100
con/tty: Optimize cursor Do not reset cursor after every single character, but only after continuous block of characters.
Celina Sophie Kalus
Wed, 06 Dec 2023 01:28:59 +0100
shelf: Add clear command to clear screen
Celina Sophie Kalus
Wed, 06 Dec 2023 01:27:59 +0100
VGA console: Implemented more ANSI escape codes CSI n G (Cursor Horizontal Absolute) CSI n ; m H (Cursor Position) CSI n J (Erase in Display)
Celina Sophie Kalus
Wed, 06 Dec 2023 01:18:24 +0100
syscall: Add process_kill syscall and shell tool Adding a syscall and a shell tool to kill a process that is running asynchronously.
Celina Sophie Kalus
Wed, 06 Dec 2023 00:48:31 +0100
shelf: Asynchronous execution Given the special character '.', shelf will not wait for the executed program to finish before showing the next prompt. The program will run asynchronously.
Celina Sophie Kalus
Wed, 06 Dec 2023 00:47:25 +0100
string.h: Add strchr function Finds the index of a character inside a string
Celina Sophie Kalus
Wed, 06 Dec 2023 00:45:42 +0100
ticks: Interval mode ticks user program now takes an optional argument, an integer representing an interval in ticks. The program will print a string each time the interval passes.
Celina Sophie Kalus
Wed, 06 Dec 2023 00:45:03 +0100
stdlib: Add atoi function
Celina Sophie Kalus
Wed, 06 Dec 2023 00:42:55 +0100
Rudimentary ANSI escape code support
Celina Sophie Kalus
Fri, 01 Dec 2023 00:03:53 +0100
shelf: Add rudimentary command history
Celina Sophie Kalus
Wed, 29 Nov 2023 17:10:24 +0100
cstdlib: Add putc/puts/getc/gets
Celina Sophie Kalus
Wed, 29 Nov 2023 17:10:05 +0100
memory: Added realloc function
Celina Sophie Kalus
Wed, 29 Nov 2023 15:41:11 +0100
fix: uint32 printing not working The problem was the sprint_uint32 function not returning any value.
Celina Sophie Kalus
Wed, 29 Nov 2023 15:02:39 +0100
memory: Move to common The memory allocation algorithm can be used for kernel and user processes alike. To avoid code duplication, we move the code to common to reuse it in libcedos. To this end, we make the start and end addresses of the allocatable memory region flexible and set them as arguments in malloc_init.
Celina Sophie Kalus
Wed, 29 Nov 2023 14:47:51 +0100
assert: Allow different print implementations This allows us to use asserts in the bootloader and in user processes, with different fail condition handling in each.
Celina Sophie Kalus
Wed, 29 Nov 2023 14:41:31 +0100
Shelf: Add exit command
Celina Sophie Kalus
Tue, 28 Nov 2023 23:50:39 +0100
Major Repo structure overhaul - move ./src/* to ./* - add folder ./common for shared code - move contents of ./include to ./kernel and ./common - merge all makefiles into one - merge different string.c implementations in ./common
Celina Sophie Kalus
Tue, 28 Nov 2023 23:38:32 +0100
FAT: Improve memory efficiency Reuse a single cluster buffer instead of re-mallocing it with every read call.
Celina Sophie Kalus
Sun, 26 Nov 2023 22:57:20 +0100
syscall: Added syscall for memory usage
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
kernel: Added ticks
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
bugfix: Programs called without arguments unstable
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
shell: Added MD5 hash program
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
libcedos: Added rudimentary string.h
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
files: Make devices non-blocking Instead of yielding from the kernel, we yield from the user process, where we know better whether we want to block or not.
Celina Sophie Kalus
Sun, 26 Nov 2023 22:22:12 +0100
Merge branch 'hotfix-make' into develop
Celina Sophie Kalus
Sat, 25 Nov 2023 21:08:27 +0100
elf: Added file error handling
Celina Sophie Kalus
Fri, 24 Nov 2023 22:18:09 +0100
imgview: Removing non-stdlib syscalls and avoiding big buffers
Celina Sophie Kalus
Fri, 24 Nov 2023 17:03:02 +0100
shelf: Removing non-stdlib syscalls
Celina Sophie Kalus
Fri, 24 Nov 2023 17:01:50 +0100
libcedos: Adding getchar and putchar methods
Celina Sophie Kalus
Fri, 24 Nov 2023 17:01:04 +0100
hexdump: Using ftell
Celina Sophie Kalus
Fri, 24 Nov 2023 16:15:07 +0100
Adding more cstdlib functions
Celina Sophie Kalus
Fri, 24 Nov 2023 16:13:59 +0100
fix: hexdump format
Celina Sophie Kalus
Fri, 24 Nov 2023 14:55:17 +0100
fix: throw error when violating page protection
Celina Sophie Kalus
Fri, 24 Nov 2023 14:54:51 +0100
Optimizations to hexdump
Celina Sophie Kalus
Fri, 24 Nov 2023 13:56:21 +0100
Added sprintf to stdlib
Celina Sophie Kalus
Fri, 24 Nov 2023 13:56:04 +0100
Implemented lseek and tell, improved stdio
Celina Sophie Kalus
Fri, 24 Nov 2023 00:11:41 +0100
Hotfixes + added malloc for keyboard buffer
Celina Sophie Kalus
Sat, 29 Apr 2023 17:03:17 +0200
Merge branch 'feature/files' into develop Added file offsets and lseek function
Celina Sophie Kalus
Sat, 29 Apr 2023 15:03:56 +0200
hotfix: memory structs not volatile, leading to overoptimization
Celina Sophie Kalus
Sat, 29 Apr 2023 14:29:44 +0200
how did this even work before?!?!
Celina Sophie Kalus
Sat, 29 Apr 2023 13:31:25 +0200
Merge branch 'feature/kmalloc' into develop Added malloc to kernel to allow for dynamic memory allocation
Celina Sophie Kalus
Tue, 25 Apr 2023 22:23:56 +0200
Merge branch 'feature/files' into develop Files are now actual structures containing information, and different file operations are encapsuled into a file_operations struct
Celina Sophie Kalus
Tue, 25 Apr 2023 21:35:58 +0200
added binary image generator
Celina Sophie Kalus
Sun, 16 Apr 2023 22:58:42 +0200
Added syscall for iterating through directory
Celina Sophie Kalus
Mon, 10 Apr 2023 23:11:34 +0200
Eliminated some compier warnings
Celina Sophie Kalus
Mon, 10 Apr 2023 21:11:02 +0200
Scheduler: Minor fixes
Celina Sophie Kalus
Mon, 10 Apr 2023 21:10:51 +0200
Graphics: Fixed a bug that would cause crashes occasionaly
Celina Sophie Kalus
Mon, 10 Apr 2023 21:09:19 +0200
Bootloader: Bugfixes Fixed bootloader bug (hard drive index overwritten by bootloader) and eliminated warnings
Celina Sophie Kalus
Sat, 08 Apr 2023 18:22:46 +0200
imgview: Now understands bitmap format
Celina Sophie Kalus
Fri, 07 Apr 2023 14:12:51 +0200
Some hotfixes, added quit program
Celina Sophie Kalus
Fri, 07 Apr 2023 13:03:58 +0200
Renamed "apps" to "shell" and added version number to shell
Celina Sophie Kalus
Fri, 07 Apr 2023 12:14:14 +0200
Build system: Moved libcedos to its own module
Celina Sophie Kalus
Fri, 07 Apr 2023 11:41:11 +0200
Common app functions now compiled into a static library
Celina Sophie Kalus
Fri, 07 Apr 2023 11:16:00 +0200
Merge branch 'feature-graphics' into develop Added driver for switching graphics mode and applications to display images
Celina Sophie Kalus
Fri, 07 Apr 2023 10:43:45 +0200
Added video output for debug
Celina Kalus
Thu, 06 Apr 2023 22:33:51 +0200
Fixed a scheduler bug
Celina Kalus
Thu, 06 Apr 2023 22:23:41 +0200
Added graphics init function
Celina Kalus
Thu, 06 Apr 2023 21:57:30 +0200
Added syscall to change graphics mode
Celina Kalus
Mon, 27 Mar 2023 21:36:35 +0200
Real mode switch works
Celina Kalus
Mon, 27 Mar 2023 21:16:22 +0200
Considerations for paging
Celina Kalus
Mon, 27 Mar 2023 18:41:59 +0200
Copying the realmode graphics code to its proper destination
Celina Kalus
Mon, 27 Mar 2023 18:10:54 +0200
Real mode switch without any interrupt call yet
Celina Kalus
Mon, 27 Mar 2023 17:46:48 +0200
Moved bootloader pages to preserve real mode interrupt table
Celina Kalus
Mon, 27 Mar 2023 16:52:13 +0200
Merge branch 'feature-filesystem' into develop Added syscalls to enable applications to access files and unified FAT files and console in one interface (which is very hacky at this point)
Celina Kalus
Thu, 06 Apr 2023 19:32:03 +0200
Shell Interface working!
Celina Kalus
Sat, 25 Mar 2023 17:04:34 +0100
Fixed a problem with the scheduler which made it impossible to get keyboard input
Celina Kalus
Sat, 25 Mar 2023 13:43:45 +0100
Macros to hide debug output when not necessary
Celina Sophie Kalus
Fri, 24 Mar 2023 23:57:14 +0100
Restructured apps folder, enabling multiple different apps
Celina Sophie Kalus
Fri, 24 Mar 2023 23:24:22 +0100
Merge branch 'feature-bootloader' into develop Bootloader has been updated to support FAT12 file system, and necessarily, kernel now has FAT12 support too
Celina Sophie Kalus
Fri, 24 Mar 2023 21:05:54 +0100
Added code workspace
Celina Kalus
Tue, 21 Mar 2023 12:01:02 +0100
Added VNC support for emulator
Celina Kalus
Fri, 17 Mar 2023 13:08:26 +0100
User stdio now more efficient, using fewer system calls
Celina Kalus
Tue, 14 Mar 2023 19:31:39 +0100
Added strcpy, added buffers for process name and args
Celina Kalus
Tue, 14 Mar 2023 18:12:20 +0100
Added arguments to processes
Celina Kalus
Tue, 14 Mar 2023 17:57:29 +0100
Added very basic file interface for keyboard input and tty output
Celina Kalus
Tue, 14 Mar 2023 16:52:40 +0100
Implemented execution of ELF executables
Celina Kalus
Thu, 02 Mar 2023 12:18:24 +0100
More flexible API for scheduler
Celina Kalus
Wed, 01 Mar 2023 22:12:12 +0100
Added a syscall for print, updated fibonacci app
Celina Kalus
Wed, 01 Mar 2023 21:41:45 +0100
Moved sources to separate directory
Celina Kalus
Wed, 01 Mar 2023 20:45:50 +0100
Complete overhaul of the makefile structure: Only using one makefile per module instead of recursive make all the way
Celina Kalus
Wed, 01 Mar 2023 20:35:59 +0100
Modified makefiles to comply with conventions
Celina Kalus
Wed, 01 Mar 2023 15:43:11 +0100
Updated readme with link to cross compilation tutorial and successful cross-compiler builds
Celina Kalus
Wed, 01 Mar 2023 14:28:49 +0100
Corrected log file directory in run.sh
Celina Kalus
Wed, 01 Mar 2023 14:24:12 +0100
Makefiles: Improved subsystem building (added phony dependencies for boot, kernel and apps), changed logfile folder (debug is an ambiguous name), added -r flag to app building to prevent building an executable file
Celina Kalus
Wed, 01 Mar 2023 14:23:31 +0100
Made driver variables extern to avoid multiple definition of symbols (how did it even work before that?)
Celina Kalus
Wed, 01 Mar 2023 14:20:12 +0100
Updated gitignore for new log folder name
Celina Kalus
Wed, 01 Mar 2023 14:19:08 +0100
Improved Stack Checksums, sched_kill, added test procedure
Celina Sophie Kalus
Sat, 27 Jan 2018 16:51:47 +0100
Implemented Program Loader
Celina Sophie Kalus
Fri, 26 Jan 2018 23:30:27 +0100
Fixed critical sections
Celina Sophie Kalus
Fri, 19 Jan 2018 20:42:14 +0100
Syscall handler modified Now takes actual arguments
Celina Sophie Kalus
Fri, 19 Jan 2018 20:16:47 +0100
Implemented low-level keyboard driver
Celina Sophie Kalus
Fri, 19 Jan 2018 18:57:57 +0100
Improved Scheduler NOTE: sched_kill not yet fully functional
Celina Sophie Kalus
Wed, 17 Jan 2018 23:51:44 +0100
Fixed sched_exec issue, and other things - Implemented stack integrity check - Implemented syscalls The paging subsystem could REALLY need some rework, it's getting REALLY messy
Celina Sophie Kalus
Wed, 17 Jan 2018 15:45:24 +0100
All the small things ISSUES: sched_exec does not work when performed inside of a process, unsure why
Celina Sophie Kalus
Mon, 15 Jan 2018 00:59:06 +0100
Fixed some things
Celina Sophie Kalus
Sun, 14 Jan 2018 00:09:02 +0100
Improved scheduler Process stacks now reside in same virtual memory location.
Celina Sophie Kalus
Sat, 13 Jan 2018 23:53:57 +0100
Implemented scheduler TODO: - Implement scheduling strategies. - Move process stacks to predetermined private stacks that overlap each other in virtual memory.
Celina Sophie Kalus
Sat, 13 Jan 2018 22:59:11 +0100
Fixed INT 20h issue Turns out I forgot the 0x prefix of the number of IDT entries... So there were 31 entries, which does not include INT 20h. Now there are 0x31 entries, like there should be.
Celina Sophie Kalus
Mon, 08 Jan 2018 16:53:42 +0100
blahblah
Celina Sophie Kalus
Thu, 04 Jan 2018 21:22:08 +0100
Added process struct and functions
Celina Sophie Kalus
Tue, 02 Jan 2018 01:58:19 +0100
Moving memory management into own subdirectory
Celina Sophie Kalus
Mon, 01 Jan 2018 21:53:11 +0100
Major reorganization
Celina Sophie Kalus
Mon, 01 Jan 2018 21:37:18 +0100
Some code restructuring
Celina Sophie Kalus
Sun, 31 Dec 2017 18:51:52 +0100
shenanigans
Celina Sophie Kalus
Sun, 31 Dec 2017 16:02:37 +0100
Paging implementation extended Can create new page directories now and map physical address ranges to virtual addresses.
Celina Sophie Kalus
Sun, 31 Dec 2017 14:05:33 +0100
PIC driver implemented
Celina Sophie Kalus
Wed, 27 Dec 2017 22:38:34 +0100
DON'T INTERRUPT ME Interrupts are implemented, code now requires GCC version 7 or higher. Had to add a hack to make new linker work; bss segment is needed separately for whatever reason. Execution hits a double fault, but that is to be expected - we haven't yet setup the PIC, so the 0x08-interrupt will be fired by a misaligned PIC interrupt
Celina Sophie Kalus
Wed, 27 Dec 2017 00:51:39 +0100
Minor changes yet again
Celina Sophie Kalus
Mon, 25 Dec 2017 20:56:49 +0100
Renaming kernel files
Celina Sophie Kalus
Mon, 25 Dec 2017 19:39:42 +0100
Updated README.md
Celina Sophie Kalus
Mon, 25 Dec 2017 19:33:19 +0100
Massively changed makefiles Now, release and debug builds are done in different folders
Celina Sophie Kalus
Mon, 25 Dec 2017 19:18:57 +0100
Added A20 check Booting aborts if A20 is disabled
Celina Sophie Kalus
Mon, 25 Dec 2017 18:40:52 +0100
Added rudimentary documentation, improved makefile Makefile now handles input files more flexibly, so no makefile change is necessary when adding a new file
Celina Sophie Kalus
Mon, 25 Dec 2017 18:06:41 +0100
Added page allocator
Celina Sophie Kalus
Sun, 24 Dec 2017 16:57:59 +0100
Added cursor, added backspace
Celina Sophie Kalus
Sun, 24 Dec 2017 15:11:13 +0100
Minor things again
Celina Sophie Kalus
Sun, 24 Dec 2017 12:02:58 +0100
Minor changes
Celina Sophie Kalus
Sun, 24 Dec 2017 00:51:21 +0100
Paging works nvm everything i said
Celina Sophie Kalus
Sat, 23 Dec 2017 23:53:54 +0100
Added paging implementation This doesn't execute, it produces a triple fault when far jumping to kernel code. Not sure why
Celina Sophie Kalus
Sat, 23 Dec 2017 23:43:01 +0100
Updated second stage Added simple print and clear methods for second stage
Celina Sophie Kalus
Thu, 21 Dec 2017 23:22:00 +0100
Added method to copy kernel Doesn't work yet, probably because of A20 gate
Celina Sophie Kalus
Thu, 21 Dec 2017 23:07:31 +0100
Protected Mode bug fix Jump to protected mode now successful. Turns out the GDT descriptor had its arguments in wrong order.
Celina Sophie Kalus
Sun, 17 Dec 2017 01:32:48 +0100
.gitignore & makefile update
Celina Sophie Kalus
Sun, 17 Dec 2017 00:03:11 +0100
GDT added, some workflow changes OS currently jumps into protected mode before the prerequisites are set, so execution fails
Celina Sophie Kalus
Sat, 16 Dec 2017 18:36:29 +0100
Second stage bootloader implemented Very whacky implementation of a bios-driven floppy "driver"
Celina Sophie Kalus
Fri, 15 Dec 2017 23:48:31 +0100
Workflow changes Recursive Makefiles added to support multiple, independent project parts
Celina Sophie Kalus
Fri, 15 Dec 2017 22:17:16 +0100
Update makefile Added 'rebuild' recipe, more sophisticated 'clear'
Celina Sophie Kalus
Fri, 15 Dec 2017 00:04:55 +0100
Create README.md
Celina Sophie Kalus
Thu, 14 Dec 2017 23:55:59 +0100
Hello World!
Celina Sophie Kalus
Thu, 14 Dec 2017 23:46:15 +0100
Changed the behaviour of exec function to fit posix conventions, which also avoids having to copy data between different page directories
Celina Sophie Kalus
Fri, 24 Mar 2023 21:04:52 +0100
Very rudimentary file access for opening application
Celina Sophie Kalus
Fri, 24 Mar 2023 19:51:50 +0100
Added FAT driver to kernel
Celina Sophie Kalus
Fri, 24 Mar 2023 19:08:40 +0100
Target system image just big enough to fit into memory without interfering with mapped memory regions
Celina Sophie Kalus
Fri, 24 Mar 2023 18:33:08 +0100
Increased possible bootloader payload by increasing segment register ES instead of BX
Celina Sophie Kalus
Fri, 24 Mar 2023 18:27:20 +0100
FAT12 bootloader works now
Celina Sophie Kalus
Fri, 24 Mar 2023 16:35:33 +0100
Added some image size optimizations which saved about 30kB on the resulting image file
Celina Kalus
Tue, 21 Mar 2023 11:59:42 +0100
Moved kernel back to 0x100000 to allow for bigger ramdisk in the future (and to avoid collision with VGA memory)
Celina Kalus
Sat, 18 Mar 2023 22:36:42 +0100
Bootloader now reads MBR instead of relying on values given at compile time
Celina Kalus
Sat, 18 Mar 2023 19:21:02 +0100
Added debug output to kernel loader, and while we're at it, fixed a critical bug
Celina Kalus
Sat, 18 Mar 2023 18:00:37 +0100
Moved functions for A20 gate and drive access to separate files
Celina Kalus
Sat, 18 Mar 2023 16:32:26 +0100
Using new bootloader, added FAT12 structure to execution and made each module self-contained
Celina Kalus
Sat, 18 Mar 2023 01:46:06 +0100
Removed some unnecessary code (due to bootloader merge) and cleaned up some now unused variables
Celina Kalus
Fri, 17 Mar 2023 22:22:13 +0100
New bootloader works. Size of payload still limited. Fixed link points for kernel and ELF executable
Celina Kalus
Fri, 17 Mar 2023 22:12:42 +0100
Added A20 gate enabling
Celina Kalus
Fri, 17 Mar 2023 18:53:15 +0100
Removed accidental new file
Celina Kalus
Fri, 17 Mar 2023 15:00:55 +0100
Merged bootloader stages
Celina Kalus
Fri, 17 Mar 2023 14:06:27 +0100
Opening files exposed to user processes, added new shell tools
Celina Kalus
Mon, 27 Mar 2023 15:07:32 +0200
FAT functions now integrated into general file functions
Celina Kalus
Mon, 27 Mar 2023 15:02:29 +0200
Added application to display images
Celina Sophie Kalus
Fri, 07 Apr 2023 10:16:39 +0200
Added pipes
Celina Sophie Kalus
Tue, 25 Apr 2023 19:50:35 +0200
dir_next properly integrated into file_operations
Celina Sophie Kalus
Tue, 25 Apr 2023 18:29:01 +0200
Added file_operations struct to allow for easier addition of new device drivers
Celina Sophie Kalus
Tue, 25 Apr 2023 18:23:17 +0200
Making the compiler stricter
Celina Sophie Kalus
Tue, 25 Apr 2023 17:01:20 +0200
Slightly better way to handle file descriptors
Celina Sophie Kalus
Thu, 20 Apr 2023 22:15:04 +0200
File table moved to dynamic memory
Celina Sophie Kalus
Tue, 25 Apr 2023 22:23:30 +0200
Malloc added to process structs
Celina Sophie Kalus
Tue, 25 Apr 2023 22:14:51 +0200
Added page directory mapping for heap
Celina Sophie Kalus
Tue, 25 Apr 2023 22:07:39 +0200
Added malloc function
Celina Sophie Kalus
Tue, 25 Apr 2023 22:04:53 +0200
ELF module rewritten to use lseek and malloc instead of a fixed address buffer
Celina Sophie Kalus
Sat, 29 Apr 2023 15:03:38 +0200
Implemented file offset for FAT
Celina Sophie Kalus
Sat, 29 Apr 2023 14:45:46 +0200
Added offset to FAT file functions
Celina Sophie Kalus
Sat, 29 Apr 2023 14:31:49 +0200
qemu: VNC as environment option
Celina Sophie Kalus
Sat, 25 Nov 2023 21:06:59 +0100
readme: Correcting info about debug builds
Celina Sophie Kalus
Sat, 25 Nov 2023 21:00:58 +0100
make: fix build from clean repo not working
Celina Sophie Kalus
Sat, 25 Nov 2023 20:55:18 +0100
Merge pull request #2 from celinakalus/develop Adding rudimentary cstdlib for user programs
Celina Sophie Kalus
Fri, 24 Nov 2023 17:15:03 +0100
Merge pull request #1 from celinakalus/develop Improvements to the file system interface, addition of graphics modes, improvements of the shell interface. - Applications can now open files for reading - cat/hexdump commands prints the contents of a file on the terminal - Bitmap images are now "viewable" through the imgview command (it does not understand the bitmap format itself, so it prints the header as well, and images need to be 320px wide)
Celina Sophie Kalus
Fri, 07 Apr 2023 12:25:15 +0200
Merge branch 'develop' Added support for FAT12 and introduced the first rudimentary version of a shell.
Celina Kalus
Sat, 25 Mar 2023 17:06:09 +0100
Added roadmap
Celina Kalus
Sat, 18 Mar 2023 22:48:59 +0100
boot: Check return of load_kernel function
Celina Sophie Kalus
Tue, 05 Dec 2023 23:34:04 +0100
fat: Move kernel FAT driver to common To avoid code duplication and thus maintenance difficulties, remove the old FAT driver code from the boot loader (which was copy-pasted from kernel from the start) and replace it with the kernel FAT driver, moved to common.
Celina Sophie Kalus
Tue, 05 Dec 2023 23:34:04 +0100
fat: Separating FAT12 driver and file interface The basic FAT12 functions are very different from the file functions exposed to OS and user. Separation of concerns suggest to keep them separate.
Celina Sophie Kalus
Tue, 05 Dec 2023 23:34:04 +0100
kernel: Add alarms Alarms implement the sleep function on a low level. The alarm_tick function is called at every system tick and decreases all existing alarms. If one alarm reaches 0, an action is taken depending on the alarm mode; Either the program is woken up (in case of sleep), or the program is killed. A new syscall is introduced: Sleep blocks the process for a given number of ticks.
Celina Sophie Kalus
Thu, 07 Dec 2023 16:39:54 +0100
sched: Improved scheduling algorithm This new scheduling algorithm keeps track of process starvation. The ready process with the most time passed since last execution is chosen; If no ready processes are available, the idle process is chosen. This algorithm handles blocked processes gracefully. Instead of expecting at least one ready process to exist, it will schedule the idle process if there are no other ready processes. This new scheduling algorithm obsoleted some old code which unblocked blocked processes, so that the algorithm would always have ready processes.
Celina Sophie Kalus
Thu, 07 Dec 2023 16:08:01 +0100
kernel: Sanitize memory There have been errors caused by uninitialized memory. Set memory to zero where necessary.
Celina Sophie Kalus
Fri, 08 Dec 2023 20:33:59 +0100
Merge pull request #3 from celinakalus/develop v0.4
Celina Sophie Kalus
Thu, 07 Dec 2023 21:35:27 +0100
Merge branch 'hotfix-make'
Celina Sophie Kalus
Sat, 25 Nov 2023 21:07:38 +0100
kernel: Memory holes fixed in paging subsystem CeDOS crashed frequently on real hardware, caused by uninitialized memory. With this and the previous commit, it seems to run very stable.
Celina Sophie Kalus
Fri, 08 Dec 2023 21:46:25 +0100
sched: hotfix kill not working Due to the new sleep function, the process state "terminated" can get overridden. To avoid this, only unblock a process if its pstate is "blocked".
Celina Sophie Kalus
Sat, 09 Dec 2023 21:13:58 +0100
shelf: hotfix: change async character Since '.' appears in regular filenames, it causes calls to read files to run asynchronously. The ',' character is currently unused and thus a better choice.
Celina Sophie Kalus
Sat, 09 Dec 2023 21:08:47 +0100
kernel: hotfix VFAT long filenames In some cases, due to no buffer clearing, parts of previously read file- names have appeared wrongly in other filenames. This can be mitigated by appending a 0.
Celina Sophie Kalus
Sat, 09 Dec 2023 21:04:40 +0100
Merge branch 'hotfix/hardware-crash'
Celina Sophie Kalus
Fri, 08 Dec 2023 21:47:17 +0100
Merge branch 'hotfix/hardware-crash'
Celina Sophie Kalus
Fri, 08 Dec 2023 20:35:32 +0100
alarms: Switch to RTC Use RTC interrupt instead of the scheduler interrupt for alarm ticks. Since the tick rate is known, also switch to ms instead of tick count.
Celina Sophie Kalus
Tue, 26 Dec 2023 18:27:53 +0100
Time: Switch to RTC interrupt for ticks Previously, the tick counter was increased by the scheduler interrupt. However, this causes changing tick durations when the yield function is called. Instead, we can use the previously unused RTC interrupt, which should as an added benefit have consistent timing across devices.
Celina Sophie Kalus
Tue, 02 Jan 2024 19:51:25 +0100
PIC: Enable interrupts from slave PIC Slave PIC interrupts are passed to the Master through a dedicated interrupt line. In the Init method, currently all interrupts are disabled on both Slave and Master; In order to receive interrupts from the slave, we enable the cascaded interrupt.
Celina Sophie Kalus
Tue, 02 Jan 2024 19:48:33 +0100