Commit Graph

367 Commits

Author SHA1 Message Date
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