Commit Graph

81 Commits

Author SHA1 Message Date
fd8a0175d9
Add a syscall infrastructure (our baby program can print to the console now!)
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-05 22:39:56 +01:00
f2cc797599
Add a simple ELF loader
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-23 13:09:21 +01:00
ad0f6546d7
Add a global initrd TarStream to make the initial ramdisk accessible everywhere
All checks were successful
continuous-integration/drone/push Build is passing
It's also mapped into virtual memory instead of directly going into the physical location!!
2022-12-23 11:33:23 +01:00
95b0091622
Split off arch/x86_64/CPU.cpp into various files
All checks were successful
continuous-integration/drone/push Build is passing
2022-12-17 15:45:06 +01:00
f97515bd7e
Kernel: Add Spinlock and LockedValue<T> 2022-12-17 10:55:54 +01:00
6cee208e62
Kernel: Enable -Wsign-conversion
All checks were successful
continuous-integration/drone/push Build is passing
For real this time, turns out me, being dumb, added it to Luna instead of the kernel.
2022-12-08 15:09:32 +01:00
13f5d09cfd Add a Scheduler!! 2022-12-07 16:11:59 +00:00
d445b29477
Add a virtual memory allocator for the kernel 2022-12-05 20:36:24 +01:00
5f6c48bd12
Use a friendlier way of iterating over the memory map 2022-12-04 15:45:13 +01:00
b8239698db
Add descriptions in CMakeLists 2022-12-04 12:47:08 +01:00
5d9c50eb12 Make build-debug.sh work 2022-12-04 10:27:25 +01:00
1d7b9260c3 Add config.h for version information 2022-12-03 17:25:25 +01:00
9f5fb547f7 Add logging system :) 2022-11-30 13:29:28 +01:00
a58b60d0cf Add a framebuffer text renderer 2022-11-20 17:55:22 +01:00
caf6d1563c Kernel: Add a heap memory allocator
This is the first time I've actually dropped liballoc in favor of writing my own implementation.
Usually, malloc() and such looked so complicated that I preferred to let a nice external library do the job.
But I've decided to try writing my own allocator, and now we have heap memory without any 3rd party code!
2022-11-20 15:15:26 +01:00
83bcac7a16 Kernel: Introduce a timer interface 2022-11-19 20:01:01 +01:00
424b069d55 Kernel: Start the call stack with a null RBP on x86_64 2022-11-19 18:38:32 +01:00
883a1da0d7 More indentation in CMakeLists.txt 2022-11-19 18:00:45 +01:00
a44e2f41fe Cleanup kernel/CMakeLists.txt 2022-11-19 17:59:39 +01:00
83e6bd1322 Make the build system more platform-agnostic 2022-11-19 17:46:53 +01:00
3cdf224b90 Remove useless files now that functions are out of line 2022-11-19 15:46:46 +01:00
dadc3e570b Move a few functions out of line 2022-11-19 15:43:09 +01:00
603ff46d8c Add a format implementation 2022-11-19 12:30:36 +01:00
7fc5a6b753 Make kernel rodata and data not executable 2022-11-16 20:02:04 +01:00
c9feb11366 Introduce a check() method (like assert() but always on) 2022-11-15 19:36:50 +01:00
c319336e3d Add a CPU interface 2022-11-15 19:10:32 +01:00
705c2747de Add memory manager 2022-11-13 14:29:15 +01:00
6b95307b54 Add init 2022-11-13 12:20:53 +01:00
ffbe5260a5 Add Framebuffer stuff 2022-11-13 11:25:15 +01:00
82c2381ac9 Serial printing!! 2022-11-13 10:30:10 +01:00
cf758fdfdc Initial commit :) 2022-11-13 10:09:09 +01:00