I don't know the details of a typical Linux OS in much detail, but I would guess at the very least you'd need the kernel, some drivers, a shell, and a compiler. Also preferably a text editor to actually write in.
You can name your file (of which the file extension is part) whatever you wish. File extensions in Linux do not have the significance of file extensions in Windows.