]> git.ameliathe1st.gay Git - voyage-au-centre-des-fichiers.git/log
voyage-au-centre-des-fichiers.git
14 months agoImplemented ports and processes better.
Amelia Coutard [Sat, 5 Aug 2023 00:22:22 +0000 (02:22 +0200)]
Implemented ports and processes better.

14 months agoFixed code and doc a tiny bit
Amelia Coutard [Tue, 1 Aug 2023 22:21:36 +0000 (00:21 +0200)]
Fixed code and doc a tiny bit

14 months agoChanged processes to save all (general-purpose) registers on syscalls (except for...
Amelia Coutard [Tue, 1 Aug 2023 04:00:06 +0000 (06:00 +0200)]
Changed processes to save all (general-purpose) registers on syscalls (except for r11 and rcx, of course). Will keep working on them later

14 months agoChanged doc a bit
Amelia Coutard [Tue, 1 Aug 2023 02:55:19 +0000 (04:55 +0200)]
Changed doc a bit

15 months agoChanged IPC method again. Gonna start implementation now
Amelia Coutard [Thu, 6 Jul 2023 18:45:33 +0000 (20:45 +0200)]
Changed IPC method again. Gonna start implementation now

16 months agoRemoved dependency on correct user stack for syscall. Simplified code slightly as...
Amelia Coutard [Sat, 17 Jun 2023 01:54:09 +0000 (03:54 +0200)]
Removed dependency on correct user stack for syscall. Simplified code slightly as well

16 months agoModified build system a bit, to fix mistakes and simplify it. Only very small changes
Amelia Coutard [Thu, 15 Jun 2023 02:33:36 +0000 (04:33 +0200)]
Modified build system a bit, to fix mistakes and simplify it. Only very small changes

16 months agoRemoved caching for RAM: should fix any possible errors because of different cache...
Amelia Coutard [Thu, 1 Jun 2023 03:34:51 +0000 (05:34 +0200)]
Removed caching for RAM: should fix any possible errors because of different cache rules overlapping. Will make it good eventually

16 months agoUpdated dirty hack
Amelia Coutard [Thu, 1 Jun 2023 03:05:32 +0000 (05:05 +0200)]
Updated dirty hack

18 months agoSaved all registers required by the system V ABI. (Except for the disabled SSE2 one.)
Amelia Coutard [Sat, 8 Apr 2023 22:15:15 +0000 (00:15 +0200)]
Saved all registers required by the system V ABI. (Except for the disabled SSE2 one.)

18 months agoMade a first change to the setup of the processes, to allow for correct saving of...
Amelia Coutard [Mon, 27 Mar 2023 13:59:36 +0000 (15:59 +0200)]
Made a first change to the setup of the processes, to allow for correct saving of the registers on a process switch. Not finished yet

18 months agoMade types a bit better
Amelia Coutard [Sun, 26 Mar 2023 02:24:29 +0000 (04:24 +0200)]
Made types a bit better

18 months agoMade ints print in base 10
Amelia Coutard [Sun, 26 Mar 2023 02:14:56 +0000 (04:14 +0200)]
Made ints print in base 10

18 months agoAdded printing of phys_ptrs and pointers
Amelia Coutard [Sun, 26 Mar 2023 02:08:35 +0000 (04:08 +0200)]
Added printing of phys_ptrs and pointers

18 months agoAdded phys_ptr<void>
Amelia Coutard [Sun, 26 Mar 2023 01:52:53 +0000 (03:52 +0200)]
Added phys_ptr<void>

18 months agoReimplemented the page allocator
Amelia Coutard [Sun, 26 Mar 2023 01:35:30 +0000 (03:35 +0200)]
Reimplemented the page allocator

19 months agoSimplified implementation of `allocate` a bit
Amelia Coutard [Sun, 19 Mar 2023 02:03:05 +0000 (03:03 +0100)]
Simplified implementation of `allocate` a bit

19 months agoImplemented memset and memcpy, to make some for loops clearer
Amelia Coutard [Sun, 19 Mar 2023 01:04:17 +0000 (02:04 +0100)]
Implemented memset and memcpy, to make some for loops clearer

19 months agoMade multiboot2.hpp a bit cleaner
Amelia Coutard [Sat, 18 Mar 2023 20:12:58 +0000 (21:12 +0100)]
Made multiboot2.hpp a bit cleaner

19 months agoEncapsulated running the first process into a function
Amelia Coutard [Tue, 14 Mar 2023 15:48:24 +0000 (16:48 +0100)]
Encapsulated running the first process into a function

19 months agoAdded missing save of rflags
Amelia Coutard [Tue, 14 Mar 2023 11:50:37 +0000 (12:50 +0100)]
Added missing save of rflags

19 months agoMade the stack pages load lazily
Amelia Coutard [Mon, 13 Mar 2023 22:45:46 +0000 (23:45 +0100)]
Made the stack pages load lazily

19 months agoChanged the handlers a bit, to make the code a bit simpler and clearer
Amelia Coutard [Mon, 13 Mar 2023 22:45:16 +0000 (23:45 +0100)]
Changed the handlers a bit, to make the code a bit simpler and clearer

19 months agoChanged compile options a bit
Amelia Coutard [Mon, 13 Mar 2023 22:44:24 +0000 (23:44 +0100)]
Changed compile options a bit

19 months agoChanged the instruction that jumps to ring 3 from sysretq to iretq
Amelia Coutard [Mon, 13 Mar 2023 22:43:45 +0000 (23:43 +0100)]
Changed the instruction that jumps to ring 3 from sysretq to iretq

19 months agoWrote a new spec for the syscalls
Amelia Coutard [Mon, 13 Mar 2023 14:22:22 +0000 (15:22 +0100)]
Wrote a new spec for the syscalls

19 months agoMoved the loading of the elf program before the aquisition of most physical memory...
Amelia Coutard [Mon, 13 Mar 2023 14:14:51 +0000 (15:14 +0100)]
Moved the loading of the elf program before the aquisition of most physical memory, in order to allow for freeing the corresponding multiboot module more easily

19 months agoChanged basically nothing
Amelia Coutard [Mon, 13 Mar 2023 13:48:40 +0000 (14:48 +0100)]
Changed basically nothing

19 months agoFixed mmap_print syscall, to work with the new processes data structures
Amelia Coutard [Sat, 11 Mar 2023 01:11:37 +0000 (02:11 +0100)]
Fixed mmap_print syscall, to work with the new processes data structures

19 months agoAdded automatic page mapping on some page faults. Also fixed a critical bug in the...
Amelia Coutard [Sat, 11 Mar 2023 01:09:12 +0000 (02:09 +0100)]
Added automatic page mapping on some page faults. Also fixed a critical bug in the implementation of interrupt handlers with a error code

19 months agoMoved elf loading to elf64.?pp, added the start of the needed architecture for multip...
Amelia Coutard [Fri, 10 Mar 2023 17:06:39 +0000 (18:06 +0100)]
Moved elf loading to elf64.?pp, added the start of the needed architecture for multiple processes and IPC

19 months agoAvoided future, and probably current, problems by enabling -fno-strict-aliasing
Amelia Coutard [Fri, 10 Mar 2023 17:04:18 +0000 (18:04 +0100)]
Avoided future, and probably current, problems by enabling -fno-strict-aliasing

19 months agoAdded syscall to show userspace vmemory, to make debugging the kernel easier
Amelia Coutard [Mon, 6 Mar 2023 19:14:57 +0000 (20:14 +0100)]
Added syscall to show userspace vmemory, to make debugging the kernel easier

19 months agoRemoved global bit on the low-memory mapping of the kernel: it was a mistake
Amelia Coutard [Mon, 6 Mar 2023 16:09:48 +0000 (17:09 +0100)]
Removed global bit on the low-memory mapping of the kernel: it was a mistake

19 months agoAdded the global bit to all pages in the higher half
Amelia Coutard [Sun, 5 Mar 2023 23:45:34 +0000 (00:45 +0100)]
Added the global bit to all pages in the higher half

19 months agoEdited os::paging::setup_pages a bit. Notably, the global bit is now set for all...
Amelia Coutard [Sun, 5 Mar 2023 23:40:35 +0000 (00:40 +0100)]
Edited os::paging::setup_pages a bit. Notably, the global bit is now set for all hhigher-half memory

19 months agoEdited comments a tiny bit
Amelia Coutard [Sun, 5 Mar 2023 22:43:58 +0000 (23:43 +0100)]
Edited comments a tiny bit

19 months agoUsed different comment symbol for .S files copyright & licence notices
Amelia Coutard [Sun, 5 Mar 2023 18:57:14 +0000 (19:57 +0100)]
Used different comment symbol for .S files copyright & licence notices

19 months agoEnable global bit for paging
Amelia Coutard [Sun, 5 Mar 2023 18:56:36 +0000 (19:56 +0100)]
Enable global bit for paging

19 months agoMoved most asm simple utils to utils.?pp. Also fixed invlpg usage
Amelia Coutard [Sun, 5 Mar 2023 17:58:08 +0000 (18:58 +0100)]
Moved most asm simple utils to utils.?pp. Also fixed invlpg usage

19 months agoMoved the code to initialise an empty page in the PML4T to paging.cpp
Amelia Coutard [Sun, 5 Mar 2023 03:00:02 +0000 (04:00 +0100)]
Moved the code to initialise an empty page in the PML4T to paging.cpp

19 months agoMerged stuff because I be silly
Amelia Coutard [Sun, 5 Mar 2023 02:58:32 +0000 (03:58 +0100)]
Merged stuff because I be silly

19 months agoAdded IPC design to doc.txt
Amelia Coutard [Sun, 5 Mar 2023 02:54:37 +0000 (03:54 +0100)]
Added IPC design to doc.txt

19 months agoAdded basic API for IPC in doc.txt. Not implemented yet
Amelia Coutard [Sat, 4 Mar 2023 02:12:34 +0000 (03:12 +0100)]
Added basic API for IPC in doc.txt. Not implemented yet

19 months agoAdded support for haing multiple different syscalls (via a call jump table)
Amelia Coutard [Wed, 1 Mar 2023 14:19:32 +0000 (15:19 +0100)]
Added support for haing multiple different syscalls (via a call jump table)

19 months agoFixed elf page-alignment necessity. Now only requires no page overlap
Amelia Coutard [Wed, 1 Mar 2023 13:57:54 +0000 (14:57 +0100)]
Fixed elf page-alignment necessity. Now only requires no page overlap

19 months agoRemoved assert that had become useless.
Amelia Coutard [Wed, 1 Mar 2023 13:09:38 +0000 (14:09 +0100)]
Removed assert that had become useless.

19 months agoAdded naming information to doc.txt
Amelia Coutard [Wed, 1 Mar 2023 01:17:23 +0000 (02:17 +0100)]
Added naming information to doc.txt

19 months agoFixed naming (amycros still present in some places). Also fixed .gitignore for naming...
Amelia Coutard [Wed, 1 Mar 2023 01:12:19 +0000 (02:12 +0100)]
Fixed naming (amycros still present in some places). Also fixed .gitignore for naming and test_module (special case no longer needed)

19 months agoAdded a doc.txt file to specify the kernel documentation, and added a corresponding...
Amelia Coutard [Tue, 28 Feb 2023 22:24:56 +0000 (23:24 +0100)]
Added a doc.txt file to specify the kernel documentation, and added a corresponding assert in the code

Currently, the documentation specifies how virtual memory is used.
The added assert ensures that any loaded elf program's segments are within the specified bounds.

19 months agoAdded missing copyright & licence disclaimers, and fixed the existing ones
Amelia Coutard [Tue, 28 Feb 2023 21:21:28 +0000 (22:21 +0100)]
Added missing copyright & licence disclaimers, and fixed the existing ones

19 months agoRemoved the linker script from the test module: it was unneeded
Amelia Coutard [Tue, 28 Feb 2023 20:52:59 +0000 (21:52 +0100)]
Removed the linker script from the test module: it was unneeded

19 months agoFixed namespace-ending comments where that was needed
Amelia Coutard [Tue, 28 Feb 2023 01:35:20 +0000 (02:35 +0100)]
Fixed namespace-ending comments where that was needed

19 months agoRemoved some logging
Amelia Coutard [Tue, 28 Feb 2023 01:34:35 +0000 (02:34 +0100)]
Removed some logging

19 months agoFixed bug in page counting for elf file loading. Added support for writeable segments...
Amelia Coutard [Mon, 27 Feb 2023 16:55:49 +0000 (17:55 +0100)]
Fixed bug in page counting for elf file loading. Added support for writeable segments of elf files (RO is still RO)

19 months agoAdded missing stack to ftl_to_userspace
Amelia Coutard [Mon, 27 Feb 2023 12:32:10 +0000 (13:32 +0100)]
Added missing stack to ftl_to_userspace

19 months agoImplemented an elf64 loader for test_module
Amelia Coutard [Mon, 27 Feb 2023 11:47:20 +0000 (12:47 +0100)]
Implemented an elf64 loader for test_module

19 months agoEdited Makefile a bit to make it cleaner
Amelia Coutard [Mon, 27 Feb 2023 00:39:56 +0000 (01:39 +0100)]
Edited Makefile a bit to make it cleaner

19 months agoRevamped build system, and rewrote test module to be simpler and more correct (though...
Amelia Coutard [Sun, 26 Feb 2023 22:58:04 +0000 (23:58 +0100)]
Revamped build system, and rewrote test module to be simpler and more correct (though still not actually just producing an elf. Coming soon)

19 months agoMoved .section .text where it makes sense
Amelia Coutard [Sun, 26 Feb 2023 14:28:37 +0000 (15:28 +0100)]
Moved .section .text where it makes sense

19 months agoMoved some source files to a `lib` directory.
Amelia Coutard [Sat, 25 Feb 2023 15:08:23 +0000 (16:08 +0100)]
Moved some source files to a `lib` directory.

19 months agoAdded missing stuff to the .gitignore
Amelia Coutard [Sat, 25 Feb 2023 13:15:03 +0000 (14:15 +0100)]
Added missing stuff to the .gitignore

19 months agoChanged the text printed by the userspace a bit
Amelia Coutard [Sat, 25 Feb 2023 13:14:15 +0000 (14:14 +0100)]
Changed the text printed by the userspace a bit

19 months agoUpdated gcc version in the Makefile hack
Amelia Coutard [Sat, 25 Feb 2023 13:13:37 +0000 (14:13 +0100)]
Updated gcc version in the Makefile hack

19 months agoChanged the logged text a bit
Amelia Coutard [Sat, 25 Feb 2023 13:12:49 +0000 (14:12 +0100)]
Changed the logged text a bit

2 years agoMade it so arg_n have to all be specified or all missing, no weird combining of the...
Amelia Coutard [Sun, 16 Oct 2022 00:12:37 +0000 (02:12 +0200)]
Made it so arg_n have to all be specified or all missing, no weird combining of the two. Also added convertion to a common type, to instanciate less occurences of print_nth_helper::operator%

2 years agoFixed error in rule for creating isodir/boot/test-module
Amelia Coutard [Sun, 16 Oct 2022 00:09:51 +0000 (02:09 +0200)]
Fixed error in rule for creating isodir/boot/test-module

2 years agoAdded actual string formatting to the printing.
Amelia Coutard [Sat, 15 Oct 2022 10:01:17 +0000 (12:01 +0200)]
Added actual string formatting to the printing.

2 years agoAdded start symbol, to start transitioning the module to elf64
Amelia Coutard [Fri, 14 Oct 2022 14:17:48 +0000 (16:17 +0200)]
Added start symbol, to start transitioning the module to elf64

2 years agoFixed bug about dependencies in the kernel's module.mk
Amelia Coutard [Fri, 14 Oct 2022 07:07:03 +0000 (09:07 +0200)]
Fixed bug about dependencies in the kernel's module.mk

2 years agoAdded the userspace module to the repo
Amelia Coutard [Thu, 13 Oct 2022 23:38:56 +0000 (01:38 +0200)]
Added the userspace module to the repo

It's not made to last, so don't worry about the lack of cleanness. I'll
implement elf64 soon-ish.

2 years agoAdded CC0 licence (for Makefiles), and renamed COPYING accordingly
Amelia Coutard [Thu, 13 Oct 2022 23:18:08 +0000 (01:18 +0200)]
Added CC0 licence (for Makefiles), and renamed COPYING accordingly

2 years agoRestructured build system, to allow for easier adding of separate programs later
Amelia Coutard [Thu, 13 Oct 2022 23:17:24 +0000 (01:17 +0200)]
Restructured build system, to allow for easier adding of separate programs later

2 years agoMade ftl_to_userspace jump to a loaded module at linear address 0x1000, instead of...
Amelia Coutard [Thu, 13 Oct 2022 14:47:08 +0000 (16:47 +0200)]
Made ftl_to_userspace jump to a loaded module at linear address 0x1000, instead of a function in the higher-half

2 years agoMade the physical pages returned by the allocator null, to avoid any unexpected bugs...
Amelia Coutard [Thu, 13 Oct 2022 14:45:51 +0000 (16:45 +0200)]
Made the physical pages returned by the allocator null, to avoid any unexpected bugs. Might change later

2 years agoChanged the page tables to use bitfields
Amelia Coutard [Thu, 13 Oct 2022 09:26:43 +0000 (11:26 +0200)]
Changed the page tables to use bitfields

2 years agoRemoved docs.txt. Will remake later
Amelia Coutard [Tue, 11 Oct 2022 21:39:27 +0000 (23:39 +0200)]
Removed docs.txt. Will remake later

2 years agoImplemented a very simple way of jumping to userspace
Amelia Coutard [Tue, 11 Oct 2022 11:55:06 +0000 (13:55 +0200)]
Implemented a very simple way of jumping to userspace

2 years agoMoved the GDT to the higher half (added a second lgdt after jump to 64 bits), to...
Amelia Coutard [Tue, 11 Oct 2022 06:38:45 +0000 (08:38 +0200)]
Moved the GDT to the higher half (added a second lgdt after jump to 64 bits), to allow for unmapping the whole lower half

2 years agoFixed TSS setup.
Amelia Coutard [Mon, 10 Oct 2022 20:56:19 +0000 (22:56 +0200)]
Fixed TSS setup.

2 years agoAdded -no-reboot to qemu options
Amelia Coutard [Mon, 10 Oct 2022 14:10:46 +0000 (16:10 +0200)]
Added -no-reboot to qemu options

2 years agoChanged the order of the info in the GDT, to make it possible to use syscall/sysret
Amelia Coutard [Sun, 9 Oct 2022 18:30:21 +0000 (20:30 +0200)]
Changed the order of the info in the GDT, to make it possible to use syscall/sysret

2 years agoChanged the printing code a bit, to allow for a format argument when printing (unused...
Amelia Coutard [Sun, 9 Oct 2022 01:06:30 +0000 (03:06 +0200)]
Changed the printing code a bit, to allow for a format argument when printing (unused for now)

2 years agoChanged the algorithm that makes the free RAM available, to make it cleaner and more...
Amelia Coutard [Sat, 8 Oct 2022 18:27:23 +0000 (20:27 +0200)]
Changed the algorithm that makes the free RAM available, to make it cleaner and more effective

2 years agoMade printing clearer
Amelia Coutard [Sat, 8 Oct 2022 14:10:58 +0000 (16:10 +0200)]
Made printing clearer

2 years agoFixed priority of operations in address rounding
Amelia Coutard [Sat, 8 Oct 2022 14:07:58 +0000 (16:07 +0200)]
Fixed priority of operations in address rounding

2 years agoUpdated stdlib includes.
Amelia Coutard [Fri, 7 Oct 2022 11:53:30 +0000 (13:53 +0200)]
Updated stdlib includes.

2 years agoRemoved doxygen
Amelia Coutard [Fri, 7 Oct 2022 09:10:26 +0000 (11:10 +0200)]
Removed doxygen

2 years agoRemoved println and replaced its usages by corresponding print calls
Amelia Coutard [Sun, 12 Jun 2022 11:15:02 +0000 (13:15 +0200)]
Removed println and replaced its usages by corresponding print calls

2 years agoMade print_mapping show only the lower half of memory
Amelia Coutard [Sun, 12 Jun 2022 11:06:50 +0000 (13:06 +0200)]
Made print_mapping show only the lower half of memory

The whole physical memory map is in the higher half and is absolutely
huge, so it's best to not show it by default.

2 years agoAdded handlers for each one of the exceptions, instead of having generic ones, put...
Amelia Coutard [Sun, 12 Jun 2022 11:00:07 +0000 (13:00 +0200)]
Added handlers for each one of the exceptions, instead of having generic ones, put them in the IDT accordingly

2 years agoAdded a way to print the entire virtual memory map. Also added missing consts in...
Amelia Coutard [Sun, 12 Jun 2022 02:08:31 +0000 (04:08 +0200)]
Added a way to print the entire virtual memory map. Also added missing consts in paging_entry

2 years agoMoved the page allocator to be a global in paging.cpp and paging.hpp
Amelia Coutard [Sat, 11 Jun 2022 23:17:49 +0000 (01:17 +0200)]
Moved the page allocator to be a global in paging.cpp and paging.hpp

2 years agoDifferentiated the interrupts between those that have error codes and those that...
Amelia Coutard [Tue, 7 Jun 2022 01:19:34 +0000 (03:19 +0200)]
Differentiated the interrupts between those that have error codes and those that don't

2 years agoChanged the interrupt code: now only enables the first 32 vectors, and enable_interru...
Amelia Coutard [Sun, 5 Jun 2022 17:30:22 +0000 (19:30 +0200)]
Changed the interrupt code: now only enables the first 32 vectors, and enable_interrupts now takes the ISRs as arguments instead of hardcoding them

2 years agoChanged the Makefile to use mcmodel=kernel libgcc, and not mcmodel=large libgcc
Amelia Coutard [Sat, 4 Jun 2022 18:06:33 +0000 (20:06 +0200)]
Changed the Makefile to use mcmodel=kernel libgcc, and not mcmodel=large libgcc

2 years agoAdded Doxygen comments to all of the phys_ptr class
Amelia Coutard [Sat, 4 Jun 2022 14:23:47 +0000 (16:23 +0200)]
Added Doxygen comments to all of the phys_ptr class

2 years agoAdded the generated doxygen folder to .gitignore
Amelia Coutard [Sat, 4 Jun 2022 14:22:21 +0000 (16:22 +0200)]
Added the generated doxygen folder to .gitignore

2 years agoFixed the Doxyfile to include private members.
Amelia Coutard [Sat, 4 Jun 2022 14:21:17 +0000 (16:21 +0200)]
Fixed the Doxyfile to include private members.

2 years agoUpdated Makefile to gcc 11.2
Amelia Coutard [Sat, 4 Jun 2022 00:23:38 +0000 (02:23 +0200)]
Updated Makefile to gcc 11.2