Commit graph

139 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
23b3271fca Release HTML manual pages.
Add python3 to the basic set of ports in order to build releases.
2022-07-10 23:10:14 +02:00
Jonas 'Sortie' Termansen
3ae81f08b3 Add install-cross-toolchain Makefile target. 2022-07-09 20:51:13 +02:00
Jonas 'Sortie' Termansen
802b0ef1d1 Add verify-ports presubmit. 2022-07-09 20:51:13 +02:00
Jonas 'Sortie' Termansen
9588b0d3db Add ports to the Sortix repository.
This change imports the ports collection from the former porttix and srctix
repositories and converts them to port(5) files with metadata pointing to
the upstream release tarballs with patches checked into this repository.
Ports are now developed and versioned along with the operating system and
are automatically built per the PACKAGES environment variable. The patches
are licensed under the same license as the relevant ports.

Tix has gained support for the new port(5) format. tix-port(8) is the new
high level ports build even point that handles downloading pstream releases
into the new mirror cache directory, applying the patches, building the port
with the lower-level tix-build(8), and finally installing the binary
package. The new tix-vars(8) program parses port(5) files and the new
tix-rmdiff(8) program produces input for tix-rmpatch(8).

The old doc/ directory is discontinued in favor of manual pages documenting
the new ports system.

The obsolete porttix-create(8) and srctix-create(8) programs are removed.
2022-06-13 22:29:53 +02:00
Jonas 'Sortie' Termansen
3c43f71084 Implement file descriptor passing.
This change refactors the Unix socket / pipe backend to have a ring buffer
containing segments, where each segment has an optional leading ancillary
buffer containing control messages followed by a normal data buffer.

The SCM_RIGHTS control message has been implemented which transfers file
descriptors to the receiving process. File descriptors are reference counted
and cycles are prevented using the following restrictions:

1) Unix sockets cannot be sent on themselves (on either end).
2) Unix sockets themselves being sent cannot be sent on.
3) Unix sockets cannot send a Unix socket being sent on.

This is a compatible ABI change.
2021-12-31 22:24:11 +01:00
Jonas 'Sortie' Termansen
3048fdf7a1 Add presubmit. 2021-10-10 00:07:06 +02:00
Juhani Krekelä
d4528e9401 Add dnsconfig(8). 2021-10-09 21:11:56 +03:00
Jonas 'Sortie' Termansen
9a20f8cc37 Publish releases by the release name. 2021-07-20 22:11:27 +02:00
Jonas 'Sortie' Termansen
20df95f1ec Add /tix/tixinfo to the system manifest. 2021-07-20 22:08:11 +02:00
Jonas 'Sortie' Termansen
bce37028f5 Store binary package repository in the release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen
fa5f1b826e Add sha256sum to release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen
cffa7fa7b7 Add manual pages to the release. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen
aeb7e0ccfc Store kernel and initrds in the release directory. 2021-06-24 22:35:39 +02:00
Jonas 'Sortie' Termansen
5e7605fad2 Implement threading primitives that truly sleep.
The idle thread is now actually run when the system is idle because it
truly goes idle. The idle thread is made power efficient by using the hlt
instruction rather than a busy loop.

The new futex(2) system call is used to implement fast user-space mutexes,
condition variables, and semaphores. The same backend and design is used as
kutexes for truly sleeping kernel mutexes and condition variables.

The new exit_thread(2) flag EXIT_THREAD_FUTEX_WAKE wakes a futex.

Sleeping on clocks in the kernel now uses timers for true sleep.

The interrupt worker thread now truly sleeps when idle.

Kernel threads are now named.

This is a compatible ABI change.
2021-06-23 22:10:47 +02:00
Jonas 'Sortie' Termansen
27f81b09a6 Add /var/cache, /var/log, and /var/run. 2021-05-30 23:50:42 +02:00
Jonas 'Sortie' Termansen
cb590ff205 Fix system upgrade leaking files. 2021-01-19 00:04:56 +01:00
Jonas 'Sortie' Termansen
37b1bf5e75 Fix /tmp permissions in the live environment. 2021-01-17 23:05:16 +01:00
Jonas 'Sortie' Termansen
4c089a01d6 Fix sysroot-source git clone not escaping the current directory. 2021-01-02 17:54:38 +01:00
Jonas 'Sortie' Termansen
3a874e7f40 Fix /var/empty permissions. 2021-01-02 17:54:38 +01:00
Jonas 'Sortie' Termansen
6f7162a0b1 Add checksum(1). 2020-09-27 22:15:20 +02:00
Jonas 'Sortie' Termansen
397bac9862 Add support for modifying release iso images. 2018-03-31 00:55:33 +02:00
Jonas 'Sortie' Termansen
d1c3433353 Add rw(1). 2018-03-31 00:55:33 +02:00
Jonas 'Sortie' Termansen
eca6246684 Use portable sort in linecount target. 2017-12-04 23:56:47 +01:00
Jonas 'Sortie' Termansen
dbf4bcd6cf Add hostname(1). 2017-03-19 17:33:47 +01:00
Jonas 'Sortie' Termansen
970bf0c5e3 Major bump Sortix ABI following incompatible socket(2) change.
Commit "Add socket(2)" 4b2cf28bbf forgot to
major bump the ABI after removing /dev/net and adding a new system call.
2017-02-18 16:05:55 +01:00
Jonas 'Sortie' Termansen
987cd88472 Use git ls-files in linecount target. 2017-02-05 22:21:22 +01:00
Jonas 'Sortie' Termansen
db7182ddc3 Add support for sessions.
This change refactors the process group implementation and adds support
for sessions. The setsid(2) and getsid(2) system calls were added.

