88 lines
3.2 KiB
Plaintext
88 lines
3.2 KiB
Plaintext
|
|
This is a delta version of sysv ipc. A quick fix to get the ipc patches
|
|
working with linux-0.99p7. There will be a more thorough version later.
|
|
Messages, semaphores and shared memory are implemented ... completely?
|
|
|
|
See the file ipc.info for details on SYSV IPC and this implementation
|
|
in particular.
|
|
|
|
|
|
COPYING: These files are distributed under the GNU copyleft. There's
|
|
a copy in the file ...src/linux/COPYING with the linux distribution.
|
|
|
|
|
|
|
|
FILES:
|
|
To install move the files in the src/ subdirectory to ...src/linux/ipc/.
|
|
The include files go to /usr/include/sys/ and /usr/include/linux/.
|
|
The test directory can go anywhere (It has a README file).
|
|
The file ipc.cd contains patches that must be applied to the kernel sources.
|
|
|
|
|
|
|
|
BUILD:
|
|
0) If you do not have the fsync patches installed then apply the patch
|
|
in fsync.cd. `cd .....src/linux/ ; patch -p1 < ...../fsync.cd`
|
|
This will not give you a working fsync.
|
|
1) Apply the patches with `cd ....src/linux/ ; patch -p1 < ..../ipc.cd`.
|
|
The patches are small but alter the task_struct ... it may be necessary
|
|
to do a 'make clean; make' to get a bootable Image.
|
|
2) Edit the limits defined in the include files <linux/sem.h,msg.h,shm.h>
|
|
... if you like.
|
|
3) Build and install a new Image.
|
|
4) Build and install libipc.a, ipcs and ipcrm from the test directory.
|
|
|
|
|
|
|
|
HISTORY:
|
|
1) ipcbeta : buggy as hell .. dont use.
|
|
2) ipcbeta+ : works with linux-0.99 .. 0.99p6 or so.
|
|
3) ipcdelta : current. Needs linux-0.99p7
|
|
and it will change again with 0.99p8
|
|
|
|
|
|
CHANGES from ipcbeta+:
|
|
1) sem: Initialization of sem_seq (bug fix).
|
|
2) shm: non-specific attaches are now in range 0x40000000-0x60000000
|
|
3) shm: update of shm_swp in killseg() (bug fix).
|
|
4) shm: allocation of more than one page table in shm_map (bug fix).
|
|
5) shm: altered shm_code to use SWP_TYPE for linux-0.99p7
|
|
6) shm: added flag SHM_REMAP for attach requests over mapped regions.
|
|
This allows code_space attaches needed for dosemu development
|
|
so dont use it....it may soon be gone.
|
|
|
|
CHANGES from ipcbeta:
|
|
1) Many assorted bug fixes.
|
|
2) The ipc facilities are configured at kernel compile time so the old
|
|
ipcs program for initialization is defunct.
|
|
3) Shared memory is now faulted in and swapped. brk is not altered.
|
|
For shared pages, the mapping count in mem_map[] is (1 + user mappings).
|
|
Keep this in mind when looking at reports from ps or free.
|
|
4) There are fewer implementation imposed limits.
|
|
5) A lot of the locking was removed. This made some of the ugly
|
|
semaphore syscalls even uglier ... so I may put some of the
|
|
locking back in. Some bugs may have developed in the process.
|
|
6) ipcs and ipcrm are new user programs to get ipc info and remove
|
|
stale resources.
|
|
|
|
|
|
|
|
TODO:
|
|
1) Anyone using SEM_UNDO? I would be happy to see it gone.
|
|
2) Anyone using the seminfo, msginfo and shminfo structures?
|
|
3) Anyone need the various limits listed as unused/unimplemented?
|
|
4) proc interface, getting meaningful numbers with ps/free
|
|
|
|
Given sysv ipc compatibility there is room for enhancements.
|
|
Please mail me complaints, bug reports, fixes, ideas.
|
|
|
|
|
|
|
|
I would like to thank Ove Ewerlid, Bruno Haible, Ulrich Pegelow,
|
|
and Linus Torvalds for ideas, bug reports, bug fixes, tutorials,
|
|
and entertainment.
|
|
|
|
krishna balasub@cis.ohio-state.edu
|
|
3/15/93
|
|
|