Commit graph

261 commits

Author SHA1 Message Date
Ben Gras 32c757b12c chrootmake: don't invoke binsizes. 2010-06-22 15:44:29 +00:00
Tomas Hruby 21725c107d cd subdir && $(MAKE) targets -> $(MAKE) -C subdir targets
- first step towards parallel building
2010-06-22 12:03:09 +00:00
Erik van der Kouwe 6312d7238b bzip2 is now the default for releases 2010-06-17 12:00:55 +00:00
Arun Thomas 1b2c01db1b Makefile updates:
Turn on optimization
Remove some redundancy in FLAGS
2010-06-11 16:05:36 +00:00
Erik van der Kouwe 65764218f7 Remove dependency of release.sh on bc, du option to give overhead totals 2010-06-10 11:14:04 +00:00
Erik van der Kouwe a8cf207549 release.sh: avoid egrep -x which the base system doesn't support 2010-06-09 14:32:19 +00:00
Ben Gras 4fe558f44f issue.install: 3.1.8 2010-06-09 14:02:35 +00:00
Ben Gras a98b9ca8dc tools: fix installing includes. 2010-06-07 10:10:27 +00:00
Arun Thomas 8c69c6cd7f Remove gcc-4.1.1 from packages list 2010-06-04 12:36:40 +00:00
Erik van der Kouwe 8afc228c48 This patch changes the release script in the following ways:
- A staging directory is always used to avoid oversized images;
- As a consequence, the zero-filling is removed so no more "out of 
  space" errors should be printed to the console;
- The root and usr partition sizes are computed so less space should be 
  wasted (the root partition gets extra 1MB zones and 64 inodes for 
  run-time though and hardlinks/holes make the used space slightly less
  than expected); USRMB (and the new ROOTMB) are now used to enforce 
  a minimum size rather than set the size;
- TMPDISK1-3 are renamed to more meaningful names (and TMPDISK2 is 
  dropped because a separate tmp directory is no longer needed);
- The ramdisks are truncated at the end to save memory (not sure 
  whether it is actually released though).
2010-06-04 05:09:44 +00:00
Arun Thomas 2fd1f18803 Release script: Remove .d/.depend files from CD 2010-06-01 14:44:36 +00:00
Ben Gras cc6fed4c51 packages: don't put oss on cd. 2010-06-01 11:11:35 +00:00
Arun Thomas b48b037fbe Reorganize some directories
servers/hgfs/hgfs_server => servers/hgfs
servers/hgfs/libhgfs => lib/libhgfs
servers/rs/service => commands/service
drivers/memory/memory_driver => drivers/memory
drivers/memory/ramdisk => drivers/ramdisk
2010-05-26 22:49:57 +00:00
Erik van der Kouwe 456a125e00 Minor patch: increase size of root partition for minimal release, eve very small additions with -c made it fail 2010-05-19 20:11:22 +00:00
Ben Gras 987d3e6d85 packages: gcc-libs renamed, include gcc-4.4.3 2010-05-19 10:22:57 +00:00
Tomas Hruby b09bcf6779 Scheduling server (by Bjorn Swift)
In this second phase, scheduling is moved from PM to its own
scheduler (see r6557 for phase one). In the next phase we hope to a)
include useful information in the "out of quantum" message and b)
create some simple scheduling policy that makes use of that
information.

When the system starts up, PM will iterate over its process table and
ask SCHED to take over scheduling unprivileged processes. This is
done by sending a SCHEDULING_START message to SCHED. This message
includes the processes endpoint, the parent's endpoint and its nice
level. The scheduler adds this process to its schedproc table, issues
a schedctl, and returns its own endpoint to PM - as the endpoint of
the effective scheduler. When a process terminates, a SCHEDULING_STOP
message is sent to the scheduler.

The reason for this effective endpoint is for future compatibility.
Some day, we may have a scheduler that, instead of scheduling the
process itself, forwards the SCHEDULING_START message on to another
scheduler.

PM has information on who schedules whom. As such, scheduling
messages from user-land are sent through PM. An example is when
processes change their priority, using nice(). In that case, a
getsetpriority message is sent to PM, which then sends a
SCHEDULING_SET_NICE to the process's effective scheduler.

When a process is forked through PM, it inherits its parent's
scheduler, but is spawned with an empty quantum. As before, a request
to fork a process flows through VM before returning to PM, which then
wakes up the child process. This flow has been modified slightly so
that PM notifies the scheduler of the new process, before waking up
the child process. If the scheduler fails to take over scheduling,
the child process is torn down and the fork fails with an erroneous
value.

Process priority is entirely decided upon using nice levels. PM
stores a copy of each process's nice level and when a child is
forked, its parent's nice level is sent in the SCHEDULING_START
message. How this level is mapped to a priority queue is up to the
scheduler. It should be noted that the nice level is used to
determine the max_priority and the parent could have been in a lower
priority when it was spawned. To prevent a CPU intensive process from
hawking the CPU by continuously forking children that get scheduled
in the max_priority, the scheduler should determine in which queue
the parent is currently scheduled, and schedule the child in that
same queue.

