Commit graph

503 commits

Author SHA1 Message Date
David van Moolenbroek da21d85025 Add PTYFS, Unix98 pseudo terminal support
This patch adds support for Unix98 pseudo terminals, that is,
posix_openpt(3), grantpt(3), unlockpt(3), /dev/ptmx, and /dev/pts/.
The latter is implemented with a new pseudo file system, PTYFS.

In effect, this patch adds secure support for unprivileged pseudo
terminal allocation, allowing programs such as tmux(1) to be used by
non-root users as well.  Test77 has been extended with new tests, and
no longer needs to run as root.

The new functionality is optional.  To revert to the old behavior,
remove the "ptyfs" entry from /etc/fstab.

Technical nodes:

o The reason for not implementing the NetBSD /dev/ptm approach is that
  implementing the corresponding ioctl (TIOCPTMGET) would require
  adding a number of extremely hairy exceptions to VFS, including the
  PTY driver having to create new file descriptors for its own device
  nodes.

o PTYFS is required for Unix98 PTYs in order to avoid that the PTY
  driver has to be aware of old-style PTY naming schemes and even has
  to call chmod(2) on a disk-backed file system.  PTY cannot be its
  own PTYFS since a character driver may currently not also be a file
  system.  However, PTYFS may be subsumed into a DEVFS in the future.

o The Unix98 PTY behavior differs somewhat from NetBSD's, in that
  slave nodes are created on ptyfs only upon the first call to
  grantpt(3).  This approach obviates the need to revoke access as
  part of the grantpt(3) call.

o Shutting down PTY may leave slave nodes on PTYFS, but once PTY is
  restarted, these leftover slave nodes will be removed before they
  create a security risk.  Unmounting PTYFS will make existing PTY
  slaves permanently unavailable, and absence of PTYFS will block
  allocation of new Unix98 PTYs until PTYFS is (re)mounted.

Change-Id: I822b43ba32707c8815fd0f7d5bb7a438f51421c1
2015-06-23 17:43:46 +00:00
Leonardo Fogel 07cbc27cb0 Add a driver for the eMMC on the BeagleBone Black
Change-Id: I30ab36ac048c65538718e372db9502fb8f51d41f
2015-06-21 11:04:16 +00:00
Thomas Cort fc850d580c man: clean-out man1x category.
Removes the following man pages:

* awk.1x -- for a version of awk we no longer have
* kermit.1x -- seems gone altogether
* macros.1x -- not useful for anyone anymore

Moves the following man pages:

* mined.1x -- Moved to minix/commands/mined/mined.1
and reformatted to use the mdoc macros instead of the
Minix macros so that it displays properly.

Removes /usr/man/man1x from the directory tree.

closes #44

Change-Id: I59b8bd54cf5cba6d188e51e99a92b36e90c275c1
2015-03-25 06:53:44 +01:00
Jacob Adams 056ece2898 Update whatis/apropos database configuration
Change-Id: I2483cc0e9748ba68bd1acf0ceb39fde4afc2059b
2015-03-23 11:11:49 +01:00
Robin Karlsson e3b78ef14f Import NetBSD games/rogue
Change-Id: Id4aef4950f250edef2d507910877aabc6b9580ea
2015-03-14 14:59:16 +01:00
David van Moolenbroek 4bf270019a dp8390: update, allow default port and IRQ
Bochs has switched from port base 0x240 to 0x300 for its default
NE2000 ISA configuration, and QEMU is using the same settings.

Change-Id: Ide6cdb14321eb4324d0bf6d6314c5970b3493e95
2014-12-04 12:10:46 +00:00
David van Moolenbroek cb796b7551 etc/usr/rc: fix argument passing for net drivers
The expected argument name would include the instance number, which
is not only redundant in many cases (FOOETHn_n=arg.., "n" being the
instance number) and conflicted with what netconf(8) does, but some
drivers need to be able to see the arguments for all instances of its
driver type--for example, dp8390 needs to know how many earlier
instances have been configured to use PCI.

Change-Id: I4830b823352722f554a032979464aba8b08fc166
2014-12-04 12:10:46 +00:00
David van Moolenbroek e321f65582 libfsdriver: support mmap on FSes with no device
This patch adds (very limited) support for memory-mapping pages on
file systems that are mounted on the special "none" device and that
do not implement PEEK support by themselves.  This includes hgfs,
vbfs, and procfs.

