From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.linux,alt.os.linux
Subject: pre-0.96 (was Re: gdb still isn't working)
Date: 21 Apr 92 23:15:10 GMT
Organization: University of Helsinki
In article <1992Apr20.085143.23027@klaava.Helsinki.FI>
torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) writes:
> [ trace not working in gdb ]
>
>My personal version handles this correctly (as well as doing some other
>things in a cleaner manner), but I'm not quite ready for a new release
>yet. I could make YAAR (yet another alpha-release) or just mail
>interested parties the fixes needed - mail me if you're interested, and
>depending on the number of messages I get I'll make it a new release.
Ok, the response seems to make a new pre-release appropriate: I have
uploaded "pre-0.96.tar.Z" to tsx-11 and nic.
Here is what the pre-release contains:
- truncate/ftruncate/fchmod/fchown system calls
note that there aren't any library functions for these, so they
aren't very useful yet...
[f]truncate needed a change in the logic of the internal
truncate VFS call - anybody that has any nonstandard filesystem
probably needs to look it up.
- io-bitmap syscalls giving root-processes access to selected io ports
from user space. There is a "ioperm()" system call that lets the
process select which ports it wants to enable/disable (all ports
disabled as default) as well as a (standard sysv?) ioctl interface
that X uses.
again, no library stubs, but it allows things like reading and
setting the cmos clock without using /dev/port, as well as
control over the VGA registers...
- mmap for /dev/mem
more things needed for X...
- the signal-handling fixes needed for gdb
These aren't yet complete: serial lines still send signals under
interrupts that can result in problems (ie ptrace doesn't
correctly get them), but that's pretty unlikely (and will be
fixed in the final 0.96). Breakpoints should work etc..
- multiple shared libraries
Up to 6 simultaneous shared libraries/process: the patches were
originally by pmacdona, but they were heavily changed by me, and
I think they work in a more natural manner now. One user-level
change is that the libraries are now checked for read and
execute permissions for safety-reasons.
- cleaned up special files.
read/write/ioctl no longer has special-case code: it is all
handled with tables to functions. This will mean that the SCSI
patches won't patch in quite cleanly into 0.96: you'll need to
add the code that sets up the functions.
Again: device drivers and vfs-filesystem hackers need to look
into the changes, although they are pretty logical (earlier
versions just didn't implement all the vfs-routines)
Note that the vfs-code for select is still not used: select is
hardcoded for the devices it supports right now.
- ptrace() has a new interface
as gdb for versions < 0.95c don't work on the new version, and
gdb won't work very well at all on 0.95c[+], there was no reason
not to break ptrace. Thus 0.96 has a new calling convention for
ptrace, and the old ptrace library function no longer works.
I'm including the new ptrace library function at the end of this
post.
- mount() takes 4 arguments, and checks that only the super-user can
mount/umount things.
Happily this shouldn't break any old binaries.
- some general cleanups
I've made the pre-release available only as pure source code: no diffs,
no binary. The reason is that most people that needed this release want
it for the gdb-fixes: and they should have no problem recompiling the
kernel. Others just have to wait for the real 0.96.
Changes that are NOT in this pre-release, but which I hope to have in
the real 0.96:
- more include-file cleanups - I'm still working on these
- the wd8003 driver and hopefully some other parts of biro's
config.
- select() using the vfs-tables.
And possibly bugfixes that people find in this pre-release...
Linus
---------- library ptrace.c (wants gcc-2.1) ----------
#define __LIBRARY__
#include < time.h>
#include < unistd.h>
int ptrace(int request, int pid, int addr, int data)
{
long ret;
long res;
if (request > 0 && request < 4)
(long *)data = &ret;
__asm__ volatile ("int $0x80"
:"=a" (res)
:"0" (__NR_ptrace),"b" (request), "c" (pid),
"d" (addr), "S" (data)
: "si","bx","cx","dx");
if (res >= 0) {
if (request > 0 && request < 4) {
errno = 0;
return (ret);
}
return (int) res;
}
errno = -res;
return -1;
}
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Newsgroups: comp.os.linux
Subject: 0.96 out next week
Date: 4 May 92 07:38:03 GMT
Organization: University of Helsinki
Ok, the subject says most of it: I'll send out 0.96 sometimes next week
(ie 92.05.11-17), and this is just an announcement to confirm that.
0.96 has a lot of changes (even relative to pre-0.96), and it's entirely
possible that making it available as cdiffs isn't feasible. It contains
a lot of new files, as well as some re-organizations in the old ones.
Main new things are:
- The SCSI distribution is now in the standard package. I (obviously)
haven't been able to test my patchings, so there might be problems in
this first release. I had to do some changes "blind" to the cdiffs,
but most of them were pretty trivial.
- X11r5 as ported by obz is supported. It's still in beta-testing (join
the X11-channel on the original mailing-list), but as I'm writing this
from an xterm under linux, it works pretty well. Changes to pre-0.96
are just the socket-code by obz, and some small tweaking by me.
- Hopefully better interrupt latency - I've changed select() not to use
cli-sti, and most IRQ's to enable interrupts, and instead disable just
their own interrupt-line. The interrupt latency has been noticeable at
higher serial speeds, and I hope 0.96 will be better in this respect.
Again, I only have 2400bps, so I've never seen the problems, and
cannot guarantee the new version will help. (btw, I hope the problems
with select are gone now)
- Reorganisation of the vfs routines and minix filesystem driver. These
shouldn't bother anyone but people that have implemented their own
filesystems (I know of just 2 to date), but I hope the current
vfs-interface will prove to be relatively stable. The new vfs
interface has made some things much cleaner, and the promised cleanup
of special devices has happened.
- ps/uptime patches + added readahead, so having computationally
intensive background processes isn't as noticeable any more when doing
IO.
Additionally, there /might/ be a new floppy-driver that supports
formatting and autodetecting floppies, but I haven't had time to check
into it yet.
There are probably any number of minor changes: I've lost track. People
have sent me some diffs, and some of them went in, depending on how
energetic I was that day. I've tried to correct all the bugs I've
gotten reports on, and hopefully 0.96 will work with just about
everything (gdb etc).
Things I wanted, but didn't have time for:
- The config patches aren't there. Sorry everybody. That means still no
wd8003 driver etc.
- Any number of minor patches (quota, auto-SVGA etc)
Generally, 0.96 is cleaning some things up, but on the other hand the
new features can have their share of problems. We'll see. Anyway, most
things seem to work, and I hope there won't be the same type of problems
as with the first 0.95 release.
Linus
|