Other fixes: The USER_Q in kernel/proc.h was incorrectly defined as
NR_SCHED_QUEUES/2. That results in a "off by one" error when
converting priority->nice->priority for nice=0. This also had the
side effect that if someone were to set the MAX_USER_Q to something
else than 0, then USER_Q would be off.
2010-05-18 13:39:04 +00:00
Erik van der Kouwe f5bce90216 Add -M release.sh option to write out a symbol map, either to /usr/src on the image (without -m) or to the tools directory (with -m) 2010-05-17 16:52:48 +00:00
Arun Thomas 5706670029 Convert boot/ and commands/ over to bsdmake 2010-05-12 16:28:54 +00:00
Erik van der Kouwe d4188dcd5c New options for release script: -m to make tiny image, ZIP to set compressor 2010-05-10 18:02:15 +00:00
Ben Gras a131085a5b cd boot workaround for bioses that didn't want to boot >4 image sectors.
boot is a normal binary with a.out again. use 'cdbootblock,' a CDBOOT
variant of bootblock, both from bootblock.s, as the first boot image
that then loads boot, exactly like the bootblock loads boot when booting
from harddisk. the sector numbers (2048 byte iso sectors) are patched in
by writeisofs, like installboot does for bootblock. bootblock unchanged.
2010-04-26 22:07:21 +00:00
Cristiano Giuffrida 45db6482e8 Prioritized NOTIFY messages for reliable asynchonrous delivery of system events. 2010-03-22 23:44:55 +00:00
Arun Thomas 436d6012a3 Convert drivers/ and servers/ over to bsdmake
-Move libdriver to lib/
-Install all boot image services on filesystem to aid restartability
2010-03-22 21:25:22 +00:00
Thomas Veerman 1749530ec1 Fix bug item #405: missing # in front of comment 2010-03-15 10:42:51 +00:00
Ben Gras 5af8c345be slight tuning of /etc/mk situation when making release.
- Make the bootstrap /etc/mk be populated from the newly checked out source
  - Don't chmod 755 all of /etc
  - For the 'real' /etc/mk installing, let the /etc/mk ownership and permission
    come from the mtree file, delete the contents of /etc/mk, then copy the .mk
    files over and set reasonable permissions and ownership. (So that the .mk
    get updated from the real usr/src/ copies, and no other junk if anything,
    after the bootstrap phase, whatever happened there.)
2010-03-01 15:53:57 +00:00
Arun Thomas 1e9a3c1423 Bump version number to 3.1.7 2010-02-17 12:51:26 +00:00
Arun Thomas b706112487 Incorporate bsdmake into buildsystem and reorganize libs 2010-02-16 14:41:33 +00:00
Ben Gras 75a3d4ebde bump version number to 3.1.6, copyright year to 2010. 2010-01-27 16:19:50 +00:00
Ben Gras daca9de450 Fix to make making a bootable cd possible again.
ow that the image has grown beyond the 1.44M that fits on a floppy.
(previously, the floppy emulation mode was used for cd's.)

the boot cd now uses 'no emulation mode,' where an image is provided on
the cd that is loaded and executed directly. this is the boot monitor.

in order to make this work (the entry point is the same as where the
image is loaded, and the boot monitor needs its a.out header too) and
keep compatability with the same code being used for regular booting, i
prepended 16 bytes that jumps over its header so execution can start
there.

to be able to read the CD (mostly in order to read the boot image),
boot has to use the already present 'extended read' call, but address
the CD using 2k sectors.
2010-01-18 14:10:04 +00:00
David van Moolenbroek 5e9a8f05ff unbreak building CDs 2009-12-23 23:59:32 +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
Tomas Hruby ae75f9d4e5 Removal of the executable flag from files that cannot be executed
- 755 -> 644
2009-11-09 10:26:00 +00:00
Ben Gras 97ae67e780 if from branch, include branch name in in-image tag and .iso filename. 2009-10-19 15:46:27 +00:00
Ben Gras 3017061093 include OSS on CD 2009-10-19 15:13:44 +00:00
Ben Gras fb5b10a081 fixed grep usage in filter (again) 2009-10-02 13:29:36 +00:00
Ben Gras 85ad7b6b11 don't have ackpack in the list any more as it installs an
old /usr/bin/make.
2009-10-02 13:23:58 +00:00
Ben Gras 7f423d0fa2 Unique matching for package name when grepping for it in the master list. 2009-10-02 13:02:36 +00:00
Ben Gras d3382c4a6c postgresql in packing list 2009-10-01 18:14:49 +00:00
Ben Gras 0d83eeb194 slightly larger /usr needed 2009-10-01 17:45:14 +00:00
Ben Gras e326a01446 - retrieve binary packages and sources from webserver to make a release, incrementally using wget
(so wget required)
 - don't build List file again, but use webserver List file and filter it
2009-09-30 13:11:22 +00:00
Arun Thomas 782a05b919 Bump release to 3.1.5 in issue.install 2009-09-30 13:00:38 +00:00
Ben Gras 2c56b7eebc there is no elvis. 2009-09-30 08:21:21 +00:00
Ben Gras 5f8a77061b audio package obsolete 2009-09-30 07:41:03 +00:00
Ben Gras 0e1fd9ea33 add SDL-1.2.13 2009-09-29 14:32:49 +00:00
Ben Gras 07a5bd0fe3 sort; throw out old packages; qemu in 2009-09-29 14:31:26 +00:00
Arun Thomas b2e3153263 Release script: Increase root ramdisk to 8KB 2009-09-23 11:07:55 +00:00
Ben Gras 64df404150 umount before ramdisk spec to allow resizing 2009-09-22 14:01:17 +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
Arun Thomas a415b68523 Release.sh now uses packages.install and package_sources.install to
determine which packages and package sources to include on the
installation media, as opposed to including everything in the
PACKAGEDIR AND PACKAGESOURCEDIR directories.
2009-05-30 09:31:19 +00:00
Arun Thomas 745f99bb1d Update issue.install for 3.1.4 2009-05-27 12:42:32 +00:00
Ben Gras d0b6e76bfb correct the revision variable used in /etc/version 2009-05-15 13:02:23 +00:00