From:     Digestifier <Linux-Misc-Request@senator-bedfellow.mit.edu>
To:       Linux-Misc@senator-bedfellow.mit.edu
Reply-To: Linux-Misc@senator-bedfellow.mit.edu
Date:     Fri, 24 Sep 93 00:13:13 EDT
Subject:  Linux-Misc Digest #153

Linux-Misc Digest #153, Volume #1                Fri, 24 Sep 93 00:13:13 EDT

Contents:
  need advice from Linux genii (David E Nichols)
  Re: linux & 3c501 ? experiences ? (Donald J. Becker)
  Re: Token Ring/Nameserver (Donald J. Becker)
  Re: [Q] Can I use a Thomas-Conrad arcnet card with NET-2? (Donald J. Becker)
  Re: linux & 3c501 ? experiences ? (Donald J. Becker)

----------------------------------------------------------------------------

From: davidn@cs.tamu.edu (David E Nichols)
Subject: need advice from Linux genii
Date: 24 Sep 1993 03:17:38 GMT

Hello fellow Linuxophiles.  I hope some kind soul can lend some 
Linux knowledge to me.


        I am trying to write an operating system kernel in C++.  I have
a solid scheduler and I am writing the keyboard and console
drivers.  I have implemented my scheduler using threads, with
tasks sharing their timeslices between all their threads, where a
non-multithreaded task has one task description block and one
thread description block, and where context swtiching between threads is
(I believe) very fast and efficient.  In addition I am trying to make it as
object-oriented as possible, where the root object is the system, and
all kernel objects are registered with (and descendents of) their 
parents (for example, right now the scheduler is a child of "system", and
tasks are children of "scheduler", and individual threads are children of
their respective tasks).  This way objects can inherit characterists from
their parents and also there can be a uniform and consistent way
of communicating between objects, as this behaviour can be defined
on base objects and overridden on objects that require more
specialized code.


        At any rate, that is the background for the following questions:
1) in my code, a wake_up call is called from the interrupt handler
   (it looks like Linux does it this way too), is this the correct method
   (it dodn't seem like it at first but now it does).

2) When I switch to gcc, I will be doing my development under Linux again,
   and I need to know where my DS starts and stuff like that so I can write
   my own loader.  How are Linux object files structured?  Are they standard 
   Unix object files?  Is there a standard Unix object file format?  

3) Where can I find information on COFF or ELF binaries or whatever they are?
   (as you can see I'm sadly and pitifully informed, but I would like to 
   use a standard object file format)

4) I would like to be able to calculate load values and CPU usage figures for
   my tasks and threads, but since the code I am using to program the timer was
   taken from CTASK and I don't know exactly what its doing (i.e. I don't 
   really know how many interrupts per second I'm getting), can anyone point
   me in the right direction for information on programming the PC timer?

5) I am using the source code for Linux to get lots of good information.  
   However, sometimes it is difficult to read.  Are the sources to Minix
   available?  It would be nice to have a second source to cross-reference
   things.

6) Can anyone suggest a good source for information on the pc's hardware?
   The only source I have right now is Linux source code, and I'm having
   trouble writing the keyboard and console drivers.  I could take a lot
   of the code wholesale but I don't want to do that, because then I
   might not really understand what's going on and be unable to fix bugs
   later or add features to code that I did not write.

7) can anyone point me to info on POSIX, like what constitutes the newest
   POSIX standard?

Thank you very much for any help and or info you may provide.  By the way, 
I am just writing this OS for my own curiosity, but it has been working
out well so far and I would like to keep going with the project.  
I would like to put a Unix-like API on top of the kernel, but I don't want
it to be Unix.  It would be great if it could run multiple APIs but I will
be happy if it runs one.  

My 386 book won't arrive for another few weeks so I won't be getting
in to protected mode until then.

thanks a lot
David Nichols
davidn@cs.tamu.edu
-- 
============================================================
David E. Nichols        Center for Advanced Moose Technology
davidn@cs.tamu.edu                Director - Antler Division
Texas A&M University                  "A moose is not a toy"

------------------------------

From: becker@super.org (Donald J. Becker)
Subject: Re: linux & 3c501 ? experiences ?
Date: Thu, 23 Sep 1993 04:36:29 GMT

In article <CDs7rA.Cq8@lut.fi>, Jussi Savola <jsavola@cc.lut.fi> wrote:
>I know I know, I am masochistic type, but my braindamage is much worse
>than that of those 501's... :-)

Hmmm, that a lot of braindamage.  A really really, well, billleions and
billeions ... a monstrous amount of braindamage.

>PS. Anyone wanna buy a cheap ethernet card ? :-)

I have a standing offer:  I'll pay $2 for each 3c501 shipped to me postpaid,
but only if you include the 'T' connector and the jumpers.  $2.50 if you just
send the 'T', jumpers, and address PROM and promise to destroy the board.

