monolithium.git
4 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

4 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

4 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

5 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

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

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

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

6 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

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

7 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

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

8 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

8 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

8 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

8 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

8 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

8 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13 months 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.

13 months 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.

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

13 months 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.

13 months 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.

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

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

13 months 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.

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

14 months 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.

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

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

15 months 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.

17 months 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.

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

17 months 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.

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

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

19 months 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

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

19 months 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.

21 months 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

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

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

21 months 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

21 months 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.

21 months 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

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

21 months 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

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

21 months 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

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

21 months 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

21 months 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

21 months 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)

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

21 months 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

21 months 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

21 months 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

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

22 months 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

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

22 months 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()

22 months 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

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

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

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

22 months 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

22 months 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

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

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

22 months 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

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

22 months 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

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

2 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

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

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

2 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

2 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

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

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