monolithium.git
16 months agoMerge branch 'master' into mm_rewrite mm_rewrite
coderain [Tue, 26 Mar 2019 21:16:52 +0000 (22:16 +0100)]
Merge branch 'master' into mm_rewrite

16 months agoNow booting goes further with the new memory manager
coderain [Tue, 26 Mar 2019 20:44:52 +0000 (21:44 +0100)]
Now booting goes further with the new memory manager

16 months agoMake the rest of the drivers work with the new MM as well
coderain [Sun, 24 Mar 2019 21:18:02 +0000 (22:18 +0100)]
Make the rest of the drivers work with the new MM as well

17 months agoMake the floppy driver and ISA DMA work with the new memory manager
coderain [Sun, 3 Mar 2019 13:57:21 +0000 (14:57 +0100)]
Make the floppy driver and ISA DMA work with the new memory manager

17 months agoRemove the old memory manager. Make changes so the kernel compiles.
coderain [Sun, 24 Feb 2019 16:30:11 +0000 (17:30 +0100)]
Remove the old memory manager. Make changes so the kernel compiles.

There's currently no chance this works. I have more work to do before this
branch reaches the functionality of the master branch. The next step is to
review all the kernel and driver code to make sure it's using the new memory
manager's functionality and interface in a correct and optimal way. This is a
major milestone, but it's still just the beginning...

17 months agoBugfixes. Starting work on sections.
coderain [Wed, 20 Feb 2019 22:06:44 +0000 (23:06 +0100)]
Bugfixes. Starting work on sections.

18 months agoStart implementing address space management
coderain [Mon, 11 Feb 2019 06:45:53 +0000 (07:45 +0100)]
Start implementing address space management

18 months agoMemory manager initialization bugfixes and improvements
coderain [Wed, 23 Jan 2019 06:00:28 +0000 (07:00 +0100)]
Memory manager initialization bugfixes and improvements

18 months agoFix qsort
coderain [Mon, 14 Jan 2019 06:55:50 +0000 (07:55 +0100)]
Fix qsort

18 months agoUse macros to allow prefixing C runtime library symbols
coderain [Mon, 14 Jan 2019 06:38:16 +0000 (07:38 +0100)]
Use macros to allow prefixing C runtime library symbols

20 months agoMemory manager improvements
coderain [Wed, 5 Dec 2018 21:28:24 +0000 (22:28 +0100)]
Memory manager improvements

Make the allocation of memory management data dynamic.
Use absent PTEs to hold information about the page even when it's not resident.
Reduce the memory usage of page information blocks.

20 months agoMerge branch 'master' into mm_rewrite
coderain [Wed, 5 Dec 2018 06:30:02 +0000 (07:30 +0100)]
Merge branch 'master' into mm_rewrite

20 months agoCreate the bin directories during the build process
coderain [Wed, 5 Dec 2018 06:24:46 +0000 (07:24 +0100)]
Create the bin directories during the build process

20 months ago[sdk] Implement mini lists, which are singly-linked
coderain [Sun, 2 Dec 2018 23:58:33 +0000 (00:58 +0100)]
[sdk] Implement mini lists, which are singly-linked

20 months ago[sdk] Fix incorrect assumptions in the AVL binary search routines
coderain [Sun, 2 Dec 2018 23:45:09 +0000 (00:45 +0100)]
[sdk] Fix incorrect assumptions in the AVL binary search routines

20 months agoRewrite the system clock to use timestamps instead of calendar time
coderain [Sun, 18 Nov 2018 23:20:13 +0000 (00:20 +0100)]
Rewrite the system clock to use timestamps instead of calendar time

20 months agoChange the timer syscalls so that sysret_t can be 32-bit
coderain [Sun, 18 Nov 2018 16:25:31 +0000 (17:25 +0100)]
Change the timer syscalls so that sysret_t can be 32-bit

22 months agoReorganize the files.
coderain [Sat, 13 Oct 2018 15:06:52 +0000 (17:06 +0200)]
Reorganize the files.

