]> git.ameliathe1st.gay Git - voyage-au-centre-des-fichiers.git/log
voyage-au-centre-des-fichiers.git
23 months agoSimplification des structures qui gèrent la mémoire virtuelle
Amelia Coutard [Sat, 16 Dec 2023 00:35:31 +0000 (01:35 +0100)]
Simplification des structures qui gèrent la mémoire virtuelle

23 months agoImpérialisme linguistique + changement d'API future pour les fichiers
Amelia Coutard [Fri, 15 Dec 2023 08:26:31 +0000 (09:26 +0100)]
Impérialisme linguistique + changement d'API future pour les fichiers

23 months agoQuick fix for gcc update (needed for contracts and modules)
Amelia Coutard [Tue, 12 Dec 2023 14:48:08 +0000 (15:48 +0100)]
Quick fix for gcc update (needed for contracts and modules)

23 months agoMade paging structs slightly more consistent
Amelia Coutard [Mon, 11 Dec 2023 23:19:35 +0000 (00:19 +0100)]
Made paging structs slightly more consistent

23 months agoAdded setup of the new and improved memory map
Amelia Coutard [Mon, 11 Dec 2023 22:21:53 +0000 (23:21 +0100)]
Added setup of the new and improved memory map

23 months agoSimplified on_all_pages and added logging the global memory map
Amelia Coutard [Mon, 11 Dec 2023 12:49:48 +0000 (13:49 +0100)]
Simplified on_all_pages and added logging the global memory map

23 months agoSimplified the page mapping editing function, and genericised it
Amelia Coutard [Sun, 10 Dec 2023 10:34:07 +0000 (11:34 +0100)]
Simplified the page mapping editing function, and genericised it

23 months agoMore RAM for qemu, because I want my debugging to be more realistic
Amelia Coutard [Sun, 10 Dec 2023 10:31:33 +0000 (11:31 +0100)]
More RAM for qemu, because I want my debugging to be more realistic

23 months agoAdded basic structure to get ready for making a new, clean, PML4T right after boot
Amelia Coutard [Sat, 9 Dec 2023 01:22:12 +0000 (02:22 +0100)]
Added basic structure to get ready for making a new, clean, PML4T right after boot

23 months agoRemoved two useless lines. Not important
Amelia Coutard [Wed, 6 Dec 2023 08:44:14 +0000 (09:44 +0100)]
Removed two useless lines. Not important

23 months agoSimplified some getters and setters, with the new template definitions
Amelia Coutard [Tue, 5 Dec 2023 16:35:07 +0000 (17:35 +0100)]
Simplified some getters and setters, with the new template definitions

23 months agoMade page a template, to support all the different page sizes
Amelia Coutard [Tue, 5 Dec 2023 14:57:31 +0000 (15:57 +0100)]
Made page a template, to support all the different page sizes

23 months agoMade the paging structures templates. No point yet, but soon
Amelia Coutard [Tue, 5 Dec 2023 14:19:39 +0000 (15:19 +0100)]
Made the paging structures templates. No point yet, but soon

23 months agoRemoved useless __attribute__((packed))s
Amelia Coutard [Sat, 2 Dec 2023 23:32:18 +0000 (00:32 +0100)]
Removed useless __attribute__((packed))s

23 months agoAdded (but didn't implement yet) the close syscall
Amelia Coutard [Sat, 2 Dec 2023 23:29:08 +0000 (00:29 +0100)]
Added (but didn't implement yet) the close syscall

2 years agoImplemented basic read/write of a virtual file corresponding to the serial port
Amelia Coutard [Mon, 27 Nov 2023 13:09:52 +0000 (14:09 +0100)]
Implemented basic read/write of a virtual file corresponding to the serial port

2 years agoGot ready to implement the first 4 syscalls, though, like, that's not done just yet
Amelia Coutard [Mon, 27 Nov 2023 00:15:34 +0000 (01:15 +0100)]
Got ready to implement the first 4 syscalls, though, like, that's not done just yet

2 years agoChanged the future API a bit. Also, changed the syscall handler a bit because 1)...
Amelia Coutard [Sun, 26 Nov 2023 23:53:46 +0000 (00:53 +0100)]
Changed the future API a bit. Also, changed the syscall handler a bit because 1) %rdx was broken and 2) I was actually probably never gonna need the second return register, because of that new API

2 years agoMade the build system work with guix (and my channel, which will be updated at some...
Amelia Coutard [Thu, 23 Nov 2023 08:58:39 +0000 (09:58 +0100)]
Made the build system work with guix (and my channel, which will be updated at some point to include this

2 years agoAdded printing of the framebuffer memory range
Amelia Coutard [Mon, 7 Aug 2023 01:30:05 +0000 (03:30 +0200)]
Added printing of the framebuffer memory range

2 years agoMade my life easier: removed infinite printing in test programs
Amelia Coutard [Mon, 7 Aug 2023 01:21:30 +0000 (03:21 +0200)]
Made my life easier: removed infinite printing in test programs

2 years agoAdded -Wfatal-errors, because it's easier to use
Amelia Coutard [Sun, 6 Aug 2023 21:35:15 +0000 (23:35 +0200)]
Added -Wfatal-errors, because it's easier to use

2 years agoAdded support for multiple startup modules, and a second module to test yield better
Amelia Coutard [Sun, 6 Aug 2023 01:54:28 +0000 (03:54 +0200)]
Added support for multiple startup modules, and a second module to test yield better

2 years agoFixed missing value init in elf loader
Amelia Coutard [Sun, 6 Aug 2023 01:53:57 +0000 (03:53 +0200)]
Fixed missing value init in elf loader

2 years agoFixed STAR register, and %cr3 on yield
Amelia Coutard [Sun, 6 Aug 2023 01:52:05 +0000 (03:52 +0200)]
Fixed STAR register, and %cr3 on yield

2 years agoImplemented yield syscall and added uses of it. Not tested well yet
Amelia Coutard [Sun, 6 Aug 2023 00:35:21 +0000 (02:35 +0200)]
Implemented yield syscall and added uses of it. Not tested well yet

2 years agoRemoved println syscall
Amelia Coutard [Sat, 5 Aug 2023 23:22:01 +0000 (01:22 +0200)]
Removed println syscall

2 years agoFixed memory laundering and an assert
Amelia Coutard [Sat, 5 Aug 2023 00:43:31 +0000 (02:43 +0200)]
Fixed memory laundering and an assert

2 years agoImplemented ports and processes better.
Amelia Coutard [Sat, 5 Aug 2023 00:22:22 +0000 (02:22 +0200)]
Implemented ports and processes better.

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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.)

2 years 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

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

2 years 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

2 years 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

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

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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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)

2 years 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

2 years 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.

2 years 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

2 years 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)

2 years 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.

2 years 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

2 years 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

2 years 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

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

2 years 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)

2 years 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

2 years 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

2 years 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

2 years 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)

2 years 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

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

3 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%

3 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

3 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.

3 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

3 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

3 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.

3 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