CAD CAM EDM DRO - Yahoo Group Archive

Potpurri ?

on 1999-07-29 04:45:46 UTC
Hi everyone,

I had a direct question - but I throw in a lot of other topics as
well. I hope that would be ok.


First: I would like to be able to say that 2+2=4, not as: 2+2= ?
probably more than 2, but less than 10!

Well, I most cases the last one is closer to the truth!

A small story, - I hope I don't bore you with this:
------------------------------------

In the beginning, the PC used an 8088, then came faster processors
and stuff, but it kept with the old way of doing things.

BIOS - "basic input and output system" - is "operating system "
where the programs reside in a read only memory. This system has
everything from reading disks, to handle screen and keyboard.

DOS - "disk operating system" - is well known. It adds the ability
to handle hard disks + much more. When you see the familiar DOS
prompt C:\ - then you have loaded command.com. An easy to use
commando interpreter, - and you know the rest.

Dos install something very similar to BIOS, - a system call
interface. In many parts, it still passes on system calls to the
background BIOS, but wrap it up in a nicer package.

Windows, is just another add on. It wraps up things in a nicer
looking package, - but sends the real commands to the background
DOS, - which in turn pass it down to BIOS.

Windows98, is a little different. Microsoft realized that the
system architecture were no good, as DOS was a single user system.
What they needed was UNIX/LINUX type of OS. They tried to launch
OS/2 with IBM, but failed. The users would not let go of DOS. There
was just too many applications that used it.
Okay, back to DOS again - lets fool the users ! Let's gradually get
rid of DOS. Take Windows, make it so nice that everyone will use
this interface, then we just rip out DOS underneath it and replace
it with UNIX stuff. In Windows98, they have made the move. Parts
of DOS is not there anymore. The next was to install the UNIX stuff
- and that is what they did with NT.

Then came Linux, - and did a much better job !

Ok, this was my little story.

--------------------------
To Patrick Huss: Shared memory.
--------------------------

When the machine boots, it uses BIOS. It count up the memory, and
make everything available for DOS, - which then boots up, and then
this again may boot up Windows.
As my little story told, Bios is still used as the foundation to it
all. But reading from EPROM (read only memory on the main board ) is
much slower than reading from RAM. So it copies itself to RAM, and
uses this image instead. But by doing so, it will steal a part of
the available RAM memory. On the old 8088/86, there was a memory
limit to 640K bytes. IO, and BIOS used the part above that, but the
limit was 1024K bytes. (With 80286, you could address memory above
this.)
There is unused holes in this memory space, and you could use some
RAM installed above 640K for ram disk, or other stuff. Here is
where parts of the BIOS "ram" image could go, -or it could use the
same physical address, but in the "ram" memory space. And the Bios
setup, has options to do some tricks here, by remapping the entire
memory space that other programs will see.

I wish I could say that 2+2=4, but I can't. I don't know if Linux
is using Bios after it is loaded, and I don't know how a remapped
memory space would be seen like by Linux. But I think it don't
bother anyway, because it uses another way to deal with all of
this. Linux will only run on 80386, and uses another memory
management - protected mode.

I tried everything on my 486, before I got it to use shared memory.
And to disallow bios to remap shadow memory - was one of the things
I did. If that matters at all, - I don't know. I just passed a note
about it.

Linux and shared memory:
-------------------

I was in contact with Fred Proctor when I encountered the problem,
and he fixed it for the 486 in the last releases of emc. I also
wanted to understand a little of it, so I read the papers he have
written on shared memory, and I tried to run the example programs,
but they didn't work. ( and he has not fixed it for the 486 ) - but
he told me a little bit about it .

[ If he reads this, then I like to say that I got the schemex
programs to run in the end - using vremap(), and vfree() ]

The problem is: when you run the RT kernel in the background, and
normal Linux in front, they pass information trough the shared
memory that is set aside in lilo. In order to do so, they have to
know the exact place to write and read to. The problem is that
RTlinux and normal linux look at the memory pool differently. Linux
uses a virtual memory map, and these addresses must be recalculated
into physical address when passed to the RT part. On the 486, these
calculations was not correctly done.

---------------
Linux installations:
---------------

I have always used custom installation, as there always has been
some strange hardware on them.
Linux runs on a floppy - you don't need any hardisk space !
You boot it from a floppy during the install, and you are then
running Linux. I am sure that all of us could get rid of Gigabytes
on the disks, and not notice it at all. The reason is that we all
install a lot of stuff, we almost never use. I normally have DOS
installed. Say I use FDISK ( dos ) and set up 20M for dos. I don't
use FDISK(dos) to anything more. In dos, it only see one drive of
20M. Here I have some options to run small programs, or run loadlin
- another way to boot up Linux.

Then I install Linux with a floppy. Fetch packages from a CD rom,
or over the LAN, and you could also installed from an FTP server on
the internet.

If I have some text files in dos, I can store them on my small 20M
dos drive, and later mount this drive in Linux and use these files,
or you could run them trough DOSEMU in Linux.

After booting up Linux, I then let Linux do the partitions of the
rest of the disk.


----------
Matt Shaver: "... Pretty soon you'll be thinking, "Maybe we really
DO need a PC in the bathroom.."

- YES, it has crossed my mind !! :-)
----------

I run several computers on a coax network, and it is just so nice,
it is amazing. Someone said, - You need a pentium to run EMC.

I don't know, - but I have installed it on a 486. The main reason is
that this is a machine I got cheap, and as long as I have the case
open, and run wires to it, - I hate to do it with an expensive one,
until I am over the experimental phase.

But, I have another 486, and that has been one of the best ones on
my network. It does a lot of work, and I very happy with it.

This brings me to another subject:

-----------------
EMC and network:
-----------------

I am trying hard to understand the EMC programs, and the philosophy
behind it. I am just starting to read some C, - so I have a long
way to go.

There is several parts to the EMC. The motion controller, is like
talking to another io, or another computer. This is in the RT
part. The xemc and so on is on the Linux part. What I would like,
was to have a 386/486 or what ever, running the motion controller
and the motors. Then I would like to have the xemc on a remote
panel, or computer. All this is some of the basic ideas behind the
whole EMC package, but all we have done is to use a single
computer. I am trying my best to understand how to set up a system
like this, and would like to get some input from ( Fred ? or Will ?
) - or anyone that have done so. How do you do it.

This way, I think a 386 would do just fine. You could strip out all
processes that you don't need, and I don't think it would have much
problem to run the motors.

Also, I believe that at NIST they do something like this: They
compile the code on one PC, save to a floppy, - or send it over a
network , to the work shop. The actual PC that runs the EMC
software, don't need all the source files and whatever is needed to
compile it.

You could also have another PC doing the io control of coolant, and
so on. Let us imagine that you would like to have a conveyer belt,
sending you some material. This could use a remote PC and run the
conveyer.

--------------------------
I finnish with some simple question:
--------------------------

What is the encoder index signal used for ?


//ARNE

Discussion Thread

Arne Chr. Jorgensen 1999-07-29 04:45:46 UTC Potpurri ? Patrick Huss 1999-07-29 11:13:03 UTC Re: Potpurri ? Jon Elson 1999-07-29 21:33:36 UTC Re: Potpurri ? Tim Goldstein 1999-07-29 22:06:32 UTC RE: Potpurri ?