22 months agoImplement vectored I/O.
coderain [Thu, 4 Oct 2018 05:02:07 +0000 (07:02 +0200)]
Implement vectored I/O.

22 months agoImplement events using semaphores.
coderain [Tue, 25 Sep 2018 13:52:21 +0000 (15:52 +0200)]
Implement events using semaphores.

22 months agoFix pin_memory.
coderain [Tue, 25 Sep 2018 13:50:31 +0000 (15:50 +0200)]
Fix pin_memory.

22 months agoFix a stack leak. Prevent the kernel stack from overflowing.
coderain [Tue, 25 Sep 2018 13:48:53 +0000 (15:48 +0200)]
Fix a stack leak. Prevent the kernel stack from overflowing.

22 months agoMake sizeof(long) the default heap alignment.
coderain [Tue, 25 Sep 2018 13:44:43 +0000 (15:44 +0200)]
Make sizeof(long) the default heap alignment.

22 months agoGet rid of exception_return
coderain [Tue, 25 Sep 2018 13:40:47 +0000 (15:40 +0200)]
Get rid of exception_return

23 months agoFix a bug in common.mk.
coderain [Sat, 8 Sep 2018 18:55:58 +0000 (20:55 +0200)]
Fix a bug in common.mk.

23 months agoFix a bug in free_page.
coderain [Sat, 8 Sep 2018 18:06:27 +0000 (20:06 +0200)]
Fix a bug in free_page.

23 months agoMake sure the IOCTL buffers are optional.
coderain [Sat, 8 Sep 2018 18:06:05 +0000 (20:06 +0200)]
Make sure the IOCTL buffers are optional.

23 months agoSwitch to the context of the kernel process in vm86_interrupt.
coderain [Sat, 8 Sep 2018 18:05:13 +0000 (20:05 +0200)]
Switch to the context of the kernel process in vm86_interrupt.

23 months agoFix a bug in wait_for_objects.
coderain [Sat, 8 Sep 2018 18:04:36 +0000 (20:04 +0200)]
Fix a bug in wait_for_objects.

23 months agoImprove process/thread termination.
coderain [Sat, 8 Sep 2018 18:04:03 +0000 (20:04 +0200)]
Improve process/thread termination.

23 months agoFix the security check for framebuffer mapping.
coderain [Sat, 8 Sep 2018 17:57:56 +0000 (19:57 +0200)]
Fix the security check for framebuffer mapping.

23 months agoFix bugs in the VESA driver.
coderain [Sat, 8 Sep 2018 17:57:21 +0000 (19:57 +0200)]
Fix bugs in the VESA driver.

23 months agoImprove logging.
coderain [Wed, 5 Sep 2018 02:59:29 +0000 (04:59 +0200)]
Improve logging.

23 months agoFix printf bugs.
coderain [Tue, 4 Sep 2018 04:49:39 +0000 (06:49 +0200)]
Fix printf bugs.

23 months agoPass the machine state from the interrupt for kernel crashes.
coderain [Sat, 1 Sep 2018 21:21:26 +0000 (23:21 +0200)]
Pass the machine state from the interrupt for kernel crashes.

23 months agoFix a minor bug in __crt_vstrprintf.
coderain [Sat, 1 Sep 2018 21:18:52 +0000 (23:18 +0200)]
Fix a minor bug in __crt_vstrprintf.

23 months agoThe assembler needs to know the instruction size.
coderain [Sat, 1 Sep 2018 21:16:47 +0000 (23:16 +0200)]
The assembler needs to know the instruction size.

2 years agoMerge branch 'unit_tests'
coderain [Wed, 18 Jul 2018 12:18:33 +0000 (14:18 +0200)]
Merge branch 'unit_tests'

2 years agoUpdate the node balance when deleting a duplicate in the AVL tree.
coderain [Tue, 17 Jul 2018 23:08:23 +0000 (01:08 +0200)]
Update the node balance when deleting a duplicate in the AVL tree.

