Linux-Development-Sys Digest #433, Volume #8     Sat, 20 Jan 01 22:13:16 EST

Contents:
  sleeping inside the kernel (sleep_on ; schedule_timeout) ("Arie")
  Re: Accessing Kernel Process Structs from a Module (Dilworth)
  how to get the status of num, caps, scroll lock? (Hackker Wong)
  Re: sleeping inside the kernel (sleep_on ; schedule_timeout) (Kasper Dupont)
  Re: Debugging "outb" and "inb" (Tim Roberts)
  Parse /proc/xxx or are there direct kernel structures? (Mike Percy)
  Re: sleeping inside the kernel (sleep_on ; schedule_timeout) (David Wragg)
  Difference between echo an cat ("Joachim Rosskopf")
  Re: Difference between echo an cat (Paul Jackson)
  Re: need help fixing a tcp kernel problem (Nix)
  Re: What causes these parse errors when compiling kernel module? (Nix)
  Re: Problems compiling programs with new 2.4 kernel (Nix)
  signal ("TataZ")
  Re: double mmap calls (Linus Torvalds)
  Re: directory file size (Nix)
  Re: directory file size (Juergen Heinzl)
  I/O info by process (not partition or device)? (Mike Percy)
  3A58834B8 About software standards. ([EMAIL PROTECTED])
  4A58834B8 About software standards. ([EMAIL PROTECTED])

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

From: "Arie" <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux
Subject: sleeping inside the kernel (sleep_on ; schedule_timeout)
Date: Fri, 19 Jan 2001 19:24:48 +0200

Hi,
I'm doing a project of noise generator over the internet network. This
project include losing &  delaying packets  which receive / send q
forwarding from the computer or a router.
The problem is in the delaying packets part. The changes been made in the
ip_rcv function.
I try to use sleep_on & wake_up no metter if I use init_waitqueue or not -
the kernel crashed. I assume it happened because 'switching task to null'. I
try to use schedule_timeout, but with this also the kernel crashed.
any one have idea what the problem is, or where I can get exaplme for such
kind of code? (I look at the kernel code and how they use sleep_on/wake_up
and schedule_timeout - and I try to use it in the same way) Is it possible
to make the kernel sleep in the ip_rcv, while the computer is receiving
packets?

Thanks,
    Arie.



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

Date: Sat, 20 Jan 2001 09:56:35 -0500
From: Dilworth <[EMAIL PROTECTED]>
Subject: Re: Accessing Kernel Process Structs from a Module

> > Andi:
> >
> > Are you saying that I can use the for_each_task() macro from the kernel module?
>
> Yes.
>
> -Andi

Cool!  Thanks for the info.  That helps immensely!

Bob D.



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

From: Hackker Wong <[EMAIL PROTECTED]>
Subject: how to get the status of num, caps, scroll lock?
Date: Sat, 20 Jan 2001 22:56:58 +0800

hi,

do you know how to get the status of num, caps, scroll lock? i am
writing a program which changes the LEDs on keyboard. after exiting the
program, i need to restore the original state of LEDs. would you tell me
which function in C can achieve this?

thx a lot!!

p.s. i use setledstate() in /usr/src/linux/drivers/char/keyboard.c to
set the LEDs in my program.

--
- By Hackker
****************************************************
  Mr. Hackker Wong,
  Y99 Student of Computer Science,
  The Chinese University of Hong Kong.
****************************************************
 -The World can't run without computer technicians-



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

From: Kasper Dupont <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux
Subject: Re: sleeping inside the kernel (sleep_on ; schedule_timeout)
Date: Sat, 20 Jan 2001 17:22:16 +0100

