summaryrefslogtreecommitdiff
path: root/Base
AgeCommit message (Collapse)Author
2020-01-23Base: Note in pledge(2) man page which promises are extensionsAndreas Kling
Also add a little "History" section noting that pledge() is an original OpenBSD invention and that our implementation differs in many ways.
2020-01-21Base: Add Nord themeAtilla Lonny
Nord (specifically Polar Night) is a popular soft dark blue/grey theme. Personally, I find it to be a very nice middle-ground between the contrast of the dark and light (default) theme. ![Preview](https://i.imgur.com/6sVnT4i.png)
2020-01-18Kernel: Do not return ENOENT for unresolved symbolsSergey Bugaev
ENOENT means "no such file or directory", not "no such symbol". Return EINVAL instead, as we already do in other cases.
2020-01-17Kernel: Add "accept" pledge promise for accepting incoming connectionsAndreas Kling
This patch adds a new "accept" promise that allows you to call accept() on an already listening socket. This lets programs set up a socket for for listening and then dropping "inet" and/or "unix" so that only incoming (and existing) connections are allowed from that point on. No new outgoing connections or listening server sockets can be created. In addition to accept() it also allows getsockopt() with SOL_SOCKET and SO_PEERCRED, which is used to find the PID/UID/GID of the socket peer. This is used by our IPC library when creating shared buffers that should only be accessible to a specific peer process. This allows us to drop "unix" in WindowServer and LookupServer. :^) It also makes the debugging/introspection RPC sockets in CEventLoop based programs work again.
2020-01-14man: Fix minor inconsistencies in pledge(2) man pageBrian Gianforcaro
- tty promise was listed twice. - Fix a few typos
2020-01-13LibDraw+LibHTML: Make link colors themeableAndreas Kling
Add "Link", "ActiveLink" and "VisitedLink" colors to the system theme definition, and implement support for them in LibHTML. Note that <body link="foo" alink="bar" vlink="baz"> takes precedence over the system colors. Author style also takes precedence, since we only fetch the system color in case the CSS color is -libhtml-link.
2020-01-12Base: Document new chroot abilitiesSergey Bugaev
2020-01-12Kernel+Base: Mount root as nodev,nosuidSergey Bugaev
Then bind-mount /dev and /bin while adding back the appropriate permissions :^)
2020-01-12Base: Tweak language in pledge(2) man pageAndreas Kling
2020-01-12Base: Add a man page about pledge(2)Andreas Kling
2020-01-11Base: Document mount(2) and mount(8)Sergey Bugaev
2020-01-11Base: Apply some filesystem flags by defaultSergey Bugaev
Notably, /tmp is now mounted nodev,nosuid :^)
2020-01-11Base: Run ProtocolServer as a separate "protocol" userAndreas Kling
This is probably not the final design we'll want for this, but for now let's run the HTTP client code as a separate user to reduce exposure for the standard "anon" user account. Note that "protocol" is also added to the "lookup" group, in order to allow ProtocolServer to contact LookupServer for DNS requests.
2020-01-10chroot: Add a little chroot programAndreas Kling
This program changes the current filesystem root and spawns a shell.
2020-01-10FileManager: Add a columns viewSergey Bugaev
This new view, backed by a GColumnsView, joins the existing table and icon views :^) Even though it displays a file tree, its data is provided by the very same GFileSystemModel that the other two views use. This commit also includes my attempt at making an icon for the new mode.
2020-01-09Base: Add a "lookup" user+group that runs LookupServerAndreas Kling
LookupServer now runs as lookup:lookup, allowing connections from other members of the "lookup" group. This is enforced through file system permissions by having the service socket (/tmp/portal/lookup) be mode 0660. Now the LookupServer program can't overwrite other people's files if it starts misbehaving. That's pretty cool :^)
2020-01-09SystemServer: Allow specifying per-service socket file permissionsAndreas Kling
2020-01-07Themes: Support rubberband selection theming0xtechnobabble
2020-01-04Base: Space out some names in app filesJami Kettunen
2020-01-04Base: Add an "audio" group that gets to write to /dev/audioAndreas Kling
2020-01-04Base: Add a "phys" group for users with physical accessAndreas Kling
Only users in this group can access the screen, mouse and keyboard.
2020-01-04SystemServer: Explicitly open /dev/null for services without StdIOAndreas Kling
Spawning services with nothing open at all on the standard I/O fds is way too harsh. We now open /dev/null for them instead.
2020-01-04SystemServer: Fetch any extra GIDs and call setgroups() before spawnAndreas Kling
We now pick up all the user's extra GIDs from /etc/group and make sure those are set before exec'ing a service. This means we finally get to enjoy being in more than one group. :^)
2020-01-04Base: Add "tty" group and make /dev/tty* be root:tty mode 610Andreas Kling
This fixes an issue where anyone could snoop on the virtual consoles.
2020-01-03Keymap+Base: Keycode fixes, remove workaroundTibor Nagy
Add missing keymap entries for the dollar sign and escape key and reformat the Hungarian keymap. Remove the workaround for "0x08", replace it with '\b'. Fix the octal/hex mixup in the value of escape key. (033 != 0x33, 033 == 0x1B)
2020-01-02Kernel: Make the purge() syscall superuser-onlyAndreas Kling
I don't think we need to give unprivileged users access to what is essentially a kernel testing mechanism.
2020-01-02Base: Move the modload and modunload command documentation to man8Andreas Kling
These are system administration commands, not intended for use by all users. These tend to go in section 8.
2020-01-02Base: Remove "idle" priority note from SystemServer(5)Andreas Kling
The "idle" priority was never meant to be exposed to userspace, as it's only used by the kernel's internal idle thread.
2020-01-02Base: Document EPERM error in module_load(2) and module_unload(2)Andreas Kling
Only the superuser can use these system calls.
2020-01-01Kernel: Disable x86 RDTSC instruction in userspaceAndreas Kling
It's still possible to read the TSC via the read_tsc() syscall, but we will now clear some of the bottom bits for unprivileged users.
2020-01-01Kernel: Prevent executing I/O instructions in userspaceAndreas Kling
All threads were running with iomapbase=0 in their TSS, which the CPU interprets as "there's an I/O permission bitmap starting at offset 0 into my TSS". Because of that, any bits that were 1 inside the TSS would allow the thread to execute I/O instructions on the port with that bit index. Fix this by always setting the iomapbase to sizeof(TSS32), and also setting the TSS descriptor's limit to sizeof(TSS32), effectively making the I/O permissions bitmap zero-length. This should make it no longer possible to do I/O from userspace. :^)
2020-01-01Kernel: Enable x86 UMIP (User Mode Instruction Prevention) if supportedAndreas Kling
This prevents code running outside of kernel mode from using the following instructions: * SGDT - Store Global Descriptor Table * SIDT - Store Interrupt Descriptor Table * SLDT - Store Local Descriptor Table * SMSW - Store Machine Status Word * STR - Store Task Register There's no need for userspace to be able to use these instructions so let's just disable them to prevent information leakage.
2019-12-31Base: Update Finnish keymap with proper AltGr supportJami Kettunen
2019-12-31Base: Add Hungarian keymapTibor Nagy
2019-12-31Crash: Add a "Test All Crash Types" optionShannon Booth
Add an option "-A", that will run all of the crash types in the crash program. In this mode, all crash tests are run in a child process so that the crash program does not crash. Crash uses the return status of the child process to ascertain whether the crash happened as expected.
2019-12-30Base: Remove misplaced backtick in syscall(1)Andreas Kling
2019-12-30Base: Add glyph spacing fields to fontsTibor Nagy
2019-12-30Base: Add man page for keymap(1)Jami Kettunen
2019-12-30Base: Add ASCII-friendly fi.jsonJami Kettunen
2019-12-29Base: Add man page for purge(8)Andreas Kling
2019-12-28Base: Add 2x upscaled Liza fontsTibor Nagy
2019-12-27WindowServer: Remove Clock from server.Hüseyin ASLITÜRK
We have clock applet.
2019-12-27PaintBrush: Add an "ellipse tool"Shannon Booth
The tool currently supports drawing an elliptical line of a specified thickness. Further improvements can include adding a fill mode, and holding down shift to draw a perfect circle. Closes #375.
2019-12-26PaintBrush: Add a "rectangle tool"Shannon Booth
Fill, line, and gradient modes initially supported :^)
2019-12-26Base: Add 3x upscaled Liza fontsTibor Nagy
Upscaled with hq3x then cleaned up the glyphs manually.
2019-12-26LibDraw: Add MenuBaseText and MenuSelectionText color rolesAndreas Kling
This allows the very aesthetic "Hotdog Stand" theme to have quite reasonable looking menus.
2019-12-26Base: Add Hotdog Stand themeConrad Pankoff
2019-12-25crash: Add "-X" option for attempting to execute non-executable memoryAndreas Kling
2019-12-24LibDraw: Add ColorRole::BaseText (to be painted on ColorRole::Base)Andreas Kling
2019-12-24Userland: Add syscall -l option and man pageMauri de Souza Nunes