Commit Graph

143 Commits

Author SHA1 Message Date
e8730b145a Make usermode programs hosted, and add noreturn to exit. 2019-08-26 07:43:25 -05:00
d186939f87 start.asm now calls exit with a 0 exit code 2019-08-25 17:41:13 -05:00
c8a3a49b87 Forgot to change kernel exit code back to 0 2019-08-25 17:33:05 -05:00
3ca8b5a232 Add a very basic exit function and fix kmalloc.
Exit function does not deallocate task memory except for the data block, 
and does not are about the exit code except for logging.
2019-08-25 17:32:08 -05:00
5a5fee4d74 Tasks now are a doubly-linked list 2019-08-25 17:06:19 -05:00
d12421a7c8 Add a serial_print syscall 2019-08-25 13:52:56 -05:00
2827a2d7ba Mailbox code did not save mailbox data upon returning from functions 2019-08-25 13:52:31 -05:00
895bd9613e Add a serial log if a PID yield is tried for a nonexistent pid. 2019-08-05 14:23:54 -05:00
7d25533307 Fix serial logging for getting a message 2019-08-05 14:23:27 -05:00
99522efde5 Add a kernel serial driver and a yieldToPID function. 2019-08-04 13:14:35 -05:00
e80d084584 Sync repo with code for IRC help 2019-08-03 15:50:23 -05:00
05c1e20aa6 Remove magic breakpont afer paging init 2019-08-02 19:55:59 -05:00
823a255e1a Fix vfs saying the message was sent from init's stdio mailbox.
Unfortunately, this breaks the VFS, so the rest of this commit attempts 
(and fails) to fix it.
2019-07-27 11:11:28 -05:00
7974c1e026 Get VFS workng and start on fputc. Debugger is currently broken :( 2019-07-20 11:03:27 -05:00
d62ccb0dc1 Add a process to act as a filesytem driver and get a .gdbinit file setup
.gdbinit is used to make it easier to debug userspace processes
2019-07-13 10:18:41 -05:00
74cdc67dce Fix/ignore all the warnings 2019-07-01 15:30:00 -05:00
aef1d74750 Finish fopen in the vfs and hopefully add a working fopen in stdio.c 2019-07-01 15:13:47 -05:00
7611d929a3 Fix most warnings 2019-06-29 09:04:34 -05:00
51bb986d76 Change IPC to a mailbox-based system
Instead of using PIDs to identify a destination, a process can have one 
or more mailboxes to send messages to.
2019-06-27 17:00:23 -05:00
9db6bf61ca Start work on making IPC use a mailbox approach 2019-06-24 13:24:39 -05:00
ade1521bc4 Copy message data from kspace into uspace upon receiving message.
Fixes #30
2019-06-22 15:42:06 -05:00
1216d4c000 Store size of message in buffer 2019-06-22 15:29:02 -05:00
7ee2472fe5 Get IPC working 2019-06-22 11:11:12 -05:00
8bdbe06b8c Move kernel stacks into common memory and fix tasking. 2019-06-22 10:21:50 -05:00
997927fea4 Add a limit of 24k tasks ever being created. 2019-06-17 08:20:36 -05:00
c295d56ae8 IPC now uses a buffer in the task structure 2019-06-17 08:14:45 -05:00
c4d39011cd Fix unmap_pages not invalidating entries 2019-06-17 06:58:31 -05:00
9654487b5b add unmap_pages 2019-05-28 16:05:51 -05:00
38c39611fd load_address_space now uses load_smap 2019-05-25 16:00:52 -05:00
e0a6ebc0b3 load_smap now invaliadtes pages 2019-05-25 16:00:33 -05:00
f68cf49a15 copy_data and put_data now use load_smap 2019-05-25 16:00:12 -05:00
c036eb1e9a revert to old build system 2019-05-25 10:35:31 -05:00
b28234806b ignore more build products 2019-05-25 10:16:39 -05:00
09206d0645 fix files looking for ports.h in wrong place 2019-05-25 10:13:59 -05:00
30e043955b Add empty vfs program and fix tar parsing 2019-05-24 11:52:13 -05:00
382bd0c5e9 large restructure 2019-05-24 09:51:45 -05:00
7f25b58910 move cpu folder into kernel folder 2019-05-24 09:04:31 -05:00
2fac49887f Kernel now passes initrd and size to init 2019-05-24 08:54:14 -05:00
3a6f95a86a Every task now takes two parameters in the tasking code 2019-05-23 20:21:51 -05:00
63b46be967 Move initrd to tar 2019-05-23 17:38:26 -05:00
9d2c37329f Add an x variable to the vga error driver in the kernel 2019-05-23 09:44:40 -05:00
204fec4407 Remove all drivers and fs code from kernel 2019-05-22 14:18:29 -05:00
3448e834e8 Tasking finally works!! 2019-05-21 19:16:19 -05:00
613f77f949 Start large change of tasking system 2019-05-11 10:11:28 -05:00
68b6a77a65 Fix warnings 2019-05-06 08:38:02 -05:00
3856a5dc0a Get init loaded as a separate process 2019-05-06 08:24:57 -05:00
21a395de3b Remove logging messages in kernel and fix some warnings 2019-05-05 07:27:57 -05:00
361bfb0aa8 Kernel code now only loads init 2019-05-03 08:34:22 -05:00
f43d8e3af4 Run program at end of init() 2019-05-01 19:40:59 -05:00
50b0c0a4c4 Move _start to a dedicated file 2019-05-01 11:55:54 -05:00
593e618318 Remove some logging 2019-05-01 09:41:31 -05:00
3691d6b1f5 Essentially merge ext-prog-libc 2019-05-01 09:39:23 -05:00
5cb95d816f long mode paging work 2019-04-30 17:11:26 -05:00
83e1f27567 i386 moved to multiboot2 and x86_64 has physical memory manager 2019-04-27 15:03:31 -05:00
c6bca7f177 Add long mode IDT 2019-04-27 09:51:32 -05:00
5384ec3af0 Add VGA driver 2019-04-26 10:03:16 -05:00
fbef5710ed Long mode works!!! 2019-04-26 09:47:57 -05:00
e10fe99d05 Remove long mode env 2019-04-26 09:20:07 -05:00
c75aa35e1b Long mode work 2019-04-25 15:46:48 -05:00
e51f3e4db2 Start work on x86_64 platform 2019-04-22 13:18:27 -05:00
d8dade3fb3 Fix platform-specific makefile 2019-04-22 08:39:46 -05:00
d78e7743ce Fix warnings 2019-04-21 14:19:52 -05:00
16c8742bef Work on adding partition support 2019-04-18 08:50:49 -05:00
3fa4438289 Start work on ext2 file writing 2019-04-13 11:17:46 -05:00
97f18478ed Fix fwrite 2019-04-09 18:12:54 -05:00
1c832e8f7a Add r+ mode to VFS 2019-04-09 18:10:43 -05:00
f4b82ec850 Added fwrite 2019-04-09 09:16:37 -05:00
680defd654 VFS functions now check mode 2019-04-09 09:05:47 -05:00
ad3c8288b6 Add read bool and write bool to file structure 2019-04-09 09:01:06 -05:00
4a36e8e9ad Fix error handling of vfs functions 2019-04-08 16:34:07 -05:00
a938ed448e Added feof and ferror 2019-04-08 16:33:49 -05:00
9c0ccfd255 Added error indicator in stream 2019-04-08 16:33:19 -05:00
edded2e3a1 Added errno 2019-04-08 15:58:30 -05:00
0f406b1f01 Got ext2 directory support working 2019-04-08 11:24:03 -05:00
4b3384e45d Work on ext2 directory support 2019-04-07 15:14:46 -05:00
20ae5d1a31 Add IDE driver and r/o ext2 fs driver 2019-04-06 09:07:06 -05:00
ed591187a1 Files now do not reference libc paths directly 2019-03-30 10:39:26 -05:00
bfc3964804 Memory allocation is now a syscall 2019-03-17 12:22:00 -05:00
d9252649d8 Physical memory manager now initialized in cpu_init 2019-03-17 12:21:23 -05:00
99d7fed783 Work and cleanup 2019-03-11 09:32:55 -05:00
7131f4ae5a Lots of work 2019-02-25 15:42:23 -06:00
d54a55aad0 Get sycalls working in usermode (And all interrupts) 2019-02-11 13:43:40 -06:00
b3e086e452 Add createTask syscall (Not working in umode) 2019-02-11 09:48:50 -06:00
4f25ff7a09 Add yield syscall (Not working in umode) 2019-02-11 09:47:28 -06:00
fdd7afa1c8 Add tasking (No usermode support) 2019-02-11 09:30:28 -06:00
cb16df6240 Usermode can now use ports! (IOPB test) 2019-02-10 18:09:07 -06:00
03109a25ca Add newline to UMODE! message 2019-02-10 15:05:03 -06:00
a12c1281ff Usermode interupts working! 2019-02-10 15:03:59 -06:00
ee9839beaa Get GDT,IDT and usermode working! 2019-02-10 14:11:07 -06:00
60c56c064d Start work on VGA driver 2019-02-09 14:35:29 -06:00
65b629e74a Read framebuffer info from GRUB 2019-02-09 14:33:29 -06:00
1a36bf1fe2 Add multiboot header file 2019-02-09 13:56:22 -06:00
ef90f51688 Remove most code for a blank start 2019-02-09 12:52:45 -06:00