Arie wrote:
> 
> Hi,
> I'm doing a project of noise generator over the internet network. This
> project include losing &  delaying packets  which receive / send q
> forwarding from the computer or a router.
> The problem is in the delaying packets part. The changes been made in the
> ip_rcv function.
> I try to use sleep_on & wake_up no metter if I use init_waitqueue or not -
> the kernel crashed. I assume it happened because 'switching task to null'. I
> try to use schedule_timeout, but with this also the kernel crashed.
> any one have idea what the problem is, or where I can get exaplme for such
> kind of code? (I look at the kernel code and how they use sleep_on/wake_up
> and schedule_timeout - and I try to use it in the same way) Is it possible
> to make the kernel sleep in the ip_rcv, while the computer is receiving
> packets?
> 
> Thanks,
>     Arie.

If you sleep while holding spinlocks you can deadlock the system.
This is just one possible reason, there are lots of other ways to
crash a system.

-- 
Kasper Dupont

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

From: Tim Roberts <[EMAIL PROTECTED]>
Subject: Re: Debugging "outb" and "inb"
Date: Sat, 20 Jan 2001 11:33:09 -0800

[EMAIL PROTECTED] wrote:
>
>I'm writing an user-process that uses sentences like "outb" and "inb",
>how can I debug it? I've tried with gdb, but it can't execute the code
>"step by step" when it reaches the outb and inb sentences.

What happens when you do this?  I've debugged the X server many times and
stepped through in/out instructions.

You are running as root, right?  Port I/O is only allowed from root.  I
don't believe setuid survives gdb, so you will have to be logged on AS
root.
--
- Tim Roberts, [EMAIL PROTECTED]
  Providenza & Boekelheide, Inc.

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

From: Mike Percy <[EMAIL PROTECTED]>
Subject: Parse /proc/xxx or are there direct kernel structures?
Date: Sat, 20 Jan 2001 15:01:49 -0500
Reply-To: [EMAIL PROTECTED]

Not trying to reinvent the wheel, but I need to capture some of the system
status and export them periodically to a remote machine. Should this be done by
parsing the various /proc files or is there some direct access api? I've been
looking at top source code, and source code for libproc. These are not exactly
clear to the un-initiated.

Also, is there any way to get data on I/O per process? /proc/partitions shows
breakdown by spindle and by partition, but we're kinda interested in per
process. For that matter, I'm not certain I understand all the columns in
/proc/partitions?

Guess I'll head off to the Microcenter and pick up a book if necessary--any
recommendations?

-- 
"Each game of chess means there's one less variation left to be played.
Each day got through means one or two less mistakes remain to be made."
Seen on the net: "Microsoft is to computers as McDonalds is to food"

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

From: David Wragg <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux
Subject: Re: sleeping inside the kernel (sleep_on ; schedule_timeout)
Date: 20 Jan 2001 19:10:29 +0000

"Arie" <[EMAIL PROTECTED]> writes:
> Is it possible
> to make the kernel sleep in the ip_rcv, while the computer is receiving
> packets?

No.  ip_rcv is called in the networking Bottom-Half (actually, the
networking tasklet in 2.4).  You cannot sleep in a BH or tasklet, just
as you cannot sleep in an interrupt handler -- there is no relevant
process context in these circumstances, so what is there to put to
sleep?  You can only sleep in process context (and with no spinlocks
held, as Kasper points out).

To do what you want, you will have to queue the skbuffs somewhere,
then inject them back into the network layer at the necessary time.


David Wragg


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

From: "Joachim Rosskopf" <[EMAIL PROTECTED]>
Subject: Difference between echo an cat
Date: Sat, 20 Jan 2001 23:55:31 +0100

Hello,

what's the difference of the output between echo and cat ??? My Problem
is that I've written a kernel dirver for a lcd display ( that is not the
problem ) but if I cat something to this device the kernel crashes. If
the same text is echoed everything runs well.

Is there any difference ...


-- 
b0nz0
---
Outta the depth of kernel:
/* Fuck me gently with a chainsaw... */
/usr/src/linuc/arch/sparc/kernel/ptrace.c:69

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

From: [EMAIL PROTECTED] (Paul Jackson)
Subject: Re: Difference between echo an cat
Date: 20 Jan 2001 22:28:06 GMT


