I will try to answer your questions to my best knowledge.
The reason for the different image sizes is that the image contains the complete SD card, including the partition table.
This means that we have to decide the sizes of the partitions when we make the image.
The image contains 2 partitions. 1 FAT of 50MB and the rest is an EXT3 partition.
If you write the 2GB image to a 16GB flash card you will still have an 50MB FAT partition and a (2GB-50MB) EXT3 partiton.
The rest 14GB of the SD card will not be allocated.
If you want to have use all of a 16GB it is possible to make the image directly from the source (https://github.com/Larsjep/monoev3image)
- static stored data like several stored programs, accessory data files like look-up tables or init~ or log files (flash)
Depends on the size of the EXT3 partition. Linux and the Mono runtime takes about 400MB.
- actively executable program code (RAM, possibly flash)
When the system is started it uses about 24MB af RAM. The EV3 has 64MB ram, so this leaves apx. 40MB for your programs.
This can be extended by creating a swap file, but this will be very slow.
- is the memory for an executable program organized by stack and heap?
Yes internally. But the mono runtime will take care of this for you.
- usable static memory for variables (RAM, possibly flash)
- usable dynamically allocated memory for variables (RAM, possibly flash)
The memory space for variables, dynamically allocated and executable code is the same. See previous answer.
- how much of the available memory (flash and RAM) is used by Linux OS ?
Around 24MB of the 64MB available.
- how much of the available memory (flash and RAM) is used by the .net VM ?
Sorry, but I have no idea.
- This reply was modified 4 years, 6 months ago by Lars Jeppesen.