Slashdot Mirror


A Bare-Bones Linux+Mono+GUI Distro?

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?"

7 of 158 comments (clear)

  1. Re:Monoppix? by Otter · · Score: 2, Insightful
    That's an interesting link but it doesn't sound like the minimalist setup he wants.

    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.

  2. Try SuSE by Ed+Avis · · Score: 5, Insightful

    Mono is developed by Novell, so if that's your main app it would make sense to use their Linux distribution, SuSE. Either as OpenSuSE (or whatever the capitalization is these days; cf NeXTStep) or SLES. It is not minimal but it includes the latest Mono stuff and you can probably pay for support if you want. Since there is some overlap between Mono developers and GNOME developers and some GNOME applications like Banshee, F-Spot and Tomboy are written in C#, it probably makes sense to use GNOME as your desktop environment.

    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.

    --
    -- Ed Avis ed@membled.com
  3. Tell us more by Just+Some+Guy · · Score: 2, Insightful

    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?

    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.

    --
    Dewey, what part of this looks like authorities should be involved?
  4. yeah, it's called... by nguy · · Score: 4, Insightful

    "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?

    Mono is not .NET. Mono is C# with a large number of bindings to FOSS, including Gtk+ and Gnome. So, that means you need a fairly complete complement of all the C libraries. If you want .NET on Linux, you need all of that, plus the .NET compatibility libraries; those are not usually installed. In addition to that, Linux needs its package management, installation, upgrade, system maintenance, indexing, and other tools. Those mean that you have to have a POSIX environment and a reasonable complement of C and C++ libraries.

    So, basically, what you want is one of the basic Gnome or XFCE distributions, with the additional .NET compatibility packages installed. Ubuntu and Xubuntu are good choices.

    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 .NET on Linux; use Gtk# and C# bindings of the Linux native libraries instead. Monodevelop should make it pretty easy to get started, and Gtk# is a reasonable and easy-to-learn toolkit.

  5. Re:Don't. by pembo13 · · Score: 2, Insightful

    .NET is nice. But it doesn't seem such a massive improvement as some people make it seem. I use .NET a lot, and I have touched Java and I am familiar with C++. I don't see much that .NET exclusively offers. My favourite language is still Python however. And I may be letting my perception of Microsoft and the destruction of Delphi cloud my judgment. .NET is nice on Windows, definitely. But on Linux, there are so many more alternatives.

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  6. Mod parent down by Anonymous Coward · · Score: 1, Insightful
    MythTV? Yeah, that should be easy to set up.

    Unless you're recommending it as a packaged solution already installed on the box, I'd recommend you STOP pushing MythTV. It's bloody impossible for 99% of people to install and configure correctly.

    That and the fancy "M$" thing pretty much tell me you're just peddling it because of extremism - not functionality, convenience or reality.

    Wait until things actually work (and I mean end to end) before you go advocating their use. You'll be much more helpful to FOSS that way. Joe Public is not going to be happy when he tries your solution, and in the end he's just going to to a commercial product anyway. He doesn't care about freedom, Linux, apple pie or your hatred of "M$". He just wants to record TV shows.

  7. Re:Don't. by 0xABADC0DA · · Score: 2, Insightful
    It was Anders that specifically mentioned that methods that lack final "don't perform as well" when there is no difference to the JVM until a class is loaded that overrides the method. Methods that are final could be overridden just the same, except the VM prevents it because final is about security and correctness, not performance. So from the start Anders was either blowing smoke or actually did not understand this.

    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 can be inlined entirely with no 'if' in all of the same cases as if it were marked 'final'.

    But more to the point, inlining a function is more than just about changing a jump into a compare. It is also about the code matching up with the caller so that registers are not shuffled around and whatnot. It's about determining that the object allocated by the caller and then passed down three levels of function calls never has a reference taken so it can be allocated on the stack.

    If you think inlining means 'just avoiding a jump' then you couldn't be more wrong. But what Anders said does accurately describe CLR... it will never be able to inline effectively due to its type system ('real' generics) and bytecode (have to track types, no interpreting) and other defects conspiring to make deep inlining mostly impossible. CLR is always going to be slow at running 'safe' code because it was designed on false assumptions like 'no final == slow'.

    [anders:] 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 Which is not the same thing as inlining, it's memoizing. So not only was Anders wrong initially, wrong to say inlining 'can never' be done, but he did not understand what the JVM does even after the interviewer explained it to him. This is your design hero?