|> difference of the output between echo and cat

They both end up calling the write(2) system call.

If you cat and echo the same thing, as in:

    echo "this is a test"               # write to display
    echo "this is a test" > /tmp/foo    # write to tmp file
    cat /tmp/foo                        # ... then to display

then the 'cat' command should end up calling the
write(2) system call into the kernel with the exact
same arguments as the first 'echo' command did.

If the 'cat' still crashes in the above case, then
it is something other than what's being written.
Since the 'cat' command is a separate executable,
whereas the 'echo' in most shell is builtin, it
would be something about that executable, such as
'/bin/cat' that is seriously sick (and something sicko
in the kernel that would let that crash the kernel,
which might be your lcd driver, if that is the only
'new' code in your kernel.)

Does the command:

    cat /dev/null
    
crash your kernel?  Then the mere act of trying to
fork/exec and begin running 'cat' is causing the
problem.  For the above command doesn't ever even
call the write(2) system call, for there is nothing
read from /dev/null to be written.
-- 
                          I won't rest till it's the best ...
                          Manager, Linux System Software
                          Paul Jackson <[EMAIL PROTECTED]> 1.650.933.1373

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

From: Nix <$}xinix{[email protected]>
Subject: Re: need help fixing a tcp kernel problem
Date: 20 Jan 2001 23:05:24 +0000

On Sat, 13 Jan 2001, Eric Taylor stated:
> I've had to punt on this bug. It's just too difficult
> to fix this problem, even with the source code. And
> even with the help I've received here, I just can't find
> anyone that can really help me fix this. I tried to post
> in other forums, like deja (got rejected),  and I even tried 
> to send Alan Cox a direct email (but it bounced).

Er, why not ask on linux-kernel instead of sounding off here?

linux-kernel is where the developers hang out, after all.

> Shame though, this simple but serious linux bug is proof to 
> my co-workers that argue that linux is just a toy o.s. and

Your co-workers are short-sighted.

More: your co-workers are idiots. One bug does not indicate *anything*
one way or the other.

-- 
`Anyhow, that pipe dream doesn't say anything about the question you
 asked.  (I am planning for a career in politics.)' --- Mark Mitchell
                                                      on the GCC list

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

From: Nix <$}xinix{[email protected]>
Subject: Re: What causes these parse errors when compiling kernel module?
Date: 20 Jan 2001 23:20:52 +0000

On Sat, 20 Jan 2001, Peter T. Breuer yowled:
> Brian Wagener <[EMAIL PROTECTED]> wrote:
>> I fixed it by adding -I/usr/include, why isn't /usr/include a default place
> 
> It IS a default place to look, in a default installation. Run with -v
> to see how your machines compiler is set up.

I had this today. The problem is that GCC includes a fixincluded file
(actually, one of three fixincluded files) <asm/posix-types.h>,
<asm/posix-types.h> gets included by one of the kernel headers, and the
fixincluded file #includes <features.h>, which pulls in big chunks of
glibc.

I think Ulrich Drepper wrote the fixinclusion; it's not well attributed,
but Ulrich is the only person who's dared to touch it since it was
written.

Andreas, do you have any idea why this was done? (On the grounds of
`Ulrich is a glibc developer, so are you, this is vaguely glibc related'
;) ) It's rather destructive to programs trying to use <linux/types.h>...
which is just about everything interacting directly
with the kernel.

(Yes, I know such programs are supposed to clone copies of the header
files they need... but not all do that. Indeed, most do not.)

-- 
`Anyhow, that pipe dream doesn't say anything about the question you
 asked.  (I am planning for a career in politics.)' --- Mark Mitchell
                                                      on the GCC list

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

From: Nix <$}xinix{[email protected]>
Subject: Re: Problems compiling programs with new 2.4 kernel
Date: 20 Jan 2001 23:31:06 +0000

On Mon, 15 Jan 2001, Josh Liechty spake:
> /usr/src/linux/include/linux/modversions.h and serial_compat.h . It also
> complained about autoconf.h, but I copied autoconf*.h from the Linux
> kernel 2.2.14 files, and now that works ok, but it still is complaining

autoconf.h is created when you do a `make *config' (config, oldconfig,
menuconfig, xconfig...)