The 3c501 is an ancient product with documentation that's no longer
being printed.  It has a single packet buffer that is shared between
transmit and receive.  By this I mean that when you have a packet it
cannot receive another packet.  While you are offloading
that packet it cannot receive a packet.  While you are loading a new
packet to transmit it cannot receive a packet.  While you are waiting
to transmit it cannot receive a packet.  While... well, you get the
idea -- you miss most packets.  And I haven't even started describing
the bugs.

-- 

Donald Becker                                          becker@super.org
IDA Supercomputing Research Center
17100 Science Drive, Bowie MD 20715                        301-805-7482

------------------------------

From: becker@super.org (Donald J. Becker)
Subject: Re: Token Ring/Nameserver
Date: Fri, 24 Sep 1993 01:04:42 GMT

In article <Sep.23.19.18.47.1993.12397@remus.rutgers.edu>,
Glenn T. Wasserman <glenw@remus.rutgers.edu> wrote:
>I've  looked at the FAQ and can't seem to find this out... will        
>Linux function as a domain name server?

Yes.  SLS distributions even include all of the files you'll need.

>Also, since I lost the compatibility list, can Linux work on a token   
>ring network with IBM 16/4 adapters?

No, there isn't a Linux token-ring driver.  I looked at writing a token ring
device driver, and concluded that the while the hardware interface wasn't too
difficult to do, the writing the support for source routing would take
significantly longer than I was willing to spend on an expensive and dying
technology.

-- 

Donald Becker                                          becker@super.org
IDA Supercomputing Research Center
17100 Science Drive, Bowie MD 20715                        301-805-7482

------------------------------

From: becker@super.org (Donald J. Becker)
Subject: Re: [Q] Can I use a Thomas-Conrad arcnet card with NET-2?
Date: Fri, 24 Sep 1993 02:07:58 GMT

In article <27pt6q$ne0@tamsun.tamu.edu>,
Owen P. Crow <ocrow@tamsun.tamu.edu> wrote:
>I have access to a couple of Thomas-Conrad 16-bit arcnet cards, so I'd like
>to know if they will work with my linux box.  The only other thing I know
>about them is they use a coax not twisted pair cable.

An Arcnet driver hasn't been written yet.

-- 

Donald Becker                                          becker@super.org
IDA Supercomputing Research Center
17100 Science Drive, Bowie MD 20715                        301-805-7482

------------------------------

Crossposted-To: comp.os.linux.development
From: becker@super.org (Donald J. Becker)
Subject: Re: linux & 3c501 ? experiences ?
Date: Fri, 24 Sep 1993 02:33:18 GMT

OK, there seems to be a number of 3c501 fans out there, and a few of them
insist on telling my why it isn't so bad.  They are wrong, just because it
works fine on your 8088 doesn't mean it's OK hardware.  I know what I'm
talking about: "seen it, been there, done it".

But in a fit of madness I wasted a whole day updating my 3c501 driver and then
trying to track down a few more of the 3c501 glitches.  It now works well
enough to NFS mount filesystems, but the receiver still occasionally hangs.
I'm mostly certain that this is a hardware bug.  When it hangs, the next set
of outgoing packets will reset the board, but that's only useful if you have
something occasionally generating outgoing packets.

I'll let this out for "pre-alpha" testing, under the following conditions:

  This is unsupported code.  I know my usual copyright says all the code is
  unsupported, but this is _really_ unsupported.  I DON'T want to see bug
  reports, and I'll accept bug fixes only if I'm in a good mood that day.

  I don't want to see a fest of "Linux ethercards for sale" postings.  A
  bunch of people have picked dozens of "dumpster special" 3c501s, and they
  hope to sell them at rip-off prices.  A 3c501 is barely worth the shipping
  cost, and if I see people trying to sell them here by claiming "supported by
  Linux" I _will_ flame them.  They are _not_ supported by Linux.

  I don't want to flamed later for putting out bad software.  I don't know all
  all of the 3c501 bugs, and I know this driver only handles a few that I've
  been able to figure out.  It has taken a long, intense effort just to get
  the driver working this well.

That said, ftp.super.org:/pub/linux/pre-alpha/3c501.  Jumper your card to
0x280, using pl13, add the 3c501.o to the OBJS line in net/inet/Makefile,
uncomment the 3c501 line in linux/config.in, 'make config; make' as usual.

AutoIRQ works, DMA isn't used, the autoprobe only looks at 0x280, the debug
level is set with the third boot-time argument.  You'll probably want to
change the default EL_DEBUG to '2'.

[[ I'm probably going to regret this.  I'm going on a much-needed vacation
next week, so don't phone in your thanks, mail with cash and goodies will do
just fine. ]]

-- 

Donald Becker                                          becker@super.org
IDA Supercomputing Research Center
17100 Science Drive, Bowie MD 20715                        301-805-7482

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: Linux-Misc-Request@NEWS-DIGESTS.MIT.EDU

You can send mail to the entire list (and comp.os.linux.misc) via:

    Internet: Linux-Misc@NEWS-DIGESTS.MIT.EDU

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Misc Digest
******************************
