f236d1dd9c
throw out the debugging stuff again.
Ben Gras2009-09-23 16:26:05 +00:00
af77f4e964
debug output in SANITYCHECKS mode
Ben Gras2009-09-23 16:02:27 +00:00
f87a91ce95
missing level-- in out-of-memory case.
Ben Gras2009-09-23 15:19:36 +00:00
74616a057b
temporarily disable munmap() to mask memory problem.
Ben Gras2009-09-23 13:34:04 +00:00
4c11d7e6f5
- simplify findhole() for use for 1 page only - do WMF_FREE - added WMF_VERIFY to check page table contents - randomize address space usage in vm self
Ben Gras2009-09-23 13:33:01 +00:00
9e53925504
save a few lines of unnecessary output.
Ben Gras2009-09-23 13:27:21 +00:00
0d7b967413
give sys_fork() a real endpoint_t * arg
Ben Gras2009-09-23 10:48:57 +00:00
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
Erik van der Kouwe2009-09-23 08:46:17 +00:00
dd0ea3aba0
NOT_REACHABLE() removed until ack will be taught to handle macros as a grownup compiler
Tomas Hruby2009-09-23 07:25:04 +00:00
75d3db4911
new ipc server that implements shared memory and semaphores.
Ben Gras2009-09-21 14:53:13 +00:00
32fbbd370c
- pages that points to page directory values of all processes, shared with the kernel, mapped into kernel address space; kernel is notified of its location. kernel segment size is increased to make it fit. - map in kernel and other processes that don't have their own page table using single 4MB (global) mapping. - new sanity check facility: objects that are allocated with the slab allocator are, when running with sanity checking on, marked readonly until they are explicitly unlocked using the USE() macro. - another sanity check facility: collect all uses of memory and see if they don't overlap with (a) eachother and (b) free memory - own munmap() and munmap_text() functions. - exec() recovers from out-of-memory conditions properly now; this solves some weird exec() behaviour - chew off memory from the same side of the chunk as where we start scanning, solving some memory fragmentation issues - use avl trees for freelist and phys_ranges in regions - implement most useful part of munmap() - remap() stuff is GQ's for shared memory
Ben Gras2009-09-21 14:49:49 +00:00
f5459e38db
- some exec debugging prints when errors happen - lookup mounted_on check to avoid NULL dereference - some errors in exec() shouldn't be fatal
Ben Gras2009-09-21 14:49:26 +00:00
e402927576
support for vm priv system.
Ben Gras2009-09-21 14:49:04 +00:00
5f497bcf22
- Introduce some macros for field names, so that endpt, pendpt, addr and taddr don't have to be defined any more, so that <sys/mman.h> can be included for proper prototypes of munmap() and friends. - rename our GETPID to MINIX_GETPID to avoid a name conflict with other sources - PM needs its own munmap() and munmap_text() to avoid sending messages to VM at the startup phase. It *does* want to do that, but only after initialising. So they're called again with unmap_ok set to 1 later. - getnuid(), getngid() implementation
Ben Gras2009-09-21 14:48:19 +00:00
a0d8cc0765
- No maximum block size any more. - If allocation of a new buffer fails, use an already-allocated unused buffer if available (low memory conditions) - Allocate buffers dynamically, so memory isn't wasted on wrong-sized buffers. - No more _MAX_BLOCK_SIZE.
Ben Gras2009-09-21 14:47:51 +00:00
08d291da53
no more scheduling queue dumps (kernel will print this over serial); initial vm stats retrieve support
Ben Gras2009-09-21 14:47:24 +00:00
90be3a051f
clever hack to avoid starting from 0 disabled because when own 0-pages are mapped out, this doesn't work and isn't necessary.
Ben Gras2009-09-21 14:46:42 +00:00
d6819ff659
various syscall entry points
Ben Gras2009-09-21 14:46:10 +00:00
40411ea908
rename GETPID to MINIX_GETPID (for now); macro for field name
Ben Gras2009-09-21 14:45:46 +00:00
8c2bece89f
- remove unused kmalloc - initial implementation of _read_host_time_ns, a function to retrieve real-time in ns in vmware virtual machines
Ben Gras2009-09-21 14:39:15 +00:00
cd8b915ed9
Primary goal for these changes is: - no longer have kernel have its own page table that is loaded on every kernel entry (trap, interrupt, exception). the primary purpose is to reduce the number of required reloads. Result: - kernel can only access memory of process that was running when kernel was entered - kernel must be mapped into every process page table, so traps to kernel keep working Problem: - kernel must often access memory of arbitrary processes (e.g. send arbitrary processes messages); this can't happen directly any more; usually because that process' page table isn't loaded at all, sometimes because that memory isn't mapped in at all, sometimes because it isn't mapped in read-write. So: - kernel must be able to map in memory of any process, in its own address space. Implementation: - VM and kernel share a range of memory in which addresses of all page tables of all processes are available. This has two purposes: . Kernel has to know what data to copy in order to map in a range . Kernel has to know where to write the data in order to map it in That last point is because kernel has to write in the currently loaded page table. - Processes and kernel are separated through segments; kernel segments haven't changed. - The kernel keeps the process whose page table is currently loaded in 'ptproc.' - If it wants to map in a range of memory, it writes the value of the page directory entry for that range into the page directory entry in the currently loaded map. There is a slot reserved for such purposes. The kernel can then access this memory directly. - In order to do this, its segment has been increased (and the segments of processes start where it ends). - In the pagefault handler, detect if the kernel is doing 'trappable' memory access (i.e. a pagefault isn't a fatal error) and if so, - set the saved instruction pointer to phys_copy_fault, breaking out of phys_copy - set the saved eax register to the address of the page fault, both for sanity checking and for checking in which of the two ranges that phys_copy was called with the fault occured - Some boot-time processes do not have their own page table, and are mapped in with the kernel, and separated with segments. The kernel detects this using HASPT. If such a process has to be scheduled, any page table will work and no page table switch is done.
Ben Gras2009-09-21 14:31:52 +00:00
f5b04e1881
minor change to panic code
Ben Gras2009-09-21 14:28:16 +00:00
ad4fc01b7b
- new entry for bios_wini and ipc - start ipc server on botting
Ben Gras2009-09-21 14:26:20 +00:00
89bf7bae27
- tty: only report unrecognized scancodes once; forget about remembering the origin and cursor position as that feature didn't really work properly anyway - tty: map in video and font memory using a vm call, access it from C, thereby eliminating pesky weird segment calls and assembly to access it, and unbreaks loadfont (Roman Ignatov) - bios_wini: fix bios_wini by allocating a <1MB buffers for it - memory: preallocate ramdisk, makes it a bit faster (and doesn't fail halfway if you allocate a huge one) - floppy: use <1MB buffer - ramdisk proto: because of the 2x1 page reservations, binaries got a little fatter and didn't fit on the ramdisk any more. increase it.
Ben Gras2009-09-21 14:25:54 +00:00
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
Ben Gras2009-09-21 14:24:29 +00:00
ba91b3b7d2
- remove unused bootdelay feauture - only print a line for every boot process if 'verbose' variable set to nonzero; reason: with serial output, the long output significantly slows down frequent reboots, and causes 'scroll damage' that in some cases is pretty bad. also the verbose output doesn't tell you the one thing you might want to know about a process: how much memory is it using? or how much memory is everything using? - short format does print out total memory allocated for processes
Ben Gras2009-09-21 14:23:47 +00:00
8a54d267f0
- VM_KERN_NOPAGEZERO feature is gone - sys_getbiosbuffer feature is gone (from kernel; available from vm) - bump version number because munmap() calls that newly compiled binaries will do trigger an ugly (but harmless) error message in older VM's - some new VM calls and flags, the new IPC calls - some new CR0 register bits - added files for shared memory
Ben Gras2009-09-21 14:23:10 +00:00
f92e0dafb5
Disabled check in test 28 which hard links a directory; this is nott required by POSIX and not supported (currently) by MINIX. Also corrected total number of tests.
Erik van der Kouwe2009-09-04 20:23:25 +00:00
e1e4d6649f
Allow setuid tests 11 and 33 to run. The former still fails (but now with a meaningful error) while the latter succeeds. Only 2 tests are left borken on default MINIX, namely 11 and 28.
Erik van der Kouwe2009-09-04 13:18:49 +00:00
ec4b567894
Avoid alarm to prevent the setitimer interval from being reset
Erik van der Kouwe2009-09-03 20:35:22 +00:00
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.
Thomas Veerman2009-09-03 09:38:27 +00:00
f3e0c5c381
VFS quits gracefully if mount fails and mounted_on remains uninitialized
Tomas Hruby2009-08-18 13:30:05 +00:00
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.
Thomas Veerman2009-08-18 11:36:01 +00:00