Andreas Kling
176f683f66
Kernel: Move Inode to its own files.
2019-05-16 03:02:37 +02:00
Andreas Kling
3cba2a8a78
Kernel: Add a beep() syscall that beeps the PC speaker.
...
Hook this up in Terminal so that the '\a' character generates a beep.
Finally emit an '\a' character in the shell line editing code when
backspacing at the start of the line.
2019-05-15 21:40:41 +02:00
Robin Burchell
ac2a3b65bb
makeall: Use set -e to exit on failure
...
And pretty the building/installing up a little, rather than a huge chain of &&
2019-05-15 21:14:09 +02:00
Robin Burchell
c6bc23a748
makeall: Like BuildIt, respect MAKEJOBS
2019-05-15 21:14:09 +02:00
Andreas Kling
01ffcdfa31
Kernel: Encapsulate the Region's COW map a bit better.
2019-05-14 17:31:57 +02:00
Andreas Kling
7c10a93d48
Kernel: Make allocate_kernel_region() commit the region automatically.
...
This means that kernel regions will eagerly get physical pages allocated.
It would be nice to zero-fill these on demand instead, but that would
require a bunch of MemoryManager changes.
2019-05-14 15:38:00 +02:00
Andreas Kling
9e2116ff6b
Kernel: Signal stacks are lazily allocated so don't crash in getter.
2019-05-14 12:17:59 +02:00
Andreas Kling
486c675850
Kernel: Allocate kernel signal stacks using the region allocator as well.
2019-05-14 12:06:09 +02:00
Andreas Kling
c8a216b107
Kernel: Allocate kernel stacks for threads using the region allocator.
...
This patch moves away from using kmalloc memory for thread kernel stacks.
This reduces pressure on kmalloc (16 KB per thread adds up fast) and
prevents kernel stack overflow from scribbling all over random unrelated
kernel memory.
2019-05-14 11:51:00 +02:00
Andreas Kling
8c3ad802d8
Kernel: Have Lock dump backtrace on lock-while-interrupts-disabled error.
2019-05-14 11:50:15 +02:00
Andreas Kling
dae8eb6454
Kernel: Add support for the PS/2 mouse wheel if detected.
2019-05-13 19:48:14 +02:00
GuillaumeGas
801d6f572a
Feature/pidof ( #31 )
...
* Added killall command
* Fixed feedbacks of awesomekling
* Implemented pidof program and helper to parse arguments called ArgsParser.
* Fixed feedbacks in pidof implem.
Fixes #26
2019-05-13 14:31:23 +02:00
Andreas Kling
b7166385de
RetroFetch: Add a silly neofetch-like program.
...
The idea is to print out various system info suitable for screenshots. :^)
2019-05-13 04:54:48 +02:00
Andreas Kling
090e14d42c
IPv4: Default initialize IPv4Address to 0.0.0.0.
...
IPv4Address() didn't initialize which made for some confusing debugging.
2019-05-10 18:18:54 +02:00
Andreas Kling
99aead4857
Kernel: Add a writev() syscall for writing multiple buffers in one go.
...
We then use this immediately in the WindowServer/LibGUI communication in
order to send both message + optional "extra data" with a single syscall.
2019-05-10 03:19:25 +02:00
Andreas Kling
bd5c79aff2
LibGUI: Start working on a file picker dialog (GFilePicker).
...
Have LibGUI adopt GDirectoryModel from FileManager since it fits perfectly
for the needs of a file picker.
2019-05-09 01:24:37 +02:00
Andreas Kling
b5b44a29bb
Replace various copies of parse_uint(String) with String::to_uint().
2019-05-08 19:21:51 +02:00
Andreas Kling
3ae9fc5d88
Move VisualBuilder into a new DevTools directory.
2019-05-08 13:53:34 +02:00
Andreas Kling
eaf03d4ddb
HelloWorld: Add a simple "Hello World!" app showing the basics.
...
This also introduces a Demos/ directory where I hope to add cool things.
2019-05-08 01:18:36 +02:00
Andreas Kling
ba7364b43b
Shell: Move line editing to a separate class.
...
To be clear, there isn't really any line editing yet. But there is
going to be, so let's have it in its own class.
2019-05-07 01:39:41 +02:00
Andreas Kling
fe73543d41
Shell: Move the Shell to a separate directory and let's call it "Shell" :^)
2019-05-07 01:12:08 +02:00
Andreas Kling
72cbcd8e98
Kernel: Dump backtrace on exit() syscall.
...
This makes assertion failures a lot more pleasant to investigate.
2019-05-06 21:48:48 +02:00
Andreas Kling
6228503c16
Kernel: Add a bit of logging in VMObject::inode_size_changed().
2019-05-04 21:15:59 +02:00
Andreas Kling
932836e3c7
Kernel: Computing the boot timestamp was a bit broken.
2019-05-04 17:05:42 +02:00
Andreas Kling
5e938868a2
IPv4: Rename source/destination in socket classes to local/peer.
...
It was way too ambiguous who's the source and who's the destination, and it
didn't really follow a logical pattern. "Local port" vs "Peer port" is super
obvious, so let's call it that.
2019-05-04 16:40:34 +02:00
Andreas Kling
780d2a08c4
IPv4: Save the source address/port together with incoming packet payloads.
...
We need the address/port to fill in the out-params in recvfrom().
It should now be more or less possible to create a UDP server. :^)
2019-05-04 03:27:50 +02:00
Andreas Kling
c4bb9a3ccb
sync.sh: Add "-f" option to forcibly regenerate _fs_contents from scratch.
...
This might be useful e.g if something goes wrong with the filesystem.
2019-05-04 02:56:21 +02:00
Andreas Kling
f137881147
run: Make it easy to override which qemu executable is used.
...
Patch contributed by "pd"
2019-05-04 02:52:51 +02:00
Andreas Kling
7aba0058ae
sync.sh: Don't regenerate _fs_contents from /dev/zero every time.
...
This makes sync.sh run a lot faster, especially on slower machines.
Patch contributed by "pd"
2019-05-04 02:50:10 +02:00
Andreas Kling
8b249bd09b
Kernel+Userland: Implement mknod() syscall and add a /bin/mknod program.
2019-05-03 22:59:58 +02:00
Andreas Kling
abb5c890e0
IPv4: Implement bind() for TCP and UDP sockets.
...
We can't accept connections just yet, but this patch makes it possible to
bind() to a given source address/port.
2019-05-03 21:51:40 +02:00
Andreas Kling
2470fdcd9b
Kernel: Make Socket inherit from File.
2019-05-03 20:42:43 +02:00
Andreas Kling
03da7046bd
Kernel: Prepare Socket for becoming a File.
...
Make the Socket functions take a FileDescriptor& rather than a socket role
throughout the code. Also change threads to block on a FileDescriptor,
rather than either an fd index or a Socket.
2019-05-03 20:15:54 +02:00
Andreas Kling
34c5db61aa
Kernel: Simplify VMObject::is_anonymous().
...
This doesn't need a separate flag. A VMObject is always anonymous if it has
no backing inode.
2019-05-02 23:34:28 +02:00
Andreas Kling
b8e60b6652
Kernel: Remove unused Region::is_bitmap().
2019-05-02 23:31:11 +02:00
Andreas Kling
25ddcd1022
Kernel: Emit systrace events for exit, thread_exit and sigreturn.
...
Since these syscalls don't return to caller, we have to emit the trace
events manually.
2019-05-02 15:49:48 +02:00
Andreas Kling
c3b7ace3e0
Kernel: Assign Lock names in class member initializers.
2019-05-02 03:28:20 +02:00
Mustafa Ali CAN
9fa8324f7a
Fix jittery mouse
2019-05-01 21:54:41 +02:00
Andreas Kling
28244039a5
Kernel: Don't symbolicate symbol+offset for obvious non-kernel addresses.
2019-04-30 14:47:22 +02:00
Andreas Kling
14ac77131b
Kernel: The exit_thread() syscall should unlock the big lock.
...
Since exit_thread() never returns, it can't rely on the syscall trap handler
to unlock the big lock before returning.
2019-04-29 15:56:25 +02:00
Andreas Kling
d07be1087a
Kernel+LibC: Add exit_thread() syscall.
2019-04-29 15:17:20 +02:00
Andreas Kling
8cbb7f101f
Kernel: Have File virtuals take a FileDescriptor& rather than a Process&.
...
This will allow us to implement different behaviors depending on the role
of the descriptor a File is being accessed through.
2019-04-29 13:58:40 +02:00
Andreas Kling
0a0d739e98
Kernel: Make FIFO inherit from File.
2019-04-29 04:55:54 +02:00
Andreas Kling
475a17fa4b
VFS: Also respect the sticky bit of the new parent in rename().
...
Obviously we should not allow overwriting someone else's files in a sticky
directory either.
2019-04-28 23:34:33 +02:00
Andreas Kling
e4eca17848
VFS: Implement sticky bit behavior for rename() and unlink().
...
Removing entries from a sticky directory is only allowed when you are either
the owner of the entry, or the superuser. :^)
2019-04-28 22:54:30 +02:00
Andreas Kling
a104d7cc93
Kernel: Make SharedMemory inherit from File.
2019-04-28 22:31:31 +02:00
Andreas Kling
a6d407fec5
Ext2FS: Put some debug spam behind EXT2_DEBUG.
2019-04-28 22:14:37 +02:00
Andreas Kling
899f6a5de2
Ext2FS: Support shrinking inode to a smaller size.
...
Factor out inode resizing into a separate Ext2FSInode::resize() function.
This is then called both from write_bytes() and truncate().
This patch finally implements freeing of blocks when an inode shrinks.
2019-04-28 22:07:25 +02:00
Andreas Kling
89df887e1f
Kernel: Dump backtrace on user process page fault.
2019-04-28 22:05:13 +02:00
Andreas Kling
c91b0d6b5f
FileDescriptor: Let TTY handle its own absolute_path().
2019-04-28 15:09:23 +02:00