summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-02CIODevice: Update m_error if a write() fails.Andreas Kling
2019-06-02Kernel: Implement MBR partition loader (#168)Conrad Pankoff
This implements a basic MBR partition loader, which removes the reliance on a hard-coded filesystem offset in the stage2 init.
2019-06-02sync: Make this work for FedoraRobin Burchell
Fedora has grub2-install (rather than grub-install), and it expects grub.cfg to be placed in boot/grub2/ rather than boot/grub/.
2019-06-02Take StringView in more placesRobin Burchell
We should work towards a pattern where we take StringView as function arguments, and store String as member, to push the String construction to the last possible moment.
2019-06-02AK: Add implicit String -> StringView conversionRobin Burchell
And tidy up existing view() users.
2019-06-02Userland: Use CFile in dmesgRobin Burchell
2019-06-02Userland: Use CFile in mmRobin Burchell
2019-06-02Userland: Use CFile in psRobin Burchell
2019-06-02Userland: Use CFile inside sysctlRobin Burchell
Also add a StringView overload to CIODevice::write
2019-06-02Boot: Let's start GRUB with no timeout.Andreas Kling
2019-06-02FileSystem: Rename VFS::fchmod() -> chmod().Andreas Kling
2019-06-02FileSystem: Route chown() and fchown() through VFS for access control.Andreas Kling
2019-06-02FileSystem: Only retrieve inode metadata once in VFS::chown().Andreas Kling
2019-06-02Userland: Add tee command (#166)vger92
2019-06-02Kernel: Rename OffsetDiskDevice to DiskPartitionConrad Pankoff
2019-06-02Kernel: Rename offset parameter of OffsetDiskDevice to block_offsetConrad Pankoff
2019-06-02Kernel: Add DISK_SIZE option to sync.shConrad Pankoff
2019-06-02Kernel: Implement OffsetDiskDevice to prepare for partition supportConrad Pankoff
This implements a passthrough disk driver that translates the read/write block addresses by a fixed offset. This could form the basis of MBR partition support if we were to parse the MBR table at boot and create that OffsetDiskDevice dynamically, rather than seeking to a fixed offset. This also introduces a dependency in the form of grub. You'll need to have 32-bit grub binaries installed to build the project now. As a bonus, divorcing Serenity from qemu's kernel loading means we can now *technically* boot on real hardware. It just... doesn't get very far yet. If you write the `_disk_image` file to an IDE hard drive and boot it in a machine that supports all the basic PC hardware, it *will* start loading the kernel.
2019-06-02Kernel: Memory-mapped files now have the absolute path as their name.Andreas Kling
It's generated when the mapping is first created, so it won't update if the file moves. Maybe that's something we should support, too.
2019-06-02Kernel: Make better use of the multiboot info.Andreas Kling
Define the multiboot info struct properly so we don't have to grab at byte offsets in the memory access checker code. Also print kernel command line in init().
2019-06-02Kernel: Add comment block about File, taking some from Device.Andreas Kling
2019-06-02AK: Add a comment to String about the relationship with StringImpl.Andreas Kling
2019-06-01Kernel: Add fchown() syscall.Andreas Kling
2019-06-01WindowServer+LibGUI: Add a way to bring a window to the front.Andreas Kling
GWindow::move_to_front() can now be used to move a window to the top of the window stack. We use this in Terminal to bring the settings window to the front if it already exists when it's requested, in case it's hiding behind something.
2019-06-01WindowServer: Don't reach the end of mode_to_enum() without returning.Andreas Kling
2019-06-01Kernel: Make File::absolute_path() const.Andreas Kling
2019-06-01FileSystem: Don't create a temporary FileDescriptor every time we stat().Andreas Kling
Instead, move the stat buffer population into InodeMetadata so we can call it directly from VFS::stat() once we have an Inode.
2019-06-01FileSystem: Make Inode::lookup() take a StringView.Andreas Kling
This avoids a lot of String allocation during path resolution.
2019-06-01VM: Get rid of KernelPagingScope.Andreas Kling
Every page directory inherits the kernel page directory, so there's no need to explicitly enter the kernel's paging scope anymore.
2019-06-01Kernel: Set the absolute path as name for executable regions.Andreas Kling
2019-06-01FileSystem: Remove now-unused Inode::parent() and Inode::reverse_lookup().Andreas Kling
These were only used to implement the old path resolution algorithm.
2019-06-01VM: Always flush TLB for kernel page directory changes.Andreas Kling
Since the kernel page directory is inherited by all other page directories, we should always flush the TLB when it's updated.
2019-06-01PNGLoader: Annotate the decompression buffer mmap with a name.Andreas Kling
2019-06-01VM: Don't remap each Region page twice in page_in().Andreas Kling
page_in_from_inode() will map the page after reading it from disk, so we don't need to remap it once again.
2019-06-01Userland: Improve head programConrad Pankoff
* allow specifying files as arguments, e.g. `head a b c` * support multiple files * print a filename header when multiple files are being printed * allow suppression or forcing of filename header via flags This change drops support for the legacy `-123` syntax in favour of the more widely-supported `-n 123` form. fixes #105
2019-06-01LibCore: CObjects without is<T> specialization shouldn't LARP as others.Andreas Kling
2019-06-01ls: Show user name and group name if available. (#151)Mustafa
Fixes #150
2019-06-01Userland: Add a /bin/yes program (fixes #110)Conrad Pankoff
2019-06-01Terminal: Fix insufficient repaint after visual bell clears.Andreas Kling
Also make the bell time a little shorter, 500ms kinda wears on you. :^)
2019-06-01VisualBuilder: Add GRadioButton to the widget repertoire.Andreas Kling
2019-06-01Terminal: Single settings window & consistant visual bell timingChristopher Dumas
2019-06-01Terminal: Settings windows can be opened multiple timesChristopher Dumas
2019-06-01Terminal: Audible vs Visible beep optionChristopher Dumas
2019-05-31FileSystem: Pass mode_t to Inode::add_child().Andreas Kling
This way the Ext2FS code can update its directory entry "file type" fields correctly based on the file mode. This fixes some e2fsck whining.
2019-05-31Update Badge<T> instantiations to simply be {}.Andreas Kling
2019-05-31FileSystem: VFS should require Badge<Device> for device registration.Andreas Kling
2019-05-31FileSystem: Don't expose VFS::root_inode().Andreas Kling
It seems like we don't need to expose this anymore, it's only used by VFS internally to construct the root custody.
2019-05-31FileSystem: Rename VFS::resolve_path_to_custody() => resolve_path().Andreas Kling
2019-05-31FileSystem: Reuse existing custodies when possible, and keep them updated.Andreas Kling
Walk the custody cache and try to reuse an existing one when possible. The VFS is responsible for updating them when something happens that would cause the described relationship to change. This is definitely not perfect but it does work for the basic scenarios like renaming and removing directory entries.
2019-05-31Kernel: Discard a process's ELFLoader on finalization.Andreas Kling
We don't need after that point, and throwing it out might free up some cached data used for backtraces.