2 years agoUse the new cpu.h functions in the new memory manager.
coderain [Sat, 14 Jul 2018 22:04:18 +0000 (00:04 +0200)]
Use the new cpu.h functions in the new memory manager.

2 years agoMerge branch 'master' into mm_rewrite
coderain [Fri, 13 Jul 2018 22:36:03 +0000 (00:36 +0200)]
Merge branch 'master' into mm_rewrite

2 years agoMove some of the architecture-specific code into a separate unit.
coderain [Fri, 13 Jul 2018 22:20:31 +0000 (00:20 +0200)]
Move some of the architecture-specific code into a separate unit.

2 years agoBegin the memory manager rewrite.
coderain [Wed, 11 Jul 2018 12:40:23 +0000 (14:40 +0200)]
Begin the memory manager rewrite.

The idea of this is to restructure, refactor, and improve the internals of the
memory manager while keeping the external API more or less intact.

2 years agoBegin implementing unit tests. unit_tests
coderain [Wed, 20 Jun 2018 02:19:48 +0000 (04:19 +0200)]
Begin implementing unit tests.

2 years agoSwitch to the new locking API.
coderain [Tue, 19 Jun 2018 18:08:15 +0000 (20:08 +0200)]
Switch to the new locking API.

2 years agoMake waiting for objects generic. Implement access granting/revoking.
coderain [Tue, 19 Jun 2018 15:21:37 +0000 (17:21 +0200)]
Make waiting for objects generic. Implement access granting/revoking.

2 years agoImprove exception handling.
coderain [Mon, 18 Jun 2018 19:39:31 +0000 (21:39 +0200)]
Improve exception handling.

2 years agoIntroduce a uid_t type for user IDs.
coderain [Mon, 18 Jun 2018 18:15:20 +0000 (20:15 +0200)]
Introduce a uid_t type for user IDs.

2 years agoImprove context switching and scheduler APIs.
coderain [Mon, 18 Jun 2018 05:01:01 +0000 (07:01 +0200)]
Improve context switching and scheduler APIs.

2 years agoReimplement basic locking. Fix bugs.
coderain [Sun, 17 Jun 2018 22:05:33 +0000 (00:05 +0200)]
Reimplement basic locking. Fix bugs.

2 years agoAdd an automatic build environment setup script for POSIX-compliant systems.
coderain [Thu, 3 May 2018 23:03:58 +0000 (01:03 +0200)]
Add an automatic build environment setup script for POSIX-compliant systems.

2 years agoImplement serial logging. Finish modularizing power management.
coderain [Sat, 10 Mar 2018 05:39:44 +0000 (06:39 +0100)]
Implement serial logging. Finish modularizing power management.

2 years agoImplement printf in the CRT
coderain [Thu, 8 Mar 2018 20:38:18 +0000 (21:38 +0100)]
Implement printf in the CRT

2 years agoImplement module loading. Move drivers into modules. Fix bugs.
coderain [Sun, 25 Feb 2018 01:31:34 +0000 (02:31 +0100)]
Implement module loading. Move drivers into modules. Fix bugs.

2 years agoUpgrade to multiboot version 2
coderain [Sat, 10 Feb 2018 23:45:33 +0000 (00:45 +0100)]
Upgrade to multiboot version 2

2 years agoReimplement AVL trees
coderain [Wed, 7 Feb 2018 19:45:38 +0000 (20:45 +0100)]
Reimplement AVL trees

2 years agoAutomatically generate syscalls.h and syscalls.c as well
coderain [Sun, 24 Dec 2017 21:54:33 +0000 (22:54 +0100)]
Automatically generate syscalls.h and syscalls.c as well

2 years agoAutomatically generate the system call wrappers
coderain [Sun, 24 Dec 2017 15:35:55 +0000 (16:35 +0100)]
Automatically generate the system call wrappers

2 years agoImprove pipes. Implement pipelines. Use pipes when watching directory changes.
coderain [Sun, 24 Dec 2017 06:29:18 +0000 (07:29 +0100)]
Improve pipes. Implement pipelines. Use pipes when watching directory changes.

