Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

A Bare-Bones Linux+Mono+GUI Distro?

Posted by timothy on Tue May 27, 2008 10:10 AM
from the essentials-only dept.
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?"
+ -
story

Related Stories

[+] Technology: Miguel De Icaza On Mono, Moonlight, and Gnome 328 comments
Knuckles writes "Austrian newspaper Der Standard continues its recent series of in-depth interviews with free software developers. This time they sat down with Novell's Vice President of Developer Platform, Miguel de Icaza of Gnome and Mono fame. The interview was conducted at GUADEC (GNOME Users' And Developers' European Conference). Miguel talks mainly about Mono 2.0 and .Net 3.5 compatibility, enhancing the collaboration with Microsoft over Silverlight ('Moonlight' in Mono), and the larger political situation of Mono and Moonlight. When the interviewer asks whether Moonlight is only validating Silverlight on the web, Miguel gives a quite detailed answer that includes a possibly well-deserved swipe at Mozilla ..."
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Gentoo (Score:4, Informative)

    by armanox (826486) <asherewindknight@yahoo.com> on Tuesday May 27 2008, @10:16AM (#23556607) Homepage Journal
    You could build a Gentoo install to satisfy this. With Gentoo you build the system to fit what you want out of it.
  • Monoppix? (Score:5, Informative)

    by dreemernj (859414) on Tuesday May 27 2008, @10:19AM (#23556637) Homepage Journal
    Monoppix perhaps? [monoppix.com]

    I haven't tried it yet but the description sounds about right.
    • Re: (Score:3, 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.

      • given that he's new to linux, he may consider that a year down the line but for now monoppix is his best bet
        • I understood his question differently than most of you did: I thought he was asking about a platform for the device he plans to build, not just a personal development platform.

          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.

          • Well, I think you make a really good point.

            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
  • by Ngarrang (1023425) on Tuesday May 27 2008, @10:24AM (#23556681) Journal
    Ubuntu Server edition installs as just a command line without all the fluff. From there you could add Mono and any GUI of your choice.
    • Re: (Score:3, Informative)

      Without all the fluff, how is it not just Debian?
      • It has all of Ubuntu updatedness in the kernal that might not be present in the general Debian release? I have no freakin' idea, actually. The majority of my linux experience is Ubuntu. I have a learner box that is just running Server edition on which I have installed and uninstalled different GUI's and been learning the command line.

        I do know the server edition is tuned to give background tasks more priority.
      • Re: (Score:3, Informative)

        ubuntu's APT repositories are separate from debian's, and many packages are at different versions due to the way in which ubuntu is periodically synchronized with sid and then bugfixed by ubuntu people. ubuntu's metapackages also differ from those found in debian.
      • This one has screaming Linux fangirls and fanboys throwing their panties and bras on stage at your feet. And something about going to 11. Petrified.
      • Ubuntu iterates through stable versions much faster than Debian -- even the "long term support" versions come out faster than Debian Stable.

        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 (Score:5, Informative)

    by Hatta (162192) on Tuesday May 27 2008, @10:25AM (#23556689) Journal
    Just install a basic net installation of Debian. You'll get nothing but a console. Apt-get the GUI of your choice. Apt-get Mono. You're done.
    • DSL is also a good choice for a set-top box - only 50MB of disk space required, and it is based on Debian so pretty much any application you want/need is already packaged and available in the repository.

      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
  • by megalex (761610) on Tuesday May 27 2008, @10:28AM (#23556737)
    If you are on windows and have decent ram you can try the mono vmware image. It boots opensuse desktop and has mono and monodevelop ready to go. go here: http://www.go-mono.com/mono-downloads/download.html [go-mono.com] Click on the vmware image.
    • Anyone care to explain why this is '+2 funny'? It seems a pretty useful idea for the initial development stages at least.
  • Try SuSE (Score:5, Insightful)

    by Ed Avis (5917) <ed@membled.com> on Tuesday May 27 2008, @10:29AM (#23556753) Homepage
    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.
  • No you probably don't.
    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)

    by ninevoltz (910404) on Tuesday May 27 2008, @10:31AM (#23556801)
    Use Qt4 and forget about MONO and .NET. You won't regret it.
  • Look at Debian Live (Score:5, Interesting)

    by SeanTobin (138474) <byrdhuntr@@@hotmail...com> on Tuesday May 27 2008, @10:35AM (#23556861)
    I've been playing around with Debian Live [debian.org] recently and the level of control you have over package selection and customization is impressive. It takes a little work to get used to the build system and how to customize your final image, but after you get through it once it is very simple.

    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.
  • OK, I'll bite... (Score:3, Interesting)

    by Noryungi (70322) on Tuesday May 27 2008, @10:56AM (#23557199) Homepage Journal
    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.

    Anyway, here is my suggestion, but, as another poster has already pointed out, any Linux/GUI permutation would probably work just as well:

    1. Slackware [slackware.com] for trhe Linux distribution.
    2. Fluxbox [sourceforge.net] for the GUI.
    3. Then, you can use either the Gnome Slackbuild [gnomeslackbuild.org] or the Slackbuilds [slackbuilds.org] files to compile Mono on your Slackware machine.


    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: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.

      Like a lot of Slashdotters, I get paid for coding, and so I use C# and .NET at work, but I love my Ubuntu setup at home. Mono lets me use a language I am comfortable in for pet projects.

      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)

    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.

  • by nguy (1207026) on Tuesday May 27 2008, @11:16AM (#23557517)
    "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.
      • Re: (Score:3, Informative)

        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.

        Not really. It's really not that hard to understand:
        • The Mono project as a whole produces a large superset of the Microsoft .NET platform. So, the en
  • Look at LFS (Score:3, Informative)

    by ComputerSlicer23 (516509) on Tuesday May 27 2008, @01:18PM (#23559549)

    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

  • OpenSuSE (Score:3, Informative)

    by oliderid (710055) on Wednesday May 28 2008, @09:47AM (#23570625)

    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)

      Did he ask you your opinion on the .net Framework/Stack? I am pretty much against Microsoft as much as anyone, but given the fact that their .net is pretty-much-fkinly-successful, maybe Mono can get some .net programmers to cross the bridge.

      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 .net. Therefore, it is NOT a microsoft product. It's more akin to Wine than Windo
      • I think GP's comment is quite valid. His comment was on the popularity of the framework on the Linux side of the fence, which is pretty much true. Outside of Suse, I'm not sure there's a lot of traction for Mono.
      • Actually it goes further then this:

        Mono's .NET API implementations (WinForms etc) are to .NET what WINE is to Windows. (I.e. great for easy porting, but destined never to be perfect). Though WinForms is a much simpler and better documented API then the Win32 beast.

        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
        • Myth is a bit of a nightmare though, and personally I don't think the media player side of it is that great.

          If you don't need PVR then I can heartily recommend XBMC, it's awesome.

          http://xbmc.org/ [xbmc.org]
    • by RingDev (879105) on Tuesday May 27 2008, @10:23AM (#23556671) Homepage Journal
      Thank you for answering the question. A truly informative, well thought out, and highly insightful post. I'm sure with your great advice the asker will make great strides in his project. And following along your high standards more technical solutions and products will be introduced to the market.

      Thank you,

      -Rick

    • Re:Don't. (Score:5, Interesting)

      I'm a Windows developer who uses Linux at home.

      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 .NET model and the C# language (Anders Hejlsberg has been my hero ever since he developed Delphi during his Borland years) that I cannot help but prefer its usage, even in a Linux environment.

      I'm thinking about developing a split personality to deal with this paradox.
      • Re:Don't. (Score:5, Interesting)

        by Ed Avis (5917) <ed@membled.com> on Tuesday May 27 2008, @10:32AM (#23556817) Homepage
        Bah. The yardstick is not 'has nothing to do with Microsoft Windows' but rather 'gives you and others freedom to use, share and change the software'. If you just wanted to eliminate Microsoft you could buy a Mac and not buy Office for it. Mono is completely free and open source software. Yes, it is a clone of a proprietary system, just as GNU started out as a clone of proprietary Unix.
      • I'm thinking about developing a split personality to deal with this paradox.

        Both of you let us know how that's working for you!

      • I didn't realise that the guy who did Delphi had anything to do with C#. I quite like Delphi and use it for any Windows GUIs I make. I still don't really want to start using MS' proprietary anything, even if it was designed by a genius, but thanks for the info.. if MS can clean up their act with Windows 7 then I may be able to put up with them for another while, and may even look into .NET (if Delphi doesn't already use it by default).
      • >I am so completely convinced of the superiority of the .NET model and the C# language

        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:3, 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.
      • Re: (Score:3, Interesting)

        Check out Vala [gnome.org]: C# like syntax, no runtime, FOSS.
      • Re:Don't. (Score:5, Informative)

        by 0xABADC0DA (867955) on Tuesday May 27 2008, @12:20PM (#23558515)

        As a developer, I am so completely convinced of the superiority of the .NET model and the C# language (Anders Hejlsberg has been my hero ever since he developed Delphi during his Borland years) that I cannot help but prefer its usage, even in a Linux environment.
        If .net took away your free will it doesn't sound like you had much of it to begin with.

        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: ... you said: "We can observe that as people write code in Java, they forget to mark their methods final. Therefore, those methods are virtual. Because they're virtual, they don't perform as well." ... Another thing that happens in the adaptive optimizing JVMs is they'll inline virtual method invocations, because a lot of times only one or two implementations are actually being used.

        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, .NET could not even inline more than one method deep, or methods with over 32 bytecodes, or methods with any flow control whereas Java was inlining virtual methods as much as 5 calls deep.

        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 .NET is and how awesome the designers are -- it isn't, and they aren't.
        • Re: (Score:3, Informative)

          Wow, you took a miscommunication about a very complex technical feature and turned it into "getting his hat handed to him"?

          Furthermore, Anders is actually correcting the interviewer because the JVM isn't "inlining virtual method invocations", it's optimizing them.
        • Re:Don't. (Score:5, Informative)

          by Actually, I do RTFA (1058596) on Tuesday May 27 2008, @03:12PM (#23561373)

          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)

            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 c

    • I wonder how many people moderated your first post troll and flamebait as a proxy for moderating the original question as a troll. It's pretty hard to view it as anything else, when there is no real justification for actually wanting Linux given.
    • I don't see how this is a flamebait. He's absolutely right. I use Linux for Linux development, and Windows for Windows development. The only exception is when I'm scripting in Python or something, then I can just check os.name or the like.
    • If you want to use Linux, don't plan to develop for it in a Windows-bound way, and don't expect Linux developers to support Windows infrastructure on their system. Mono is Miguel's pet project, and no one outside Novell and Microsoft cares about it.

      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. .NET applications don't run on Mono out of the box.

      If you want to run .NET apps, you ne
    • Re: (Score:3, Interesting)

      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 cross-platform apps with my preferred toolbox. Or hell, even just develop apps for my own use, with the satisfaction of knowing 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 thinking this.