1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:48:11 +00:00

Everywhere: Remove unnecessary whitespace at the end of some lines.

This commit is contained in:
Emanuele Torre 2021-03-08 00:19:37 +01:00 committed by Andreas Kling
parent 6749ba3477
commit 1f81bc6879
32 changed files with 76 additions and 76 deletions

View file

@ -3,7 +3,7 @@ function foo() {
function bar() { function bar() {
var y = 6; var y = 6;
} }
bar(); bar();
return y; return y;
} }

View file

@ -8,7 +8,7 @@ $(PROGRAM): $(OBJS)
$(CXX) -o $@ $(OBJS) $(CXX) -o $@ $(OBJS)
%.o: %.cpp %.o: %.cpp
$(CXX) $(CXXFLAGS) -o $@ -c $< $(CXX) $(CXXFLAGS) -o $@ -c $<
clean: clean:
rm $(OBJS) $(PROGRAM) rm $(OBJS) $(PROGRAM)

View file

@ -50,15 +50,15 @@
<div id=righty2>R2</div> <div id=righty2>R2</div>
</div> </div>
<div> <div>
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
<div id=clearo></div> <div id=clearo></div>
<div> <div>
<div id=lefty3>L3</div> <div id=lefty3>L3</div>
<div id=righty3>R3</div> <div id=righty3>R3</div>
</div> </div>
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</div> </div>
</body> </body>

View file

@ -51,10 +51,10 @@
<div id=righty3>R3</div> <div id=righty3>R3</div>
</div> </div>
<div> <div>
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum
</div> </div>
</body> </body>

View file

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<style> <style>
#b { #b {
border: 1px solid red; border: 1px solid red;
width: 50px; width: 50px;
height: 50px; height: 50px;

View file

@ -8,7 +8,7 @@
--------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------
228 ä &#228; &#xE4; U+00E4 C3 A4 LATIN SMALL LETTER A WITH DIAERESIS 228 ä &#228; &#xE4; U+00E4 C3 A4 LATIN SMALL LETTER A WITH DIAERESIS
229 å &#229; &#xE5; U+00E5 C3 A5 LATIN SMALL LETTER A WITH RING 229 å &#229; &#xE5; U+00E5 C3 A5 LATIN SMALL LETTER A WITH RING
287 ğ &#287; &#x11F; U+011F C4 9E LATIN SMALL LETTER G WITH BREVE 287 ğ &#287; &#x11F; U+011F C4 9E LATIN SMALL LETTER G WITH BREVE
252 ü &#252; &#xFC; U+00FC C3 BC LATIN SMALL LETTER U WITH DIAERESIS 252 ü &#252; &#xFC; U+00FC C3 BC LATIN SMALL LETTER U WITH DIAERESIS
351 ş &#351; &#x15F; U+015F C5 9F LATIN SMALL LETTER S WITH CEDILLA 351 ş &#351; &#x15F; U+015F C5 9F LATIN SMALL LETTER S WITH CEDILLA

View file

