1
0
mirror of https://github.com/taigrr/gopher-os synced 2025-01-18 04:43:13 -08:00

11 Commits

Author SHA1 Message Date
Achilleas Anagnostopoulos
80f7980e74 Move multiboot package under the hal package 2017-03-30 07:34:00 +01:00
Achilleas Anagnostopoulos
c15f27235c Update rt0 code to check for multiboot support and call kernel.Kmain
We still keep the required main func in stub.go to prevent the compiler
from optimizing the code out. We also force the compiler not to inline
the call to kernel.Kmain so we can find the symbol in the generated .o
file.
2017-03-29 07:54:23 +01:00
Achilleas Anagnostopoulos
244c8af752 Provide method for querying framebuffer info 2017-03-29 07:54:23 +01:00
Achilleas Anagnostopoulos
558cbf5f17 Implement visitor for examining reported memory map entries
Since the actual size of each memory entry is not known in advance
(bootloaders may append additional information to it) but needs to be
queried off the memory map tag header we cannot reserve space for it as
no memory allocation is yet available.

Instead, a visitor pattern was implemented to allow the memory
manager initialization block to easily mark the appropriate pages as reserved
2017-03-29 07:54:23 +01:00
Achilleas Anagnostopoulos
d4c0d52372 Implement multiboot info structure tag scanner 2017-03-29 07:54:23 +01:00
Achilleas Anagnostopoulos
616fc6a412 Implement simple terminal
The terminal uses console.Vga as its output device. A proper terminal
implementation would be using a console.Console interface as its output.
However, at this point we cannot use Go interfaces as the fn pointers in
the itables have not been yet initialized. The Go runtime bits that set
up the itables need access to a memory allocator, a facility which is
not yet provided by the kernel.
2017-03-27 20:12:01 +01:00
Achilleas Anagnostopoulos
95ce4c6057 Define TTY interface 2017-03-26 21:42:27 +01:00
Achilleas Anagnostopoulos
138bc244f9 Add mutex to Vga console to satisfy console.Console 2017-03-26 21:41:53 +01:00
Achilleas Anagnostopoulos
f72eacc4fb Define VGA console
The VGA console frame buffer is mapped to the physical address 0xB8000.
2017-03-26 09:37:54 +01:00
Achilleas Anagnostopoulos
b513f2f332 Define console interface 2017-03-26 09:33:17 +01:00
Achilleas Anagnostopoulos
865f46c467 Define kernel entry-points in Go 2017-03-23 07:10:01 +00:00