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

Commit Graph

  • 5e5e9f1c0b Redirect runtime.throw to kernel.Panic via kernel.panicString Achilleas Anagnostopoulos 2017-06-26 08:09:21 +01:00
  • ce34763e23 Redirects tool should only consider comments attached to functions Achilleas Anagnostopoulos 2017-06-30 06:54:51 +01:00
  • 336cbb415d Fix lint warning Achilleas Anagnostopoulos 2017-06-30 09:20:24 +01:00
  • df6e4314ca Merge pull request #34 from achilleasa/remove-hardcoded-g-offsets-from-rt0-code Achilleas Anagnostopoulos 2017-06-30 09:18:18 +01:00
  • b733915536 Use runtime.g0, runtime.m0 and replace hardcoded offsets Achilleas Anagnostopoulos 2017-06-27 18:55:26 +01:00
  • 6820ffef2b Generate offset definitions as part of the build process Achilleas Anagnostopoulos 2017-06-27 18:51:39 +01:00
  • 62aca2f2de Implement tool for calculating offsets into g, m and stack structs Achilleas Anagnostopoulos 2017-06-27 18:48:29 +01:00
  • 0c79af3f90 Substitute source paths when running GDB on OSX Achilleas Anagnostopoulos 2017-06-28 18:18:00 +01:00
  • c9ca6e31eb Merge pull request #32 from achilleasa/improve-debugging Achilleas Anagnostopoulos 2017-06-28 08:08:27 +01:00
  • b286c4c0d4 Remove gccgo from Vagrantfile provision section and replace it with make Achilleas Anagnostopoulos 2017-06-28 08:04:41 +01:00
  • d65c29ce63 Imrpove debug process Achilleas Anagnostopoulos 2017-06-28 07:45:53 +01:00
  • cbf36d46ee Install Go 1.8.3 Achilleas Anagnostopoulos 2017-06-28 07:29:04 +01:00
  • 2ea1f43d0e Merge pull request #31 from achilleasa/trampoline-based-runtime-call-redirects Achilleas Anagnostopoulos 2017-06-26 05:43:20 +01:00
  • 5fc6ce188e Use go:redirect-from directive to map panic to kernel.Panic Achilleas Anagnostopoulos 2017-06-25 20:42:35 +01:00
  • b238442ccc Use redirects tool with nasm and as a post-link step Achilleas Anagnostopoulos 2017-06-25 20:40:36 +01:00
  • d17f582c0b Reserve space for redirect table and install trampolines Achilleas Anagnostopoulos 2017-06-25 20:00:05 +01:00
  • 275664219e Implement tool to detect redirects and to populate the redirect table Achilleas Anagnostopoulos 2017-06-25 19:51:44 +01:00
  • 39c0a96fa2 Merge pull request #30 from achilleasa/implement-copy-on-write-pages Achilleas Anagnostopoulos 2017-06-22 20:30:46 +01:00
  • 1fc9d20ed2 Reserve and protect zereod frame when initializing vmm Achilleas Anagnostopoulos 2017-06-22 19:17:19 +01:00
  • 32a10601ac Add support for copy-on-write to the page fault handler Achilleas Anagnostopoulos 2017-06-22 07:44:55 +01:00
  • 56d23f50ae Enable page write protection for both kernel and user space Achilleas Anagnostopoulos 2017-06-22 06:24:30 +01:00
  • 42ee2d1325 Implement memcopy Achilleas Anagnostopoulos 2017-06-22 06:06:05 +01:00
  • 71dfc9ae70 FlagPresent must be explicitly specified in calls to Map Achilleas Anagnostopoulos 2017-06-22 05:41:32 +01:00
  • 37ba897ca4 Merge pull request #29 from achilleasa/install-exception-handlers Achilleas Anagnostopoulos 2017-06-22 05:34:07 +01:00
  • 56d031621d Make qemu log exceptions and prevent reboots in case of triple faults Achilleas Anagnostopoulos 2017-06-21 19:04:50 +01:00
  • 6e8d504ae8 Install exception handlers for page faults/GPFs and provide kernel.Panic Achilleas Anagnostopoulos 2017-06-21 18:54:26 +01:00
  • c5aa5fe05f Add method for reading the CR2 register value Achilleas Anagnostopoulos 2017-06-21 18:18:29 +01:00
  • 9adde8f5c1 Define and implement API for registering exception handlers Achilleas Anagnostopoulos 2017-06-21 17:57:15 +01:00
  • 5a2efb2bd3 Load IDT and define gate error-code-aware handlers (rt0/x86_64) Achilleas Anagnostopoulos 2017-06-21 17:45:42 +01:00
  • 827f1a171f Load SS register value to DS_SEG when setting up GDT Achilleas Anagnostopoulos 2017-06-21 17:29:29 +01:00
  • cd3199199b Add assemnly code for enabling/disabling insterrupts and halting the CPU Achilleas Anagnostopoulos 2017-06-21 07:58:15 +01:00
  • d793300279 Move TLB-handling code to the cpu pkg Achilleas Anagnostopoulos 2017-06-21 07:57:05 +01:00
  • 3923e09aac Merge pull request #27 from achilleasa/implement-bitmap-allocator Achilleas Anagnostopoulos 2017-06-19 06:18:18 +01:00
  • 6d195d82f5 Make vmm use the bitmap allocator after it is initialized Achilleas Anagnostopoulos 2017-06-18 08:58:05 +01:00
  • 4de2d54ed4 Implement AllocFrame/FreeFrame Achilleas Anagnostopoulos 2017-06-18 08:53:55 +01:00
  • 6ca86e55f8 Reserve kernel image pages and decomission early allocator Achilleas Anagnostopoulos 2017-06-18 08:06:41 +01:00
  • 8b22862784 Support looking up pools by frame and flagging bitmap entries as reserved/free Achilleas Anagnostopoulos 2017-06-18 07:34:49 +01:00
  • bc44151c93 Reserve and initialize the BitmapAllocator frame pools Achilleas Anagnostopoulos 2017-06-15 16:39:17 +01:00
  • 1c3bfcd58d Implement early virtual address space reservation helper Achilleas Anagnostopoulos 2017-06-14 17:09:05 +01:00
  • dbdf686d27 Provide helper for setting the active frame allocator Achilleas Anagnostopoulos 2017-06-15 09:44:29 +01:00
  • 1b88764676 Enable support for the no-execute (NX) bit Achilleas Anagnostopoulos 2017-06-14 17:22:31 +01:00
  • 886c7b10fa Merge pull request #24 from achilleasa/refactor-bootmem-allocator Achilleas Anagnostopoulos 2017-06-18 09:36:56 +01:00
  • 8698e7bc93 Exclude the region where the kernel is loaded when allocating frames Achilleas Anagnostopoulos 2017-06-17 10:53:53 +01:00
  • c81fd8b758 Pass kernel start/end physical address to Kmain Achilleas Anagnostopoulos 2017-06-17 08:18:07 +01:00
  • ad0bf0a4ca Refactor allocator and unexport it Achilleas Anagnostopoulos 2017-06-17 08:02:39 +01:00
  • c0a9e07e83 Remove mem.PageOrder Achilleas Anagnostopoulos 2017-06-17 07:11:08 +01:00
  • 1d11af21c2 Move bootmem allocator in a sub-pkg Achilleas Anagnostopoulos 2017-06-17 06:55:52 +01:00
  • 0e96d9c5e2 Merge pull request #26 from tw4452852/25 Achilleas Anagnostopoulos 2017-06-17 20:34:18 +01:00
  • 533ce2f2ea fix build failure because of _cgo_yield Tw 2017-06-17 20:16:31 +08:00
  • 2f56d78629 Make the GO variable visible on non-linux hosts Achilleas Anagnostopoulos 2017-06-17 11:08:02 +01:00
  • 45fb719d04 Merge pull request #19 from jeffallen/fix-makefile Achilleas Anagnostopoulos 2017-06-15 18:57:58 +01:00
  • 7f3db2235d Added another missing check before generating ISOs. Jeff Allen 2017-06-14 11:53:44 +02:00
  • e428d6c672 Fix several usability problems in the Makefile Jeff Allen 2017-06-14 11:29:33 +02:00
  • d8c040cf27 Merge pull request #17 from kofiasare/master Achilleas Anagnostopoulos 2017-06-14 09:10:50 +01:00
  • 29c69f26f6 fix typo Kofi Asare 2017-06-13 10:12:23 +00:00
  • a5be59e411 Merge pull request #14 from achilleasa/page-table-support Achilleas Anagnostopoulos 2017-06-07 07:38:17 +01:00
  • 76532089c5 Define PageDirectoryTable and helpers that support inactive tables Achilleas Anagnostopoulos 2017-06-06 19:35:07 +01:00
  • 8e38ff969d Implement API for mapping virtual addresses to physical frames Achilleas Anagnostopoulos 2017-06-06 07:40:57 +01:00
  • 6e03af069a Add support for virtual -> physical address translation Achilleas Anagnostopoulos 2017-06-02 08:16:34 +01:00
  • 319f868a14 Implement page table entry walker Achilleas Anagnostopoulos 2017-06-02 07:34:33 +01:00
  • 35eaa1a13c Define page table entry type Achilleas Anagnostopoulos 2017-06-02 08:15:59 +01:00
  • b67a2045b9 Define virtual memory page type Achilleas Anagnostopoulos 2017-05-31 16:02:55 +01:00
  • c596bc96c3 Define paging-related constants for the amd64 architecture Achilleas Anagnostopoulos 2017-05-31 17:09:06 +01:00
  • 99e4bedb74 Recursively map last P4 entry to itself Achilleas Anagnostopoulos 2017-05-31 14:09:16 +01:00
  • 1a6ade8ced Cleanup Frame tests and rename Frame.IsValid to Frame.Valid Achilleas Anagnostopoulos 2017-05-31 17:00:24 +01:00
  • ff8aabe51f Merge pull request #13 from achilleasa/boot-allocator-tweaks Achilleas Anagnostopoulos 2017-05-31 15:25:52 +01:00
  • 7156b09656 Change boot allocator signature so it returns a kernel error Achilleas Anagnostopoulos 2017-05-31 14:48:07 +01:00
  • d7eb2547dd Change the Frame type to uintptr and remove Size/Order methods Achilleas Anagnostopoulos 2017-05-31 14:07:13 +01:00
  • ec6ce4b70e Move Kmain into its own package Achilleas Anagnostopoulos 2017-05-31 15:07:02 +01:00
  • d5a4c43406 Define type for kernel error messages Achilleas Anagnostopoulos 2017-05-31 14:10:49 +01:00
  • 13d5f494e2 Rename pfn pkg to pmm and export boot allocator Init method Achilleas Anagnostopoulos 2017-05-15 10:00:41 +01:00
  • 412bcf8402 Merge pull request #12 from achilleasa/early-physical-page-allocator Achilleas Anagnostopoulos 2017-05-15 07:45:06 +01:00
  • 8c619e38e1 Implement early page allocator Achilleas Anagnostopoulos 2017-05-11 07:46:31 +01:00
  • e1ada1ac8a Allow mem region visitors to abort the scan by returning false Achilleas Anagnostopoulos 2017-05-10 22:24:03 +01:00
  • 61314a9c33 Define memory Size and implement optimized memset Achilleas Anagnostopoulos 2017-05-10 06:59:48 +01:00
  • ca36793782 Add test Makefile target Achilleas Anagnostopoulos 2017-05-15 07:30:40 +01:00
  • 52266c9f66 Make %x formatting verb in early.Printf behave like fmt.Printf Achilleas Anagnostopoulos 2017-05-15 07:05:07 +01:00
  • 1d8d81095c Merge pull request #11 from achilleasa/use-linter Achilleas Anagnostopoulos 2017-05-15 06:59:01 +01:00
  • cb0975c9c4 Fix linter errors Achilleas Anagnostopoulos 2017-05-15 06:55:31 +01:00
  • 1c17562f07 Add lint Makefile target Achilleas Anagnostopoulos 2017-05-15 06:55:14 +01:00
  • be529349bb Merge pull request #10 from achilleasa/improve-tty-and-fix-fmt-bugs Achilleas Anagnostopoulos 2017-05-12 08:16:33 +01:00
  • 6d3c463ee8 Prevent early_fmt code from triggering Go's allocator Achilleas Anagnostopoulos 2017-05-12 08:00:18 +01:00
  • d7028cee00 Make TTYs implement io.ByteWriter and add support for TAB/BS chars Achilleas Anagnostopoulos 2017-05-12 07:54:42 +01:00
  • 0154c132ea Merge pull request #9 from achilleasa/enter-longmode-and-setup-paging Achilleas Anagnostopoulos 2017-05-03 21:39:48 +01:00
  • 2558f79fbf Switch to a 64-bit version of the kernel and rt0 code Achilleas Anagnostopoulos 2017-04-26 08:30:38 +01:00
  • 4829115647 Merge pull request #8 from achilleasa/enable-sse-support Achilleas Anagnostopoulos 2017-04-24 08:44:41 +01:00
  • 4b25afd2f5 Request valid EGA console from bootloader Achilleas Anagnostopoulos 2017-04-24 08:44:33 +01:00
  • 2b77a9270f Enable SSE support Achilleas Anagnostopoulos 2017-04-24 08:42:15 +01:00
  • 5db83cd3c6 Merge pull request #6 from achilleasa/implement-early-printf Achilleas Anagnostopoulos 2017-04-05 08:39:25 +01:00
  • b6ad5c933d Implement early printf functionality Achilleas Anagnostopoulos 2017-04-05 08:35:32 +01:00
  • d69c945019 Ensure the we pass the correct symbol address to objcopy Achilleas Anagnostopoulos 2017-04-01 07:09:49 +01:00
  • 46353b198d Merge pull request #5 from achilleasa/wrap-multiboot-under-a-hal Achilleas Anagnostopoulos 2017-04-01 07:06:07 +01:00
  • 66eedf1200 Initialize a minimal terminal attached to a text console device Achilleas Anagnostopoulos 2017-03-30 08:37:03 +01:00
  • 50da8ab106 Remove all locking code Achilleas Anagnostopoulos 2017-03-30 08:06:43 +01:00
  • 7dac10a23b Rename Vga console driver to Ega and improve Init() signature Achilleas Anagnostopoulos 2017-03-30 07:44:09 +01:00
  • 80f7980e74 Move multiboot package under the hal package Achilleas Anagnostopoulos 2017-03-30 07:34:00 +01:00
  • 04c3987219 Merge pull request #4 from achilleasa/parse-multiboot-info Achilleas Anagnostopoulos 2017-03-29 08:02:08 +01:00
  • 6dd00b5934 Create a global symbol alias for kernel.Kmain Achilleas Anagnostopoulos 2017-03-29 07:54:08 +01:00
  • c15f27235c Update rt0 code to check for multiboot support and call kernel.Kmain Achilleas Anagnostopoulos 2017-03-29 07:50:29 +01:00
  • 244c8af752 Provide method for querying framebuffer info Achilleas Anagnostopoulos 2017-03-28 22:03:49 +01:00