@ -38,7 +38,7 @@
width: 50px; width: 50px;
height: 50px; height: 50px;
top: 50px; top: 50px;
left: 50px; left: 50px;
} }
.blue_margin { .blue_margin {
width: 200px; width: 200px;

View file

@ -1,6 +1,6 @@
{ {
"map": [ "", "\u001B", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "+", "\b", "\t", "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "š", "đ", "\n", "", "a", "s", "d", "f", "g", "h", "j", "k", "l", "č", "ć", "¸", "", "ž", "y", "x", "c", "v", "b", "n", "m", ",", ".", "-", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "<", "", "", ""], "map": [ "", "\u001B", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "+", "\b", "\t", "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "š", "đ", "\n", "", "a", "s", "d", "f", "g", "h", "j", "k", "l", "č", "ć", "¸", "", "ž", "y", "x", "c", "v", "b", "n", "m", ",", ".", "-", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "<", "", "", ""],
"shift_map": [ "", "\u001B", "!", "\"", "#", "$", "%", "&", "/", "(", ")", "=", "?", "*", "\b", "\t", "Q", "W", "E", "R", "T", "Z", "U", "I", "O", "P", "Š", "Đ", "\n", "", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Č", "Ć", "¨", "", "Ž", "Y", "X", "C", "V", "B", "N", "M", ";", ":", "_", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", ">", "", "", ""], "shift_map": [ "", "\u001B", "!", "\"", "#", "$", "%", "&", "/", "(", ")", "=", "?", "*", "\b", "\t", "Q", "W", "E", "R", "T", "Z", "U", "I", "O", "P", "Š", "Đ", "\n", "", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Č", "Ć", "¨", "", "Ž", "Y", "X", "C", "V", "B", "N", "M", ";", ":", "_", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", ">", "", "", ""],
"alt_map": [ "", "\u001B", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "+", "\b", "\t", "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "š", "đ", "\n", "", "a", "s", "d", "f", "g", "h", "j", "k", "l", "č", "ć", "¸", "", "ž", "y", "x", "c", "v", "b", "n", "m", ",", ".", "-", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "<", "", "", ""], "alt_map": [ "", "\u001B", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "+", "\b", "\t", "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "š", "đ", "\n", "", "a", "s", "d", "f", "g", "h", "j", "k", "l", "č", "ć", "¸", "", "ž", "y", "x", "c", "v", "b", "n", "m", ",", ".", "-", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "<", "", "", ""],
"altgr_map": [ "", "\u001B", "~", "", "^", "", "", "", "`", "", "", "", "", "", "\b", "\t", "\\", "|", "€", "", "", "", "", "", "", "", "÷", "×", "\n", "", "", "", "", "[", "]", "", "", "ł", "Ł", "", "ß", "", "", "¤", "", "", "", "@", "{", "}", "§", "<", ">", "", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "", "", "", ""] "altgr_map": [ "", "\u001B", "~", "", "^", "", "", "", "`", "", "", "", "", "", "\b", "\t", "\\", "|", "€", "", "", "", "", "", "", "", "÷", "×", "\n", "", "", "", "", "[", "]", "", "", "ł", "Ł", "", "ß", "", "", "¤", "", "", "", "@", "{", "}", "§", "<", ">", "", "", "*", "", " ", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "0", ",", "", "", "", "", ""]
} }

View file

@ -58,5 +58,5 @@ $ syscall exit 2
## History ## History
This is a direct port of a utility with the same name originated from the Plan 9 operating system. This is a direct port of a utility with the same name originated from the Plan 9 operating system.

View file

@ -10,7 +10,7 @@ $ unzip file.zip
## Description ## Description
unzip will extract files from a zip archive to the current directory. unzip will extract files from a zip archive to the current directory.
The program is compatible with the PKZIP file format specification. The program is compatible with the PKZIP file format specification.

View file

@ -12,7 +12,7 @@ int set_process_name(const char* name, size_t name_length);
## Description ## Description
`set_process_name()` changes the name of the calling process to the string `name` with length `name_length`. `set_process_name()` changes the name of the calling process to the string `name` with length `name_length`.
## Pledge ## Pledge

View file

@ -29,7 +29,7 @@ A `posix_spawn_file_actions_t` object is allocated on the stack but starts in an
`posix_spawn_file_actions_destroy()` frees up resources used by a valid `posix_spawn_file_actions_t` object and puts it into an undefined state. It has to be called after a `posix_spawn_file_actions_t` object is no longer needed. `posix_spawn_file_actions_destroy()` frees up resources used by a valid `posix_spawn_file_actions_t` object and puts it into an undefined state. It has to be called after a `posix_spawn_file_actions_t` object is no longer needed.
It is valid to alternatingly call `posix_spawn_file_actions_init()` and `posix_spawn_file_actions_destroy()` on the same object, It is valid to alternatingly call `posix_spawn_file_actions_init()` and `posix_spawn_file_actions_destroy()` on the same object,
`posix_spawn_file_actions_addchdir()` and `posix_spawn_file_actions_addfchdir()` make `posix_spawn()` change the current working directory before spawning a process, like `chdir` and `fchdir` would.. The current working directory affects the spawned child process, but also relative paths passed to later `posix_spawn_file_actions_add(f)chdir()` and `posix_spawn_file_actions_addopen()`, and relative paths passed to `posix_spawn()` for the executable path. `posix_spawn_file_actions_addchdir()` and `posix_spawn_file_actions_addfchdir()` make `posix_spawn()` change the current working directory before spawning a process, like `chdir` and `fchdir` would.. The current working directory affects the spawned child process, but also relative paths passed to later `posix_spawn_file_actions_add(f)chdir()` and `posix_spawn_file_actions_addopen()`, and relative paths passed to `posix_spawn()` for the executable path.

View file

@ -44,7 +44,7 @@ A `posix_spawnattr_t` object is allocated on the stack but starts in an undefine
`posix_spawnattr_destroy()` frees up resources used by a valid `posix_spawn_file_actions_t` object and puts it into an undefined state. It has to be called after a `posix_spawnattr_t` object is no longer needed. `posix_spawnattr_destroy()` frees up resources used by a valid `posix_spawn_file_actions_t` object and puts it into an undefined state. It has to be called after a `posix_spawnattr_t` object is no longer needed.
It is valid to alternatingly call `posix_spawnattr_init()` and `posix_spawnattr_destroy()` on the same object, It is valid to alternatingly call `posix_spawnattr_init()` and `posix_spawnattr_destroy()` on the same object,
`posix_spawnattr_setflags()` configures which attributes of the new child process `posix_spawn()` will set. It receives a bitmask that can contain: `posix_spawnattr_setflags()` configures which attributes of the new child process `posix_spawn()` will set. It receives a bitmask that can contain:

View file

@ -8,7 +8,7 @@ mem - physical system memory
the physical memory. the physical memory.
Trying to [`mmap`(2)](../mmap.md) a physical range results either with success, Trying to [`mmap`(2)](../mmap.md) a physical range results either with success,
or with an error. When invoking [`mmap`(2)](../mmap.md) on bad memory range, or with an error. When invoking [`mmap`(2)](../mmap.md) on bad memory range,
the kernel will write a message about it to the kernel log. the kernel will write a message about it to the kernel log.
By default, the kernel limits the areas which can be accessed. The allowed areas By default, the kernel limits the areas which can be accessed. The allowed areas

View file

@ -148,7 +148,7 @@ Commands can be either calls to Shell builtins, or external programs.
The commands can be composed into semantic elements, producing composite commands: The commands can be composed into semantic elements, producing composite commands:
### Sequences ### Sequences
A sequence of commands, executed serially independent of each other: `Commanad ; Command ; Command ...` A sequence of commands, executed serially independent of each other: `Commanad ; Command ; Command ...`
It should be noted that a newline (`\\n`) can be substituted for the semicolon (`;`). It should be noted that a newline (`\\n`) can be substituted for the semicolon (`;`).

View file

@ -90,7 +90,7 @@ It was first enabled in the following [commit](https://github.com/SerenityOS/ser
``` ```
commit 823186031d9250217f9a51829d34a96b74113334 commit 823186031d9250217f9a51829d34a96b74113334
Author Andreas Kling <kling@serenityos.org> Author Andreas Kling <kling@serenityos.org>
Date: Tue Feb 2 19:56:11 2021 +0100 Date: Tue Feb 2 19:56:11 2021 +0100
Kernel: Add a way to specify which memory regions can make syscalls Kernel: Add a way to specify which memory regions can make syscalls
@ -201,7 +201,7 @@ Everywhere: Build with -fstack-clash-protection
The GCC compiler provides a few variants of the `-fstack-protector` option mitigation. The GCC compiler provides a few variants of the `-fstack-protector` option mitigation.
This family of flags enables [buffer overflow protection](https://en.wikipedia.org/wiki/Buffer_overflow_protection) This family of flags enables [buffer overflow protection](https://en.wikipedia.org/wiki/Buffer_overflow_protection)
to mitigate [stack-smashing attacks](https://en.wikipedia.org/wiki/Stack_buffer_overflow). to mitigate [stack-smashing attacks](https://en.wikipedia.org/wiki/Stack_buffer_overflow).
The compiler implements the mitigation by storing a canary value randomized on program startup into the preamble of all The compiler implements the mitigation by storing a canary value randomized on program startup into the preamble of all
functions. Code is then generated to validate that stack canary on function return and crash if the value has been changed functions. Code is then generated to validate that stack canary on function return and crash if the value has been changed
@ -217,7 +217,7 @@ Date: Fri Dec 20 20:51:50 2019 +0100
Kernel+LibC: Build with basic -fstack-protector support Kernel+LibC: Build with basic -fstack-protector support
``` ```
It was later re-enabled and refined to `-fstack-protector-strong` in the following commits: It was later re-enabled and refined to `-fstack-protector-strong` in the following commits:
``` ```
commit fd08c93ef57f71360d74b035214c71d7f7bfc5b8 commit fd08c93ef57f71360d74b035214c71d7f7bfc5b8

View file

@ -21,7 +21,7 @@ This program must be run as root.
* `-u`, `--uid` _uid_: The user identifier for the new user. If not specified, an unused UID above `1000` will be auto-generated. * `-u`, `--uid` _uid_: The user identifier for the new user. If not specified, an unused UID above `1000` will be auto-generated.
* `-g`, `--gid` _gid_: The group identifier for the new user. If not specified, it will default to 100 (the **users** group). * `-g`, `--gid` _gid_: The group identifier for the new user. If not specified, it will default to 100 (the **users** group).
* `-p`, `--password` _password_: The encrypted password for the new user. If not specified, it will default to blank. * `-p`, `--password` _password_: The encrypted password for the new user. If not specified, it will default to blank.
* `-s`, `--shell` _path-to-shell_: The shell binary for this login. The default is `/bin/Shell`. * `-s`, `--shell` _path-to-shell_: The shell binary for this login. The default is `/bin/Shell`.
* `-m`, `--create-home`: Create the specified home directory for this new user. * `-m`, `--create-home`: Create the specified home directory for this new user.
* `-d`, `--home-dir` _path_: Set the home directory for this user to path. By default, this is `/home/username`, where `username` is the value of login. * `-d`, `--home-dir` _path_: Set the home directory for this user to path. By default, this is `/home/username`, where `username` is the value of login.
* `-n`, `--gecos` _general-info_: GECOS information about this login. See [Wikipedia](https://en.wikipedia.org/wiki/Gecos_field) for more information. * `-n`, `--gecos` _general-info_: GECOS information about this login. See [Wikipedia](https://en.wikipedia.org/wiki/Gecos_field) for more information.

View file

@ -105,12 +105,12 @@ brew install --cask osxfuse
Toolchain/BuildFuseExt2.sh Toolchain/BuildFuseExt2.sh
``` ```
Notes: Notes:
- fuse-ext2 is not available as brew formula so it must be installed using `BuildFuseExt2.sh` - fuse-ext2 is not available as brew formula so it must be installed using `BuildFuseExt2.sh`
- Xcode and `xcode-tools` must be installed (`git` is required by some scripts) - Xcode and `xcode-tools` must be installed (`git` is required by some scripts)
- coreutils is needed to build gcc cross compiler - coreutils is needed to build gcc cross compiler
- qemu is needed to run the compiled OS image. You can also build it using the `BuildQemu.sh` script - qemu is needed to run the compiled OS image. You can also build it using the `BuildQemu.sh` script
- osxfuse, e2fsprogs, m4, autoconf, automake, libtool and `BuildFuseExt2.sh` are needed if you want to build the root filesystem disk image natively on macOS. This allows mounting an EXT2 fs and also installs commands like `mke2fs` that are not available on stock macOS. - osxfuse, e2fsprogs, m4, autoconf, automake, libtool and `BuildFuseExt2.sh` are needed if you want to build the root filesystem disk image natively on macOS. This allows mounting an EXT2 fs and also installs commands like `mke2fs` that are not available on stock macOS.
- Installing osxfuse for the first time requires enabling its system extension in System Preferences and then restarting your machine. The output from installing osxfuse with brew says this, but it's easy to miss. - Installing osxfuse for the first time requires enabling its system extension in System Preferences and then restarting your machine. The output from installing osxfuse with brew says this, but it's easy to miss.
- bash is needed because the default version installed on macOS doesn't support globstar - bash is needed because the default version installed on macOS doesn't support globstar
- If you install some commercial EXT2 macOS fs handler instead of osxfuse and fuse-ext2, you will need to `brew install e2fsprogs` to obtain `mke2fs` anyway. - If you install some commercial EXT2 macOS fs handler instead of osxfuse and fuse-ext2, you will need to `brew install e2fsprogs` to obtain `mke2fs` anyway.

View file

@ -7,7 +7,7 @@ Whilst it is possible to run Serenity on physical x86-compatible hardware, it is
## Hardware support and requirements ## Hardware support and requirements
Storage-wise Serenity requires a >= 2 GB parallel ATA or SATA IDE disk. Some older SATA chipsets already operate in IDE mode whilst some newer ones will depend upon adjusting a BIOS option to run your SATA controller in IDE (sometimes referred to as Legacy or PATA) mode. SATA AHCI, SCSI, SAS, eMMC and NVME are all presently unsupported. Storage-wise Serenity requires a >= 2 GB parallel ATA or SATA IDE disk. Some older SATA chipsets already operate in IDE mode whilst some newer ones will depend upon adjusting a BIOS option to run your SATA controller in IDE (sometimes referred to as Legacy or PATA) mode. SATA AHCI, SCSI, SAS, eMMC and NVME are all presently unsupported.
You must be willing to wipe your disk's contents to allow for writing the Serenity image so be sure to back up any important data on your disk first! Serenity uses the GRUB2 bootloader so it should be possible to multiboot it with any other OS that can be booted from GRUB2 post-installation. You must be willing to wipe your disk's contents to allow for writing the Serenity image so be sure to back up any important data on your disk first! Serenity uses the GRUB2 bootloader so it should be possible to multiboot it with any other OS that can be booted from GRUB2 post-installation.

View file

@ -49,7 +49,7 @@ The way around this is to use a different file name for each VDI you generate. Y
Yes, this is a mess. You can delete the old disk images without any issues. If you know a solution for this, *please* let us know. Yes, this is a mess. You can delete the old disk images without any issues. If you know a solution for this, *please* let us know.
## Configuring the virtual machine to boot Serenity ## Configuring the virtual machine to boot Serenity
Serenity will not be able to boot with the default configuration. There are a couple settings to adjust. Open **Settings** and: Serenity will not be able to boot with the default configuration. There are a couple settings to adjust. Open **Settings** and:
1. Go to **System**, open the **Processor** tab and tick **Enable PAE/NX**. 1. Go to **System**, open the **Processor** tab and tick **Enable PAE/NX**.
2. Go to **Audio** and set **Audio Controller** to **SoundBlaster 16**. 2. Go to **Audio** and set **Audio Controller** to **SoundBlaster 16**.

View file

@ -61,7 +61,7 @@ boot_pd3_pt1023:
.global start .global start
.type start, @function .type start, @function
.extern init .extern init
.type init, @function .type init, @function
.extern multiboot_info_ptr .extern multiboot_info_ptr
@ -316,11 +316,11 @@ apic_ap_start32:
orl $0x800, %eax orl $0x800, %eax
wrmsr wrmsr
1: 1:
/* load the bsp's cr3 value */ /* load the bsp's cr3 value */
movl (ap_cpu_init_cr3 - apic_ap_start)(%ebp), %eax movl (ap_cpu_init_cr3 - apic_ap_start)(%ebp), %eax
movl %eax, %cr3 movl %eax, %cr3
/* enable PAE + PSE */ /* enable PAE + PSE */
movl %cr4, %eax movl %cr4, %eax
orl $0x60, %eax orl $0x60, %eax
@ -340,9 +340,9 @@ apic_ap_start32_2:
/* flush the TLB */ /* flush the TLB */
movl %cr3, %eax movl %cr3, %eax
movl %eax, %cr3 movl %eax, %cr3
movl $0xc0008000, %ebp movl $0xc0008000, %ebp
/* now load the final gdt and idt from the identity mapped area */ /* now load the final gdt and idt from the identity mapped area */
movl (ap_cpu_gdtr - apic_ap_start)(%ebp), %eax movl (ap_cpu_gdtr - apic_ap_start)(%ebp), %eax
lgdt (%eax) lgdt (%eax)
@ -354,20 +354,20 @@ apic_ap_start32_2:
movl %eax, %cr0 movl %eax, %cr0
movl (ap_cpu_init_cr4 - apic_ap_start)(%ebp), %eax movl (ap_cpu_init_cr4 - apic_ap_start)(%ebp), %eax
movl %eax, %cr4 movl %eax, %cr4
/* push the Processor pointer this CPU is going to use */ /* push the Processor pointer this CPU is going to use */
movl (ap_cpu_init_processor_info_array - apic_ap_start)(%ebp), %eax movl (ap_cpu_init_processor_info_array - apic_ap_start)(%ebp), %eax
addl $0xc0000000, %eax addl $0xc0000000, %eax
movl 0(%eax, %esi, 4), %eax movl 0(%eax, %esi, 4), %eax
push %eax push %eax
/* push the cpu id, 0 representing the bsp and call into c++ */ /* push the cpu id, 0 representing the bsp and call into c++ */
incl %esi incl %esi
push %esi push %esi
xor %ebp, %ebp xor %ebp, %ebp
cld cld
/* We are in identity mapped P0x8000 and the BSP will unload this code /* We are in identity mapped P0x8000 and the BSP will unload this code
once all APs are initialized, so call init_ap but return to our once all APs are initialized, so call init_ap but return to our
infinite loop */ infinite loop */

View file

@ -26,9 +26,9 @@
#pragma once #pragma once
/* /*
* If linux/types.h is already been included, assume it has defined * If linux/types.h is already been included, assume it has defined
* everything we need. (cross fingers) Other header files may have * everything we need. (cross fingers) Other header files may have
* also defined the types that we need. * also defined the types that we need.
*/ */
#if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && !defined(_EXT2_TYPES_H)) #if (!defined(_LINUX_TYPES_H) && !defined(_BLKID_TYPES_H) && !defined(_EXT2_TYPES_H))

View file

@ -14,10 +14,10 @@
<p>Thank you for checking it out :^)</p> <p>Thank you for checking it out :^)</p>
<p style="padding-top: 4; padding-bottom: 4; padding-left: 4; padding-right: 4; background-color: #ea4aaa; text-align: center;"><b>Andreas</b> <p style="padding-top: 4; padding-bottom: 4; padding-left: 4; padding-right: 4; background-color: #ea4aaa; text-align: center;"><b>Andreas</b>
( (
<a href="https://github.com/awesomekling">GitHub</a> | <a href="https://github.com/awesomekling">GitHub</a> |
<a href="https://youtube.com/c/AndreasKling">YouTube</a> | <a href="https://youtube.com/c/AndreasKling">YouTube</a> |
<a href="https://twitter.com/awesomekling">Twitter</a> | <a href="https://twitter.com/awesomekling">Twitter</a> |
<a href="https://patreon.com/serenityos">Patreon</a> | <a href="https://patreon.com/serenityos">Patreon</a> |
<a href="https://paypal.me/awesomekling">PayPal</a> ) <a href="https://paypal.me/awesomekling">PayPal</a> )
</p> </p>
</div> </div>

View file

@ -45,7 +45,7 @@
01:00000016 drwxr-xr-x 1024 2018-10-02 23:43:49 ../ 01:00000016 drwxr-xr-x 1024 2018-10-02 23:43:49 ../
01:00000018 -rw-r--r-- 18 2018-10-02 23:44:09 file1 01:00000018 -rw-r--r-- 18 2018-10-02 23:44:09 file1
01:00000019 -rw-r--r-- 18 2018-10-02 23:44:14 file2 01:00000019 -rw-r--r-- 18 2018-10-02 23:44:14 file2
::&gt; ::&gt;
</pre> </pre>
<div> <div>
<p><b>2018-10-10:</b> The first ever "screenshot" of what became Serenity:</p> <p><b>2018-10-10:</b> The first ever "screenshot" of what became Serenity:</p>
@ -207,10 +207,10 @@
<i>Andreas Kling, 2019-10-10</i> <i>Andreas Kling, 2019-10-10</i>
</p> </p>
<p> <p>
<a href="https://github.com/awesomekling">GitHub</a> | <a href="https://github.com/awesomekling">GitHub</a> |
<a href="https://youtube.com/c/AndreasKling">YouTube</a> | <a href="https://youtube.com/c/AndreasKling">YouTube</a> |
<a href="https://twitter.com/awesomekling">Twitter</a> | <a href="https://twitter.com/awesomekling">Twitter</a> |
<a href="https://patreon.com/serenityos">Patreon</a> | <a href="https://patreon.com/serenityos">Patreon</a> |
<a href="https://paypal.me/awesomekling">PayPal</a> <a href="https://paypal.me/awesomekling">PayPal</a>
</p> </p>
</body> </body>

View file

@ -149,7 +149,7 @@
Someone put together a CTF (Capture The Flag) challenge at the Someone put together a CTF (Capture The Flag) challenge at the
36c3 computer security conference. I learned about this when 36c3 computer security conference. I learned about this when
two exploits showed up (complete with write-ups!) on GitHub: two exploits showed up (complete with write-ups!) on GitHub:
<a href="https://github.com/Fire30/CTF-WRITEUPS/tree/master/36c3_ctf/wisdom">one from Fire30</a> and <a href="https://github.com/braindead/ctf-writeups/tree/master/2019/36c3/wisdom">another one from braindead</a>. <a href="https://github.com/Fire30/CTF-WRITEUPS/tree/master/36c3_ctf/wisdom">one from Fire30</a> and <a href="https://github.com/braindead/ctf-writeups/tree/master/2019/36c3/wisdom">another one from braindead</a>.
<br><br> <br><br>
This caught me by total surprise and I was a little bit disappointed This caught me by total surprise and I was a little bit disappointed
@ -426,10 +426,10 @@
<i>Andreas Kling, 2020-10-10</i> <i>Andreas Kling, 2020-10-10</i>
</p> </p>
<p> <p>
<a href="https://github.com/awesomekling">GitHub</a> | <a href="https://github.com/awesomekling">GitHub</a> |
<a href="https://youtube.com/c/AndreasKling">YouTube</a> | <a href="https://youtube.com/c/AndreasKling">YouTube</a> |
<a href="https://twitter.com/awesomekling">Twitter</a> | <a href="https://twitter.com/awesomekling">Twitter</a> |
<a href="https://patreon.com/serenityos">Patreon</a> | <a href="https://patreon.com/serenityos">Patreon</a> |
<a href="https://paypal.me/awesomekling">PayPal</a> <a href="https://paypal.me/awesomekling">PayPal</a>
</p> </p>
<script> <script>

View file

@ -9,7 +9,7 @@ cd "$script_path/.." || exit 1
# To eliminate the need for these symbols, avoid doing non-trivial construction of local statics in LibC. # To eliminate the need for these symbols, avoid doing non-trivial construction of local statics in LibC.
FORBIDDEN_SYMBOLS="__cxa_guard_acquire __cxa_guard_release" FORBIDDEN_SYMBOLS="__cxa_guard_acquire __cxa_guard_release"
LIBC_PATH="Build/Userland/Libraries/LibC/libc.a" LIBC_PATH="Build/Userland/Libraries/LibC/libc.a"
for forbidden_symbol in $FORBIDDEN_SYMBOLS; do for forbidden_symbol in $FORBIDDEN_SYMBOLS; do
# check if symbol is undefined # check if symbol is undefined
if nm $LIBC_PATH | grep "U $forbidden_symbol" ; then if nm $LIBC_PATH | grep "U $forbidden_symbol" ; then

View file

@ -16,7 +16,7 @@ die() {
# To support virtualization acceleration on mac # To support virtualization acceleration on mac
# we need to use 64-bit qemu # we need to use 64-bit qemu
if [ "$(uname)" = "Darwin" ] && [ "$(uname -m)" = "x86_64" ]; then if [ "$(uname)" = "Darwin" ] && [ "$(uname -m)" = "x86_64" ]; then
[ -z "$SERENITY_QEMU_BIN" ] && SERENITY_QEMU_BIN="qemu-system-x86_64" [ -z "$SERENITY_QEMU_BIN" ] && SERENITY_QEMU_BIN="qemu-system-x86_64"

View file

@ -117,7 +117,7 @@ Everyone gets this wrong. most platforms are very lax with these includes, but w
### Status ### Status
- [X] Local? - [X] Local?
- [ ] Should be merged to upstream? - [ ] Should be merged to upstream?
- [ ] Resolves issue(s) with our side of things - [ ] Resolves issue(s) with our side of things
- [ ] Hack - [ ] Hack
@ -127,7 +127,7 @@ Our libstdc++ does not define `std::atoll`, this patch uses the equivalent C fun
### Status ### Status
- [ ] Local? - [ ] Local?
- [ ] Should be merged to upstream? - [ ] Should be merged to upstream?
- [X] Resolves issue(s) with our side of things - [X] Resolves issue(s) with our side of things
- [ ] Hack - [ ] Hack
@ -137,7 +137,7 @@ These two defines make GCC very sad. reasons are unknown at this time.
### Status ### Status
- [ ] Local? - [ ] Local?
- [ ] Should be merged to upstream? - [ ] Should be merged to upstream?
- [X] Resolves issue(s) with our side of things - [X] Resolves issue(s) with our side of things
- [X] Hack - [X] Hack
@ -219,7 +219,7 @@ For unknown reasons, `curl_setup_once.h` does not include `sys/stat.h`. this pat
### Status ### Status
- [ ] Local? - [ ] Local?
- [ ] Should be merged to upstream? - [ ] Should be merged to upstream?
- [X] Resolves issue(s) with our side of things - [X] Resolves issue(s) with our side of things
- [X] Hack - [X] Hack

View file

@ -3,7 +3,7 @@
- No DNS support. - No DNS support.
- No proxy support. - No proxy support.
- Assumes SSH2.0 for now. - Assumes SSH2.0 for now.
- Cannot determine compatibility flags. - Cannot determine compatibility flags.
This means there may be some weird bugs when connecting to certain SSH implementations. This means there may be some weird bugs when connecting to certain SSH implementations.
- SSHD does not work as it requires socketpair. It will start, but will crash on connection. - SSHD does not work as it requires socketpair. It will start, but will crash on connection.

View file

@ -30,7 +30,7 @@
@GUI::Widget { @GUI::Widget {
layout: @GUI::HorizontalBoxLayout { layout: @GUI::HorizontalBoxLayout {
} }
max_height: 24 max_height: 24
@GUI::Label { @GUI::Label {
@ -43,11 +43,11 @@
name: "name_input" name: "name_input"
} }
} }
@GUI::Widget { @GUI::Widget {
layout: @GUI::HorizontalBoxLayout { layout: @GUI::HorizontalBoxLayout {
} }
max_height: 24 max_height: 24
@GUI::Label { @GUI::Label {
@ -60,7 +60,7 @@
name: "create_in_input" name: "create_in_input"
text: "/home/anon/Source" text: "/home/anon/Source"
} }
@GUI::Button { @GUI::Button {
name: "browse_button" name: "browse_button"
text: "Browse" text: "Browse"
@ -71,7 +71,7 @@
@GUI::Widget { @GUI::Widget {
layout: @GUI::HorizontalBoxLayout { layout: @GUI::HorizontalBoxLayout {
} }
max_height: 24 max_height: 24
@GUI::Label { @GUI::Label {
@ -90,22 +90,22 @@
max_height: 22 max_height: 22
} }
} }
@GUI::Widget { @GUI::Widget {
layout: @GUI::HorizontalBoxLayout { layout: @GUI::HorizontalBoxLayout {
} }
max_height: 24 max_height: 24
@GUI::Widget { @GUI::Widget {
} }
@GUI::Button { @GUI::Button {
name: "ok_button" name: "ok_button"
text: "OK" text: "OK"
max_width: 75 max_width: 75
} }
@GUI::Button { @GUI::Button {
name: "cancel_button" name: "cancel_button"
text: "Cancel" text: "Cancel"

View file

@ -592,7 +592,7 @@ FLATTEN void UnsignedBigInteger::shift_left_without_allocation(
* Multiplication method: * Multiplication method:
* An integer is equal to the sum of the powers of two * An integer is equal to the sum of the powers of two
* according to the indexes of its 'on' bits. * according to the indexes of its 'on' bits.
* So to multiple x*y, we go over each '1' bit in x (say the i'th bit), * So to multiple x*y, we go over each '1' bit in x (say the i'th bit),
* and add y<<i to the result. * and add y<<i to the result.
*/ */
FLATTEN void UnsignedBigInteger::multiply_without_allocation( FLATTEN void UnsignedBigInteger::multiply_without_allocation(

View file

@ -4,7 +4,7 @@ Multi-process model:
Server Client Server Client
WebContent GUI process (OutOfProcessWebView embedder) WebContent GUI process (OutOfProcessWebView embedder)
OutOfProcessWebView (this is a GUI::Widget) OutOfProcessWebView (this is a GUI::Widget)
WebContent::ClientConnection <---> WebContentClient WebContent::ClientConnection <---> WebContentClient