A Bare-Bones Linux+Mono+GUI Distro? 158
nimble99 writes "I am a computer software engineer, focused mainly on the Windows platform — but most of my development time is spent in .NET. I would like to move my .NET development to Linux in the form of Mono, in an attempt at building a media-center type of device. All I require, is a base operating system with simple hardware support, Mono, and a window manager that (preferably) does nothing but act as a host for mono applications. Is this available? I dont know a lot about Linux, so I thought I would ask if there is already something like this available. Obviously a 'Mono Operating System' would be the cleanest solution, but a similar thing could be achieved with the barest minimum of Linux distros right?"
Gentoo (Score:4, Informative)
Re: (Score:1)
Re: (Score:2)
I know he said linux in the question, but installing a minimal Freebsd box is much easier. And if he mostly cares about mono, does it really matter what OS its running on?
Monoppix? (Score:5, Informative)
I haven't tried it yet but the description sounds about right.
Re: (Score:3, Insightful)
Doing it himself seems like the best bet. Certainly if he's planning to develop a commercial product based on this, it's worth figuring out a custom distro that does exactly what he wants.
Re: (Score:2)
Re: (Score:2)
If the latter is correct, I'd suggest whatever distro his friends or coworkers can best help get started with (Ubuntu, Fedora, Gentoo, whatever) and not worry about Mono-specific wrinkles.
Re: (Score:2)
When you are developing, you are a user. Which means you are a pain in the ass to somebody.
Once the box goes out the door, it means it's in the hands of users, who will be a pain in the ass to you.
The way to make money in tech is to find something that people will pay money for (duh), but the important point is that it doen't have to be much money, so long as they never ever call you for support. I know a guy who launched possibly as many as a dozen commercial
Ubuntu Server Edition (Score:5, Informative)
Re: (Score:3, Informative)
Re: (Score:2)
I do know the server edition is tuned to give background tasks more priority.
Re: (Score:3, Informative)
Re: (Score:2)
Debian and Ubuntu maintain the same version of their packages as is released for each version, generally applying only bugfixes.
Re: (Score:3, Funny)
Re: (Score:2)
I run Sid myself, but you can't get your security updates separate from your "might break all your dependencies" functionality updates. For my single development box, that's fine, but when you've got multiple production deployments, that's really bad.
Debian or Ubuntu Minimal. (Score:2)
Debian (Score:5, Informative)
Damn Small Linux (Score:3, Informative)
That said, if you are going to be doing Mono development you will want a full desktop environment - for that any distro will work fine. I'd go with a full Debian install on your development machine so you have the same library versions/builds on both systems.
For the final media center PC, you don't actually
OpenSuse Vmware Image. (Score:4, Funny)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Try SuSE (Score:5, Insightful)
That said, I'm quite happy with Fedora, Mono packages are included, and if you need something more recent than the last Fedora version you can easily compile it yourself.
Your job is to be a software developer, not a desktop-customization weenie. So forget about spending time on making or finding a 'minimal' environment. Any modern Linux distribution won't get in your way and will let you get on with porting your apps to Mono.
No you don't (Score:2)
What about a web browser for research? An IRC client for asking questions?
Ubuntu is will do what you want. It may have a few extras you don't need so uninstall them.
Qt... (Score:5, Informative)
Re: (Score:1)
Re: (Score:3, Informative)
Re: (Score:3, Funny)
Re: (Score:2)
Re: (Score:2, Informative)
Re: (Score:2)
Re: (Score:2, Informative)
OpenSuse Mono Live CD (Score:1)
Look at Debian Live (Score:5, Interesting)
You also have the ability to build images for CD-Rom's, usb sticks, netboot or hard drive images.
If you are not familiar with Linux, this route may be like jumping into the deep end. As others have mentioned, you may be better off using a canned distro like Monoppix [monoppix.com] while you do your development so you know exactly what you need in the end. Once you are comfortable and ready to move toward your final product, look towards Debian live.
Warning: The following contains stupid questions. (Score:1)
Do you:
( ) Intend to use it as a liveCD?
( ) Want disk tools in the installer to allow you to keep a windows partition?
( ) Want to avoid significant configuration?
( ) Have no Linux experience whatsoever?
( ) Want it to exist in a partition WITH Windows?
( ) Have better things to do than sift through the inevitable 2541 comments?
Th
DSL + modification (Score:1)
Try windowmaker (Score:1)
OK, I'll bite... (Score:3, Interesting)
I dont know a lot about Linux, so I thought I would ask if there is already something like this available.
Anyway, here is my suggestion, but, as another poster has already pointed out, any Linux/GUI permutation would probably work just as well:
Some people would argue that using Slackware for this is crazy, but (a) Slackware is a lean and mean developement platform, and a very lean Linux distribution and (b) it will teach you a lot of things about Linux, and UNIX in general.
I hope this helps!
Re: (Score:1)
Re: (Score:3, Interesting)
I don't know why, but this question sounds really, really weird to me: if you are doing .NET development, why move to Mono and Linux? Why not just stay under Windows, especially since you say (and I quote):
I dont know a lot about Linux, so I thought I would ask if there is already something like this available.
I can answer this, being in much the same postion.
.NET at work, but I love my Ubuntu setup at home. Mono lets me use a language I am comfortable in for pet projects.
Like a lot of Slashdotters, I get paid for coding, and so I use C# and
Linux is perfect target environment for the kind of (ambitious) pet project he has in mind, it's far more suitable than Windows for repurposing older kit or scratch building, it has no cost or licensing hassles, drivers are built in, and everything is open.
Of course the sam
Tell us more (Score:3, Insightful)
Is that exact arrangement pre-made? Probably not. Why don't you let us know what you're trying to accomplish so that we can steer you in the right direction?
I'm a KDE guy, but my first suggestion would be to install Ubuntu with the stock Gnome desktop. Just because you can run other applications doesn't mean that you have to.
Many Choices (Score:1)
DIY (Score:1)
#2 Install distro.
#3 aptitude search mono
#4 sudo aptitude install etc.
#5 sudo aptitude install xorg fluxbox
#6 ???
#7 Profit.
Re: (Score:2)
yeah, it's called... (Score:5, Insightful)
Mono is not
So, basically, what you want is one of the basic Gnome or XFCE distributions, with the additional
Everybody occasionally dreams of getting rid of all the "old stuff" and just replacing it with something "modern" written entirely in the language-du-jour. But there are several reasons against that: (1) the old stuff works well enough, (2) it's not clear that you can do better, and (3) the old stuff has proven that it has staying power; C# may be gone in three years and you have to start from scratch.
I would also recommend against programming in
Re: (Score:2)
That must come as a surprise to the Mono developers who claim "Mono provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix" and "The Mono Project is an open development initiative sponsored by Novell to develop an open source, UNIX version of the Microsoft .NET development platform."
Re: (Score:3, Informative)
Not really. It's really not that hard to understand:
Re: (Score:2)
Re: (Score:2)
You need to install the winforms libraries; they are not installed by default.
The only applications on Ubuntu that use Winforms are monodevelop (port of Sharpdevelop), IronPython (Microsoft open source software), and IKVM (JVM emulator). None of the actual mono desktop applications use winforms, hence it isn't installed by default.
And if you're developing new software for Linux with Mono, it would be foolish to use winforms: Gtk# is better and better supported (an
Re: (Score:2)
I actually kind of like the core C# language. I don't think there are patent problems. But C# is not the answer because it's too bloated, not implemented right, and changing too rapidly.
from VB to PowerShell
Those are the wrong things to say to try to convince someone to move to C# or CLR. PowerShell is another testament to Microsoft's incompetence.
Bare Linux (Score:1)
Look at LFS (Score:3, Informative)
It's not for the feint of heart, but you might look at using LFS to build such a minimal system. I don't really see the harm in using a "full" Linux machine for the development environment, and then using LFS to build the embedded image that you deploy to "real" devices. We do this where I work.
http://www.linuxfromscratch.org/ [linuxfromscratch.org]
It'll get the job done. If your totally new to Linux, it might be a bit much, but the folks on the lists are quite helpful.
Kirby
Re: (Score:2)
Linux From Scratch would be a good fallback position if building what you want on top of Gentoo or Arch didn't turn out to be as comparatively easy as it was supposed to be. It'll make you do a lot more work, but overcomes the snags through brute force of documentation, assuming little foreknowledge.
For a distro you can actually work in, the minimalist boot options [uni-kl.de] of Knoppix [knoppix.com] would let you do a quick restart of X and see what your apps do in something like what your final release image is like. If nothing
warning: this is slashdot! (Score:2)
This is slashdot. We're not always rational, and we argue our tastes in linux distributions and other functionally equivalent software.
That said, someone suggested gentoo, and while as a gentoo user I applaud the suggestion, I cannot help but think that it is a little steep in the learning curve to fulfill these (relatively simple) goals. While I don't think anywhere else would like to
Xubuntu. Or stay with Windows. (Score:2)
You want Xubuntu [xubuntu.org]. The official Ubuntu variant using the XFCE Desktop. Monodevelop will use quite a bit of GTK stuff though, IIRC.
Anyway, it's faster then Windows, so no downside here. But if Mono isn't enough, then I'd recommend staying with Windows. Unless, however, you want to learn more of Mono to slowly shake lose of MS. Monodevelop looks a very fine and dandy OSS IDE and even makes me curious about this Mono stuff.
Good luck and welcome on board.
OpenSuSE (Score:3, Informative)
I develop in Mono. I have chosen OpenSUSE over other distibutions because it's Novell behind and I thought that Novell would be the best company to packaged correctly MonoDevelop, Mono and everything else.
The OpenSUSE installation lets you remove unwanted apps. But well I have never removed anything...Quite the contrary, You always needs specific tools.
Oh...And well you are going to develop pro applications right? So I wouldn't advice to take the last little distribution...Somes are maintained by one person mostly...If this person gets sick or is fed up by the maintenance...You are in trouble. For pro the best thing is to wait until the distribution becomes mainstream (Ubuntu, Gentoo, etc.)
Re: (Score:2, Informative)
Also, Mono TECHNICALLY isn't a Windows infrastructure. It's heavily based on a Microsoft-created execution and "vm" stack (vm not so much, but i disgress), but it's a reimplementation of
Re: (Score:2, Flamebait)
Re: (Score:2, Informative)
F-Spot, the default photo app for
Beagle is Mono.
Tomboy Notes is Mono.
The way I see it, most of the brand new, quickly developing application software is based on Mono.quickly
Re: (Score:2)
Mono's
However Mono's VM is more comparable to x86. It is a published standard and Intel's initial development of it doesn't give them much intrinsic advantage over AMD. (And hopefully Mono's OSS nature will prove equivalent to Intel's fabrication advant
Re: (Score:2)
If you don't need PVR then I can heartily recommend XBMC, it's awesome.
http://xbmc.org/ [xbmc.org]
The following contains sarcasm: (Score:5, Funny)
Thank you,
-Rick
Re:Don't. (Score:5, Interesting)
As a user, I am philosophically opposed to Mono as an unwanted Windows fingerprint on my completely FOSS system (except for my nVidia drivers; alas, I am not perfect).
As a developer, I am so completely convinced of the superiority of the
I'm thinking about developing a split personality to deal with this paradox.
Re:Don't. (Score:5, Interesting)
Re: (Score:2)
Re: (Score:2)
Both of you let us know how that's working for you!
Re: (Score:2)
Re: (Score:2)
Your sentence is missing something: the superiority of C# *compared to what*??
Or you believe that C# is the best language currently?
I agree that C# is superior to C++ for ease of development (but not for speed and memory usage),
but I don't find it superior to Scala.
A small intro to Scala: http://www.artima.com/scalazine/articles/steps.html [artima.com]
Re: (Score:2)
Look, the GP said that C# is superior, this isn't even English: I asked superior in what to what?
In memory usage and performance, certainly not superior to C++ on Linux:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=csharp&lang2=gpp [debian.org]
And as a language, I think that Scala is better designed, that's all.
This doesn't mean that C# is bad, it's pro
Re: (Score:3, Insightful)
Re: (Score:3, Interesting)
I think... (Score:2)
I think both of you already have. =)
Re:Don't. (Score:5, Informative)
After reading the interviews on artima.com with Anders it's pretty clear that he's mostly a blowhard -- like Beck, all style and no substance. Take this [artima.com] for example:
Bill Venners:
Anders Hejlsberg: They can never inline a virtual method invocation.
Bill Venners: My understanding is that these JVM's first check if the type of the object on which a virtual method call is about to be made is the same as the one or two they expect, and if so, they can just plow on ahead through the inlined code.
Anders Hejlsberg: Oh, yes. You can optimize for the case you saw last time and check whether it is the same as the last one, and then you just jump straight there.
Not only is Anders being handed his hat by the interviewer, but he doesn't even realize that for almost ten years all Java methods have been effectively final until overridden, doing exactly that which he says is impossible. There is no 'same as last time' check since it is compiled as if there was one function. There is no 'jump straight there' when the method is inlined, and no performance lost from virtual methods that are not overridden. In contrast,
None these guys on the core C# team were anywhere close to the same level as say Joy or Bracha, and it shows. Yeah, if you're coming from Win32 and MFC then C#/.net seems pretty awesome, but it's not. They made a lot of really bad design decisions that make it really suck compared to what it could be and what they ripped it off from. So it kind of depresses me a little bit when people gush quixotic about how great
Re: (Score:3, Informative)
Furthermore, Anders is actually correcting the interviewer because the JVM isn't "inlining virtual method invocations", it's optimizing them.
Re: (Score:2)
The payoff is that many virtual method calls run just as fast as nonvirtual method calls. This is a case where Java beats C++ (or rather, the J
Re:Don't. (Score:5, Informative)
For inlining a function to mean anything, it cannot be virtual. An inlined function is in essence a macro.
And Anders is more accurate than Bill. What Bill says translates to: you can turn a virtual function into an inline function with a if ( this_class__is_not_X_or_Y ) jump_to_virtual_function_table type structure. What Andres says translates to: Sure, in that case. But it's an optimization.
I see that you get the best of both worlds in that situation, but Andres is right in his unequivical "You cannot inline a virtual function." Because you cannot. You can inline exactly one version of a virtual function with an if at the top, or more if you use a bunch of ifs/a switch. But the latter removes the benefits of inlining. So, a clever compiler can have a sometimes inlined response.
And the begining of your critique is just as poor. He said that it was impossible to inline a virtual function. Stating that most functions are not virtual attacks the fact, not the logic. He said "this [disproved emperical condition] results in poor performance because of [insert logical rule] makes it impossible." Disproving the emperical condition does not disprove the logical rule.
Re: (Score:3, Insightful)
I see that you get the best of both worlds in that situation, but Andres is right in his unequivical "You cannot inline a virtual function." Because you cannot. You can inline exactly one version of a virtual function with an if at the top, or more if you use a bunch of ifs/a switch. But the latter removes the benefits of inlining
Wrong on so many counts. If there is a virtual method and only one implementation, it c
Re: (Score:2)
Yep, that's what inlining is about, you compile a specialised version of a function as a part of its caller so that the optimising logic can see it as a single context and make speed gains across what formerly would be the boundaries between the functions. It generally wastes a little bit of memory but often gains some valuable efficiency in respect to execution time.
Re: (Score:2)
Right. That means you cannot compile versions of the the program with virtual inline functions unless every permutation is included. Depend
Re: (Score:2)
And we all know that cell processors are widely used as a platform for CLR implementations... Oh wait, it's not. Let's stick to x86 since that's what's relevant here...
Re: (Score:2)
What you are trying to say is that the compiler will automatically treat non-overwritten 'virtual' functions as non-virtual. I agree. This has to do with how the compiler works, not whether you can make virtual functions inline.
This involves more than just the compiler, since new classes may be loaded at any time. The JIT compiler might speculatively inline a method call only to have that method overridden by a newly loaded class. It requires runtime support to detect and correct this.
Hence, if it is virtual, you need either a) a giant block of code with switches or b) an if that jumps to a non-inlined version of the function.
Optimizing the most common case can be a big win, so option b) is not to be sniffed at. Odds are one implementation will get called most of the time. If you guess wrong, you can detect the mistake and recompile. You don't have to generate code
Re: (Score:2)
Wow, really? I actually still primarily use C/C++, so I'm used to explictly scoping objects, meaning that they are all declared on the stack if they are pass
Re: (Score:2)
Have you heard Stereopathetic Soulmanure?
/Mike
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
In those cases where proprietary technology presents a clear technical superiority to its FOSS counterpart, even despite what benefit its license might convey, I will use the proprietary technology. In my first po
One word: (Score:2)
And yes, they exist on elements of the ECMA-334 and ECMA-335 specifications.
Re: (Score:2)
Re: (Score:2)
Re: (Score:1, Informative)
Mono != .NET (Score:2)
Mono has little to do with a "Windows infrastructure". Standard Mono installs on Linux contain the ECMA C# runtime and libraries, plus Gtk# and a lot of other FOSS libraries.
If you want to run
Re: (Score:3, Interesting)
And I'd bet money that I'm far from alone in thinking this.
Re: (Score:2)
Re: (Score:2)
For nice-looking cross-platform apps based on native GUI elements, use the Eclipse RCP (Rich Client Platform) and get a ton of other functionality for free.
Java is a bit inferior to C#, but Java and C# are just the least-common-denominator systems programming languages on their platforms. There are better languages you can use -- popular alternativ
Re: (Score:2)
Bull. I, for one, care. I like .net development a great deal, and watch the mono project with a great bit of interest, because if it succeeds it'll mean that I can, if necessary, develop what I believe to be cross-platform apps with my preferred toolbox. Or hell, even just develop apps for my own use, with the satisfaction of believing that any interested Linux users will also be able to enjoy the fruits of my labor.
And I'd bet money that I'm far from alone in believing this.
There. Fixed that for you.
Re: (Score:2)
That will never happen.
I'm inclined to agree, but that wasn't what you said. You said no one outside of Novell/Microsoft cares, and I was addressing that ludicrous claim.
Not that lack of applications made by .net-only programmers would be a great loss on any platform.
Nice... not only are you implying my programming skills suck (for no reason), but working under some false assumption that choice of language is in any way related to how much of a bad programmer you are! What a gem.
Re: (Score:2)
That would like saying that I care about Britney Spears because it would be nice if she was a talented, well-adjusted person with great taste.
If I had an interest in her becoming such a person, and if she were at least making strides toward becoming such a person, you really think it would be unreasonable for me to care about her efforts to reach that goal? Wow. I guess you only believe in paying any attention to goals which are a sure thing, no matter how greatly they may be of interest to you. Efficient, I suppose, but not very rewarding in my opinion.
If you are so tied to a particular language/infrastructure that you can't use anything else even if your goal requires it, you can't possibly be a good programmer
Did I say that? No, I did not. I said I like .net, and consequently, I have great interest i