2 years ago[kernel] Add command line support, fix bugs
coderain [Wed, 15 Nov 2017 05:21:43 +0000 (06:21 +0100)]
[kernel] Add command line support, fix bugs

2 years ago[kernel] Bug fixes and refactoring
coderain [Wed, 15 Nov 2017 04:44:35 +0000 (05:44 +0100)]
[kernel] Bug fixes and refactoring

2 years agoImplement basic ELF executable loading
coderain [Wed, 15 Nov 2017 04:35:50 +0000 (05:35 +0100)]
Implement basic ELF executable loading

2 years ago[kernel] Fix block copying in the cache
coderain [Wed, 15 Nov 2017 04:31:30 +0000 (05:31 +0100)]
[kernel] Fix block copying in the cache

2 years ago[crt] Set the default heap. Update next_offset after blocks have been merged.
coderain [Wed, 15 Nov 2017 04:22:53 +0000 (05:22 +0100)]
[crt] Set the default heap. Update next_offset after blocks have been merged.

2 years ago[kernel] Fix bugs related to opening/listing devices
coderain [Wed, 15 Nov 2017 04:21:09 +0000 (05:21 +0100)]
[kernel] Fix bugs related to opening/listing devices

2 years agoDon't blindly strdup() optional arguments
coderain [Wed, 15 Nov 2017 04:19:45 +0000 (05:19 +0100)]
Don't blindly strdup() optional arguments

2 years agoMove video I/O control definitions to the SDK
coderain [Wed, 15 Nov 2017 04:18:02 +0000 (05:18 +0100)]
Move video I/O control definitions to the SDK

2 years ago[crt] Improve file descriptors
coderain [Wed, 15 Nov 2017 04:14:26 +0000 (05:14 +0100)]
[crt] Improve file descriptors

2 years ago[crt] Properly implement I/O buffers
coderain [Mon, 30 Oct 2017 23:44:57 +0000 (00:44 +0100)]
[crt] Properly implement I/O buffers

2 years agoImplement setjmp/longjmp
coderain [Sun, 29 Oct 2017 17:47:47 +0000 (18:47 +0100)]
Implement setjmp/longjmp

2 years agoInitialize the heap and file descriptors during CRT startup
coderain [Sat, 28 Oct 2017 21:45:59 +0000 (23:45 +0200)]
Initialize the heap and file descriptors during CRT startup

2 years agoImplement POSIX file descriptors and I/O
coderain [Sat, 28 Oct 2017 21:44:35 +0000 (23:44 +0200)]
Implement POSIX file descriptors and I/O

2 years agoImplement working directories in the CRT (and a bit of kernel support)
coderain [Sat, 28 Oct 2017 21:35:54 +0000 (23:35 +0200)]
Implement working directories in the CRT (and a bit of kernel support)

2 years agoStart implementing CRT I/O
coderain [Mon, 23 Oct 2017 04:30:31 +0000 (06:30 +0200)]
Start implementing CRT I/O

2 years ago[sdk] Remove old unused error codes [crt] Implement errno
coderain [Mon, 23 Oct 2017 02:37:50 +0000 (04:37 +0200)]
[sdk] Remove old unused error codes [crt] Implement errno

2 years agoImplement the CRT heap and use that in the kernel
coderain [Sun, 22 Oct 2017 14:31:10 +0000 (16:31 +0200)]
Implement the CRT heap and use that in the kernel

2 years agoMove synchronization-related system calls to the SDK
coderain [Sat, 21 Oct 2017 23:48:40 +0000 (01:48 +0200)]
Move synchronization-related system calls to the SDK

2 years agoRemove unnecessary system calls
coderain [Sun, 15 Oct 2017 21:29:15 +0000 (23:29 +0200)]
Remove unnecessary system calls

2 years agoSeparate monolithium exceptions from x86 exceptions; Implement lazy FPU switching
coderain [Sat, 14 Oct 2017 16:34:26 +0000 (18:34 +0200)]
Separate monolithium exceptions from x86 exceptions; Implement lazy FPU switching