Do that instead of copying things from 2.2 kernels.

-- 
`Anyhow, that pipe dream doesn't say anything about the question you
 asked.  (I am planning for a career in politics.)' --- Mark Mitchell
                                                      on the GCC list

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

From: "TataZ" <[EMAIL PROTECTED]>
Subject: signal
Date: Sun, 21 Jan 2001 01:56:15 +0100

hi,

first, excuse me for my poor english.
i have to make 2 programs, a client and a server : the client can send a
string to the server.
but i must use the signal handlers to do this, for SIGUSR1 and SIGUSR2.
the client sends a bit and the server acknowledge by killing the client with
a SIGUSR1
the client has to transmit its pid bit per bit. we can use sleep or usleep
for pid transmitting only. then i'm not allowed to use usleep when the pid
is transmitted.

when you start the server, it prints its pid :
$./server
1234

and then you start the client like this :
$./client 1234 'hello !'


the first time i lauch the client, there is no problem.
but then, i kill the server and the client.

then i lauch the server again :
$./server
1236

and the same thing for the client :
$./client 1236 'hello !'

on the second time, the server receive the pid of the client, but after
this, the client exit, saying me that he received a SIGUSR1, _which is not
caught !_
this is exactly the same binary as the first try, but it's doesn't work any
longer.

so does anyone have this king of problem ? and what could be the solution ?

thanks
TataZ




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

From: [EMAIL PROTECTED] (Linus Torvalds)
Subject: Re: double mmap calls
Date: 20 Jan 2001 17:07:58 -0800

In article <[EMAIL PROTECTED]>,
John Reiser  <[EMAIL PROTECTED]> wrote:
>#include <stdlib.h>
>#include <string.h>
>#include <sys/mman.h>
>#include <sys/user.h>
>#include <unistd.h>
>
>main()
>{
>       /* needs error checking, of course! */
>        char const filename[] = "/tmp/DoubleMapXXXXXX";
>        char *const fn = (char *)malloc(1+ sizeof(filename));
>        char *const junk = strcpy(fn, filename);
>        int const fd = mkstemp(fn);

I appreciate the carefulness of this, but why not just do

        static char filename[] = "/tmp/DoubleMapXXXXXX";
        int fd = mkstemp(filename);

which is rather simpler and does much less work (the reason for using
"static char filename[]" at all is obviously so that the string will be
writable rather than a string constant). 

Simplicity is a virtue too.

Remove the "static" part if you want the string contents re-initialized
each time (it's slower and uses more memory, but if your function gets
called multiple times you need to do this). 

>        int const result = lseek(fd, PAGE_SIZE, SEEK_CUR);

This lseek should be a "ftruncate()", I assume.

>        char *const addr1 = mmap(0, PAGE_SIZE,      
>                PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
>        char *const addr2 = mmap(addr1 + PAGE_SIZE, PAGE_SIZE,
>                PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);

Use MAP_SHARED | MAP_FIXED for the second mmap. Otherwise, depending on
the phase of the moon and other things, it won't work.

Also, to be strictly safe, what you _should_ do is actually make the
first mmap() be 2 pages in size - so that the system finds an empty
virtual area of 2 pages for you. The second mmap() then over-mmap's the
second page.

If you don't do it that way, it's possible that the first mmap just
finds a gap in the VM space that is exactly one page in size. The second
mmap would them over-mmap something _else_, and you'd have some really
hard-to-debug problems.

(The above really is nit-picking: it's a damn unlikely schenario.  But
it's the unlikely schenarios that bite you really badly just when you
don't need them - and if the above is part of a suid application it
could be a security issue with the user being able to take advantage of
it some way by causing a certain pattern of mmap's with special input). 

So make it something like

        ftruncate(fd, PAGE_SIZE);
        addr1 = mmap(0, 2*PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
        addr2 = mmap(addr1+PAGE_SIZE, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | 
MAP_FIXED, fd, 0);

(with error checking, of course, otherwise my "security" issues are
totally moot)

                Linus

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

From: Nix <$}xinix{[email protected]>
Subject: Re: directory file size
Date: 21 Jan 2001 00:28:09 +0000

On 19 Jan 2001, Juergen Heinzl gibbered:
> Yes and that is not an unusual behaviour for directories in Unix. Actually,
> some, like lost+found, require it.

Does it? I thought it just had to start big at a place on the disk
pointed to by the superblock; whether or not it shrinks back to that
size when things are unlinked from within it isn't important, I'd have
thought.

-- 
`Anyhow, that pipe dream doesn't say anything about the question you
 asked.  (I am planning for a career in politics.)' --- Mark Mitchell
                                                      on the GCC list

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

