This website requires JavaScript.
c3a6139f83
Run image from temporary copy to avoid modified disk image file
Josh Holtrop
2022-03-14 00:57:24 -04:00
3d3a433800
Update to rscons 3.0.2
Josh Holtrop
2022-03-14 00:51:54 -04:00
54451bcf5b
Add initial HOS EFI Loader sources
Josh Holtrop
2022-03-13 23:16:37 -04:00
1fc2dd34e5
Update build system for 64-bit, EFI, and D
Josh Holtrop
2022-03-13 22:46:59 -04:00
cb6bd3914c
Remove HOS v0.16 sources
master
Josh Holtrop
2022-02-28 15:10:25 -05:00
56c3be9207
Update to rscons 3.0.0
Josh Holtrop
2022-02-28 13:40:08 -05:00
c6ae200a54
Update to rscons 2.3.0
cross
Josh Holtrop
2021-12-08 11:33:03 -05:00
6b1de7c9d4
Explicitly check page boundaries when adding bootloader-provided memory regions
Josh Holtrop
2021-08-16 17:35:11 -04:00
ebfeca47b5
Use size_t rather than uint32_t
Josh Holtrop
2021-08-16 14:01:39 -04:00
43f4a1f4b1
Show kernel size/address
Josh Holtrop
2021-08-16 13:59:39 -04:00
0f73efbdc3
add mm module to manage free physical page regions
Josh Holtrop
2020-10-26 20:17:08 -04:00
a084ab296c
define _hos_mem_start and _hos_mem_end symbols
Josh Holtrop
2020-10-25 17:08:07 -04:00
aa28284187
build kernel .size file on build
Josh Holtrop
2020-10-25 17:06:56 -04:00
87c135b010
set up a GDT to stop using the one GRUB set up
Josh Holtrop
2020-10-25 16:49:09 -04:00
3d30025d3b
write a map file when linking
Josh Holtrop
2020-10-25 16:48:42 -04:00
556b0f0c4d
add gdt.h
Josh Holtrop
2020-10-23 00:48:40 -04:00
bffd652c16
walk multiboot2 memory map
Josh Holtrop
2020-10-23 00:47:19 -04:00
cbd427b14b
add 64-bit formatting support
Josh Holtrop
2020-10-23 00:46:40 -04:00
fa4ff5facf
load some multiboot2 info after the framebuffer is initialized
Josh Holtrop
2020-10-22 22:03:43 -04:00
db16e69d5d
add klog module to print kernel messages
Josh Holtrop
2020-10-20 21:44:21 -04:00
1d3b0a5621
make fb_clear() public
Josh Holtrop
2020-10-20 20:24:48 -04:00
d03a34ab3e
fb: store fb.pitch in words, not bytes
Josh Holtrop
2020-10-20 20:07:51 -04:00
494ef6de81
add fb_width(), fb_height()
Josh Holtrop
2020-10-20 20:06:54 -04:00
784009ba6c
hos_printf: handle field width, zero-padding, and left-justifiying conversion specifiers
Josh Holtrop
2020-10-20 19:56:30 -04:00
9bddf11ee4
stream: use char instead of uint8_t
Josh Holtrop
2020-10-20 19:47:15 -04:00
313b86fdc7
provide an implementation for memcpy()
Josh Holtrop
2020-10-20 19:31:26 -04:00
75491dd36b
add hos_printf and stream modules
Josh Holtrop
2020-10-20 19:30:23 -04:00
c8db9fe905
add string.h
Josh Holtrop
2020-10-20 17:55:31 -04:00
d0cbaba4d1
add memcpy(), memmove(), memset()
Josh Holtrop
2020-10-20 17:47:40 -04:00
1f22d0c900
add a few multiboot2 info structures
Josh Holtrop
2020-10-20 17:34:08 -04:00
a474368435
increase kernel font size a little
Josh Holtrop
2020-10-20 17:28:43 -04:00
fb88595dec
add fb_clear(), just clear to solid bluish color for now
Josh Holtrop
2020-10-20 17:28:16 -04:00
70b4db9dbb
fix fb_text_render_char() to use given color
Josh Holtrop
2020-10-20 17:23:51 -04:00
9fde638b6e
build with -O2
Josh Holtrop
2020-10-20 15:09:00 -04:00
b4b77dd52c
add mem.h and memset32()
Josh Holtrop
2020-10-20 15:08:12 -04:00
79951bd0f1
add cross/clean.sh
Josh Holtrop
2020-10-20 14:15:28 -04:00
41152cb4ca
add fb_fill()
Josh Holtrop
2020-10-20 14:01:14 -04:00
dba3d28bbf
draw a character
Josh Holtrop
2020-10-20 13:34:02 -04:00
610f30fae9
generate a built-in kernel font
Josh Holtrop
2020-10-20 00:34:53 -04:00
e22b90b768
configure GRUB to boot HOS automatically after 1s
Josh Holtrop
2020-10-20 00:17:05 -04:00
08fc9a5445
rename target run-bios -> run
Josh Holtrop
2020-10-20 00:09:38 -04:00
a66df19edc
add fb_ready()
Josh Holtrop
2020-10-20 00:09:09 -04:00
5bc844649b
set desired framebuffer size to 1600x900x32
Josh Holtrop
2020-10-19 23:57:54 -04:00
0d390465f6
simplify boot.S
Josh Holtrop
2020-10-19 23:42:02 -04:00
04d29fdb71
add mbinfo module to parse multiboot2 boot info
Josh Holtrop
2020-10-19 23:34:42 -04:00
e9f426894c
rename kernel_main.c -> hos_main.c
Josh Holtrop
2020-10-19 22:40:55 -04:00
c8810e4701
rename _start -> hos_start
Josh Holtrop
2020-10-19 22:26:12 -04:00
b202eca0cc
define startup stack in linker script, not assembly
Josh Holtrop
2020-10-19 22:23:39 -04:00
05de14800b
remove hard tabs!
Josh Holtrop
2020-10-19 22:12:34 -04:00
8ae84716d6
rename kernel_main() to hos_main()
Josh Holtrop
2020-10-19 22:12:17 -04:00
bb495eceec
add "fb" module for framebuffer control
Josh Holtrop
2020-10-19 22:09:33 -04:00
67b90a482f
add "clean" target
Josh Holtrop
2020-10-19 21:59:54 -04:00
85e5b76aa3
Move multiboot2 header from assembly to C.
Josh Holtrop
2020-10-19 21:42:14 -04:00
412925a790
switch from multiboot to multiboot2
Josh Holtrop
2020-10-18 14:25:06 -04:00
21afa93c4b
fill in framebuffer with more exciting pattern - working in qemu BIOS but lost graphics in qemu EFI
Josh Holtrop
2020-10-18 13:47:35 -04:00
d08d54ecbf
make run tasks depend on all
Josh Holtrop
2020-10-18 13:29:56 -04:00
06644a02f9
draw pixels to screen to verify framebuffer access and multiboot info
Josh Holtrop
2020-10-18 13:25:26 -04:00
8f9881889b
build both BIOS and EFI images
Josh Holtrop
2020-10-18 13:12:37 -04:00
a91ea8d620
update Makefile to wrap rscons and add run target
Josh Holtrop
2020-10-15 20:05:58 -04:00
a9a2f6dcaf
fix GRUB config to add a HOS menu entry
Josh Holtrop
2020-10-15 20:01:40 -04:00
9befd553eb
always disassemble kernel when building
Josh Holtrop
2020-10-15 19:47:20 -04:00
6053745ee9
build kernel as 32-bit ELF for now so GRUB can recognize it as multiboot
Josh Holtrop
2020-10-15 19:46:53 -04:00
0adc6e395c
Add more modern build script for kernel and disk image based on osdev Bare Bones template
Josh Holtrop
2020-10-14 21:20:41 -04:00
bbf212d5a2
add configure script
Josh Holtrop
2020-10-13 19:53:14 -04:00
94ed9078df
update rscons
Josh Holtrop
2020-10-13 19:20:19 -04:00
e97e76da7b
add cross compiler build script and configure script
Josh Holtrop
2020-10-06 20:06:19 -04:00
1f5e3507ba
change nasm output format to elf32
pre-cross
Josh Holtrop
2020-10-02 10:21:10 -04:00
a9a6f6f4d4
avoid make jobserver warnings
Josh Holtrop
2020-10-02 10:17:32 -04:00
2d009273a1
add readme.txt
Josh Holtrop
2017-07-26 13:51:43 -04:00
2b936758ff
add .gitignore
Josh Holtrop
2017-07-26 13:42:21 -04:00
509009d134
get HOS building again on Ubuntu 17.04 with GCC 6
Josh Holtrop
2017-07-26 13:41:23 -04:00
f51426f73f
fixed memory barrier bug in IDT initialization -- kernel still crashing when interrupts enabled but i think the memory management initialization is correct
v0.17
josh
2010-02-01 05:24:40 +00:00
4b688a3ce0
fixed bug that mapping PAGE_DIR_SELF_REF would incorrectly allocate a new physical page
josh
2010-02-01 05:04:39 +00:00
563758b1bd
added PAGE_DIR_SELF_REF2 to fix bug in page directory self-referencing
josh
2010-02-01 04:21:29 +00:00
ae5dc7df6f
in the middle of clearing page tables allocated during mm_map() and mm_early_map()
josh
2010-02-01 01:47:19 +00:00
d41ffbbedc
added mm_early_vpage_alloc(); kernel still crashing...
josh
2010-01-28 04:22:02 +00:00
5ac343a2e8
fixed mm bug, now crashing because IDT isn't mapped via paging
josh
2010-01-27 05:25:05 +00:00
1027b8c346
compiling again after updating mm_early_map() and mm_map() for new page allocation scheme
josh
2010-01-27 05:06:12 +00:00
08491bace9
still reworking physical page allocator
josh
2010-01-26 05:25:46 +00:00
96ba9fabb1
reworking memory management... again
josh
2010-01-25 23:03:23 +00:00
24485b8143
fixed line endings on text files
josh
2010-01-25 16:04:08 +00:00
ca82cc32ac
cleaned up a few page allocation page issues, still crashing
josh
2010-01-25 15:59:27 +00:00
4816102139
kernel compiling with new page allocation mechanism but crashing
josh
2010-01-25 05:56:40 +00:00
0bc304328d
kernel now keeping track of total/free number of physical pages instead of free/used
josh
2010-01-22 20:51:34 +00:00
dccecb054b
fixed BUILD_BUG_ON() to work in C++
josh
2010-01-22 20:48:41 +00:00
0c78e21e14
added STACK_INITIAL_SIZE to control the number of initial stack pages; added BUILD_BUG_ON() macro to catch compile-time errors
josh
2010-01-22 19:35:43 +00:00
53407d7b59
rearranged slightly
josh
2010-01-22 18:19:20 +00:00
cdea1602d5
added bochs target to Makefile
josh
2010-01-22 18:19:17 +00:00
b6bebfd9b4
removed debug print
josh
2010-01-14 15:54:16 +00:00
1be6e37961
thanks to bug found by Nick - fixed mmap traversal and size calculation
josh
2010-01-14 15:43:49 +00:00
85c5a26631
removed erroneous offset by four when calculating address of mmap structure from bootloader
josh
2010-01-14 04:23:26 +00:00
eb2dd3b1ad
updated start symbol comment
josh
2010-01-07 19:14:34 +00:00
6cd78f195f
changed kernel stack top to 0x40000000 (1GB) virtual
josh
2010-01-07 15:56:53 +00:00
e4701b8d96
merged in removing-assembly branch to do more in C
josh
2010-01-07 15:38:15 +00:00
76ac4f88a4
set virtual offset to 0x0, kernel now runs in qemu / VirtualBox
josh
2010-01-06 05:37:04 +00:00
f6e71b9891
minor Makefile improvements
josh
2010-01-06 05:04:59 +00:00
cf7287d368
removed multiboot kludge; using ELF kernel with different virtual and load addresses
josh
2010-01-06 05:02:32 +00:00
44c6bac2af
added util folder with build script for i586-elf target cross-compiler
josh
2010-01-02 02:10:20 +00:00
bc7064e92a
got interrupts working, added sys/{pic,timer,cpu} modules, ready to work on multitasking
josh
2009-07-29 22:30:52 +00:00
2c5a5d7093
moved gdtr_t definition from mm.h to hos_types.h
josh
2009-07-24 17:05:11 +00:00