Commit Graph

254 Commits

Author SHA1 Message Date
hyperassembler 8a3354f88c Get it compiling under new ubuntu. 2015-03-06 23:06:33 -08:00
hyperassembler dfba01cf4a Plain of snow 2015-03-05 00:04:29 -08:00
HyperAssembler f4995007c1 Complete and nicely-interfaced generic avl tree implementation. 2015-03-01 01:11:58 -08:00
HyperAssembler 3f7297a2a7 Just renaming some functions. 2015-02-21 18:38:23 -08:00
HyperAssembler efb2ea6a60 Added generic AVL tree implementation.
Changed calling convention to NATIVEXX(XX = 64/32)
Changed ignore file to not ignore stuff in x64.
2015-02-21 02:47:24 -08:00
HyperAssembler 4271c61388 Added kernel size and kernel heap management 2015-02-08 00:18:22 -08:00
HyperAssembler 3dd081316b Nothing much seriously. Prepare for interrupt handling in long mode. 2015-02-07 16:26:20 -08:00
HyperAssembler 56375a5253 So kernel 64 can set up itself now. (Requires 1GB page size. But just for temporary setup, in the kernel we will still stick to 4KB page.) 2015-02-07 15:34:26 -08:00
HyperAssembler 57b0f4a8f1 Implemented hk_printf and made everything else implicit.
Ahmmm. Also made 64 bit kernel independent(you can call that thing to enter 64 bit kernel as long as you are in protected mode (no setup required.))(not working but will soon work).
2015-02-07 04:10:50 -08:00
HyperAssembler 8e8d089578 Finally, finished the most important hk_map_page function.
Note that this function assumes compact model: which means page tables are located continuously in memory and use at little memory as possible depending on the total memory size. I mean, why the hell would someone put page table all over the place?
This WILL be the memory model that HOS uses.
2015-02-06 00:21:11 -08:00
HyperAssembler d0fe0da17d Use C11 standard.
Use string literal(graceful) instead of casting(ugly) for integer constants defined in macros.
2015-02-04 00:43:01 -08:00
HyperAssembler c886d569cd Complete refactor of craps I wrote. Especially when constructing GDT / Page table.
Need:
1. Map page depending on current memory
2. ELF loader
2015-02-03 23:55:38 -08:00
HyperAssembler 7810a74741 That's it for today.... Need some rest. 2015-02-01 20:53:54 -08:00
HyperAssembler ed9190db61 Wow.... We are indeed in long mode. Although the current implementation is ugly. Still historical!! 2015-02-01 14:14:44 -08:00
HyperAssembler 510fd9e116 Yay! Get compatibility mode working and everything setup except for just jumping to 64bit code segment. However elf32 cannot hold x64 code. Gonna go in x64 after implementing elf64 loader. 2015-02-01 02:31:36 -08:00
HyperAssembler 7568cb5890 Ahh... Added support for x86_64 PAE paging. But realized that I need to add support for loading elf64, which hopefully will be done by tomorrow. 2015-01-31 23:36:32 -08:00
HyperAssembler 250299c378 1. makefile: added --fno-stack-protector to prevent gcc from fancy behaviors.
2. bochs config: configured memory to be 256MB and added magic breakpoint.
3. wrote complete print library for x86 kernel(including scrolling).
4. x86 kernel now detects information passed by grub2.
5. removed redundant source file.
2015-01-31 01:05:53 -08:00
unknown a40f0ffc0f Added System V ABI calling convention. 2015-01-30 10:19:28 -08:00
HyperAssembler 82561feeea Push missing grub.cfg and linker script for x86, x86_64 2015-01-30 00:34:05 -08:00
HyperAssembler 9b06af76b2 New readme. Entering x86_64~~ 2015-01-30 00:30:35 -08:00
HyperAssembler 30460c80d9 Excited! Grub2 finally loads our kernel64.bin after this commit!! 2015-01-30 00:24:57 -08:00
HyperAssembler 7cc18fac3d So I figured that grub2 can do some fancy stuff about loading modules.
There we go! We will keep x86 and load x64 as a module and then jump to x64 from x86!!
2015-01-29 22:42:30 -08:00
HyperAssembler 41c2d8ca2a Clean up crap and get code ready for 64 bit. 2015-01-29 00:05:58 -08:00
HyperAssembler e1b29f2966 Added enable/disable paging function. 2015-01-27 23:58:26 -08:00
HyperAssembler 7510138980 1. x64 support check
2. refactored redundant code for multiboot.asm
3. changed bochs cpu to intel i7
4. write to port and read from port io subroutine
2015-01-27 23:23:14 -08:00
HyperAssembler cac107ce81 Setup interrupt functions in 32 bits 2015-01-27 00:59:50 -08:00
HyperAssembler 3102815304 Got the new gdt loading working and basic printing stuff.
Fixed script issue.
2015-01-26 01:30:10 -08:00
HyperAssembler 9f5fbdea4d Added ignore list for clion 2015-01-25 17:02:54 -08:00
HyperAssembler 9fcf6b866f Adjusted structure to use make command. 2015-01-25 16:59:08 -08:00
HyperAssembler 74de6123a9 Extra file to be deleted 2015-01-25 02:27:21 -08:00
HyperAssembler b6c999753f 1. Refactored kernel calling convention.
2. Linker script for kernel.
2. Updated mkiso script to link C with nasm and build a runable multiboot1 iso.
2015-01-25 02:26:52 -08:00
HyperAssembler e12cac16a3 No 2014-10-12 11:56:12 -04:00
HyperAssembler cc60122630 Added 2014-10-03 23:58:40 -04:00
HyperAssembler e3aa2e3d59 ORG! 2014-09-30 22:42:12 -04:00
hyperassembler 286803f026 Nop 2014-09-28 18:50:01 -04:00
hyperassembler ca8ad1c70d In progress 2014-09-24 12:23:46 -04:00
hyperassembler 355ca2e38e Refactoring started! 2014-09-24 00:00:01 -04:00
hyperassembler b157087658 Grub2 multiboot1 2014-09-23 18:00:39 -07:00
HyperAssembler 589f2bb02e Commit 2014-09-16 01:50:52 -04:00
hyperassembler 42a6b8d756 Stage 2014-09-15 22:47:25 -07:00
hyperassembler 263f4ed92b Added script 2014-09-15 07:02:37 -07:00
HyperAssembler 8361819802 Switching to FAT32 and GRUB2 2014-09-12 03:06:54 -04:00
HyperAssembler 84f641aae2 Fix2 2014-09-04 00:55:19 -04:00
HyperAssembler 147622ef9b Fix 2014-09-04 00:44:02 -04:00
hyperassembler 3fc652747c Add Xcode 2014-07-09 00:10:57 -07:00
hyperassembler 895ff63d1e sublime support for NASM 2014-07-07 17:34:58 -07:00
hyperassembler b9def81e95 Collect garbage + add bochs file 2014-06-30 12:14:10 -07:00
hyperassembler fc0a77e481 Refactor code + _IN_ macro + null check + finish off MmMapVirtualAddress. 2014-06-30 11:53:13 -07:00
hyperassembler 4ce10f3777 Add features:
KeSetBit
KeGetBit
MmMapVirtualAddress
2014-06-29 18:53:16 -07:00
hyperassembler 202b3d2ebc Changes - not done yet 2014-06-27 18:35:23 -07:00