Commit graph

343 commits

Author SHA1 Message Date
Jonas 'Sortie' Termansen
f3d1b9d0e4 Improve mv(1). 2014-10-21 16:11:17 +02:00
Jonas 'Sortie' Termansen
2492f0bad7 Fix how the shell appends. 2014-10-04 17:22:59 +02:00
Jonas 'Sortie' Termansen
12780c8eb0 Add env(1). 2014-09-25 18:20:00 +02:00
Jonas 'Sortie' Termansen
f84bfe5e89 Fix paste in editor not deleting the selection. 2014-09-25 17:49:01 +02:00
Jonas 'Sortie' Termansen
cbd46f610c Fix init having its own poor vasprintf(3). 2014-08-23 21:47:04 +02:00
Jonas 'Sortie' Termansen
c451de1bc2 Fix uninitalized memory accesses in editor. 2014-08-23 21:26:17 +02:00
Jonas 'Sortie' Termansen
5f9da2a651 Fix format string problems in error(3) calls. 2014-08-23 21:04:39 +02:00
Jonas 'Sortie' Termansen
901467520f Fix init using usleep instead of nanosleep. 2014-06-17 23:53:26 +02:00
Jonas 'Sortie' Termansen
6f35797e19 Fix editor not displaying an error when stdio is not a terminal. 2014-05-16 14:48:27 +02:00
Jonas 'Sortie' Termansen
812d071481 Fix buffer overflow in which(1). 2014-05-16 14:31:24 +02:00
Jonas 'Sortie' Termansen
4674017303 Fix editor writing NUL bytes to terminal. 2014-04-22 18:06:14 +02:00
Jonas 'Sortie' Termansen
c93a434749 Fix init not respecting the home directory from /etc/passwd. 2014-03-31 19:08:57 +02:00
Jonas 'Sortie' Termansen
b7bf21bfff Open stdin, stdout and stderr in the kernel rather than init. 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
e91cde379a Rewrite getenv(3), setenv(3), unsetenv(3) and clearenv(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
687096ec8a Add uname(3). 2014-03-17 19:22:11 +01:00
Jonas 'Sortie' Termansen
1a92a6991d Rename mxsh to sh. 2014-03-01 14:37:40 +01:00
Jonas 'Sortie' Termansen
fba2e26b05 Fix wc(1) argument parsing. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
3d64567bae Fix pwd(1) argument parsing. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
820bafeabf Fix ls(1) argument parsing. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
10daa40f01 Fix du(1) argument parsing. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
581edfb422 Fix cat(1) argument parsing. 2014-03-01 14:37:39 +01:00
Jonas 'Sortie' Termansen
a66bb2900a Fix unportable pid_t parsing in sh(1). 2013-12-30 20:46:22 +01:00
Jonas 'Sortie' Termansen
7651519f96 Color executables in ls(1). 2013-12-19 17:42:08 +01:00
Jonas 'Sortie' Termansen
f8e7553187 Add false(1) and true(1). 2013-12-19 17:42:07 +01:00
Jonas 'Sortie' Termansen
184fce3cf3 Add basic wildcard support to the shell. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
5703540c0f Start the initial root shell in root's home directory. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
b3b2e99b9c Perform only home path substitution in the shell if HOME is set. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
5582cb4065 Set the root user's home directory, username and shell in init. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
6a9eee3238 Add brand.h. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
b5509037bc Add command-not-found utility. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
3de23d8cec Rewrite the Sortix text editor. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
4e45844334 Add chain boot support to init. 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
0708482d9b Rewrite echo(1). 2013-12-17 14:30:46 +01:00
Jonas 'Sortie' Termansen
2f261b3848 Port column(1) to GNU and POSIX systems. 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
0738e9bf3c Add du(1). 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
51d965d6eb Add wc(1). 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
3e5a6644c8 Improve implementation of pwd(1). 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
a7b03af9cc Improve implementation of cat(1). 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
97621d4661 Use getlogin(3) in the shell instead of the USERNAME variable. 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
dd5a59e5f6 Expand variables before running shell builtins. 2013-12-17 14:30:44 +01:00
Jonas 'Sortie' Termansen
20b67f18bc Update libc system calls to follow coding conventions. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
311423856e Add foreground process support to init and sh. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
c8f302df1a Add process group support to init and sh. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
6ea41cc620 Retrieve init process id from INIT_PID environmental variable. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
f8f65d5713 Store init process pid in INIT_PID environmental variable. 2013-12-17 14:30:36 +01:00
Jonas 'Sortie' Termansen
94cd049473 Add chroot(1). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
3c6ecd6512 Add umask(2). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
277e2e8626 Add modification date to ls long format. 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
82ffdb5ca8 Add date(1). 2013-12-17 14:30:35 +01:00
Jonas 'Sortie' Termansen
3a76e33459 Add time(1). 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
a15ffa955b Obsolete uptime(2). 2013-12-17 14:30:34 +01:00
Jonas 'Sortie' Termansen
12a8bb91aa Update help program to search PATH. 2013-12-17 14:30:33 +01:00
Jonas 'Sortie' Termansen
e249533d99 Add home directory syntax to shell. 2013-12-17 14:30:32 +01:00
Jonas 'Sortie' Termansen
8b7dad7d4d Add colormake(1). 2013-12-17 14:30:31 +01:00
Jonas 'Sortie' Termansen
15c48f4efc Add PATH variable. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
e97990e144 Add install(1) stub. 2013-12-17 14:30:29 +01:00
Jonas 'Sortie' Termansen
fc8d64013d Refactor datatype declarations. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
5ce53a2a30 Wait for orphans in init. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
266a02ad71 Add find(1) stub. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
de41c02ded Add mv(1) utility. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
c9289e839c Sort util/Makefile program list. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
fab7b7dfc8 Rewrite cp(1). 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
4e095906fb Add -c option to shell. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
7637e835b5 Allow setting shell username and hostname. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
36f8d6e273 Add exit-on-error option to shell. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
71be9b9b08 Add support for shell scripts. 2013-12-17 14:30:28 +01:00
Jonas 'Sortie' Termansen
dbab4e7683 Add shell non-interactive mode and shell comments. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
94dcefb05c Improve implementation of rm(1). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
25aebe4cd8 Align ls long format. 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
cd48a35074 Add colors to sh(1) and ls(1).
This makes Sortix a happier place to be.
2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
0453ff9532 Add ln(1). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
c32dac0e16 Add which(1). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
fe542c9276 Add rmdir(1). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
2169710127 Add mkdir(1). 2013-12-17 14:30:27 +01:00
Jonas 'Sortie' Termansen
1444683ea8 Refactor kernel VFS.
Note: This is an incompatible ABI change.
2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
9634a0c3d2 Add --version option to chvideomode(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
8a2630fbee Add --version option to column(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
238de22ce8 Add --version option to kernelinfo(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
5f003c2d87 Add --version option to ls(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
9986edce84 Add --version option to head(1) and tail(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
3879c0a774 Add --version option to type(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
9a08acb8f3 Add --version option to uname(1) 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
59edfdb787 Remove <readparamstring.h>. 2013-12-17 14:30:24 +01:00
Jonas 'Sortie' Termansen
90036ca6a8 Update copyright headers of old files to the current format. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen
eb5be61d20 Fix trailing blank lines. 2013-12-17 14:30:23 +01:00
Jonas 'Sortie' Termansen
7eb9e3c33f Refactor Sortix build system and de-autoconf mxmpp. 2013-12-17 14:30:22 +01:00
Jonas 'Sortie' Termansen
f8793bc53e Port chvideomode to <sys/display.h> interface. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen
9a608e5bb2 Fix exit code in chvideomode. 2013-09-24 17:09:48 +02:00
Jonas 'Sortie' Termansen
53005fc01f Fix shell buffer overflow on long argument lists. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen
c8b795aab3 Correctly request SIZE_MAX in chvideomode. 2013-09-24 17:09:47 +02:00
Jonas 'Sortie' Termansen
1ca946af2f Fix ls exit code. 2013-09-24 16:52:29 +02:00
Jonas 'Sortie' Termansen
cd1df6d088 Correct error detection in echo(1). 2013-09-24 16:52:29 +02:00
Jonas 'Sortie' Termansen
7a8687e063 Handle ANSI Escape codes in column(1). 2012-12-14 14:18:38 +01:00
Jonas 'Sortie' Termansen
a041c107d5 Fix shell crash if PWD is unset. 2012-12-14 14:18:02 +01:00
Jonas 'Sortie' Termansen
9cf092d32e Use cross compiler in build system. 2012-12-14 14:13:33 +01:00
Jonas 'Sortie' Termansen
0b94239912 Fix missing WEXITSTATUS in init and kernel. 2012-09-09 23:08:03 +02:00
Jonas 'Sortie' Termansen
ab1901976c Add support for escaping spaces and tabs in shell. 2012-09-09 21:03:02 +02:00
Jonas 'Sortie' Termansen
b9b697f2cb Implement proper W* error codes in sys/wait.h and kernel.
Note that signals can't really kill a process at this time.
2012-09-09 12:21:39 +02:00
Jonas 'Sortie' Termansen
1369aa9da9 Fix wrong datatypes to printf in ls.
gcc still complains, but that is because uintmax_t is declared incorrectly.
2012-09-09 12:20:58 +02:00
Jonas 'Sortie' Termansen
46d02b784b Fix compile warnings in userspace programs. 2012-09-08 20:55:43 +02:00
Jonas 'Sortie' Termansen
d855c6cec7 Add warnings to userspace compile flags. 2012-09-08 20:33:52 +02:00
Jonas 'Sortie' Termansen
c9eb1b2cb3 Better collection of zombie processes.
Note that there seems to be a deadlock if a process exits when there are
zombies around. Init also doesn't handle zombie children correctly as there
is sent no SIGCHLD signal yet.
2012-09-08 19:25:13 +02:00
Jonas 'Sortie' Termansen
32a1be0008 Increased tab size from 4 to 8. 2012-09-08 18:45:53 +02:00
Jonas 'Sortie' Termansen
13c0ab638a Sort the output of ls(1). 2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
17a93359dd Add . and .. support to kernel filesystems.
This makes the hack in ls(1) not needed and is hence removed.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
fc811af890 Increased shell limit for line length.
Yes this is hacky, I'll fix it with a better shell.
2012-09-08 18:45:52 +02:00
Jonas 'Sortie' Termansen
66b8d23713 Init defaults $objtype to $cputype. 2012-09-08 18:45:41 +02:00
Jonas 'Sortie' Termansen
e230854ee9 Removed the idle program. 2012-09-08 18:45:41 +02:00
Jonas 'Sortie' Termansen
f1f0c44a12 Made the shell more compatible with signals. 2012-09-08 18:45:41 +02:00
Jonas 'Sortie' Termansen
47ae712419 pager(1) now detects the terminal resolution. 2012-07-31 16:48:56 +02:00
Jonas 'Sortie' Termansen
ce43f9c306 Add chvideomode(1) using the /dev/video interface. 2012-07-30 19:00:24 +02:00
Jonas 'Sortie' Termansen
ab7ee4fd1e column(1) now queries the terminal width. 2012-07-30 00:35:42 +02:00
Jonas 'Sortie' Termansen
829e63f0e9 editor(1) now bails if the terminal resolution isn't 80x25.
This isn't perfect, but support for other resolutions is near!
2012-07-29 23:41:36 +02:00
Jonas 'Sortie' Termansen
5eb48d32fb Fixed a bug in --usage of uname(1). 2012-07-26 18:51:50 +02:00
Jonas 'Sortie' Termansen
ba07631aa2 uname(1) now behaves much more like its GNU coreutils counterpart. 2012-07-26 16:04:45 +02:00
Jonas 'Sortie' Termansen
38f06d505c Better detection of environmental variables in mxsh. 2012-07-24 19:56:33 +02:00
Jonas 'Sortie' Termansen
b7788610da Added error detection to echo(1). 2012-07-24 19:56:32 +02:00
Jonas 'Sortie' Termansen
12326f2e34 Added $LINES and $COLUMNS to the shell.
This tests the fancy new system call tcgetwinsize(2).
2012-07-24 18:51:22 +02:00
Jonas 'Sortie' Termansen
92c5533820 Improved the implementation of the exec* functions. 2012-04-30 21:10:02 +02:00
Jonas 'Sortie' Termansen
042aeb0181 Added the $PWD environmental variable to the shell. 2012-04-13 23:01:04 +02:00
Jonas 'Sortie' Termansen
b554eb2dfb The shell now implements $$, $PPID, and $? as normal variables. 2012-04-13 22:41:07 +02:00
Jonas 'Sortie' Termansen
a24e86e751 init(1) now restarts the shell upon crash. 2012-04-13 21:47:47 +02:00
Jonas 'Sortie' Termansen
2331a1a234 Added hacky support for environmental variables to the shell. 2012-04-03 22:03:58 +02:00
Jonas 'Sortie' Termansen
9ab0bc5474 Added {,p}{read,write}{all,least}(3). 2012-03-24 15:34:30 +01:00
Jonas 'Sortie' Termansen
db79994e64 Refactored all the sortix headers into a include directory.
Also got rid of trailing white space. That corrupted .git/.

Big ass-commit because of recovered .git directory.
2012-03-22 00:52:29 +01:00
Jonas 'Sortie' Termansen
fa6d445b0d Added type(1), a replacement for the "traditional" Sortix cat(1).
cat(1) now work as you would expect.
2012-03-16 15:56:09 +01:00
Jonas 'Sortie' Termansen
a6a296a971 Fixed bug where pager(1) prints a line too much. 2012-03-11 18:16:55 +01:00
Jonas 'Sortie' Termansen
5e317c9726 Made kernelinfo(1) a little more friendly on bad string name. 2012-03-11 18:14:21 +01:00
Jonas 'Sortie' Termansen
c403c1d798 Greatly improved ls(1). 2012-03-11 17:58:25 +01:00
Jonas 'Sortie' Termansen
cadac5ce2a Moved the /bin and /dev hack into the kernel.
This makes ls seem less hacky.
2012-03-11 17:25:32 +01:00
Jonas 'Sortie' Termansen
dc0f78f6b7 Added copyright headers to benchmarks, games and utilities.
It's all GPLv3 or later.
2012-03-11 15:57:13 +01:00
Jonas 'Sortie' Termansen
9ed2031dd2 pager(1) now supports reading from stdin. 2012-03-07 21:06:29 +01:00
Jonas 'Sortie' Termansen
bd7cb5195a Removed debug string from mxsh(1). 2012-03-07 18:26:02 +01:00
Jonas 'Sortie' Termansen
87248fbce9 Aded kernelinfo(1) as a frontend of kernelinfo(2). 2012-03-07 18:20:40 +01:00
Jonas 'Sortie' Termansen
a7658d5b8c uname(1) now uses kernelinfo(2) to determine kernel version. 2012-03-07 18:06:23 +01:00
Jonas 'Sortie' Termansen
7d4c79bc8c Improved error message upon line reading failure in head(1) and tail(1). 2012-03-07 15:52:59 +01:00
Jonas 'Sortie' Termansen
563f831545 The shell now support the >> operator.
Note that the RAM filesystem, however, doesn't.
2012-03-04 16:50:44 +01:00
Jonas 'Sortie' Termansen
3c12de760f cat(1) now only uses "traditional" mode if both stdin and stdout isatty(2). 2012-03-04 16:49:51 +01:00
Jonas 'Sortie' Termansen
617c4333c6 Added head(1), tail(1). 2012-03-03 00:29:24 +01:00
Jonas 'Sortie' Termansen
7b9e15baf2 Made cat(1) read from stdin if it isn't a tty. 2012-03-02 18:15:55 +01:00
Jonas 'Sortie' Termansen
98d1ccfa7d Improved the shell with pipes, background processes and semicolons.
It's really hacky, but it's an improvement.
2012-03-02 18:02:31 +01:00
Jonas 'Sortie' Termansen
0ed0082070 Added execv(3) and execve(3).
Removed the older libmaxsi system call.
2012-03-02 15:00:11 +01:00
Jonas 'Sortie' Termansen
f2f4b2ca60 Better argument parsing in column(1). 2012-03-01 16:59:53 +01:00
Jonas 'Sortie' Termansen
158909033e ls(1) now pipe(2) into column(1) if stdout(3) isatty(2).
This saves precious screen space as Sortix only supports 25-line ttys.
2012-03-01 14:37:28 +01:00
Jonas 'Sortie' Termansen
caddf8c191 Added column(1). 2012-03-01 14:36:56 +01:00
Jonas 'Sortie' Termansen
081bb6481c Added pwd(1). 2012-03-01 00:27:30 +01:00
Jonas 'Sortie' Termansen
c4264d9c2a Ported the user-space programs to use stdin for keyboard access.
The old keyboard API is hereby deprecated and unused.
2012-02-10 13:46:26 +01:00
Jonas 'Sortie' Termansen
ff9221de1a Updated ls(1) to use the DIR API. 2012-01-15 00:51:35 +01:00
Jonas 'Sortie' Termansen
d6d404f3f0 Added a simple pager program while we wait for less(1) to be ported. 2011-12-26 17:23:40 +01:00
Jonas 'Sortie' Termansen
fdbd4ca90d Implemented large parts of the stdio(3), including fprintf.
Made FILE an interface to various backends. This allows application writers
to override the standard FILE API functions with their own backends. This
is highly unportable - it'd be nice if a real standard existed for this.
glibc already does something like this internally, but AFAIK you can't hook
into it.

Added fdopen(3), fopen(3), fregister(3), funregister(3), fread(3),
fwrite(3), fseek(3), clearerr(3), ferror(3), feof(3), rewind(3), ftell(3),
fflush(3), fclose(3), fileno(3), fnewline(3), fcloseall(3), memset(3),
stdio(3), vfprintf(3), fprintf(3), and vprintf(3).

Added a file-descriptor backend to the FILE API.

fd's {0, 1, 2} are now initialized as stdin, stdout, and stderr when the
standard library initializes.

fcloseall(3) is now called on exit(3).

decl/intn_t_.h now @include(size_t.h) instead of declaring it itself.

Added <stdint.h>.

The following programs now flush stdout: cat(1), clear(1), editor(1),
init(1), mxsh(1).

printf(3) is now hooked up against vprintf(3), while Maxsi::PrintF
remains using the system call, for now.
2011-12-24 04:28:34 +01:00
Jonas 'Sortie' Termansen
b5fe020b7a Fixed bad variable name in uptime(1), it's usecs not msecs. 2011-12-23 19:53:47 +01:00
Jonas 'Sortie' Termansen
ee125f01e2 Made the memstat program a little more 64-bit friendly.
I think.
2011-12-23 16:54:34 +01:00
Steve Dougherty
567786d26b Added calc, an integer-based reverse polish notation calculator. 2011-12-17 11:40:16 +01:00
Jonas 'Sortie' Termansen
854d9b171a uptime(2) now reports usecs instead of msecs. 2011-12-04 21:27:21 +01:00
Jonas 'Sortie' Termansen
f5b46a89ed uname(1) now reports whether the system is 32-bit or 64-bit. 2011-12-01 15:30:17 +01:00
Jonas 'Sortie' Termansen
8c146f14c0 Added uptime(1). 2011-11-28 16:29:53 +01:00
Jonas 'Sortie' Termansen
d96d790de7 Oops, meant 'used' instead of 'free' in memstat. 2011-11-26 21:10:08 +01:00
Jonas 'Sortie' Termansen
bd1b1fe3bc Added isatty(2), which is used by editor. 2011-11-26 21:00:40 +01:00
Jonas 'Sortie' Termansen
9152443816 Added memstat, a program for displaying memory usage. 2011-11-26 20:14:57 +01:00
Jonas 'Sortie' Termansen
f45def4a68 cat(1) now writes to fd 1 instead of /dev/tty. 2011-11-26 19:14:08 +01:00
Jonas 'Sortie' Termansen
4cac495121 mxsh now ignores trailing whitespace. 2011-11-26 13:27:15 +01:00
Jonas 'Sortie' Termansen
d4231b2027 Added program_invocation_name(3), error(3), and perror(3) and used them. 2011-11-26 11:00:45 +01:00
Jonas 'Sortie' Termansen
867627c085 Added echo(1). 2011-11-26 00:54:17 +01:00
Jonas 'Sortie' Termansen
c0fa3a6aae Editor no longer moves the cursor if not needed. 2011-11-24 20:25:52 +01:00
Jonas 'Sortie' Termansen
63b622a086 The shell now supports sending stdout to a file. 2011-11-24 17:42:40 +01:00
Jonas 'Sortie' Termansen
724305f3a7 Merge commit '7a233f2938f4e28d61504853e2f6daf4904aab33'
Conflicts:
	sortix/fs/ramfs.cpp
2011-11-24 15:38:45 +01:00
Jonas 'Sortie' Termansen
4890c306c4 printf(3) now writes to fd 1. 2011-11-24 10:26:36 +01:00
Jonas 'Sortie' Termansen
481ddfa7e4 rm(1) usage now works without crashing. 2011-11-23 17:05:09 +01:00
Jonas 'Sortie' Termansen
1f4dc3d0b5 The shell can now print %. 2011-11-23 14:07:02 +01:00
Jonas 'Sortie' Termansen
2b032b0414 Initial signal support. Please squash improvements into this commit. 2011-11-23 00:19:09 +01:00
Jonas 'Sortie' Termansen
7a9afd66fe cat(1) now writes to /dev/tty.
Someone really ought to implement stdout.
2011-11-23 00:18:04 +01:00
Jonas 'Sortie' Termansen
6986963b4b cp(1) can now support the syntax cp /bin/snake / 2011-11-22 17:57:10 +01:00
Jonas 'Sortie' Termansen
9f35df813e Implemented errno(3), added support in both kernel and utils. 2011-11-22 17:26:47 +01:00
Jonas 'Sortie' Termansen
55240fb3f5 Added devfs, with files /tty and /null and mounted it at /dev. 2011-11-21 21:49:13 +01:00
Jonas 'Sortie' Termansen
8b2b52b9f6 Added unlink(2) and rm(1). 2011-11-21 19:01:56 +01:00
Jonas 'Sortie' Termansen
66f6055a13 Added cp(1). 2011-11-21 14:57:02 +01:00
Jonas 'Sortie' Termansen
d4590cefa1 Added chdir(2), getcwd(2), which mxsh and ls now uses. 2011-11-21 12:19:57 +01:00
Jonas 'Sortie' Termansen
819c152292 Help now shell-offs ls /bin, instead of ls /. 2011-11-21 00:30:24 +01:00
Jonas 'Sortie' Termansen
23fde42249 Added readdirents(2), which ls(1) now uses, and added dir devices.
The initfs and ramfs are now able to list their contents.
2011-11-21 00:02:53 +01:00
Jonas 'Sortie' Termansen
5714eaa882 Added a simple text editor that can save/load files. 2011-11-19 00:57:17 +01:00
Jonas 'Sortie' Termansen
96d94d9597 cat(1) can now cat files. 2011-11-19 00:57:17 +01:00
Jonas 'Sortie' Termansen
8b7188e6a4 Added the $? command to the shell. 2011-11-10 00:03:53 +01:00
Jonas 'Sortie' Termansen
ae599b6d67 Argv now works in main. 2011-11-09 23:18:26 +01:00
Jonas 'Sortie' Termansen
9ba01ad3b2 Oh my god, did I include thread.cpp into kernel.cpp!? 2011-11-07 14:36:35 +01:00
Jonas 'Sortie' Termansen
b27fa68c81 The shell now forks, uses exit, and wait. 2011-11-07 01:00:18 +01:00
Jonas 'Sortie' Termansen
f9e10ab265 Added an API for user-space to list the initrd, and 'ls' does so now. 2011-11-03 18:26:43 +01:00
Jonas 'Sortie' Termansen
2afe9d1fd6 Implemented the fork() system call and what it needed to work properly.
This commit got completely out of control.

Added the fork(), getpid(), getppid(), sleep(), usleep() system calls, and
aliases in the Maxsi:: namespace.

Fixed a bug where zero-byte allocation would fail.

Worked on the DescriptorTable class which now works and can fork.

Got rid of some massive print-registers statements and replaced them with
the portable InterruptRegisters::LogRegisters() function.

Removed the SysExecuteOld function and replaced it with Process::Execute().

Rewrote the boot sequence in kernel.cpp such that it now loads the system
idle process 'idle' as PID 0, and the initization process 'init' as PID 1.

Rewrote the SIGINT hack.

Processes now maintain a family-tree structure and keep track of their
threads. PIDs are now allocated using a simple hack. Virtual memory
per-process can now be allocated using a simple hack. Processes can now be
forked. Fixed the Process::Execute function such that it now resets the
stack pointer to where the stack actually is - not just a magic value.
Removed the old and ugly Process::_endcodesection hack.

Rewrote the scheduler into a much cleaner and faster version. Debug code is
now moved to designated functions. The noop kernel-thread has been replaced
by a simple user-space infinite-loop program 'idle'.

The Thread class has been seperated from the Scheduler except in Scheduler-
related code. Thread::{Save,Load}Registers has been improved and has been
moved to $(CPU)/thread.cpp. Threads can now be forked. A new CreateThread
function creates threads properly and portably.

Added a MicrosecondsSinceBoot() function.

Fixed a crucial bug in MemoryManagement::Fork().

Added an 'idle' user-space program that is a noop infinite loop, which is
used by the scheduler when there is nothing to do.

Rewrote the 'init' program such that it now forks off a shell, instead of
becoming the shell.

Added the $$ (current PID) and $PPID (parent PPID) variables to the shell.
2011-11-01 01:00:20 +01:00
Jonas 'Sortie' Termansen
c705bf39ff Ported kernel to new syscall API and started cleaning up the old one. 2011-10-27 00:20:28 +02:00
Jonas 'Sortie' Termansen
cc61176e5b Restored support for JSSortix using very ugly hacks. :( 2011-09-08 11:10:41 +02:00
Jonas 'Sortie' Termansen
7037b2f002 Userspace program's makefiles now properly delete from initrd/. 2011-09-06 15:55:56 +02:00
Jonas 'Sortie' Termansen
f26e6e803a The Sortix programs are now compiled into initrd/. 2011-08-28 12:42:06 +02:00
Jonas 'Sortie' Termansen
2c18d43359 Added the programs ls and help. 2011-08-28 12:38:01 +02:00
Jonas 'Sortie' Termansen
34e9ca277d Added a shell, a few programs, and added support for SIGINT. 2011-08-28 12:38:01 +02:00