From: [EMAIL PROTECTED] (Juergen Heinzl)
Subject: Re: directory file size
Date: 21 Jan 2001 01:41:08 GMT

In article <[EMAIL PROTECTED]>, Nix wrote:
>On 19 Jan 2001, Juergen Heinzl gibbered:
>> Yes and that is not an unusual behaviour for directories in Unix. Actually,
>> some, like lost+found, require it.
>
>Does it? I thought it just had to start big at a place on the disk
>pointed to by the superblock; whether or not it shrinks back to that
>size when things are unlinked from within it isn't important, I'd have
>thought.
[-]
Yes, it does else the file system check might have to allocate disk blocks
while trying to put entries into lost+found. At worst it could be impossible
to create anything in lost+found, not a good idea either.

Cheers,
Juergen

-- 
\ Real name     : J�rgen Heinzl         \       no flames      /
 \ EMail Private : [EMAIL PROTECTED] \ send money instead /

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

From: Mike Percy <[EMAIL PROTECTED]>
Subject: I/O info by process (not partition or device)?
Date: Sat, 20 Jan 2001 21:25:44 -0500
Reply-To: [EMAIL PROTECTED]

Is this info available in the kernel, or somewhere like /proc/xxx/something?

-- 
"Each game of chess means there's one less variation left to be played.
Each day got through means one or two less mistakes remain to be made."
Seen on the net: "Microsoft is to computers as McDonalds is to food"

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

From: [EMAIL PROTECTED]
Subject: 3A58834B8 About software standards.
Date: Sat,20 Jan 2001 21:50:24+2000


  WHAT IS LINUX ?:  NEW ADVANCED OPERATING SYSTEM FOR BUSINESSES , THAT PROVIDES
   ALL KINDS OF NETWORKING, PRINTING AND THOUSANDS OF OTHER APPLICATIONS,
    TYPICAL LINUX APPLICATIONS ARE LESS EXPENSIVE AND HIGHER QUALITY THAN THE
   ONES FOR MICROSOFT WINDOWS , LINUX RAPIDLY SPREADING AND ABOUT TO BECOME
   SINGLE UNIFIED OPERATING SYSTEM FOR ALL PERSONAL COMPUTERS BY YEAR 2003.


  NOW NEW TECHNICAL ILLUSTRATION AND DIAGRAMMING PROGRAM FOR LINUX IS AVAILABLE !!!
===================================================================================

               w  w  w . l i n u x c a d .  c o m 
               w w w . s o f t w a r e f o r g e . c o m
                    or call to 913 663 1724 
      if the web site is down, do not be shy order using telephone
             or e-mail your questions to [EMAIL PROTECTED]

   LINUX CAD IS THE AUTO CAD AND THE VISIO FOR LINUX FOR ALL PRACTICAL PURPOSES IT 