psctl(2) now has PSCTL_TTYNAME, which lets you get the name of a process's
terminal, and ps(1) now uses it.

The initial terminal is now called /dev/tty1.

/dev/tty is now a factory for the current terminal.

A global lock now protects the process hierarchy which makes it safe to
access other processes. This refactor removes potential vulnerabilities
and increases system robustness.

A number of terminal ioctls have been added.

This is a compatible ABI change.
2016-11-23 22:30:47 +01:00
Jonas 'Sortie' Termansen
d720f16537 Add ONLCR and OCRNL.
This is a compatible ABI change.
2016-11-05 23:38:40 +01:00
Jonas 'Sortie' Termansen
4d40dd35dd Run the existing sysmerge(8) in the make sysmerge targets.
The ABI may have changed and the current system might not be able to run the
new program.
2016-10-04 00:34:49 +02:00
Jonas 'Sortie' Termansen
e69565fd15 Remove compatibility with Sortix 0.9. 2016-05-15 01:31:48 +02:00
Jonas 'Sortie' Termansen
d166e58dc8 Remove repository from release directory. 2016-03-26 23:50:50 +01:00
Jonas 'Sortie' Termansen
34b5f061f9 Fix linecount target not working. 2016-03-26 16:07:22 +01:00
Jonas 'Sortie' Termansen
15ef078e9f Fix live environment tix collection platform. 2016-03-07 17:46:14 +01:00
Jonas 'Sortie' Termansen
cadef6fedb Rename i486-sortix platform to i686-sortix. 2016-03-06 18:59:10 +01:00
Jonas 'Sortie' Termansen
2b72262b4f Relicense Sortix to the ISC license.
I hereby relicense all my work on Sortix under the ISC license as below.

All Sortix contributions by other people are already under this license,
are not substantial enough to be copyrightable, or have been removed.

All imported code from other projects is compatible with this license.

All GPL licensed code from other projects had previously been removed.

Copyright 2011-2016 Jonas 'Sortie' Termansen and contributors.

Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2016-03-05 22:21:50 +01:00
Jonas 'Sortie' Termansen
8e988c1bf1 Convert libpthread to C and merge into libc. 2016-03-03 23:02:23 +01:00
Jonas 'Sortie' Termansen
f52fb3202c Add sysinstall(8), sysmerge(8), and sysupgrade(8). 2016-02-21 18:41:11 +01:00
Jonas 'Sortie' Termansen
8af81a1864 Add disked(8). 2016-02-20 13:28:40 +01:00
Jonas 'Sortie' Termansen
b15d30ea0c Fix Makefile build breakage. 2016-02-07 23:59:26 +01:00
Jonas 'Sortie' Termansen
170ccfcc89 Load ports in their own initrds. 2016-02-07 22:46:23 +01:00
Jonas 'Sortie' Termansen
c10628a2e2 Remove root makefile kernel targets. 2016-02-07 22:46:23 +01:00
Jonas 'Sortie' Termansen
3648fce015 Add git repository to /src if applicable. 2016-02-07 22:46:23 +01:00
Jonas 'Sortie' Termansen
d85a0b70cc Add /etc/machine. 2016-02-07 22:46:22 +01:00
Jonas 'Sortie' Termansen
bdd9e2851b Add /etc/sortix-release. 2016-02-07 22:46:22 +01:00
Jonas 'Sortie' Termansen
5ee7ff4e67 Add iso compression support. 2016-02-07 22:46:22 +01:00
Jonas 'Sortie' Termansen
e9e033212a Generate lists of system files. 2016-02-07 22:46:22 +01:00
Jonas 'Sortie' Termansen
391680a468 Add update-initrd(8). 2016-02-07 00:51:16 +01:00
Jonas 'Sortie' Termansen
caf632ccdd Remove mbrfs. 2016-02-06 17:51:29 +01:00
Jonas 'Sortie' Termansen
9fe234d4d8 Rewrite init(8). 2016-02-06 17:29:42 +01:00
Jonas 'Sortie' Termansen
9a1786f688 Add login(8). 2016-02-06 00:52:52 +01:00