2 years ago[crt] Fix atexit
coderain [Sat, 14 Oct 2017 15:41:13 +0000 (17:41 +0200)]
[crt] Fix atexit

2 years ago[crt] Implement the entry point, exit(), and atexit()
coderain [Fri, 13 Oct 2017 22:26:03 +0000 (00:26 +0200)]
[crt] Implement the entry point, exit(), and atexit()

2 years agoFix the definitions of strtok and strtok_r
coderain [Fri, 13 Oct 2017 19:28:33 +0000 (21:28 +0200)]
Fix the definitions of strtok and strtok_r

2 years agoMore optimizing
coderain [Wed, 11 Oct 2017 01:40:05 +0000 (03:40 +0200)]
More optimizing

2 years agoOptimize some string functions
coderain [Mon, 9 Oct 2017 21:11:46 +0000 (23:11 +0200)]
Optimize some string functions

2 years agoAdd a missing file header
coderain [Mon, 9 Oct 2017 17:14:08 +0000 (19:14 +0200)]
Add a missing file header

2 years agoMove C runtime stuff into a separate library
coderain [Mon, 9 Oct 2017 17:10:24 +0000 (19:10 +0200)]
Move C runtime stuff into a separate library

2 years agoMove system calls to the SDK and normalize their names
coderain [Sat, 7 Oct 2017 13:18:26 +0000 (15:18 +0200)]
Move system calls to the SDK and normalize their names

2 years agoEven more reorganizing
coderain [Sat, 7 Oct 2017 06:12:45 +0000 (08:12 +0200)]
Even more reorganizing

2 years agoMore reorganizing
coderain [Thu, 5 Oct 2017 16:51:36 +0000 (18:51 +0200)]
More reorganizing

2 years agoMove critical section stuff to sync.c
coderain [Thu, 5 Oct 2017 14:59:58 +0000 (16:59 +0200)]
Move critical section stuff to sync.c

2 years agoReorganize the headers
coderain [Thu, 5 Oct 2017 02:47:38 +0000 (04:47 +0200)]
Reorganize the headers

2 years ago[fat driver] Make sure the device exists
coderain [Sun, 1 Oct 2017 16:37:21 +0000 (18:37 +0200)]
[fat driver] Make sure the device exists

3 years agoBegin the memory manager cleanup
coderain [Sun, 13 Aug 2017 18:51:49 +0000 (20:51 +0200)]
Begin the memory manager cleanup

3 years agoFail open_file_internal if the file is marked as deleted and we don't intend to recre...
coderain [Mon, 24 Jul 2017 21:40:53 +0000 (23:40 +0200)]
Fail open_file_internal if the file is marked as deleted and we don't intend to recreate it

3 years agoMake event watcher lists volume-specific.
coderain [Sun, 23 Jul 2017 04:15:00 +0000 (06:15 +0200)]
Make event watcher lists volume-specific.

3 years agoSpecify the logical type of the reference in a comment near its pointer. Fix bugs...
coderain [Fri, 21 Jul 2017 05:59:07 +0000 (07:59 +0200)]
Specify the logical type of the reference in a comment near its pointer. Fix bugs related to improper reference use.

3 years agoMake wait_directory_event a system call
coderain [Fri, 21 Jul 2017 05:14:03 +0000 (07:14 +0200)]
Make wait_directory_event a system call

3 years agoImplement a subroutine for reporting filesystem events
coderain [Fri, 21 Jul 2017 05:06:03 +0000 (07:06 +0200)]
Implement a subroutine for reporting filesystem events

3 years agoImplement wait_directory_event, and the appropriate cleanup. No actual directory...
coderain [Fri, 21 Jul 2017 04:37:07 +0000 (06:37 +0200)]
Implement wait_directory_event, and the appropriate cleanup. No actual directory events have been defined yet.

3 years agoImplement the basics of a security system for objects.
coderain [Wed, 28 Jun 2017 17:50:14 +0000 (19:50 +0200)]
Implement the basics of a security system for objects.