IMPLEMENTS
ALL MAJOR FEATURES OF AUTOCAD AND VISIO IN SUCH A WAY THAT NEW USERS (WHO HAD ACAD 
EXPERIENCE BEFORE)
DO NOT NEED ANY ADDITIONAL TRAINING TO START WORKING WITH LINUX CAD ).

  What is included:  80% of autocad features, blocks attributes, bezier curves, 
polylines, 
nurbs , understands SHX fons , understands True Type fonts , symbol libraries for 
architects,
electrical and electronic design, network design, DXF and DWG formats supported,
exactly the same user interface as in autocad.


   LINUX CAD CAN BE USED IN:
       ORGANIZATIONAL CHARTS ,
       BUSINESS PROCESS DIAGRAMMS,
       INFORMATION NETWORK AND COMPUTER SYSTEM DIAGRAMS,
-->    SOFTWARE DEVELOPMENT FLOWCHARTING ,
-->    ENTITY RELATIONSHIP DIAGRAMMING,
       NETWORK PLANNING,
       SYSTEM ADMINISTRATION DIAGRAMMING AND YOU ACTUALLY CAN START
       YOUR SYSADMIN TASKS FROM INSIDE LINUX CAD,
-->    MECHANICAL ENGINEERING DRAFTING,
       PCB AND SCHEMATIC DESIGN ( EASILY INTEGRATED WITH ROUTING PROGRAMS ),
       GEOGRAPHICSL INFORMATION SYSTEMS,
       ANY KIND OF DRAFTING WHERE INTEGRATION WITH DATABASE IS IMPORTANT,
       FLOOR PLANS FOR BUILDINGS AND FACILITIES,
-->    ARCHITECTURAL DRAFTING,
       FRONT END FOR PROGRAMMABLE RENDERING SYSTEMS LIKE OPENGL,
-->    FRONT END FOR ANY SOFTWARE THAT MAY REQUIRE GRAPHICS EDITOR FUNCTIONS,
       CAN BE USED TO REPLACE ACAD IN EVERY APPLICATION LATER IS USED !!!
       CAN BE USED TO REPLACE VISIO DIAGRAMMING TOOL IN EVERY APPLICATION LATER IS 
USED !!!


  AVAILABLE FOR LINUX TODAY !!! TODAY !!! , DELIVERED TO YOUR DOOR WITHIN 24 HOURS.

               w  w  w . l i n u x c a d .  c o m 
               w w w . s o f t w a r e f o r g e . c o m
                    or call to 913 663 1724 
      if the web site is down, do not be shy order using telephone
             or e-mail your questions to [EMAIL PROTECTED]


    CREATE ALL KINDS OF TECHNICAL ILLUSTRATIONS , ORGANIZATIONAL CHARTS AND
 ANY KINDS OF DIAGRAMMS WITH LINUX CAD , LINUX CAD MAKES A TRULY CONSUMER 
 ORIENTED OS OUT OF LINUX !!!

       One more thing: there is a scum bug out there who is contstantly hacking our
web site, so consider yourself lucky if you have the opportunity actually
see the web site and use that opportunity to order LinuxCAD immediately.   



      


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

From: [EMAIL PROTECTED]
Subject: 4A58834B8 About software standards.
Date: Sat,20 Jan 2001 21:50:24+2000


  WHAT IS LINUX ?:  NEW ADVANCED OPERATING SYSTEM FOR BUSINESSES , THAT PROVIDES
   ALL KINDS OF NETWORKING, PRINTING AND THOUSANDS OF OTHER APPLICATIONS,
    TYPICAL LINUX APPLICATIONS ARE LESS EXPENSIVE AND HIGHER QUALITY THAN THE
   ONES FOR MICROSOFT WINDOWS , LINUX RAPIDLY SPREADING AND ABOUT TO BECOME
   SINGLE UNIFIED OPERATING SYSTEM FOR ALL PERSONAL COMPUTERS BY YEAR 2003.


  NOW NEW TECHNICAL ILLUSTRATION AND DIAGRAMMING PROGRAM FOR LINUX IS AVAILABLE !!!
