Commit Graph

581 Commits

Author SHA1 Message Date
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 10291fcb38 Removed old draft for Sortix subsystems.
It was removed because it does represent the current vision for Sortix
development, which is more flexible than subsystems. Mainly, I wish to
implement processes being able to have their own user-id table, their
own filesystem namespace, own root directory, and so on.
2012-04-13 19:58:52 +02:00
Jonas 'Sortie' Termansen 3b63a70191 Added Interrupt::SetEnabled(bool). 2012-04-13 17:42:21 +02:00
Jonas 'Sortie' Termansen f59b53ddce Ported x64 interrupt assembly to the GNU assembler. 2012-04-13 17:34:17 +02:00
Jonas 'Sortie' Termansen 8cbf9ff8f0 Added Interrupt::IsEnabled(). 2012-04-11 15:46:32 +02:00
Jonas 'Sortie' Termansen 36ff6c7f96 seek(2) now correctly rejects a bad whence value. 2012-04-10 13:20:33 +02:00
Jonas 'Sortie' Termansen 6367a2352e Added sforkr(2) that controls the child registers as well.
sfork(2) now calls sforkr(2) with the current registers.

This will prove useful in creating threads, where user-space now can fully
control what state the child will start in. This is unlike the Linux clone
system call that accepts a pointer to the child stack; this is more powerful
and somehow simpler. Note that this will create a rather raw thread; no
thread initization has been done by the standard thread API (when it is
implemented), so this feature shouldn't be used by programmers unless they
know what they are doing.

fork(2) now calls sfork(2) directly. Also removed fork(2) and sfork(2) from
the kernel as they are done using sforkr(2) now. So technically they aren't
system calls right now, but that could always change.
2012-04-05 23:00:47 +02:00
Jonas 'Sortie' Termansen 6f36ecf0b3 execve(2) now pushes envp to the new stack and sets up registers.
This fully implements environmental variables over exec.
2012-04-04 01:49:14 +02:00
Jonas 'Sortie' Termansen 60b9a84a51 execv(3) now passes environ(7) to execve(2). 2012-04-04 01:38:45 +02:00
Jonas 'Sortie' Termansen 33645eb347 <unistd.h> now declares environ(7) if _WANT_ENVIRON.
Note that it is very bad style of programs to access it directly.
2012-04-04 01:37:05 +02:00
Jonas 'Sortie' Termansen 05b29ce25a Renamed rfork(2) to sfork(2) to avoid compatibility issues.
sfork is much like rfork except sharing is default for everything.

Eventually, I'll make a rfork(3) wrapper function around sfork(2) to
provide compatibility to BSD programs.

I don't like Linux clone(2): that's some messy function.
2012-04-04 00:29:25 +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 dd5157da6a Implemented setenv(3), putenv(3), getenv(3), clearenv(3), sortix_getenv(3),
unsetenv(3), envlength(3), getenvindexed(3), and environ(7).

This provides the user-space foundation for environmental variables.

Note that this works over fork(2), but not execve(2) yet.
2012-04-03 20:23:28 +02:00
Jonas 'Sortie' Termansen 5d59f0ed03 Added EBOUND. 2012-04-02 20:24:56 +02:00
Jonas 'Sortie' Termansen 95a088fec5 Added a dummy implementation rfork(2) equal to fork(2).
Note that in my implementation, you share per default, unless you ask.
2012-04-02 16:30:13 +02:00
Jonas 'Sortie' Termansen b3b1f6af66 Make sure that the right bits.h file is always included. 2012-03-27 16:36:55 +02:00
Jonas 'Sortie' Termansen cd0e402bbb Added {,l,ll,imax}abs(3). 2012-03-27 16:36:55 +02:00
Jonas 'Sortie' Termansen 554b2e44cc Added a Page::IsAligned inline function. 2012-03-26 16:46:26 +02:00
Jonas 'Sortie' Termansen 9ab0bc5474 Added {,p}{read,write}{all,least}(3). 2012-03-24 15:34:30 +01:00
Jonas 'Sortie' Termansen c62eb09cdc Added stubs for pread(2) and pwrite(2).
These are not implemented yet because the current kernel design is bad.

