1.Сможешь, если будешь кодить правильно.
2. Актуально еще как. Я кстати сам начинал писать именно под freeBSD\linux (кстати между ними проблем с переносом нет. Код компилиться в обоих системах)
3. Различия есть, но если держаться стандартов, то править совсем не много. Лучше всего использовать фраймворк, тогда вообще править не придется.
4. C++ и Qt.
5. А на чем тогда ядро линукса и bsd написано? =)
6. gcc он там всегда обязан быть. (Только наверно ты имел ввиду среду разработки, типа delphi, а не компилятор )
А в других ОС модули просто другие. Ну короч примрно понял. А так как во FreeBSD встроена поддержка linux
Особой разницы в коде для freebsd и linux нет. У них один компилятор, одни и те же библиотеки и инклуды. Может там если примочки для ядер писать, то да - разница есть. А если что-то обывательское делать, под консоль или гую, то разницы нет никакой (проверено).
Встроенная поддержка линукса в freebsd для того, чтобы можно было запускать бинарные файлы линукса.
Очень рекомендую фреймворк QT. Тогда точно с проблемой переноса не столкнешься, да и QT штука очень классная. Вполне можно прочитать какую-нибудь хилую книжку азов С++ (типа С++ за 21 день) и купить книгу по Qt.