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