Commit graph

718 commits

Author SHA1 Message Date
Erik van der Kouwe 6dc5d42798 Floating point support functions 2009-12-24 20:22:41 +00:00
David van Moolenbroek 692dc020e1 Correct ping(1) usage string (Bug#372, reported by Leith Brandeland 2009-12-23 23:42:07 +00:00
David van Moolenbroek d5dee93bee Support for larger disks.
- MFS, df(1), fsck(1), badblocks(8), de(1x) now compute the
  superblock's s_firstdatazone value if the on-disk value is zero
- mkfs(1) sets s_firstdatazone in the superblock to zero if the
  on-disk field is too small to store the actual value
- more agressive mkfs(1) inode number heuristic, copied from r5261
2009-12-21 11:20:30 +00:00
Thomas Veerman 958b25be50 - Introduce support for sticky bit.
- Revise VFS-FS protocol and update VFS/MFS/ISOFS accordingly.
- Clean up MFS by removing old, dead code (backwards compatibility is broken by
  the new VFS-FS protocol, anyway) and rewrite other parts. Also, make sure all
  functions have proper banners and prototypes.
- VFS should always provide a (syntactically) valid path to the FS; no need for
  the FS to do sanity checks when leaving/entering mount points.
- Fix several bugs in MFS:
  - Several path lookup bugs in MFS.
  - A link can be too big for the path buffer.
  - A mountpoint can become inaccessible when the creation of a new inode
    fails, because the inode already exists and is a mountpoint.
- Introduce support for supplemental groups.
- Add test 46 to test supplemental group functionality (and removed obsolete
  suppl. tests from test 2).
- Clean up VFS (not everything is done yet).
- ISOFS now opens device read-only. This makes the -r flag in the mount command
  unnecessary (but will still report to be mounted read-write).
- Introduce PipeFS. PipeFS is a new FS that handles all anonymous and
  named pipes. However, named pipes still reside on the (M)FS, as they are part
  of the file system on disk. To make this work VFS now has a concept of
  'mapped' inodes, which causes read, write, truncate and stat requests to be
  redirected to the mapped FS, and all other requests to the original FS.
2009-12-20 20:27:14 +00:00
Cristiano Giuffrida e090013056 Drivers and servers are simply known as services.
/etc CHANGES:
- /etc/drivers.conf has been renamed to /etc/system.conf. Every entry in 
the file is now marked as "service" rather than driver.
- user "service" has been added to password file /etc/passwd.
- docs/UPDATING updated accordingly, as well as every other mention to the old
drivers.conf in the system.

RS CHANGES:
- No more distinction between servers and drivers.
- RS_START has been renamed to RS_UP and the old legacy RS_UP and RS_UP_COPY
dropped.
- RS asks PCI to set / remove ACL entries only for services whose ACL properties
have been set. This change eliminates unnecessary warnings.
- Temporarily minimize the risk of potential races at boot time or when starting
a new service. Upcoming changes will eliminate races completely.
- General cleanup.
2009-12-17 01:53:26 +00:00
David van Moolenbroek d1918e2e9f fix remaining warnings in 'make world' 2009-12-14 20:25:52 +00:00
David van Moolenbroek 14367afaf7 awk: check presence of parameters 2009-12-14 20:24:33 +00:00
Cristiano Giuffrida f4574783dc Rewrite of boot process
KERNEL CHANGES:
- The kernel only knows about privileges of kernel tasks and the root system
process (now RS).
- Kernel tasks and the root system process are the only processes that are made
schedulable by the kernel at startup. All the other processes in the boot image
don't get their privileges set at startup and are inhibited from running by the
RTS_NO_PRIV flag.
- Removed the assumption on the ordering of processes in the boot image table.
System processes can now appear in any order in the boot image table.
- Privilege ids can now be assigned both statically or dynamically. The kernel
assigns static privilege ids to kernel tasks and the root system process. Each
id is directly derived from the process number.
- User processes now all share the static privilege id of the root user
process (now INIT).
- sys_privctl split: we have more calls now to let RS set privileges for system
processes. SYS_PRIV_ALLOW / SYS_PRIV_DISALLOW are only used to flip the
RTS_NO_PRIV flag and allow / disallow a process from running. SYS_PRIV_SET_SYS /
SYS_PRIV_SET_USER are used to set privileges for a system / user process.
- boot image table flags split: PROC_FULLVM is the only flag that has been
moved out of the privilege flags and is still maintained in the boot image
table. All the other privilege flags are out of the kernel now.

RS CHANGES:
- RS is the only user-space process who gets to run right after in-kernel
startup.
- RS uses the boot image table from the kernel and three additional boot image
info table (priv table, sys table, dev table) to complete the initialization
of the system.
- RS checks that the entries in the priv table match the entries in the boot
image table to make sure that every process in the boot image gets schedulable.
- RS only uses static privilege ids to set privileges for system services in
the boot image.
- RS includes basic memory management support to allocate the boot image buffer
dynamically during initialization. The buffer shall contain the executable
image of all the system services we would like to restart after a crash.
- First step towards decoupling between resource provisioning and resource
requirements in RS: RS must know what resources it needs to restart a process
and what resources it has currently available. This is useful to tradeoff
reliability and resource consumption. When required resources are missing, the
process cannot be restarted. In that case, in the future, a system flag will
tell RS what to do. For example, if CORE_PROC is set, RS should trigger a
system-wide panic because the system can no longer function correctly without
a core system process.

PM CHANGES:
- The process tree built at initialization time is changed to have INIT as root
with pid 0, RS child of INIT and all the system services children of RS. This
is required to make RS in control of all the system services.
- PM no longer registers labels for system services in the boot image. This is
now part of RS's initialization process.
2009-12-11 00:08:19 +00:00
Ben Gras 26ba254a4a Intel Pro/1000 driver written by Niek Linnenbank. 2009-12-07 18:33:41 +00:00
Ben Gras b9825f55e0 previous commit premature and not part of FPU changes. 2009-12-02 15:53:20 +00:00
Ben Gras 39484601e7 any blocksize. 2009-12-02 15:33:14 +00:00
Ben Gras bd42705433 FPU context switching support by Evgeniy Ivanov. 2009-12-02 13:01:48 +00:00
David van Moolenbroek be2087ecf9 Filter driver by Wu Bingzheng et al 2009-12-02 10:08:58 +00:00
David van Moolenbroek 6da61b8f05 fix _NSIG usage 2009-11-28 13:20:50 +00:00
Erik van der Kouwe c85bd7edb9 Patch by Jaswinder Singh Rajput to fix FTP progress display 2009-11-17 08:41:43 +00:00
Tomas Hruby 6515c93ecf New instructions in gas2ack
pause
mfence
rdtsc
rdpmc
2009-11-16 21:32:48 +00:00
Tomas Hruby 21a5917f3e gas2ack does not understand .align
- as .align is target dependent we for usage of .balign for byte alignment
2009-11-13 09:29:37 +00:00
Tomas Hruby d653cb457f gas2ack support for rdmsr and wrmsr 2009-11-12 16:19:01 +00:00
Tomas Hruby 37a7e1b76b Use of isemptyp() macro instead of testing RTS_SLOT_FREE flag
- some code used to test if only this flag is set, some if also this flag is
  set. This change unifies the test
2009-11-12 08:35:26 +00:00
Tomas Hruby a972f4bacc All macros defining rts flags are prefixed with RTS_
- macros used with RTS_SET group of macros to define struct proc p_rts_flags are
  now prefixed with RTS_ to make things clear
2009-11-10 09:11:13 +00:00
Tomas Hruby ae75f9d4e5 Removal of the executable flag from files that cannot be executed
- 755 -> 644
2009-11-09 10:26:00 +00:00
David van Moolenbroek 769bed22c8 ash: only execute regular files 2009-11-01 22:25:54 +00:00
Tomas Hruby 41d481b065 gas2ack
- an asmconv based tool for conversion from GNU ia32 assembly to ACK assembly
    
    - in contrast to asmconv it is a one way tool only
    
    - as the GNU assembly in Minix does not prefix global C symbols with _ gas2ack
      detects such symbols and prefixes them to be compliant with the ACK convention
    
    - gas2ack preserves comments and unexpanded macros
    
    - bunch of fixes to the asmconv GNU->ACK direction
    
    - support of more instructions that ACK does not know but are in use in Minix
    
    - it is meant as a temporary solution as long as ACK will be a supported
      compiler for the core system
2009-10-30 15:57:35 +00:00
David van Moolenbroek bd30f2a988 Ground work for larger file systems, and miscellaneous fixes:
- MFS and mkfs(1) now perform extra sanity checks
- fsck(1) can now deal with inode tables extending beyond the file
  system's first 4GB
- badblocks(8) no longer writes out the superblock for no reason
- mkfs(1) no longer crashes when given no parameters
- more(1) no longer crashes when standard output is redirected
2009-10-26 13:35:39 +00:00
Erik van der Kouwe 44a4c8c0d2 Add more identifiers to drivers.conf for orinoco and rtl8137.
Increase RSS_NR_PCI_ID and remove dumplicate reference
to /etc/drivers.conf; each such reference uses _PATH_DRIVERS_CONF
from <minix/paths.h> now.
2009-10-14 07:20:13 +00:00
David van Moolenbroek 0143cb2335 support for head -n (suggested by xorquewasp) 2009-10-10 22:36:46 +00:00
Erik van der Kouwe fc2634d1ed Network card autodetection in netconf.sh 2009-10-10 15:54:05 +00:00
Erik van der Kouwe cb6dbfca2c Add lspci command and SI_PCI_INFO getsysinfo call 2009-10-09 10:48:46 +00:00
Erik van der Kouwe d9a34f96e7 Add nohup tool (approved by Ben) 2009-10-06 14:16:35 +00:00
Ben Gras e716fae585 packman -y: noninteractive mode to install all packages 2009-10-03 09:57:37 +00:00
David van Moolenbroek e7dea9c609 Add id(1) -g, -n, -r options (Bug#302, reported by Aleksey Cheusov) 2009-10-02 12:23:00 +00:00
Ben Gras 57be617a8d revert to 16MB to fix reinstall for now. 2009-10-02 09:48:15 +00:00
David van Moolenbroek bc029d0bc6 Remove treecmp utility (Bug#310, reported by John Peace) 2009-10-01 16:58:13 +00:00
David van Moolenbroek 2ac8124914 Fix writeisofs lseek() usage (Bug#311, reported by John Peace 2009-10-01 16:56:46 +00:00
David van Moolenbroek 0c1ae1965e Fix syslog buffer overflow (Bug#270, reported by Kevin Jordan) 2009-10-01 16:54:56 +00:00
Ben Gras cb50e7e135 support for OSS. 2009-10-01 16:36:14 +00:00
Ben Gras cee82da892 implement VAR += .. feature, contributed by Pieter Hijma 2009-10-01 11:29:08 +00:00
David van Moolenbroek a8ebc69c6e Fix erroneous times() call in udpstat/tcpstat.
Reported by John Peace, bug #312.
Also fix times(2) man page.
2009-10-01 10:31:29 +00:00
Arun Thomas 8f4ca2dc92 Increase root partition size to 64 MB. 2009-09-30 14:11:58 +00:00
Thomas Veerman 4b02d58176 Removed debug string 2009-09-29 13:23:04 +00:00
Ben Gras 699e4345ea revert mkfs change; might run out of inodes, but large number of inodes
makes mkfs not want to mkfs large filesystems.

find optimal formula (e.g. dynamic capping of no. of inodes) later.
2009-09-29 12:14:35 +00:00
Tomas Hruby ab6fc64984 ps fix
It removes the no more existing marcos (XPIPE XPOPEN XDOPEN XLOCK XSELECT) and
replaces them with the new ones from servers/vfs/const.h No more dependency on
NR_TASKS macro.
2009-09-24 16:00:59 +00:00
Erik van der Kouwe 789c8a6ee4 Fixed compilation errors in ps.c and rs/manager.c. The former was fixed by disabling code using no-longer-existant flags and the latter by removing the spurious parameter i from sys_privctl 2009-09-23 08:46:17 +00:00
Ben Gras 36e935fe0f - added 'datasizes' script that shows you the size allocated
for each symbol, usually answering those "why is does my binary have
   such a lot of BSS" questions.
 - stop binpackage looking in /var/spool for package files.
 - let makewhatis recognize .Sh as heading name
 - setup, fsck, df: allow >4kB block sizes painlessly
 - mkfs: new #-of-inodes heuristic that depends on kb, not
   on blocks; i've run out of inodes on my /usr
 - asmconv: don't silently truncate .aligns to 16 bytes
 - ipc* commands for shared memory support
2009-09-21 14:24:29 +00:00
Thomas Veerman 360dc9104c - Added netconf script which makes it a lot easier to change network settings.
- Modified the setup script to use the netconf script for the network
   configuration:
    - Moved step 2 to step 8 and renamed the steps in between.
    - Autopart adapted to print step 3 instead of step 4.
2009-09-03 09:38:27 +00:00
David van Moolenbroek a57fbb11cd Fix time(1) for custom system HZ values (reported by Jose Luis Sanchez 2009-08-30 16:06:59 +00:00
David van Moolenbroek d84472dfc8 urlget: broken ftpget call, reported by Charles Littlefield 2009-08-23 13:53:03 +00:00
Thomas Veerman b47483433c Added a hack to start binaries from the boot image only. In particular, setting
bin_img=1 in the boot monitor will make sure that during the boot procedure the
mfs binary that is part of the boot image is the only binary that is used to
mount partitions. This is useful when for some reason the mfs binary on disk 
malfunctions, rendering Minix unable to boot. By setting bin_img=1, the binary
on disk is ignored and the binary in the boot image is used instead.

- 'service' now accepts an additional flag -r. -r implies -c. -r instructs RS
  to first look in memory if the binary has already been copied to memory and
  execute that version, instead of loading the binary from disk. For example,
  the first time a MFS is being started it is copied (-c) to memory and
  executed from there. The second time MFS is being started this way, RS will
  look in memory for a previously copied MFS binary and reuse it if it exists.
- The mount and newroot commands now accept an additional flag -i, which
  instructs them to set the MS_REUSE flag in the mount flags.
- The mount system call now supports the MS_REUSE flag and invokes 'service'
  with the -r flag when MS_REUSE is set.
- /etc/rc and the rc script that's included in the boot image check for the
  existence of the bin_img flag in the boot monitor, and invoke mount and 
  newroot with the -i flag accordingly.
2009-08-18 11:36:01 +00:00
Erik van der Kouwe fdf47c1046 Fixed some warnings 2009-08-17 18:49:07 +00:00
David van Moolenbroek 323f0abdd6 Support for setitimer(ITIMER_VIRTUAL/ITIMER_PROF). New test (41) for setitimer. 2009-08-15 21:37:26 +00:00
David van Moolenbroek 4db12454e9 awk: support for whitespace between array name and bracket 2009-08-15 12:05:41 +00:00
David van Moolenbroek 708929bc32 awk: support for ENVIRON 2009-08-15 11:34:41 +00:00
Thomas Veerman f50d94b793 Fixed compilation issue. 2009-08-13 09:02:43 +00:00
Thomas Veerman c2ffe723d1 - Moved (u)mount prototypes from unistd.h to sys/mount.h.
- Prepared mount system call to accept multiple mount flags
   instead of just read_only (however, it remains backwards
   compatible).
 - Updated the man mount(2) to reflect new header file usage. 
 - Updated badblocks, newroot, mount, and umount commands to use the
   new header file.
2009-08-12 19:57:37 +00:00
David van Moolenbroek 1defc4fc3a compile and install mdb(1) by default again 2009-08-11 09:08:33 +00:00
David van Moolenbroek cf89d27218 make unstack work on gcc-compiled binaries 2009-07-11 17:55:24 +00:00
David van Moolenbroek b8b8f537bd IPC privileges fixes
Kernel:
o Remove s_ipc_sendrec, instead using s_ipc_to for all send primitives
o Centralize s_ipc_to bit manipulation,
  - disallowing assignment of bits pointing to unused priv structs;
  - preventing send-to-self by not setting bit for own priv struct;
  - preserving send mask matrix symmetry in all cases
o Add IPC send mask checks to SENDA, which were missing entirely somehow
o Slightly improve IPC stats accounting for SENDA
o Remove SYSTEM from user processes' send mask
o Half-fix the dependency between boot image order and process numbers,
  - correcting the table order of the boot processes;
  - documenting the order requirement needed for proper send masks;
  - warning at boot time if the order is violated

RS:
o Add support in /etc/drivers.conf for servers that talk to user processes,
  - disallowing IPC to user processes if no "ipc" field is present
  - adding a special "USER" label to explicitly allow IPC to user processes
o Always apply IPC masks when specified; remove -i flag from service(8)
o Use kernel send mask symmetry to delay adding IPC permissions for labels
  that do not exist yet, adding them to that label's process upon creation
o Add VM to ipc permissions list for rtl8139 and fxp in drivers.conf

Left to future fixes:
o Removal of the table order vs process numbers dependency altogether,
  possibly using per-process send list structures as used for SYSTEM calls
o Proper assignment of send masks to boot processes;
  some of the assigned (~0) masks are much wider than necessary
o Proper assignment of IPC send masks for many more servers in drivers.conf
o Removal of the debugging warning about the now legitimate case where RS's
  add_forward_ipc cannot find the IPC destination's label yet
2009-07-02 16:25:31 +00:00
David van Moolenbroek 951581a29c fix installation of home directories in setup.sh 2009-06-23 13:40:32 +00:00
Arun Thomas dacc0644c8 Restore last(1) and uptime(1) building/installing. 2009-06-23 12:22:35 +00:00
David van Moolenbroek d8b9bf642b make mdb(1) compile again 2009-06-17 14:59:22 +00:00
David van Moolenbroek 87beb9c469 better solution for poweroff(8) 2009-06-12 13:17:33 +00:00
David van Moolenbroek 12a01e8f01 poweroff(8) aesthetics 2009-06-12 13:13:29 +00:00
David van Moolenbroek 24bb7fbb4c added poweroff(8) 2009-06-12 13:02:51 +00:00
Ben Gras 8ee3d26722 don't include /usr/src changes in packages. 2009-05-19 10:55:15 +00:00
David van Moolenbroek fe8c612aa4 support in 'mount' for specifying file system type and options 2009-05-13 15:39:44 +00:00
David van Moolenbroek 021808b12a fix for commands that try to include mfs constants from vfs 2009-05-08 20:37:06 +00:00
Ben Gras 02f047d008 lose -s flag for umount. 2009-04-27 14:23:57 +00:00
Ben Gras 4593eaec24 minor fixes to install script - allow 8kB blocksize (necessary for
large filesystems)
2009-04-27 12:59:49 +00:00
Ben Gras cd2d85c13d no 'small minix' option 2009-03-26 15:54:09 +00:00
Ben Gras f56316a168 don't need to explicitly enable lance any more. 2009-03-26 15:23:07 +00:00
Ben Gras e5079dfc02 multiple ram disks; also make release process use this
so temporary partitions aren't needed any more.
2009-03-19 13:48:19 +00:00
Arun Thomas 5eb353ebbc Update setup's NIC selection dialog 2009-03-06 17:45:22 +00:00
Ben Gras cd37a0299c Check for firstdatazone overflow. 2009-02-17 13:01:25 +00:00
Ben Gras 1f3dd53283 We don't install the bzip2 manual, much less four copies of it, and
it's quite big.
2009-02-16 10:01:22 +00:00
Ben Gras eafd4730ea check for devices that would need more blocks than 32
bits allow..
2009-02-05 16:30:20 +00:00
Ben Gras 54b3f50b05 actually build and install zoneinfo. 2008-12-21 04:33:50 +00:00
Ben Gras 1943df25dd forget about bad block testing. 2008-12-21 04:26:41 +00:00
Ben Gras 523fdf2729 stopgap measure against elvis going nuts when files that are too large
are opened.
2008-12-21 04:01:01 +00:00
Ben Gras 8beff61807 get fproc table. don't print size as that doesn't say much in VM mode.
this restores ps.
2008-12-15 13:05:52 +00:00
Ben Gras 4c1ac39678 Changes so the HZ constant isn't needed any more. 2008-12-11 14:27:18 +00:00
Ben Gras 37a9ce7275 I want to see /dev/imgrd so I can unmount it when it's free. 2008-12-11 14:26:50 +00:00
Ben Gras 5aea2817bc syslogd needs a bit more stack. 2008-12-11 14:26:27 +00:00
Ben Gras c078ec0331 Basic VM and other minor improvements.
Not complete, probably not fully debugged or optimized.
2008-11-19 12:26:10 +00:00
Philip Homburg c888305e21 Reverted accidental change to stat.c. 2008-10-02 14:11:12 +00:00
Philip Homburg 005bc7a649 Some changes that were missing from the previous commit 2008-10-02 13:48:05 +00:00
Philip Homburg 5b5b54c76c Minix 3 version 2008-10-02 13:45:46 +00:00
Philip Homburg 659ab96c1f Unmodified source of the software fault injection utility 2008-10-02 13:43:32 +00:00
Ben Gras d939a9c54b Use $PAGER if set. Suggested by gigabo at gmail.com. 2008-04-08 12:34:35 +00:00
Philip Homburg 822fcd368d Added O_REOPEN, better error handling. 2008-02-25 12:13:30 +00:00
Philip Homburg 41efa40ad2 Added XDOPEN. 2008-02-25 12:12:07 +00:00
Ben Gras e39af6d1ff yearly fsck increase. 2007-12-11 10:51:35 +00:00
Philip Homburg c26de9f435 Close UDP socket after error. 2007-08-15 12:50:24 +00:00
Ben Gras c829928cf1 Give arp and install the default amount of memory - otherwise they run
out of memory in extreme cases.
2007-07-11 13:36:31 +00:00
Ben Gras 2746a5a2a9 Reported by Erik van der Kouwe <vdkouwe at cs.vu.nl>:
-  fprintf(stderr, "%s: reboot(): %s\n", strerror(errno));
+  fprintf(stderr, "%s: reboot(): %s\n", prog, strerror(errno));
  
Other minor fixes inspired by other warnings produced by gcc.
2007-07-02 11:16:27 +00:00
Ben Gras 47c18edb26 date not built from here 2007-05-01 14:18:55 +00:00
Ben Gras 8eb09f6ddc . readall: use lseek64() to read more than 4GB of a device
. vfs: 64-bit offset support for character device i/o
   (also remove unused dev_bio function)
 . memory: /dev/null and /dev/zero are infinitely large, don't stop
   reading/writing at 4GB
2007-04-24 13:27:33 +00:00
Ben Gras ac64c1b3dc Take out obsolete message about 4GB. 2007-04-24 12:40:25 +00:00
Philip Homburg b4f6994278 Use sprintf to avoid buffer overflows. 2007-04-23 13:04:31 +00:00
Ben Gras ac41dcd35f bc and mtools out of the base system (gpl) 2007-04-20 12:06:14 +00:00
Ben Gras 0a0f800805 Make mkfs message a bit clearer. 2007-04-19 14:13:27 +00:00