Minimum image

  • Thread starter Thread starter Pascal Bouchard
  • Start date Start date
P

Pascal Bouchard

I want to build a tiny image that must have the following features :

* VGA display
* TCP/IP access over my ethernet adapter
* Program execution (MFC probably that will use Sockets)

What template or sample or components shall i use to have the most tiny
image ?
 
OOps... i forgot... i want my image to reside on a Read-only ide partition;
i would like to use EWF RAM overlay but without writing on any persistent
storage... modifications discarded.
 
Pascal,

Minlogon Sample would definitely be good choice for you.
You will have to add and setup EWF components, Basic TCP/IP Support (another
macro under Networking), the right video driver and MFC components.

Btw, do you really need MFC in your image? To access and program sockets you
don't really need the library but from footprint point of you including it
may not be wise.

KM
 
Minlogon Sample is a good choice; adding Basic TCP/IP however implies the
addition of multiple components; When having MinLogon Sample + network
adapter component = 19Mb compressed; when adding Basic TCP/IP, without doing
anything, it goes at 89Mb;

If i manually add core-networking and disables all checkboxes, my image is
now 51Mb compressed; how can i lower this more ?

Regarding MFC, i will have to develop applications that will download things
from TCP and display things on screen; MFC is the fastest way to develop
such thing for my tests; this is the reason why i want to add MFC
components.
 
Actually, instead of choosing Basic TCP/IP, i must select TCP Networking
with Client for MS Networks (DHCP server do not give me ip address
otherwise); i must unselect Windows Firewall cause it gives a
40Mb(compressed) addition.

I'm still looking ways to make my image smaller...
 
Pascal,
Minlogon Sample is a good choice; adding Basic TCP/IP however implies the addition of multiple components; When having MinLogon
Sample + network adapter component = 19Mb compressed; when adding Basic TCP/IP, without doing anything, it goes at 89Mb;

With SP2, if you want to minimize the footprint, you may want to remove (not include) Firewall components from the Configuration.
If you turn off Autoresolve feature in TD, you will have more control over components dependencies.

My smallest network based Minlogon SP1 image with Microsoft TCP IP drivers was ~30Mb (uncompressed) and I had all the functionality
I needed that time.
If i manually add core-networking and disables all checkboxes, my image is now 51Mb compressed; how can i lower this more ?

Again, it is not just a matter of "checkboxes". You will have to go deeper than that and start with turning off Autoresolve
dependencies in TD. You may have a few iterations before you come to the image you really want to use.
Regarding MFC, i will have to develop applications that will download things from TCP and display things on screen; MFC is the
fastest way to develop such thing for my tests; this is the reason why i want to add MFC components.

No doubt MFC will save you a bunch of time for the development (especially GUI part).
However, there is always a price for such fast development - app runs slower, takes more memory, requires more dependencies.
It will be a trade off for you.

KM
 
Pascal,

Do you need file sharing and other options like this?
If not you might want to create your lite version of component "TCP/IP
Networking".

TCP drivers need are very lite. you need monolithic tcpip.sys driver, TDI,
NDIS and network adapter drivers installed.
Unfortunately TDI can be used by other drivers, so you must write driver to
exploit this :-(

afd.sys driver is TDI proxy to used mode so that user mode applications can
use some reduced TDI functionality. AFD interface is not documented by MS so
you will have to figure out how to use it.
If this also it too low level to you then next wrapper are socket oriented
API dll's that use AFD internally, unfortunately at this point your image
start to grow. But you might be able to make your component that will use
only parts that are rely necessary for your program (based on trial and
error).

Regards,
Slobodan
 
I'm working on this... sounds very good...

Do the "TCP/IP" utilities using afd directly ?

I do not need file sharing or netbios stuff;

I'd very appreciate to use Sockets, which component or primitives shall be
there ?
 
Pascal,

Actualy only socket dll wrapers (that I know of) use afd driver.
I'd very appreciate to use Sockets, which component or primitives shall be
there ?

Sockets are modular aproach. You have different dll's that allow you to
exploit certain drivers trough socket wrappers.

The easies way for you tto figure this out is to make (use) application that
need sockets. And then try to resolve all static and dynamid dll
dependecies.

Regards,
Slobodan
 
Back
Top