The solution is implemented in libvtreefs, and consists of allocating
pages, filling them with content by calling the file system's READ
functionality, passing the pages to VM, and freeing them again.  A new
VM flag is used to indicate that these pages should be mapped in only
once, and thus not cached beyond their single use.  This prevents
stale data from getting mapped in without the involvement of the file
system, which would be problematic on file systems where file contents
may become outdated at any time.  No VM caching means no sharing and
poor performance, but mmap no longer fails on these file systems.

Compared to a libc-based approach, this patch retains the on-demand
nature of mmap.  Especially tail(1) is known to map in a large file
area only to use a small portion of it.

All file systems now need to be given permission for the SETCACHEPAGE
and CLEARCACHE calls to VM.

A very basic regression test is added to test74.

Change-Id: I17afc4cb97315b515cad1542521b98f293b6b559
2014-11-15 11:19:52 +00:00
Lionel Sambuc 957802cd0c Import NetBSD shell environment files
With the import of Xorg, a proper separation between login-time and sub
shell-time of the environment setup is necessary.

Instead of re-developping this from scratch, I am taking the opportunity
to import the NetBSD default environment.

Change-Id: Ib6a8fbd9c2f407ccd59be57a52ef9df21c2c9ce7
2014-11-10 16:48:56 +01:00
Lionel Sambuc 123aceb045 Adding /usr/X11R7/lib to LD_LIBRARY_PATH
Change-Id: I94b91e9e89115f90142e284fca21df4c3c8e2060
2014-11-10 14:43:29 +01:00
Lionel Sambuc 86b0b2ca84 Adding /usr/X11R7 to PATH
Change-Id: Ifac54e59715f48bdfa4ab0a77d656d11f7289a2e
2014-11-10 14:43:29 +01:00
Lionel Sambuc 971bb1a587 Importing external/mit/xorg support rules
Change-Id: Ib11d8659485a444797bf3a2118182a1d4e316b50
2014-11-10 14:43:29 +01:00
Lionel Sambuc 9e77ef5013 Enhancing /proc/pci
- Adding missing fields for PCI device lookup
 - Adding the domain (for now set to zero) as part of the slot name

Change-Id: Iebaf3b21f6ab5024738cbc1dea66d5ad3ada175d
2014-11-10 14:43:27 +01:00
Lionel Sambuc 7eb99bda90 Importing lib/libpci
Change-Id: I21ae1e409286cec27c5e35677de3778a3f505d1e
2014-11-07 16:20:39 +01:00
David van Moolenbroek eda6f5931d Import tmux
We have to use SOCK_SEQPACKET instead of SOCK_STREAM for client/server
communication, because UDS does things with control messages that tmux
does not expect.

Change-Id: I3edb1875d61fb976cf6485c650f4fd4b82fa354c
2014-10-03 10:01:08 +00:00
David van Moolenbroek e985b92992 Import libevent
Change-Id: Ic75f4cac5eb07ffaba8f97d10673d7d7e2b1762d
2014-10-03 10:00:53 +00:00
Ben Gras 0d9602e04b Import NetBSD legal/COPYRIGHT.
Change-Id: Ic23e5f1902ade92402faa968bb945b7d873aaf6b
2014-09-28 16:28:05 +02:00
Ben Gras 588a35b929 Set the motd to point to a wiki page.
Change-Id: I12bc9d07c4d3d0bcb17a27521a0f06ad5abb5fda
2014-09-13 23:56:50 +02:00
Lionel Sambuc 684b2eb975 /usr/Makefile: prevent pkgin from hanging
Change-Id: Ida6086f3c2d3300609aaebb931d094fd779c73ea
2014-09-12 11:07:33 +02:00
David van Moolenbroek e60f57aa30 rc: update (unused) default service directory
Change-Id: I62f838a47ef92975ef88319fffd94f83814fef49
2014-09-09 10:04:31 -04:00
Lionel Sambuc 094431dd97 set LD_LIBRARY_PATH
Change-Id: I959043857b381df561ce156b7388444628c81afb
2014-09-05 10:26:18 +02:00
Lionel Sambuc d90bee9749 Importing bin/sh
/etc/profile enables by default tabcompletion, as well as emacs mode,
in order to keep the old MINIX ash behavior.

Note: The shell now refuses to source a script without a relative or
      absolute path.
      This means:
        - '. myscript.sh' fails, while
        - '. ./myscript.sh' succeeds

Change-Id: I0be89b0747bd005e4c05cadb937af86883627dc6
2014-08-29 12:56:04 -04:00
Wojciech Zajac 2d64210c1d Much USB code for ARM USB support
Written by JP Embedded.

Host controller (HCD), mass storage, and hub drivers.

