Commit graph

38 commits

Author SHA1 Message Date
051dc27006 Remove pageSize from StartupInformation -- it is assumed 2016-04-13 23:41:28 -04:00
4ad6ce98fc Define pageSize = 4096 2016-04-09 15:22:25 -04:00
9680a2a9c5 Add the multiboot magic value to the startup info struct. 2016-03-25 01:39:07 -04:00
bcfba2c167 Move a bunch of init code to Kernel::initialize()
- Kernel owns a MemoryManager, which is responsible for initializing the GDT.
- Kernel is passed a new StartupInformation struct (borrowed this one from
  Ghost) which contains a bunch of handy tidbits for setting things up.
- Cleaned out even more stuff from kmain()
2016-03-25 01:21:49 -04:00
ddb4c30c62 Calculate size of the kernel based on symbols defined in the linker script
Neat trick!
2016-03-25 00:39:11 -04:00
6aa4453f77 Allow clients to get the console from the kernel object 2016-03-23 01:42:52 -04:00
4919b802b9 Remove kearly() -- unnecessary 2016-03-23 01:02:15 -04:00
d191858a7e Pass multiboot magic to kmain() 2016-03-23 01:01:30 -04:00
522e788ebd Give Kernel a console object 2016-03-23 00:56:00 -04:00
7f72106639 Return a reference to Kernel from systemKernel() 2016-03-23 00:55:42 -04:00
abfcfd24cd Add Kernel object
- Implement halt()
- Call the system kernel halt() method at the end of kmain()
2016-03-23 00:33:45 -04:00
6898153366 Use custom type names in Main.cc 2016-03-20 12:56:43 -04:00
d8b05620cc Print the memory map 2016-03-20 03:38:52 -04:00
a22cec7930 Print memory map information 2016-03-20 00:43:26 -04:00
100da19d28 Add Multiboot information struct and pass it in to kmain()
Print memory availability
2016-03-19 03:45:23 -04:00
fdc7232079 Code formatting 2016-03-13 15:06:05 -04:00
1bbd99aeee Rename writeChar, writeString -> printChar, printString 2016-03-13 13:32:52 -04:00
4f2c2a9150 Enable interrupts and loop forever 2016-03-13 12:52:47 -04:00
dfe85fd8e0 Use full 0xFFFFFFFF address for segment limits 2016-03-13 12:52:32 -04:00
9bb7e91b66 auto& instead of just auto
Grrr... I hate C++ sometimes.
Thanks Aimee~.
2016-03-12 19:14:48 -05:00
3e973716f8 Create a system interrupt handler and call initialize()
Loads interrupt table and programs PIC chips
2016-03-09 01:23:06 -05:00
3879b3c324 Move descriptor classes to x86 namespace 2016-03-09 01:12:05 -05:00
0238e44efc Remove kernel namespace from PIC 2016-03-09 00:28:19 -05:00
01b5737bd7 Just use full namespace specifiers instead of "using" 2016-03-06 13:01:02 -05:00
49afcdfadf Initialize hardware interrupts 2016-03-06 13:00:38 -05:00
70d53827d2 Load an empty IDT 2016-03-02 02:57:35 -05:00
238e79f514 Move GDT to its own object 2016-03-01 12:01:51 -05:00
6c076be975 GDT WORKS HOLY CRAP 2016-02-28 23:26:42 -05:00
94a8f74ada System console is back 2016-02-28 22:50:21 -05:00
a7d0607c92 Okay, just create a console object when you need one... for now 2016-02-28 13:33:20 -05:00
0ed28ab34c Formatting 2016-02-28 03:51:30 -05:00
069ce17238 Note about slower performance of console writing in kmain() vs kearly() 2016-02-28 03:50:35 -05:00
d997765710 Global initialization of C++ static objects
I *think* I have this working right...?
2016-02-28 03:46:30 -05:00
760884de78 Console can scroll now! 2016-02-27 15:07:52 -05:00
42ac9ebe86 Console has tabs 2016-02-27 14:04:18 -05:00
4d7a8653be Console has newline support 2016-02-27 13:59:30 -05:00
f750094b13 Say hello, kernel! 2016-02-27 13:50:51 -05:00
d8c96e8eed Move main.cc -> Main.cc 2016-02-27 13:02:59 -05:00
Renamed from src/main.cc (Browse further)