[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vnrg] Logical vs. virtual



Dear all,

Joe raised the issue of logical vs. virtual.
I believe it is worth spending a separate thread on clarifying this point.

At the bottom of this email is my proposal.

Joe stated:
Note that nothing about these definitions specifies a boundary, i.e., inside a single machine, etc. I don't think those boundaries are meaningful in the base Internet anyway. I.e., IMO, virtual has nothing per se to do with "logical". I.e., a set of devices on a network that source/sink packets with a single network address act as a single logical host. That's not 'virtual' to me, though most 'virtual' things tend to be logical, not all logical things are virtual.
1) Should I interprete this as logical referring to physical boundaries?
2) This does not define what virtual means or how it differs from logical --> we probably need to formally define virtual inside the vnrg to know what we are speaking about exactly. 3) I agree with "not all logical things are virtual". However, "MOST virtual things TEND to be logical" --> are there any counter examples in which virtual things are not logical?

This example also reminded me of the Virtual Router Redundancy Protocol (VRRP): see RFC3768.
Not sure what made the authors to call it virtual rather than logical.

According to Juniper (sorry for mentioning company names...): http://www.juniper.net/techpubs/software/junos/junos74/swconfig74-routing/html/logical-router-overview2.html


    Logical Routers and Virtual Routers

A virtual router is not the same as a logical router. A virtual router is a type of simplified routing instance that has a single routing table. A logical router is a partition of a physical router and can contain multiple routing instances and routing tables. For example, a logical router can contain multiple virtual router routing instances.


Virtual memory handling in computer systems: http://en.wikipedia.org/wiki/Virtual_memory#Segmented_virtual_memory


      Page tables

Almost all implementations use page tables <http://en.wikipedia.org/wiki/Page_table> to translate the virtual addresses seen by the application program into physical addresses <http://en.wikipedia.org/wiki/Physical_address> (also referred to as "real addresses") used by the hardware to process instructions. Each entry in the page table contains a mapping for a virtual page to either the real memory address at which the page is stored, or an indicator that the page is currently held in a disk file. (Although most do, some systems may not support use of a disk file for virtual memory.)

Systems can have one page table for the whole system or a separate page table for each application. If there is only one, different applications which are running at the same time <http://en.wikipedia.org/wiki/Multiprogramming> share a single virtual address space, i.e. they use different parts of a single range of virtual addresses. Systems which use multiple page tables provide multiple virtual address spaces—concurrent applications think they are using the same range of virtual addresses, but their separate page tables redirect to different real addresses.


      [edit
      <http://en.wikipedia.org/w/index.php?title=Virtual_memory&action=edit&section=4>]



Conclusion: not really clear definition of both terms.

My proposal:
* Logical is opposite of physical: logical always requires mapping to physical. Of course, logical can be mapped on some other logical thing that itself needs mapping to physical. More formally, this mapping is a general function: 1) nothing should prohibit mapping multiple logical names/addresses to a single physical address/thing, 2) not all physical entities must have a logical counterpart. Also the source and target of the mapping should not be restricted in terms of types: names can be mapped onto other names or names can be mapped onto address for examples. * Virtual is a specialized form of logical, as the virtualization technology still needs to map a virtual entity onto a single non-virtualized (physical or isolated uniquely identifiable logical) entity, while guaranteeing isolation. More formally, this mapping is an injection of tupples of <entity, virtual instance ID> onto entities of the same type (thus not mapping of names into addresses for example: virtualization of name space, means mapping <virtual name, instance ID> on to unique identifiable <name>, virtualization of virtual memory (I would rather call this logical memory) page tables <virtual page number (seen by application), instance ID> on to <system wide page number>).

Kind regards,

Didier

--
Didier Colle
Ghent University - IMEC - IBBT
Department of Information Technology (INTEC)
Gaston Crommenlaan 8 bus 201, B-9050 Gent (Ledeberg)
Email: didier.colle at intec.UGent.be
MSN: didiercolle at hotmail.com
Skype: didiercolle
Tel. +32 9 331 4970
Fax. +32 9 331 4899
Mobile: +32 473 295655
WWW: www.ibcn.intec.UGent.be


Note Well: Messages sent to this mailing list are the opinions of the senders and do not imply endorsement by the IETF.