Change-Id: I4237cf7aeb4a1c0205a1876593a9cc67ef3d577e
2014-08-29 18:52:49 +02:00
Ben Gras d1abad940a some small changes
. add /sbin to tests $PATH for ping
	. take disable file mmap item from default boot menu
	. ask for feedback in motd
	. fix ext2fs on arm (the memory alloced with STATICINIT is flaky on arm)

Change-Id: I7525207074d62abc47ed3891139f6ef7ef6025be
2014-08-28 18:49:03 +02:00
Lionel Sambuc 29271eabe4 Update usr/Makefile
- This improves the user messages.

 - This update the pkgsrc checkout rules to point to the new repository,
   as well as the new work process we are introducing.

 - This introduces rules for the MINIX sources, as we don't have the
   space anymore to distribute them by default on the official ISO.

Change-Id: Id1867286bd15efc46bad1d906c1ca1b3a883b064
2014-08-14 19:02:53 +02:00
Lionel Sambuc aea6d8c922 Introduce pkgin_sets
This tool allow you to install one or more predefined package sets.

Change-Id: Id21c9e9fbd43f44f2d3b040961411428e1ae0af9
2014-08-13 16:42:57 +02:00
Lionel Sambuc 8edaaa301c Services move to /service fixes
- Fix init rights not adjusted at boot time

 - Fix usbd not loaded on BBB / BBW

Change-Id: Ic690547876d486165e74c749a4fe43891d0e1e8d
2014-08-08 17:56:05 +02:00
Lionel Sambuc b8d147203f Removing /home/bin
The bin user doesn't need an actual home folder to run the tests. As
such this account should not be used in 'su - bin'. To be noted that
'su bin' still works as expected, and allow to run the minix test set
as usual.

Change-Id: I21fd178bf3b7b28849f05ef24930b553094cc851
2014-08-07 14:01:30 +02:00
Lionel Sambuc 957a365668 Removing the ast account
We used to have an account "ast" as a token to Andrew S. Tannebaum,
the creator of MINIX. The account was disable by default, with no
possible way to login.

It seems it generates more confusion than it is worth, so this removes it.

The default skeleton user profile is still stored into /etc/ast instead
of the usual /etc/skel.

Change-Id: I71818c0bb9580cdecfa9621f8693586fc48d17cb
2014-08-07 13:19:17 +02:00
Lionel Sambuc 50a1aef12b Move all services to /service
This concerns all services, a.k.a drivers, filesystem drivers, network
(inet, lwip, uds) servers, and the system servers.

Change-Id: I626fd15c795e15af42df2d10d47fb4a703665d63
2014-07-31 16:00:31 +02:00
Lionel Sambuc 433d6423c3 New sources layout
Change-Id: Ic716f336b7071063997cf5b4dae6d50e0b4631e9
2014-07-31 16:00:30 +02:00
Cristiano Giuffrida d9cd49c332 sef: Add fault injection (and EDFI) support. 2014-07-28 17:06:06 +02:00
Lionel Sambuc 4684ddb6aa LLVM Minix changes
- import libcxx
 - reduce targets to the one when compiled as a tools

Change-Id: Iabb8427f80ff8e89463559a28bcb8b4f2bdbc496
2014-07-28 17:05:59 +02:00
Lionel Sambuc f4a2713ac8 Importing netbsd clang -- pristine
Change-Id: Ia40e9ffdf29b5dab2f122f673ff6802a58bc690f
2014-07-28 17:05:57 +02:00
Kees Jongenburger 9cc744ad52 arm:build and install usbd by default.
Change-Id: I3f7a5bf5d4b75ba820297b0d5fb4447e5126e641

http://gerrit.minix3.org/#/c/2696/
2014-07-28 17:05:40 +02:00
Kees Jongenburger 489a81f55d arm:if present start usbd
Change-Id: Ide4079b993f9525d09a6a42dfb09b958dc546942

http://gerrit.minix3.org/#/c/2695/
2014-07-28 17:05:40 +02:00
Kees Jongenburger b32ff391d3 usb:add devmand usb_storage startup script.
Change-Id: Ied194729ea168e8b2cc03d3b808da01860f0eac5

http://gerrit.minix3.org/#/c/2694/
2014-07-28 17:05:39 +02:00
Kees Jongenburger 3553b1a2f5 arm:also start devmand on ARM.
Change-Id: Iceffd21d23efa45110a42ce2ab471c15cd6edf66