===================================================================================

               w  w  w . l i n u x c a d .  c o m 
               w w w . s o f t w a r e f o r g e . c o m
                    or call to 913 663 1724 
      if the web site is down, do not be shy order using telephone
             or e-mail your questions to [EMAIL PROTECTED]

   LINUX CAD IS THE AUTO CAD AND THE VISIO FOR LINUX FOR ALL PRACTICAL PURPOSES IT 
IMPLEMENTS
ALL MAJOR FEATURES OF AUTOCAD AND VISIO IN SUCH A WAY THAT NEW USERS (WHO HAD ACAD 
EXPERIENCE BEFORE)
DO NOT NEED ANY ADDITIONAL TRAINING TO START WORKING WITH LINUX CAD ).

  What is included:  80% of autocad features, blocks attributes, bezier curves, 
polylines, 
nurbs , understands SHX fons , understands True Type fonts , symbol libraries for 
architects,
electrical and electronic design, network design, DXF and DWG formats supported,
exactly the same user interface as in autocad.


   LINUX CAD CAN BE USED IN:
       ORGANIZATIONAL CHARTS ,
       BUSINESS PROCESS DIAGRAMMS,
       INFORMATION NETWORK AND COMPUTER SYSTEM DIAGRAMS,
-->    SOFTWARE DEVELOPMENT FLOWCHARTING ,
-->    ENTITY RELATIONSHIP DIAGRAMMING,
       NETWORK PLANNING,
       SYSTEM ADMINISTRATION DIAGRAMMING AND YOU ACTUALLY CAN START
       YOUR SYSADMIN TASKS FROM INSIDE LINUX CAD,
-->    MECHANICAL ENGINEERING DRAFTING,
       PCB AND SCHEMATIC DESIGN ( EASILY INTEGRATED WITH ROUTING PROGRAMS ),
       GEOGRAPHICSL INFORMATION SYSTEMS,
       ANY KIND OF DRAFTING WHERE INTEGRATION WITH DATABASE IS IMPORTANT,
       FLOOR PLANS FOR BUILDINGS AND FACILITIES,
-->    ARCHITECTURAL DRAFTING,
       FRONT END FOR PROGRAMMABLE RENDERING SYSTEMS LIKE OPENGL,
-->    FRONT END FOR ANY SOFTWARE THAT MAY REQUIRE GRAPHICS EDITOR FUNCTIONS,
       CAN BE USED TO REPLACE ACAD IN EVERY APPLICATION LATER IS USED !!!
       CAN BE USED TO REPLACE VISIO DIAGRAMMING TOOL IN EVERY APPLICATION LATER IS 
USED !!!


  AVAILABLE FOR LINUX TODAY !!! TODAY !!! , DELIVERED TO YOUR DOOR WITHIN 24 HOURS.

               w  w  w . l i n u x c a d .  c o m 
               w w w . s o f t w a r e f o r g e . c o m
                    or call to 913 663 1724 
      if the web site is down, do not be shy order using telephone
             or e-mail your questions to [EMAIL PROTECTED]


    CREATE ALL KINDS OF TECHNICAL ILLUSTRATIONS , ORGANIZATIONAL CHARTS AND
 ANY KINDS OF DIAGRAMMS WITH LINUX CAD , LINUX CAD MAKES A TRULY CONSUMER 
 ORIENTED OS OUT OF LINUX !!!

       One more thing: there is a scum bug out there who is contstantly hacking our
web site, so consider yourself lucky if you have the opportunity actually
see the web site and use that opportunity to order LinuxCAD immediately.   



      


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


** 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: [EMAIL PROTECTED]

You can send mail to the entire list by posting to the
comp.os.linux.development.system newsgroup.

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

End of Linux-Development-System Digest
******************************

Reply via email to