Linux Server from Windows Laptop

Asked by charles

I want to use Linux as my platform for developing. I have a laptop with Vista on it. Can I use a Linux Server without any issues?

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu ubiquity Edit question
Assignee:
No assignee Edit question
Solved by:
mycae
Solved:
Last query:
Last reply:
Revision history for this message
mycae (mycae) said :
#1

you will need to be more specific about your expectations and your needs.

If the two systems are separate, I am not sure what problems there would be. You can use SSH to remote login to the server for example, and initiate compilation, or any program execution that way.

For example if you are developing someting that needs openGL, then this is a little more complex.

Revision history for this message
delance (olivier-delance) said :
#2

Why do you want Server Edition instead of Desktop Edition ?

Revision history for this message
charles (ctwick) said :
#3

Basically all I am trying to do is develop a project in the linux environment. The problem is that I have a laptop with vista on it. I was thinking about using EC2 Linux but not sure if I can do this seeing how I would be running from the windows laptop? Am a bit new at all of this as you probably can tell. Thank you for all of your help ...

Revision history for this message
Ubfan (ubfan1) said :
#4

You can install Linux to a usb stick and boot from that without touching the Windows installation. a 4G stick is fine for a desktop development environment, and a 2G stick for a server (if you can do without the gui). You can use the create startup disk from the system/administrator menu, but you should prepartition the usb stick for a minimal install (830M) + another partition you will relabel casper-rw and delete the minimal casper-rw file on the first partition. Runs fine, can be updated, but biggest drawback is the 3 min boot up time.
Alternatively, you can install to a 4G stick for a quicker booting system, but you might want to tweak the stick geometry to try and fit the erase block (128M?????). This is how I usually run, putting /tmp and /var/log into ram, and setting up a user whose home is in ram too.

Revision history for this message
Best mycae (mycae) said :
#5

You probably don't want to use ubuntu server. The main point in ubuntu server from an end user perspective is that it does not install a graphical desktop by default -- its command line only.

If you just want to try, you probably just want to install a desktop version of ubuntu, or just run everything from a live session as suggested by Ubfan.

Alll you need to do is download an iso from here, burn it to a CD then stick the CD in, and use the "live" mode.
https://secure.wikimedia.org/wikipedia/en/w/index.php?title=LiveCD

If you have a good connection, and a reasonable burner, the whole process should take about 45 minutes.

Once you have booted to the live session, you will need to install a compiler. You can either do this from the basic graphical package manager "software centre", the advanced graphical package manager "synaptic" or from the command line (terminal). Any will do.

If you can tell us which language you plan to develop in, then we can even tell you which package to install.

Once you get comfortable with that, you may want to actually do an install, either to a virtual machine, a persistant live device, a WUBI file, or even repartition your laptop to dual boot.

Revision history for this message
charles (ctwick) said :
#6

Thanks mycae, that solved my question.

Revision history for this message
charles (ctwick) said :
#7

Thanks Ubfan, that solved my question.

Revision history for this message
charles (ctwick) said :
#8

Mycae,

to answer your question, I plan on developing in C#. I was lloking at python or F# as well. Any suggestions on which might be better? My code experience is extremly limited so i'm a newbie starting out. I am willing to put in the extra effort to learn something that might be alittle harder if it will payoff in the long run...

Thanks again for all of your help,

Revision history for this message
charles (ctwick) said :
#9

Maybe I should be deciding between c# or c++?

Revision history for this message
mycae (mycae) said :
#10

Mostly it doesn't matter too much what programming language you learn, its more a matter of learning the logic.

C++ vs C#
My personal preference would be not to code in c#, but rather C++ mostly because of three issues -- others may disagree.

Under Linux C# is provided by mono.
1) Mono is always tail-chasing the .NET specifications -- you have to limit yourself to what mono offers, not the full .NET (so linux->windows port -- not so bad. windows->linux, could be annoying if the program is larger than 10K lines)
2) It's a virtual machine language, and a garbage collected one -- it will always be slower than a native program, and require a lot more memory to do its job as compared to C++
3) Mono is a large dependency (this is true of all VM languages) -- this can be annoying.

The upside is that getting started will probably be faster, because of the libraries supplied.

C++:
* C++ provides only very few libraries. You have to choose which libraries you like to learn, and how to use them.
* Whilst garbage collection is possible (auto_ptr, or C++0X spec.) its not used a lot. Personally I find this fine, but you are a bit closer to the metal -- its possible to leak memory (but you can check and fix these with tools like valgrind).

Python:
*Personally I think this is fine if your total codes size is <5K lines, beyond that it is slow and can be a little cumbersome. thats not to say its not possible to build large python programs.
* The upside is that it is very easy to use, and comes with a large set of library functions, unlike C++ (but like mono)

Notes:
* Mono will always be a moving target, and to some extent python too -- they change their library functions periodically (every few years).
* C++ will "move" slower, functions rarely change -- largely because it doesn't offer a large library ;). If you pick the right libraries to do what you want, your program will not need to be altered for some time.

Speed is not king, but it is important to keep at the back of your head when your program is running too slowly. And only then, not before. Note that algorithmic improvements yield orders of magnitude improvements -- better algorithms trump better languages every time.

http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

Revision history for this message
mycae (mycae) said :
#11

BTW : Just remember a live session is GONE when you reboot -- as are all changes you haven't moved onto a permanent disk

Revision history for this message
charles (ctwick) said :
#12

Thank you very much mycae. I sincerely appreciate your help

Revision history for this message
charles (ctwick) said :
#13

Another silly question ... i should be looking at ubuntu distribution, correct?

Revision history for this message
mycae (mycae) said :
#14

I, oddly enough, would recommend ubuntu to new users over any other distribution. Experienced users I would point at debian.