http://gerrit.minix3.org/#/c/2688/
2014-07-28 17:05:38 +02:00
Lionel Sambuc 36ed617477 Add /bin/false to /etc/shells
/bin/false is often used by PKGSRC packages which create unpriviledged
users as part of their install process.

This fixes the generation and installation of such packages.

Change-Id: Ie2a590c56c86dc40a61e3c08d14f5443ebe4f58c
2014-07-28 17:05:22 +02:00
Kees Jongenburger eaa642e09d Adding an initial ddekit test.
Change-Id: I0522449bb7bbbb23efc132ede3a02da95efe0326
2014-07-28 17:05:22 +02:00
Thomas Cort 2f98b65abf Importing games/tetris
No Minix specific changes needed.

Change-Id: Ia6a2d9d2192ae0cee29e395aa42271005c6179c2
2014-07-28 17:05:20 +02:00
Thomas Cort bd0f8badfa Importing games/fortune
Replaces commands/fortune. No Minix specific changes needed.

Change-Id: Iac79ea82dedd12e80377c85954da5e2d8eee74af
2014-07-28 17:05:16 +02:00
Thomas Cort 0819c9f89b Importing games/adventure
No Minix specific changes needed.

Change-Id: I6826d660c60a9e01676e21ef9b95d27e64a67aa5
2014-07-28 17:05:16 +02:00
David van Moolenbroek 760f3d62d7 PTY: split off from TTY
Requires recreation of /dev/tty[pq]*, /dev/pty[pq]* device nodes.

Change-Id: I0e5a28d82faa934497fd3b97d619e506bcb5f439
2014-07-28 17:05:12 +02:00
Zachary Storer 1d48ef9844 Import NetBSD true and false commands
Replaces the 'true' and 'false' functionality provided by commands/true
and commands/false.

Change-Id: I736efb9a650f3154eb21e442d676a0f5d2dee957
2014-07-28 17:05:09 +02:00
Lionel Sambuc 84d9c625bf Synchronize on NetBSD-CVS (2013/12/1 12:00:00 UTC)
- Fix for possible unset uid/gid in toproto
 - Fix for default mtree style
 - Update libelf
 - Importing libexecinfo
 - Resynchronize GCC, mpc, gmp, mpfr
 - build.sh: Replace params with show-params.
     This has been done as the make target has been renamed in the same
     way, while a new target named params has been added. This new
     target generates a file containing all the parameters, instead of
     printing it on the console.
 - Update test48 with new etc/services (Fix by Ben Gras <ben@minix3.org)
     get getservbyport() out of the inner loop

Change-Id: Ie6ad5226fa2621ff9f0dee8782ea48f9443d2091
2014-07-28 17:05:06 +02:00
Lionel Sambuc a6e7b85835 align include/paths: MAILDIR
Change-Id: Ieb50549f8f27af957f67fcb0757690db88fecc8b
2014-03-03 20:47:01 +01:00
Ben Gras a06e2ab395 big <utmp.h>-inspired netbsd switch
import/switch of:
init, getty, reboot, halt, shutdown, wall, last

changes:
	. change reboot() call to netbsd prototype and args
	. allows pristine <utmp.h>
	. use clean <sys/reboot.h> instead of <minix/reboot.h>
	. implement TIOCSCTTY for use by getty so getty can get
	  controlling terminal from init's child(ren)
	. allow NULL envp for exec

Change-Id: I5ca02cb4230857140c08794bbfeba7df982c58a3
2014-03-01 09:05:02 +01:00
Lionel Sambuc a5f47c23d5 Remove some legacy support in rc scripts & some cleanup
* Remove support for the Poor Man fstab
 * Remove checks for the missing ARCH kernel variable
 * Remove .ashrc which is anyway only read once per login
 * Cleanup PATH variable

Change-Id: Ic32e5749fba502dfa38d4d538860e717580bad60
2014-03-01 09:05:01 +01:00
David van Moolenbroek 24ec0d73b5 Clean up interface to PM and VFS
- introduce new call numbers, names, and field aliases;
- initialize request messages to zero for all ABI calls;
- format callnr.h in the same way as com.h;
- redo call tables in both servers;
- remove param.h namespace pollution in the servers;
- make brk(2) go to VM directly, rather than through PM;
- remove obsolete BRK, UTIME, and WAIT calls;
- clean up path copying routine in VFS;
- move remaining system calls from libminlib to libc;
- correct some errno-related mistakes in libc routines.

Change-Id: I2d8ec5d061cd7e0b30c51ffd77aa72ebf84e2565
2014-03-01 09:05:01 +01:00