|
2511b7d7a1
|
Add optional (compile-opt-in) debug logging to the MemoryManager (which helped catch the bug that got fixed in the previous commit)
|
2022-09-24 22:38:07 +02:00 |
|
|
a0af8fa432
|
QUICK BUGFIX: Shift PDE.Address to the left by 12 bits in VMM::getPhysical, to return the actual physical address
|
2022-09-24 22:35:19 +02:00 |
|
|
a2d23efd1b
|
Move files with their headers in include/misc/ into src/misc/
|
2022-09-24 21:46:09 +02:00 |
|
|
3891d0c52e
|
Rename KernelMemoryManager to MemoryManager
Kind of a more catchy name, isn't it?
|
2022-09-24 21:45:13 +02:00 |
|
|
57b330e907
|
get_symbol_name: handle case where sys/moon.sym is not present in the initial ramdisk
|
2022-09-24 21:38:36 +02:00 |
|
|
f640e3d248
|
symbol_strlen: stop at null terminator as well as newline
|
2022-09-24 21:36:29 +02:00 |
|
|
a9444ec5e3
|
Provide a default symbol for get_symbol_name
|
2022-09-24 21:31:03 +02:00 |
|
|
46b7dab847
|
Remove RangeAllocator and make a PMM namespace
|
2022-09-24 21:27:45 +02:00 |
|
|
198f4196c4
|
Add an MSR utility struct
|
2022-09-24 20:48:27 +02:00 |
|
|
56ace11bb1
|
Copy "hello.size" bytes from hello instead of 512, who knows what there is in there...
|
2022-09-23 18:03:20 +02:00 |
|
|
7b8d30aacd
|
Add a Device class to PCI and a PCITypes file for string names for PCI device types
|
2022-09-23 18:01:07 +02:00 |
|
|
8a93c53277
|
Add a Device class to PCI
|
2022-09-23 17:24:45 +02:00 |
|
|
c3e5251687
|
Some more userland and font failing
|
2022-09-23 16:41:43 +02:00 |
|
|
523b252960
|
Moon 0.4-dev
|
2022-09-22 08:17:02 +02:00 |
|
|
11dd165a8e
|
Scheduler: add proper support for user tasks (still faults though)
|
2022-09-22 08:14:04 +02:00 |
|
|
543fe2885f
|
Add support for user pages
|
2022-09-22 07:57:30 +02:00 |
|
|
ec01dc2927
|
Scheduler: Change fixed Task array for (highly inefficient) memory allocation, add userspace task support (which as memory is mapped kernel-only instantly crashes), and support for exiting a task (marking it as exited and reaping it later)
|
2022-09-21 21:06:00 +02:00 |
|
|
c6c2e286e7
|
Prepare our GDT for userspace
|
2022-09-21 21:04:15 +02:00 |
|
|
ee49caa6d3
|
Interrupts: ensure is_in_handler is true if we know we are in a handler
|
2022-09-21 21:03:49 +02:00 |
|
|
4401b31440
|
Remove ds from context, no need for it in x86_64, use ss instead
|
2022-09-21 21:03:24 +02:00 |
|
|
1b3b93d8bb
|
StackTracer: add a trace_with_ip that prints the symbol name of the saved instruction pointer, for use in interrupts
|
2022-09-21 21:00:15 +02:00 |
|
|
3a69551dcc
|
StackTracer: only trace frames within the kernel address space
|
2022-09-21 20:59:41 +02:00 |
|
|
d54ed0dc8b
|
Make ASSERT, PANIC and TODO show a backtrace and scheduler tid if initialized
|
2022-09-21 20:56:40 +02:00 |
|
|
af8e5aca64
|
Add basic PCI driver
|
2022-09-21 17:57:02 +02:00 |
|
|
49ddb47ad4
|
Reorganize structure
|
2022-09-21 17:56:53 +02:00 |
|
|
e83d4c8ac9
|
Use a faster PIT tick rate
|
2022-09-21 07:29:44 +02:00 |
|
|
4f360693bd
|
Make the demo reboot when you press a key
|
2022-09-20 20:51:59 +02:00 |
|
|
29f0253e5b
|
Little colorful demo
|
2022-09-20 20:49:31 +02:00 |
|
|
1dce3a0cf7
|
Give 1 tick of CPU time to the idle task
|
2022-09-20 20:48:49 +02:00 |
|
|
5a271eaab2
|
Moon 0.4-dev
|
2022-09-20 20:05:32 +02:00 |
|
|
ddbe9b8b8b
|
Few small adjustments to the scheduler
|
2022-09-20 20:02:08 +02:00 |
|
|
1c12cf016e
|
Add a Scheduler.
Finally.
Just Round Robin with sleeping, but it's still awesome. I think this can finish v0.3, with a few adjustments.
|
2022-09-20 19:58:04 +02:00 |
|
|
e6c6a1677a
|
Rename "SavedContext" to "Context"
Seemed like a more appropriate name.
|
2022-09-20 19:56:43 +02:00 |
|
|
063b6345ee
|
Make reboot and shutdown disable interrupts before proceeding
This is getting important now that I've made a Scheduler (yay!!) *will get added next commit*
|
2022-09-20 19:54:49 +02:00 |
|
|
5ee8e17b76
|
Ensure we are in an interrupt in the interrupt handler
|
2022-09-20 17:16:23 +02:00 |
|
|
d0d2d4381c
|
Add a is_in_handler function to validate being in an interrupt handler
|
2022-09-20 17:16:07 +02:00 |
|
|
3a796eb64c
|
Remove semicolon from macro
|
2022-09-20 16:56:43 +02:00 |
|
|
d1141dd713
|
Don't need this header
|
2022-09-20 16:55:32 +02:00 |
|
|
590740e72a
|
Change moon_version() to use a constant expression
|
2022-09-20 16:38:32 +02:00 |
|
|
1c1aa96293
|
Add a moon_version function that returns the full version string
|
2022-09-20 16:34:24 +02:00 |
|
|
6967fa9117
|
Update config.h to use a .cpp file that will be recompiled when it changes
|
2022-09-20 16:30:34 +02:00 |
|
|
15883c2dd3
|
Guard MOON_SUFFIX in config.h
|
2022-09-20 16:22:03 +02:00 |
|
|
7f1731ca2c
|
Moon 0.3-dev
|
2022-09-19 21:13:45 +02:00 |
|
|
ee8c2759a6
|
Got a stack tracer working!!
|
2022-09-19 21:11:43 +02:00 |
|
|
9d3030763b
|
We can fetch a symbol's name from its address!!
|
2022-09-19 20:54:05 +02:00 |
|
|
d79596f21b
|
Add a tool to auto-generate a symbol map, borrowed from SerenityOS :)
|
2022-09-19 20:35:24 +02:00 |
|
|
d8bfb76eef
|
Try to make TextRenderer work... still failing
I can now safely call try_initialize() in early_init though
|
2022-09-19 20:17:37 +02:00 |
|
|
86e4fce654
|
Separate conditions for easier debugging
|
2022-09-19 19:04:14 +02:00 |
|
|
31460fe148
|
I.... think I fixed the initrd code?
|
2022-09-19 17:06:08 +02:00 |
|
|
245d5e514d
|
Optimizations in Spinlock.asm
|
2022-09-19 16:36:34 +02:00 |
|
|
cb311c4981
|
Add initrd/boot/moon.elf and Luna.iso to the clean Makefile target
|
2022-09-18 20:20:51 +02:00 |
|
|
99e681aeb4
|
Forgot to add volatile
Did I check to see if it compiled before making the previous commit? Yes, of course, why are you asking? ...
|
2022-09-18 20:16:46 +02:00 |
|
|
d4a982306f
|
Add spinlocks
|
2022-09-18 20:15:19 +02:00 |
|
|
be31f2c017
|
Moon 0.2-dev
|
2022-09-18 17:16:44 +02:00 |
|
|
a42c4bd2da
|
Add -fno-omit-frame-pointer to CFLAGS
|
2022-09-18 17:13:56 +02:00 |
|
|
aad9aa1db5
|
Start the call stack with a null RBP before calling _start
|
2022-09-18 17:03:29 +02:00 |
|
|
4921db7b97
|
Clear rax register, just in case
|
2022-09-18 15:24:16 +02:00 |
|
|
cbac61d184
|
Rename _test_rdseed to asm_test_rdseed
|
2022-09-18 15:23:08 +02:00 |
|
|
48fae4a971
|
Cache RDSEED and RDRAND presence
|
2022-09-18 15:22:43 +02:00 |
|
|
183c3236d4
|
Fix terminology in keyboard IRQ
|
2022-09-18 09:47:58 +02:00 |
|
|
f7e7a6661d
|
Use kernel logging in interrupts instead of plain old printf()
|
2022-09-18 09:43:58 +02:00 |
|
|
783af21a7e
|
We are not using C
|
2022-09-18 09:43:29 +02:00 |
|
|
59ab8c016d
|
Load a bare-bones TSS for CPU0
|
2022-09-17 17:40:35 +02:00 |
|
|
355ca6ea9f
|
Change initrd/sys/config
|
2022-09-15 18:42:59 +02:00 |
|
|
9d19765b0e
|
Add the ability to toggle loglevels in KernelLog
|
2022-09-15 18:42:38 +02:00 |
|
|
18140a55ec
|
Make strstr take a const char* as a needle instead of a char*
|
2022-09-15 18:42:18 +02:00 |
|
|
0b278b2be2
|
Make divisor in PIT.cpp static
|
2022-09-15 18:12:43 +02:00 |
|
|
f33178a320
|
Log random number generation initialization
|
2022-09-15 18:07:17 +02:00 |
|
|
3e2c413b6a
|
add module to stack.cpp
|
2022-09-14 19:02:36 +02:00 |
|
|
efb28d3258
|
Randomness and stack protection!!
|
2022-09-14 18:54:40 +02:00 |
|
|
db4c8e96b8
|
commit
|
2022-09-14 17:55:24 +02:00 |
|
|
0cb59ee17f
|
please work please
|
2022-09-11 08:23:32 +02:00 |
|
|
d418842a48
|
Update TextRenderer to use kerrorln
|
2022-09-10 22:17:18 +02:00 |
|
|
f98a45aefe
|
Updated InitRD to use virtual mappings
|
2022-09-10 22:15:19 +02:00 |
|
|
4aeada05d3
|
Remove unused drawing files
|
2022-09-10 18:44:14 +02:00 |
|
|
6a0cf7cf98
|
New framebuffer class!!
|
2022-09-10 18:42:40 +02:00 |
|
|
e3e2952661
|
Consistent naming
|
2022-09-10 18:06:46 +02:00 |
|
|
fe672e6a18
|
Use appropriate logging functions
|
2022-09-08 17:03:17 +02:00 |
|
|
1ab0f7291b
|
Add kdbg and kdbgln
|
2022-09-08 17:02:40 +02:00 |
|
|
9de9eacb1d
|
add strstr
|
2022-09-08 17:02:16 +02:00 |
|
|
f3f9756106
|
Remove unused headers in main.cpp
|
2022-09-08 16:30:15 +02:00 |
|
|
276d20a33d
|
Remove log/Address.h, since Log.h has variadic functions now
|
2022-09-08 16:26:24 +02:00 |
|
|
d1498a5e82
|
Change module of RSDT from "acpi/rsdt" to "acpi"
|
2022-09-08 16:23:39 +02:00 |
|
|
76a3ceab32
|
Replace kinfoln with kwarnln where appropriate
|
2022-09-08 16:22:46 +02:00 |
|
|
3da3fd2c11
|
Update messages
|
2022-09-08 16:18:11 +02:00 |
|
|
929962efc9
|
Fixed size counting in RangeAllocator
Which was displaying VERY wrong sizes beforehand. (Number of regions * 4096 instead of number of bytes)
|
2022-09-07 20:01:44 +02:00 |
|
|
b4484e951d
|
LOTS MORE LOGGING. which is great, of course.
|
2022-09-07 19:41:08 +02:00 |
|
|
0cc3900e88
|
Make building with debug symbols conditional in the Makefile
|
2022-09-07 15:05:57 +02:00 |
|
|
c2391cee5d
|
Added config.h
|
2022-09-07 15:02:54 +02:00 |
|
|
aa6c578a3c
|
Fix bug in internal_printf
|
2022-09-07 15:02:38 +02:00 |
|
|
e936a143d3
|
MAKE LOG FUNCTIONS VARIADIC!!
|
2022-09-07 15:02:23 +02:00 |
|
|
1820286d8b
|
stuff
|
2022-09-07 10:33:22 +02:00 |
|
|
97aef95daa
|
Fix format specifiers
|
2022-09-06 18:31:27 +02:00 |
|
|
c9e13f0128
|
Add attribute(format) to *printf to detect ill-formed calls to those functions
|
2022-09-06 18:25:38 +02:00 |
|
|
bd0a24097f
|
Add a KernelMemoryManager namespace to wrap PMM + VMM
|
2022-09-06 18:08:15 +02:00 |
|
|
0fbc68ca88
|
Finish VMM
|
2022-09-06 13:49:17 +02:00 |
|
|
8bff2ee0f5
|
Add a RangeAllocator which serves as a physical memory allocator
|
2022-09-06 13:21:54 +02:00 |
|
|
716974a916
|
Add a minimal shutdown method, that only works on emulators (at least for now)
|
2022-09-06 12:13:43 +02:00 |
|
|
a8aca62771
|
Remove loop from the end of reboot since hang is now noreturn as well
|
2022-09-06 12:13:20 +02:00 |
|
|
003c730117
|
Make hang() noreturn
|
2022-09-06 12:12:55 +02:00 |
|