However, I need the stubs for other code.
2012-03-24 15:23:07 +01:00
Jonas 'Sortie' Termansen 757184fd5c Added EEOF. 2012-03-24 15:19:16 +01:00
Jonas 'Sortie' Termansen 1ba4417b19 Removed dead ancient code. 2012-03-22 01:04:27 +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 e496c07764 Added a <libmaxsi/integer.h> header with divide-round-up functions. 2012-03-21 16:23:05 +01:00
Jonas 'Sortie' Termansen ea11c20689 Added a way for discover refcount of Refcounted classes. 2012-03-21 16:20:41 +01:00
Jonas 'Sortie' Termansen 0f099c65ca The virtual memory fork code can now handle ENOMEM conditions.
(forkbombs now don't panic the system!)
2012-03-19 02:39:11 +01:00
Jonas 'Sortie' Termansen e0e0cadf4a Changed error message for ENOMEM to something sensible. 2012-03-19 02:26:32 +01:00
Jonas 'Sortie' Termansen 02d309a92d Began development of Sortix 0.7 2012-03-18 23:35:04 +01:00
Jonas 'Sortie' Termansen 2709d17455 Updated version number to 0.6. 2012-03-18 22:49:38 +01:00
Jonas 'Sortie' Termansen 8a8b8e47b7 Fixed spelling error in README. 2012-03-18 22:46:58 +01:00
Jonas 'Sortie' Termansen 051ec170f5 Updated the README with information about the upcoming 0.6 release. 2012-03-18 21:36:11 +01:00
Jonas 'Sortie' Termansen c9ab4fa6b4 The sortix vga terminal now can delete tabs and newlines properly.
A nice little vga attribute array takes care of remembering what indexes
actually contains a character.
2012-03-18 18:06:13 +01:00
Jonas 'Sortie' Termansen 14a9149f17 Added detection for an obscure bug to let users know I know about it. 2012-03-18 17:36:31 +01:00
Jonas 'Sortie' Termansen d564603460 Fixed kernel stack overflow and premature EOF in the unix pipe code.
This usually caused the system to lock up when much data was transferred
over pipes, for instance: $ cd /bin ; cat cat | cat
2012-03-18 16:14:26 +01:00
Jonas 'Sortie' Termansen c7c0fc603a Fixed initial kernel stack being wrong size. 2012-03-17 20:17:12 +01:00
Jonas 'Sortie' Termansen 969c0e8048 Cleaned up sortix/kernel.cpp and it now uses the new coding style.
All kernel.cpp code related to jssortix was removed as it is not supported
any longer.
2012-03-17 20:11:37 +01:00
Jonas 'Sortie' Termansen 4f3e22140c Fixed x64 memory leaks upon process termination. 2012-03-17 18:14:57 +01:00
Jonas 'Sortie' Termansen 0364ce6f55 Added a new COM Port driver.
Any detected COM ports available as /dev/comN.

It currently utilizes AGAIN to do polling in user-space. This prevents it
from locking up the whole system and makes it respond to the SIGINT hack.

There is also a more reliable and faster polling-blocking mode, but it locks
up the entire system.

The main interrupt mode is broken, perhaps by a bug in VirtualBox.
2012-03-17 15:48:42 +01:00
Jonas 'Sortie' Termansen f54cb6ab94 Added EAGAIN and made read(1) and write(1) retry if they get it. 2012-03-17 15:35:45 +01:00
Jonas 'Sortie' Termansen 1ff0321400 Added a stub for Syscall::Yield() which is used by broken code.
The whole system call interface is currently stupid.
2012-03-17 15:14:42 +01:00
Jonas 'Sortie' Termansen 798b421d16 Refactored devfs so new devices can easily be added. 2012-03-17 15:11:35 +01:00
Jonas 'Sortie' Termansen 5ec4e33196 Removed the last reference to the old kernel HTTP server. 2012-03-16 16:56:16 +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 a353706011 Updated the README. 2012-03-14 15:14:21 +01:00
Jonas 'Sortie' Termansen e0eabd0e5f <dirent.h> now declares size_t. 2012-03-12 02:03:46 +01:00
Jonas 'Sortie' Termansen 8399b1a2ee Made <sys/types.h> more POSIX compliant. 2012-03-12 02:00:00 +01:00
Jonas 'Sortie' Termansen 3cab1113cf Made EOPNOTSUPP an alias for ENOTSUP. 2012-03-12 01:46:12 +01:00
Jonas 'Sortie' Termansen 2cdeb575f8 Renamed EACCESS to EACCES.
Stupid POSIX.
2012-03-12 01:43:00 +01:00
Jonas 'Sortie' Termansen 6de3c462be Added EMFILE. 2012-03-12 01:37:50 +01:00