1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-29 16:07:46 +00:00

Commit graph

  • 3253a23b91 Add a simplified waitpid() so that sh can wait on spawned commands. Andreas Kling 2018-10-24 00:20:34 +02:00
  • 018da1be11 Generalize the SpinLock and move it to AK. Andreas Kling 2018-10-23 23:32:53 +02:00
  • e4bfcd2346 Add "times scheduled" field to /proc/summary Andreas Kling 2018-10-23 15:59:38 +02:00
  • 44045b258c Teach MM to flush individual TLB entries only. Andreas Kling 2018-10-23 15:53:11 +02:00
  • 3676214a62 Remove remains of the old "panel" task. Andreas Kling 2018-10-23 15:47:03 +02:00
  • d90d125dfe Add an undertaker task that is responsible for destroying dead tasks. Andreas Kling 2018-10-23 15:41:55 +02:00
  • 1c1d0f5362 ExecSpace should free its own allocations on destruction. Andreas Kling 2018-10-23 15:31:23 +02:00
  • ccd15e0590 Various things: Andreas Kling 2018-10-23 15:19:02 +02:00
  • c80a1f39ce Minor userland tweaks. Andreas Kling 2018-10-23 13:57:17 +02:00
  • 71ed63c91d Assume commands are binaries in /bin for now. Andreas Kling 2018-10-23 13:05:50 +02:00
  • d133a2845f Add missing TLB flushes. Andreas Kling 2018-10-23 13:03:11 +02:00
  • 77821da42f Also send console output to port 0xe9 (bochs console.) Andreas Kling 2018-10-23 13:02:38 +02:00
  • 63e253bac9 Generate a basic /proc/summary file with some info about all tasks. Andreas Kling 2018-10-23 12:44:46 +02:00
  • ed2422d7af Start adding a basic /proc filesystem and a "ps" utility. Andreas Kling 2018-10-23 11:57:38 +02:00
  • 98f76f0153 Flush the TLB after modifying page tables. Andreas Kling 2018-10-23 11:03:56 +02:00
  • 56ed448424 Move ELFLoader debug output behind flags. Andreas Kling 2018-10-23 11:03:26 +02:00
  • fe237ee215 Lots of hacking: Andreas Kling 2018-10-23 10:12:50 +02:00
  • 72514c8b97 Don't use doubles in RandomDevice. Andreas Kling 2018-10-23 00:35:11 +02:00
  • c8b7173aa8 Add a CircularQueue template class to AK. Andreas Kling 2018-10-22 22:46:02 +02:00
  • b824f15619 Launching an arbitrary ELF executable from disk works! :^) Andreas Kling 2018-10-22 15:42:39 +02:00
  • befeabd8fe Okay, with some mucking around, there is now a /bin/id and it runs! Andreas Kling 2018-10-22 14:41:54 +02:00
  • 38a621c721 Link "id" against the LibC. Andreas Kling 2018-10-22 14:13:17 +02:00
  • 63764b3a65 Import very modest Userland. Andreas Kling 2018-10-22 14:06:22 +02:00
  • 4cbf079a17 Start work on a standard C library. I'm calling it... LibC. Andreas Kling 2018-10-22 13:57:25 +02:00
  • 85bcf2ed0f Add getgid() and getpid() syscalls. Prep for LibC. Andreas Kling 2018-10-22 13:55:11 +02:00
  • bae59609e3 Move kprintf to its own file. It has nothing to do with VGA anymore. Andreas Kling 2018-10-22 13:20:35 +02:00
  • 702d308e67 Oops, StringImpl's "the empty string" global was not always initialized. Andreas Kling 2018-10-22 13:10:08 +02:00
  • c5e55f4737 Use UD2 instead of CLI;HLT for CRASH(). Andreas Kling 2018-10-22 13:07:06 +02:00
  • a9ca75c98b Add IRQHandler class that can be subclasses to handle an IRQ. Andreas Kling 2018-10-22 12:58:29 +02:00
  • 8f941561b4 Add ALWAYS_INLINE macro. Andreas Kling 2018-10-22 12:55:59 +02:00
  • ba185e3eba Zero out VirtualFileSystem::s_the in initializeGlobals(). Andreas Kling 2018-10-22 12:54:19 +02:00
  • e4afa2a041 Tweak _test.o to use the putch() syscall. Andreas Kling 2018-10-22 11:53:30 +02:00
  • 3a3c57357c Add a sys$exit and make init_stage2 call it when finished. Andreas Kling 2018-10-22 11:43:55 +02:00
  • 79ffdb7205 A lot of hacking: Andreas Kling 2018-10-22 11:15:16 +02:00
  • df4fdd6f1e printf format fixups in ELFLoader. Andreas Kling 2018-10-22 00:29:35 +02:00
  • 09fc9c0698 Make Console::m_rows/m_columns const for now. Andreas Kling 2018-10-21 23:48:50 +02:00
  • e38f40a83c Add an InlineLinkedList::containsSlow(T*) helper. Andreas Kling 2018-10-21 23:48:27 +02:00
  • a89bebfda4 printf -> kprintf Andreas Kling 2018-10-21 23:48:13 +02:00
  • fc88368582 Have Console::write() directly call vga_putch. Andreas Kling 2018-10-21 22:11:46 +02:00
  • a70bfb87d5 Add a Console device and start refactoring screen output. Andreas Kling 2018-10-21 21:59:43 +02:00
  • d5ec18027e Protect the first 4 KB of memory. Andreas Kling 2018-10-21 21:57:59 +02:00
  • dd6706a1a1 Fix null deref in contextSwitch(). Andreas Kling 2018-10-21 21:57:43 +02:00
  • 2f99ff801e Move post-boot kernel stack pointer to 0x4000. Andreas Kling 2018-10-21 21:51:12 +02:00
  • 46ff281695 Turn the syscall interrupt into a trap (by switching the gate type.) Andreas Kling 2018-10-19 11:28:43 +02:00
  • 2d1d01661b Add a way to initialize VFS globals. Andreas Kling 2018-10-19 11:20:49 +02:00
  • 97e0d75bcb ELFLoader works inside the kernel! Andreas Kling 2018-10-18 15:38:04 +02:00
  • 6ab0649ad6 ksprintf() should null-terminate strings. Andreas Kling 2018-10-18 15:24:07 +02:00
  • c149d2a8f0 Build ELFLoader into Kernel. Andreas Kling 2018-10-18 15:03:10 +02:00
  • 3649638259 Add Regions concept to Task. Andreas Kling 2018-10-18 14:53:00 +02:00
  • 5b10846bed Add a simple ELF binary called _test.o to the test fs. Andreas Kling 2018-10-18 13:16:30 +02:00
  • f67d695254 More paging stuff. Andreas Kling 2018-10-18 13:05:00 +02:00
  • 89851a9ded Use FileHandle from VFS. Andreas Kling 2018-10-18 10:28:09 +02:00
  • e86cadc7af Add an fd field to FileHandle in Kernel builds. Andreas Kling 2018-10-18 10:27:07 +02:00
  • 9d5de91cf3 Actually destroy tasks after they crash. Andreas Kling 2018-10-18 00:26:30 +02:00
  • 1a801e5737 Hang if we GPF in ring 0. Andreas Kling 2018-10-18 00:12:52 +02:00
  • 56c1f9db8e A userspace process can now GPF and the OS goes on! Andreas Kling 2018-10-17 23:49:32 +02:00
  • 77299cf54d Add basic paging. Only identity maps the bottom 4MB as a start. Andreas Kling 2018-10-17 23:13:55 +02:00
  • 286e27ef40 Allow running in QEMU with "./run q" Andreas Kling 2018-10-17 16:58:35 +02:00
  • 8ff394f83f Fix a dumb in buffer_putch. Andreas Kling 2018-10-17 16:56:47 +02:00
  • 9aa88fe186 Add a PIC::getISR() helper. Andreas Kling 2018-10-17 16:53:06 +02:00
  • e0f31d38a2 Add -fno-pic -fno-pie to build flags. Andreas Kling 2018-10-17 16:49:30 +02:00
  • f82b25d4f9 Fix some minor build warnings. Andreas Kling 2018-10-17 16:48:16 +02:00
  • 347e202f7f Add size_t and ssize_t to kernel builds. Andreas Kling 2018-10-17 16:47:19 +02:00
  • 7580ac576f Make VFS host build work again. Andreas Kling 2018-10-17 12:23:19 +02:00
  • 39fa1eb2c2 Print the contents of motd.txt on boot. Andreas Kling 2018-10-17 12:07:39 +02:00
  • 705832f387 List the root directory after mounting /. Andreas Kling 2018-10-17 11:47:14 +02:00
  • b05ed591ab VFS mounts an ext2fs root! :^) Andreas Kling 2018-10-17 11:44:06 +02:00
  • d2425495ca VirtualFileSystem class builds inside Kernel. Andreas Kling 2018-10-17 11:40:58 +02:00
  • 9171521752 Integrate ext2 from VFS into Kernel. Andreas Kling 2018-10-17 10:55:43 +02:00
  • aec8ab0a60 Add the basic character devices to kernel. Andreas Kling 2018-10-16 14:33:16 +02:00
  • 12e515735b Add a simple IDEDiskDevice class that implements DiskDevice from VFS. Andreas Kling 2018-10-16 14:17:43 +02:00
  • 8293a0ff36 Rework DiskDevice's read() and write() to be non-virtual wrappers. Andreas Kling 2018-10-16 14:11:58 +02:00
  • cafb5b2ad6 Fixup small.fs again. Andreas Kling 2018-10-16 14:00:44 +02:00
  • 5d465582a3 Start fixing up AK to work inside the kernel. Andreas Kling 2018-10-16 13:59:28 +02:00
  • 1203c327c7 Merge some features from gerbert into OwnPtr and RetainPtr. Andreas Kling 2018-10-16 12:20:51 +02:00
  • fd708a4cb1 Reduce dependence on STL. Andreas Kling 2018-10-16 12:10:01 +02:00
  • 0c1a4e8de3 Add String::substring(). Andreas Kling 2018-10-16 11:42:39 +02:00
  • 9cd0a34b5c BlockDevice -> DiskDevice. Andreas Kling 2018-10-16 11:21:49 +02:00
  • 72bb80a9ae These changes were lying around uncommitted in the old repo. Andreas Kling 2018-10-16 11:06:35 +02:00
  • 87d41bdca4 If an interrupt comes from the slave PIC, both PICs need an EOI. Andreas Kling 2018-10-16 11:05:29 +02:00
  • 9396108034 Import the "gerbert" kernel I worked on earlier this year. Andreas Kling 2018-10-16 11:01:38 +02:00
  • f608629704 Implement creating a new directory. Andreas Kling 2018-10-16 00:35:03 +02:00
  • 5c50d02c2e Fix bug where allocating a new inode forgot that inodes are 1-based. Andreas Kling 2018-10-15 02:39:55 +02:00
  • b0eaca436c "stat" command should print st_mode in octal. Andreas Kling 2018-10-15 02:12:09 +02:00
  • 47fc6344ac Support the ext2 directory entry file_type field. Andreas Kling 2018-10-15 01:57:57 +02:00
  • e7901476d3 Bring back the intentionally broken symlink I had for testing. Andreas Kling 2018-10-15 00:58:21 +02:00
  • 05b088ee2f Add a simple /dev/random. Andreas Kling 2018-10-15 00:44:54 +02:00
  • 9528edab92 Move readEntireInode() up to FileSystem (from ext2.) Andreas Kling 2018-10-15 00:16:14 +02:00
  • 0286b5ea48 Add a "stat" command to test FileHandle::stat(). Andreas Kling 2018-10-14 23:39:11 +02:00
  • c7c957966a Implement SyntheticFileSystem::readInodeBytes(). Andreas Kling 2018-10-14 23:13:45 +02:00
  • 1f41a36c52 Add a Unix namespace for foo_t types. Andreas Kling 2018-10-14 22:57:41 +02:00
  • c6d6ba7512 Minor errno fixups. Andreas Kling 2018-10-14 22:16:28 +02:00
  • 39444c5916 Fix HashTable::find() return iterator for items found in non-0 buckets. Andreas Kling 2018-10-14 22:08:36 +02:00
  • c94044a04a Work on POSIX-like read() and lseek() support. Andreas Kling 2018-10-14 21:19:27 +02:00
  • 9f9b4a2382 Add a simple /dev/full. Andreas Kling 2018-10-14 13:16:09 +02:00
  • fc1facf5c0 Let widget have a font() instead of using Font::defaultFont() everywhere. Andreas Kling 2018-10-14 13:06:05 +02:00
  • e5acbca0e8 Disable the "create /empty" test path for now. Andreas Kling 2018-10-14 03:02:28 +02:00
  • 93556d6743 Add basic character device support. Start with null and zero. Andreas Kling 2018-10-14 02:59:22 +02:00
  • fa3b11ac64 Parse out major/minor device from character and block device inodes. Andreas Kling 2018-10-14 02:24:12 +02:00
  • 03a0dc0103 Add a /dev/zero to the small.fs image. Andreas Kling 2018-10-14 02:06:43 +02:00