Andreas Kling
901b7d5d91
Fix a bunch of compiler warnings. Not all, but a lot.
2019-02-25 19:05:51 +01:00
Andreas Kling
a7a456002e
LibC: Enough compat work to make binutils-2.32 build and run.
2019-02-23 17:24:50 +01:00
Andreas Kling
d7753c7c8d
Move over to building all of userspace with i686-pc-serenity-g++.
2019-02-22 14:45:14 +01:00
Andreas Kling
b0d1969ca5
Userland: Fix two compiler warnings.
2019-02-22 10:50:59 +01:00
Andreas Kling
75b100673f
Switch over to building everything with i686-elf-g++.
2019-02-22 10:45:32 +01:00
Andreas Kling
aaa11e3c25
Userland: Fix extra unused printf() argument warning.
2019-02-22 10:32:17 +01:00
Andreas Kling
6d3e12899b
Kernel: Pass process arguments directly on the stack.
...
Get rid of the convoluted get_arguments and get_environment syscalls.
This patch also adds a simple /bin/env that just prints its environment.
2019-02-22 01:55:22 +01:00
Andreas Kling
b30773638e
Userland: Minor tweaks in /bin/su
2019-02-21 23:49:16 +01:00
Andreas Kling
920e8e58ed
Kernel+Userland: Implement setuid() and setgid() and add /bin/su
...
Also show setuid and setgid bits in "ls -l" output. :^)
2019-02-21 23:38:10 +01:00
Andreas Kling
6071a77e8e
Userland: Remove the /bin/sh greeting. It was cute but spammy.
2019-02-21 23:34:14 +01:00
Andreas Kling
43075e5878
Add a simple /bin/df which gathers its info from /proc/df.
2019-02-21 14:48:00 +01:00
Andreas Kling
7d288aafb2
Kernel: Add link() syscall to create hard links.
...
This accidentally grew into a little bit of VFS cleanup as well.
Also add a simple /bin/ln implementation to exercise it.
2019-02-21 13:26:40 +01:00
Andreas Kling
fd575055c2
Userland: /bin/sh shouldn't crash on EINTR.
2019-02-20 23:45:00 +01:00
Andreas Kling
8eedbbc9ca
Prune compiler flags a bit. Let's go with -march=i686 for now.
2019-02-17 15:17:21 +01:00
Andreas Kling
809266a9fb
Kernel: Remove tracking of bitmap memory.
...
There are no more kernel bitmaps. It's much better this way.
2019-02-17 01:16:38 +01:00
Andreas Kling
df6aaaeeef
Enable -Wimplicit-fallthrough.
2019-02-15 12:39:16 +01:00
Andreas Kling
ce74db4e2a
Userland: /bin/ls should display socket files nicely.
2019-02-14 17:30:58 +01:00
Andreas Kling
f529b845ec
WindowServer: Convert entire API to be message-based.
...
One big step towards userspace WindowServer. :^)
2019-02-14 01:21:32 +01:00
Andreas Kling
fbbf57b61c
Rename GUI_Event to GUI_ServerMessage.
...
Now that communication is becoming bidirectional, "event" is no longer right.
2019-02-13 17:59:38 +01:00
Andreas Kling
3351f1ccc1
Port all apps to GApplication.
2019-02-11 14:56:23 +01:00
Andreas Kling
5f288014d4
WindowServer: More work on menus.
2019-02-11 10:08:54 +01:00
Andreas Kling
e1be5a468d
Userland: Add a /bin/pape helper program to switch the desktop wallpaper.
2019-02-08 16:22:54 +01:00
Andreas Kling
736e852525
LibC: Implement enough missing stuff to get bash-5.0 running. :^)
2019-02-08 02:38:21 +01:00
Andreas Kling
5158bee08c
Don't use -mregparm=3 in userspace.
...
It's pretty comfy having arguments in registers in the kernel for now though.
2019-02-08 01:24:52 +01:00
Andreas Kling
887b4a7a1a
Start working on a simple Launcher app.
...
Let GButton have an optional icon (GraphicsBitmap) that gets rendered in the
middle of the button if present.
Also add GraphicsBitmap::load_from_file() which allows mmap'ed RGBA32 files.
I wrote a little program to take "raw" files from GIMP and swizzle them into
the correct byte order.
2019-02-07 23:17:06 +01:00
Andreas Kling
71b9ec1ae0
Kernel: Add basic process priority support.
...
For now, the WindowServer process will run with high priority,
while the Finalizer process will run with low priority.
Everyone else gets to be "normal".
At the moment, priority simply determines the size of your time slices.
2019-02-07 12:21:17 +01:00
Andreas Kling
5582a0a254
Kernel: When a lock is busy, donate remaining process ticks to lock holder.
...
Since we know who's holding the lock, and we're gonna have to yield anyway,
we can just ask the scheduler to donate any remaining ticks to that process.
2019-02-07 11:14:58 +01:00
Andreas Kling
27263b6172
Clean up LDFLAGS a bit.
...
While working on the ELF loader I was trying to keep binaries as simple as
possible so I could understand them easily. Now that the ELF loader is mature
and working fine, we can move closer towards ld defaults.
2019-02-06 14:48:09 +01:00
Andreas Kling
378e20c535
Kernel: Reading from a slave PTY should give EOF if master PTY is closed.
2019-02-05 12:27:32 +01:00
Andreas Kling
3accdb0e93
Handle WindowCloseRequest in FontEditor and /bin/guitest.
2019-02-05 12:07:06 +01:00
Andreas Kling
11db8c1697
Add a simple close button ("X") to windows.
...
Clicking the button generates a WindowCloseRequest event which the client app
then has to deal with. The default behavior for GWindow is to close() itself.
I also added a flag, GWindow::should_exit_event_loop_on_close() which does
what it sounds like it does.
This patch exposed some bugs in GWindow and GWidget teardown.
2019-02-05 10:31:37 +01:00
Andreas Kling
d0078b6574
Clock: Turns the clock window from guitest2 into a separate program.
...
We can't not have a desktop clock app. :^)
2019-02-05 09:44:13 +01:00
Andreas Kling
41567c5bb9
Show the amount of memory in GraphicsBitmaps in /bin/top.
...
This seems like an extremely relevant metric to track.
2019-02-05 09:27:27 +01:00
Andreas Kling
b1e054ffe8
Rename LizaBold to LizaRegular and LizaBlack to LizaBold.
...
LizaRegular is quickly becoming my favorite bitmap font. It's so pretty :^)
2019-02-05 09:08:25 +01:00
Andreas Kling
d7307c3119
Kernel: Ignore SIGCHLD by default.
...
Also use an enum for the rather-confusing return value in dispatch_signal().
I will go through the rest of the signals and set them up with the
appropriate default dispositions at some other point.
2019-02-04 14:06:38 +01:00
Andreas Kling
ba6ffea03c
Kernel: Process should send SIGCHLD to its parent when it dies.
2019-02-04 13:30:03 +01:00
Andreas Kling
7fe600f250
LibGUI: Use LightGray as the base UI color.
...
This feels nicely reminiscent of the gap in time between Win3.11 and Win95,
one of my favorite eras in UI look-and-feel.
2019-02-04 11:53:26 +01:00
Andreas Kling
c0cffe1134
Add a /bin/top program for process table monitoring.
...
It automagically computes %CPU usage based on the number of times a process
has been scheduled between samples. The colonel task is used as idle timer.
This is pretty cool. :^)
2019-02-04 10:28:12 +01:00
Andreas Kling
31f44481f3
Add /dev/{stdin,stdout,stderr} as symlinks to /proc/self/fd/{0,1,2}
...
Also change /bin/cat to open /dev/stdin if no arguments are provided.
2019-02-03 12:38:03 +01:00
Andreas Kling
0c9a2b1430
Kernel: Oops, I mixed up st_dev and st_rdev in struct stat.
2019-02-03 06:23:10 +01:00
Andreas Kling
c2adfd0e2d
LibC: Implement various things to get GNU bc building and running.
...
Looks like that's all we needed, and bc now runs. :^)
2019-02-03 04:32:31 +01:00
Andreas Kling
dd931f136e
guitest2: Stop showing the font test window by default.
2019-02-03 03:36:10 +01:00
Andreas Kling
e2f27aa7b5
Userland: Make /bin/date pretty-print the date, too.
2019-02-03 02:47:37 +01:00
Andreas Kling
10fde0d707
Userland: Pretty-print modification times in /bin/ls.
2019-02-03 02:14:41 +01:00
Andreas Kling
6fc3c38324
Start working on a simple graphical font editor.
...
Editing fonts by editing text files is really slow and boring.
A simple font editor seems like a good way to take LibGUI for a spin.
2019-02-02 08:07:06 +01:00
Andreas Kling
5e0b7f1a56
Add basic automatic dependency management to Makefiles.
2019-02-02 04:41:59 +01:00
Andreas Kling
9153666e72
Userland: /bin/ls shouldn't display inode numbers by default.
...
Added the -i option to ls which turns on inode number display.
2019-01-31 17:34:24 +01:00
Andreas Kling
ffab6897aa
Big, possibly complete sweep of naming changes.
2019-01-31 17:31:23 +01:00
Andreas Kling
e04ba0a83c
Add a simple clock window to guitest2.
...
This is driven by mousedown events right now, since there are no timers.
2019-01-31 16:37:43 +01:00
Andreas Kling
c4fce9b3f9
Make stat() work on device files again.
...
FileDescriptor will now keep a pointer to the original inode even after
opening it resolves to a character device.
Fixed up /bin/ls to display major and minor device numbers instead of size
for device files.
2019-01-31 05:05:57 +01:00