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

158 comments

  1. Don't. by Alex+Belits · · Score: 0, Troll

    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.

    --
    Contrary to the popular belief, there indeed is no God.
    1. Re:Don't. by jsrlepage · · 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 Windows.

      --
      This is my opinion. Everyone has a right to my opinion.
    2. Re:Don't. by halivar · · Score: 4, 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.

    3. Re:Don't. by Ed+Avis · · Score: 5, Interesting

      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.

      --
      -- Ed Avis ed@membled.com
    4. Re:Don't. by frank_adrian314159 · · Score: 1
      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!

      --
      That is all.
    5. Re:Don't. by TheRaven64 · · Score: 1

      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 am TheRaven on Soylent News
    6. Re:Don't. by somersault · · Score: 1

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

      --
      which is totally what she said
    7. Re:Don't. by Malevolyn · · Score: 1

      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.

      --
      Your ad here.
    8. Re:Don't. by Anonymous Coward · · Score: 0

      I'm guessing no-one, because the GP is, in fact, a troll.

    9. Re:Don't. by popeyethesailor · · Score: 1, Flamebait

      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.

    10. Re:Don't. by renoX · · Score: 1

      >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

    11. Re:Don't. by Anonymous Coward · · Score: 1, Informative

      I don't see how this is a flamebait. Astroturfing is real.
    12. Re:Don't. by Anonymous Coward · · Score: 0

      Outside of Suse, I'm not sure there's a lot of traction for Mono.

      The SanDisk Sansa Connect players run Mono on Linux.

    13. Re:Don't. by Anonymous Coward · · Score: 0

      Wow. One product. Whoo!

    14. 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
    15. Re:Don't. by Anonymous Coward · · Score: 0, Flamebait

      You ideologically blinkered zealots still hold yourselves superior to every other life form on the planet even though this is the best sort of argument you can muster up. If this is what it means to be a geek, I'm burning my card now.

    16. Re:Don't. by mounthood · · Score: 3, Interesting

      Check out Vala: C# like syntax, no runtime, FOSS.

      --
      tomorrow who's gonna fuss
    17. Re:Don't. by bWareiWare.co.uk · · Score: 1

      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 advantage).

      Mono's compilers can also be directly compared to GCC v Intel's compiler. No one would write off either, just because Intel also designed the architecture.

      Then you come to Mono's own libraries GTK#, Tao, Gecko#.

      See http://blog.secondlife.com/2005/08/01/second-life-in-mono/ for a clear example of Mono as the best tool for the job.

    18. Re:Don't. by 0xABADC0DA · · Score: 4, Informative

      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 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.
    19. Re:Don't. by Alex+Belits · · Score: 0, Offtopic

      Actually I am an embedded Linux software developer.

      --
      Contrary to the popular belief, there indeed is no God.
    20. Re:Don't. by AppleOSuX · · 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.

    21. Re:Don't. by Anonymous Coward · · Score: 0

      Yeah, but that's UNIX. UNIX is cool. Microsoft is uncool. Microsoft has never had anything to do with UNI--wait, they *what*? Crap.

    22. Re:Don't. by bigstrat2003 · · Score: 1

      As yet another irrational FOSS zealot, 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). Fixed that for you. It's your machine, so obviously it's your right to run it how you want, but it also sort of marks you as a zealot who shouldn't be counted on for rational discussion of these matters.
      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    23. Re:Don't. by bigstrat2003 · · Score: 2, 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.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    24. Re:Don't. by Alex+Belits · · Score: 0, Troll

      That will never happen.

      Not that lack of applications made by .net-only programmers would be a great loss on any platform.

      --
      Contrary to the popular belief, there indeed is no God.
    25. Re:Don't. by Ed+Avis · · Score: 1

      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.
      Could you give some examples?
      --
      -- Ed Avis ed@membled.com
    26. Re:Don't. by stratjakt · · Score: 1

      There is no "windows fingerprint". .Net is free to implement, the fact that microsoft originally wrote the spec should mean fucking nothing.

      Linux dorks run Samba, don't they? They have no problem with a FOSS rdp client. They have no problem with FAT filesystems on their thumb drives, or burning CD's with Joliet extensions. And hey, what would a linux desktop be without Microsofts font pack for the web?

      So why the fuck would they get their philosophical panties in a bunch over mono?

      Oh yeah, I forgot. It's because they aren't real geeks, let alone coders, and they don't know what the .Net framework even is. If they weren't so deeply involved in the FOSS vs MSFT movement, they'd be on gamefaqs posting about how superior the PS3 port of GTA4 is to the EVIL COPRORATE XBLOCKS 3-SHITTXTY OMG LOL THE CONTROLLAR IS BIG! If only they could open two browser windows on their fancy new OLPC.

      --
      I don't need no instructions to know how to rock!!!!
    27. Re:Don't. by bigstrat2003 · · Score: 1

      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.
      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    28. Re:Don't. by halivar · · Score: 1

      Except for the part where I said a Microsoft language was the most superior available? That's too zealously anti-Microsoft for you to include me in a "rational discussion of these matters?" Holy crap, the fanboys have gone off the deep end.

    29. Re:Don't. by aldousd666 · · Score: 1

      I'm in the same boat with you. I'm a .Net dude for windows, but it's a huge gear shift to go to C++ or C again when I jump back to linux, so I'd like to have the 'same platform' (even if that requires quotation marks) on both OS's if I could as well.

      --
      Speak for yourself.
    30. Re:Don't. by bigstrat2003 · · Score: 1

      I didn't say your zealotry was anti-Microsoft. You are striving to have only FOSS software on your system, and implied that you refuse to use closed software even if it's useful to you (unless no other option is available). That's the zealotry to which I refer, and it is quite irrational (picking software on any basis more than whether it meets your needs is nothing short of idiotic, in my opinion). Thus, it calls into question your ability to discuss other things rationally, because people aren't usually irrational on just one issue.

      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    31. Re:Don't. by Actually,+I+do+RTFA · · Score: 4, 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.

      --
      Your ad here. Ask me how!
    32. Re:Don't. by tsalaroth · · Score: 1

      My favourite language is still Python however. Python + DLR = scary.
    33. Re:Don't. by halivar · · Score: 1

      You are striving to have only FOSS software on your system
      Yep.

      and implied that you refuse to use closed software even if it's useful to you (unless no other option is available)
      Except I explicitly stated otherwise.
    34. Re:Don't. by bigstrat2003 · · Score: 1

      ...an unwanted Windows fingerprint on my completely FOSS system... To me, that says zealotry, but I guess I'm quibbling. If you do not, in fact, value software license above software functionality, then I apologize. It's just an attitude that's entirely too common amongst open-source advocates here, and has really got under my skin over time.
      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    35. Re:Don't. by halivar · · Score: 1

      License, for me, is part and parcel with functionality. It's not the only part, however (though it is large; when I say I have philosophical bias, that bias is based on what I believe are tangible capitalistic advantages of such licenses, not the crypto-anarchism often ascribed to FOSS proponents).

      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 post, I gave two examples: C# and nVidia drivers. They are certainly not the only ones on my system.

    36. 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?
    37. Re:Don't. by Anonymous Coward · · Score: 0

      Linux dorks run Samba, don't they? They have no problem with a FOSS rdp client. They have no problem with FAT filesystems on their thumb drives, or burning CD's with Joliet extensions. And hey, what would a linux desktop be without Microsofts font pack for the web?

      Samba = IBM/3Com.
      RDP = AT&T.
      FAT = Apple (DOS 3.3. / ProDOS), IBM, CPM.
      Font Pack (Apple on the Apple ][).
      CD Multimedia Extensions = Apple (Apple IIGS).

      Your blind rage for everything Linux shows your deep emotional attachment to the idea the Microsoft actually innovated anything.

    38. Re:Don't. by Anonymous Coward · · Score: 0

      This is your design hero? No. You're just in a position where you are wronger than he is. My design hero is a specific programmer I know who is brilliant. I doubt you know him, so a name would be useless. The word is "rhetorical". Look it up.

      What you are trying to say is that the compiler will automatically treat non-overwritten 'virtual' functions as non-virtual. I agree. Which is what Anders said would NOT happen. So... your point?

      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. And lastly, variables passed to functions are always declared on the stack. Christ.

            HeapObject heapObject = new HeapObject();
            this.passSeveralCallsDown(heapObject);

      In Java this object may be allocated on the stack even though ostensibly it is created on the heap with new. In C#, CLR allocates this on the heap since the optimizations it can do are severely limited by design flaws.

      The rest of your dithering I ignore. It's noise.
    39. Re:Don't. by donscarletti · · Score: 1

      However, that involves changing the code of a function (inlining it), and creating a new version for that call
      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.

      Avoiding a jump is something many people try to do. It helps keep the code you will be using in the cache.
      CPUs these days tend to dump whole pages of memory into cache at a time since memory transfer much faster than lookup, if these multiple inlined functions were adjacently placed into the bytecode (as a switch for example), they would have to be extremely big to neutralise the caching gains.

      And lastly, variables passed to functions are always declared on the stack.
      The whole idea of inlining is so you can run the callee and the caller together through the compiler in a single pass, it won't have to push the arguments because it will know there and then exactly how they are coming out. If you have a fallback function that bounces off the vtable, you push the arguments on the stack then.
      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    40. Re:Don't. by wrfelts · · Score: 1

      .NET is nice on Windows, definitely. But on Linux, there are so many more alternatives. It's really that .Net is nice ...and it can run (as Mono) on Linux. If you are very familiar with a language such as C#, it's oh so much easier to not switch languages when switching OSs. Mono allows this to an extent. Unfortunately, the .Net 2.0 spec is only just reaching maturity in Mono (WinForms and such...) so most distros don't support a full 2.0 implementation. The easiest thing for this user to do would be to just install the latest openSuse (a distro that I don't like) and install Mono from their Yast package system. They will keep it the most up to date. If you ARE familiar enough with linux, get the latest package that goes with your distro straight from the Mono project. ...or.... for the adventurous, build it from source. Have fun!
    41. Re:Don't. by Actually,+I+do+RTFA · · Score: 1

      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.

      Right. That means you cannot compile versions of the the program with virtual inline functions unless every permutation is included. Depending on the complexity of the program, the scale tips at some number of versions of the program.

      CPUs these days tend to dump whole pages of memory into cache at a time since memory transfer much faster than lookup, if these multiple inlined functions were adjacently placed into the bytecode (as a switch for example), they would have to be extremely big to neutralise the caching gains.

      Depends. Cell processors have smaller caches for each core, and the bottleneck is that all the cores share one(or is it two?) pipes to RAM. Console programming tends to involve recomputation rather than fetching the previous results for suprisingly costly operations. And both of those assume you are running on a fairly modern box, as opposed to built into a handheld unit, or a MP3 player or somesuch.

      The whole idea of inlining is so you can run the callee and the caller together through the compiler in a single pass, it won't have to push the arguments because it will know there and then exactly how they are coming out. If you have a fallback function that bounces off the vtable, you push the arguments on the stack then.

      Yes. The great-grandparent was claiming that somehow function calls would create variables on the heap if not inlined. I was trying to correct that.

      --
      Your ad here. Ask me how!
    42. Re:Don't. by mike_sucks · · Score: 1
      ZOMG! I can't believe you think Beck has no substance. Sure, Midnight Vultures and Guero were "like, totally dreamy" and I haven't heard the new album(s?), but everything else had more substance than a brick through a window.

      Have you heard Stereopathetic Soulmanure?

      /Mike

      --
      -- "So, what's the deal with Auntie Gerschwitz et all?"
    43. Re:Don't. by Anonymous Coward · · Score: 0

      I hope you get cancer.

    44. Re:Don't. by try_anything · · Score: 1

      The method containing the call is speculatively compiled with the callee inlined, just like an inline method in C++, except that the inlined code is preceded by a check that the inlining is valid. If the inlining is not valid, I'm not sure exactly what happens, but the end result is that the calling method is recompiled on the fly with the callee no longer inlined.

      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 JVM beats a statically compiled language with no runtime optimizations) because C++ cannot recompile at runtime and therefore must restrict itself to whatever optimizations can be validated at compile time.

      (Of course, C++ code has other advantages, and C++ code running on a dynamically recompiling platform such as LLVM or .NET might benefit from this kind of optimization -- though it's news to me if any platform can speculatively inline virtual C++ method calls.)

      A nice side effect is that developers are encouraged to write simple, clear code, and the JVM takes responsibility for providing the performance.

    45. Re:Don't. by try_anything · · Score: 1

      So don't go back to C++. If you aren't writing little programs that need to start up and shut down quickly, use one of the many languages available for the JVM.

      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 alternatives for the JVM are Scala, JRuby, and Jython. Scala has had in the past, and may have in the future, a CLR implementation, though at the moment it is JVM-only.

    46. Re:Don't. by try_anything · · Score: 1

      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 that efficiently handles all possibilities unless it turns out that all possibilities happen often enough to matter. This is a big difference between dynamically compiled (and recompiled) code and statically compiled code. With statically compiled code, you have to make your best guess at compile time and then stick with it forever.

      And lastly, variables passed to functions are always declared on the stack. I know what you're getting at here -- Java variables are all references and method parameters are all reference values allocated on the stack. However, the parent said objects, not variables, and he is correct that stack allocation is a nice optimization that cannot be done if you pass a reference to the object to a method that you know nothing about.
    47. Re:Don't. by Daengbo · · Score: 2, Informative

      Banshee, one of the really popular audio players, is based on Mono. When Banshee-1 comes out, a lot of people will be using it. Trust me.

      F-Spot, the default photo app for ... ahem ... Ubuntu 8.04 is a Mono app.

      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

    48. Re:Don't. by Anonymous Coward · · Score: 0

      Yes. The great-grandparent was claiming that somehow function calls would create variables on the heap if not inlined. I was trying to correct that. You might try re-reading that post with the help of a native speaker of English. The "it's more than X. it's Y. it's Z. it's ..." is an idiom where Y and Z are non-exclusive examples of how 'it' is more than X.
    49. Re:Don't. by cyborch · · Score: 1

      Depends. Cell processors [...]

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

    50. Re:Don't. by Actually,+I+do+RTFA · · Score: 1

      I know what you're getting at here -- Java variables are all references and method parameters are all reference values allocated on the stack. However, the parent said objects, not variables, and he is correct that stack allocation is a nice optimization that cannot be done if you pass a reference to the object to a method that you know nothing about.

      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 passed to a function. I suppose if you have a language where scoping of objects is done automatically, the compiler needs to be the one to optimize that, and therefore needs clues to how long an object will stay in scope. But I don't really think of that as an optimization of 'inlining' but rather the 'const CObject&' syntax.

      --
      Your ad here. Ask me how!
    51. Re:Don't. by DeVilla · · Score: 1

      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.
    52. Re:Don't. by bigstrat2003 · · Score: 1

      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 in being able to write cross-platform apps in .net. Nowhere in there did I say that if I needed a cross-platform app, I wouldn't choose another tool if .net was impossible. That's entirely fiction on your part. If you think that me wanting my tool of choice to be good at more jobs is a sign of being a bad programmer, you are an unreasonable man (or woman) indeed.
      --
      "16MB (fuck off, MiB fascists)" - The Mighty Buzzard
    53. Re:Don't. by Anonymous Coward · · Score: 0

      You are WAAAAAY over your head here...
      First of all as long as all "main stream" VM are running ByteCode and the CLR is a JIT compiler, to talk about performance, C# and Java in the same sentence is doomed to fail for the Java lovers...
      Second of all, to do type checking before calling an inline method at least for the scenario Bill gives in your quote would gain virtuall (funny;) NOTHING since most of the prefetch que optimalization on the CPU that you gain by inlining the methods would be eaten by the RTTI check...
      Third of all, being a Java lover (obviously) and dissing Anders Hejlsberg (and more importantly C# as a language) is just plain pathetic!
      Java has a LOT of advantages compared to C# (and also the CLR) but language design is NOT one of them...
      C# as a language runs in CIRCLES around Java

    54. Re:Don't. by Anonymous Coward · · Score: 0

      LOLWUT!? u C++ ppl are funny lulz!

    55. Re:Don't. by Etrigoth · · Score: 1

      I normally don't like to post like this but I feel moved have to respond here; people who dismiss C# because of purported Speed/Memory issues have (imho) no idea of how to program in C# properly, or have been fed a crock by people who don't know how to program in C#.

      C# is like every other system out there, it has its own ways and means - it can be incredibly efficient and fast, if you use it correctly.

      In fairness, even with a poorly skilled coder, a C# program can perform much better then a C++ program written with a similar amount of ineptitude; because of the way that the GC compresses your heap, causing a good chance of L2/L1 cache adjacency.
      I'm trying to say that I believe it's harder to write bad C# then it is to write bad C++ etc, etc.

      But ok, if you want to dismiss C# just because of standard microsoft vitriol, please - be my guest :)
      But please don't dismiss it because you think it's slow - that's unfair and in the whole, unfounded.

      --
      When we remember we are all mad, the mysteries disappear and life stands explained.
    56. Re:Don't. by renoX · · Score: 1

      >C# is like every other system out there, it has its own ways and means - it can be incredibly efficient and fast, if you use it correctly.

      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

      And as a language, I think that Scala is better designed, that's all.
      This doesn't mean that C# is bad, it's probably a good combination for Windows programming due to Microsoft's support, but that's a poor benchmark for 'superiority'!

    57. Re:Don't. by Whitemice · · Score: 1

      > "if it succeeds"

      It works, now, today. I develop .NET on LINUX. It has all the cool features including generics, LINQ, partial classes, extension methods, etc...

      Check the mono list, there have been several recent "success stories".

      --
      Using "Common Sense" is being either to arrogant or to ignorant to ask people who know more about something than you.
    58. Re:Don't. by mweather · · Score: 1

      GNU's Not Unix.

    59. Re:Don't. by Anonymous Coward · · Score: 1, Interesting

      Here's a better example, http://opensimulator.org/

      It's written in C#, and using third party physics libraries and translating LSL for scripting. (We also support other languages in the server as well.) We use Mono and it works just fine. In fact, because of the way .NET types work, all of our functionality is plugin-based. Physics engines are plugins. Script engines are plugins. Databases are plugins, even NHibernate is a database plugin. Every piece of functionality is a plugin, mostly.

      Once you get over the "microsoft is an epic patent troll" shit it's actually a very well designed system, WinForms not withstanding.

  2. Gentoo by armanox · · Score: 4, Informative

    You could build a Gentoo install to satisfy this. With Gentoo you build the system to fit what you want out of it.

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
    1. Re:Gentoo by pm_rat_poison · · Score: 1

      Another similar choice would be Linux from Scratch. Choose whichever one you like. They can be quite a hassle to set up, but the reward is that you have a completely customized system, with complete control on what's installed.

    2. Re:Gentoo by Anonymous Coward · · Score: 0

      You could also use Archlinux. It's the same as Gentoo in that you essentially build your OS from the ground, and install only what you need. The main difference with gentoo is it's packagemanager: whereas gentoo is source-based Arch primarily focuses on binary-packaging.

    3. Re:Gentoo by nurb432 · · Score: 1

      Or perhaps a minimal install of Freebsd + mono

      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?

      --
      ---- Booth was a patriot ----
  3. Hmm.,..why by El+Lobo · · Score: 0, Funny

    I mean, it's like if an icecream maker would like to make icecream on an refrigerator inside an oven. Hell, I am a Windows developer, so I develop on Windows. But, hey, whatever move your train....

    --
    It's time to realise that Abble's products are the biggest abomination these days. Just say NO to the dumb iAbble way!!
    1. Re:Hmm.,..why by Daengbo · · Score: 1

      Hell, I am a Windows developer, so I develop on Windows.

      And here I just thought you were Twitter.

  4. Monoppix? by dreemernj · · Score: 4, Informative

    Monoppix perhaps?

    I haven't tried it yet but the description sounds about right.

    --
    1 (short ton / firkin) = 89.1432354 slugs / keg
    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. Re:Monoppix? by RiotingPacifist · · Score: 1

      given that he's new to linux, he may consider that a year down the line but for now monoppix is his best bet

      --
      IranAir Flight 655 never forget!
    3. Re:Monoppix? by Otter · · Score: 1
      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.

    4. Re:Monoppix? by hey! · · Score: 1

      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 software products, in every case addressing a real need somebody had. With one exception, each of those products staggered into oblivion under the burden of support costs.

      Anyway, this guy's pet peeve are people who make more profit than he ever saw selling ring tones. Unfortunately, he hasn't learned his lesson: profit comes from low support costs. If your support costs are zero, then you've created the proverbial printing press for money.

      The way this applies is that you want a distro that has as close to nothing in it consistent with being able to run your application. You do not want your customers calling becuase an update to Ubuntu has broken their box.

      I'd probably roll my own distro. Certainly I'd be doing a custom kernel in any case, because every K of RAM or disk used to support something that isn't in my box comes out of my profit margins: bigger "disk", bigger memory, less room for growth. By the time you've stripped everything out you don't need, all the daemons, and utilities and drivers and whatnot, you're practically there anyway.

      I'd probaly start with uCLinux -- it works for Cisco, after all, and runs on some pretty low end (cheap) hardware. Don't know how this interacts with the need for Mono or what his app does, but it makes sense to start with something that's already pretty small. Otherwise, if I were planning on deploying on x86 hardware I'd roll my own using Linux from Scratch and simulating the hardware in vmware.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  5. The following contains sarcasm: by RingDev · · Score: 5, Funny

    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

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    1. Re:The following contains sarcasm: by octagonamassador · · Score: 1

      Another great alternative is to trade beads for small pox.

  6. Ubuntu Server Edition by Ngarrang · · Score: 4, Informative

    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.

    --
    Bearded Dragon
    1. Re:Ubuntu Server Edition by bsDaemon · · Score: 2, Informative

      Without all the fluff, how is it not just Debian?

    2. Re:Ubuntu Server Edition by Ngarrang · · Score: 1

      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.

      --
      Bearded Dragon
    3. Re:Ubuntu Server Edition by croddy · · Score: 2, 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.

    4. Re:Ubuntu Server Edition by Anonymous Coward · · Score: 0

      many packages are at different versions due to the way in which ubuntu is periodically synchronized with sid and then bugfixed by ubuntu people. Don't the ubuntu people feed fixes upstream? Why should the end result be different?
    5. Re:Ubuntu Server Edition by MasterOfMagic · · Score: 2, Funny

      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.

    6. Re:Ubuntu Server Edition by nuzak · · Score: 1

      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.

      --
      Done with slashdot, done with nerds, getting a life.
    7. Re:Ubuntu Server Edition by nhaines · · Score: 1

      Because Ubuntu releases an update every six months and Debian stable (this is a server we're talking about) releases an update every two years.

      Debian and Ubuntu maintain the same version of their packages as is released for each version, generally applying only bugfixes.

    8. Re:Ubuntu Server Edition by Anonymous Coward · · Score: 0

      Ubuntu's stable and Debian's stable are very different things. Running Ubuntu was less reliable than running Debian Testing for me. I'm not saying Ubuntu was particularly unstable, but I did have some hiccups. I switched to Debian Testing, and I have had no trouble since. That was back when Etch was Testing, since then I've kept Etch so now I technically run Debian Stable.

  7. Debian by Hatta · · Score: 4, Informative

    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.

    --
    Give me Classic Slashdot or give me death!
  8. OpenSuse Vmware Image. by megalex · · Score: 4, Funny

    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 Click on the vmware image.

    1. Re:OpenSuse Vmware Image. by somersault · · Score: 1

      Anyone care to explain why this is '+2 funny'? It seems a pretty useful idea for the initial development stages at least.

      --
      which is totally what she said
    2. Re:OpenSuse Vmware Image. by Alex+Belits · · Score: 1

      VMWare emulates a fixed (and $deity-awful) set of hardware, it's completely unusable for any development targeted at embedded platform.

      --
      Contrary to the popular belief, there indeed is no God.
    3. Re:OpenSuse Vmware Image. by Fungii · · Score: 1

      in an attempt at building a media-center type of device He's talking about an embedded system. Here's a diagram:

      windows -> linux -> windows

      Get it?
    4. Re:OpenSuse Vmware Image. by somersault · · Score: 1

      Ah. It still makes sense from a 'get-rid-of-the-licensing-cost' point of view, and as an initial testing environment without having to reboot or use separate hardware ..

      --
      which is totally what she said
  9. 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
  10. No you don't by LWATCDR · · Score: 1

    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.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  11. rpm -e mono... by Anonymous Coward · · Score: 0

    The first thing I do after Fedora install.

  12. Qt... by ninevoltz · · Score: 5, Informative

    Use Qt4 and forget about MONO and .NET. You won't regret it.

    --
    Death is life's great reward. R. Hoek
    1. Re:Qt... by nawcom · · Score: 1

      agreed.

    2. Re:Qt... by pembo13 · · Score: 2, Informative

      I like everything I've read about Qt4. But you can use Qt4 with .NET

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    3. Re:Qt... by losinggeneration · · Score: 2, Informative

      Or maybe they could check out Qyoto

    4. Re:Qt... by Alex+Belits · · Score: 2, Funny

      You can also bake cookies on a space station, however that would be neither an efficient way to bake cookies, nor a good use for a space station.

      --
      Contrary to the popular belief, there indeed is no God.
    5. Re:Qt... by vossman77 · · Score: 1

      That is the greatest quote I've heard in a while. I'm putting it up in the cubicle.

    6. Re:Qt... by cbrocious · · Score: 1

      Oh, so Qt4 allows for complex runtime code generation? It allows you to deploy a single binary on multiple platforms? You're not just comparing comparing two completely different things here, you're comparing two completely different classes of things.

      --
      Disconnect and self-destruct, one bullet at a time.
    7. Re:Qt... by qbast · · Score: 2, Informative

      Yeah, it allows to use single binary on multiple platforms as much as .NET: you just compile it for windows and run it with wine on non-Windows. I don't see much difference between win32 app running on 'alternative' win32 API implementation (wine) and .NET app running on 'alternative' .NET implementation (mono). Well, except for the fact that wine is more mature and more likely to work properly. Miguel may argue otherwise, but all we got from mono is another windows subset emulator doomed to always play catch up and never actually get close.

    8. Re:Qt... by mollymoo · · Score: 0

      I don't see much difference between win32 app running on 'alternative' win32 API implementation (wine) and .NET app running on 'alternative' .NET implementation (mono).

      Here's one enormous difference: Wine only works on x86, mono works on many architectures.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  13. OpenSuse Mono Live CD by megalex · · Score: 1

    You can also try the live CD for opensuse its available in the download section http://www.go-mono.com/mono-downloads/download.html

  14. Look at Debian Live by SeanTobin · · Score: 4, Interesting

    I've been playing around with Debian Live 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 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.

    --
    Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
  15. Warning: The following contains stupid questions. by mckinleyn · · Score: 1

    There are an infinite number of solutions to this problem. Everything from Gentoo to Knoppix to Puppy Linux (for the love of God, avoid the last).

    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?

    There are a dozen different distributions that would fulfill any of the possible permutations of the above requirements. Coupling that with giving you the smallest possible distro that's as full featured as you need, we could narrow it down to one (or two, or three, depending on the cooperation of the Linux geeks in question) solution(s).

  16. I'd say, hold the mono. by jfbilodeau · · Score: 0

    I know this does not answer you question per se, but I would recommend you take a look at solid alternatives to Mono for Linux.

    Hold the Mono, Please

    --
    Goodbye Slashdot. You've changed.
  17. DSL + modification by nicholasperez · · Score: 1

    I had this exact requirement for building my point of sale device. My solution was to go with something like Damn Small Linux and modifying it. Basically, I altered it to be apt enabled yet again instead of using their package management and then pointed it at the debian repos. One apt-get install later and I had everything I needed to host a .NET GUI application. You could probably get away with a minimal debian install as well, but DSL and its brethren generally have good package selection for smallness.

  18. Try windowmaker by poeidon1 · · Score: 1

    its the simplest and lightest windowmanager that I have seen. Ofcourse, tthere are probably other options. Generally, the packages are available for most distros but I would advise you to use gentoo since you can make it as lightweight as you want depending on your requirements, but gentoo requires you to know a thing or two already about linux.

    --
    They called me mad, and I called them mad, and damn them, they outvoted me. -Nathaniel Lee
  19. OK, I'll bite... by Noryungi · · Score: 2, 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.

    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 for trhe Linux distribution.
    2. Fluxbox for the GUI.
    3. Then, you can use either the Gnome Slackbuild or the Slackbuilds 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!
    --
    The right to offend is far more important than the right not to be offended. (Rowan Atkinson)
    1. Re:OK, I'll bite... by incripshin · · Score: 1

      I tend to agree. I started with Slackware, and it taught me most everything I know. Wait a minute ... don't use Slackware. (Just kidding on that last part.) If you were more experienced, I would recommend Gentoo to roll your own distro, since it's easy to just install only what you need. Besides, the install process was pretty fun. Too bad I never had to reinstall it in the last three years (I know, right?). I remember trying to install a links+ package in Ubuntu without an internet connection and it was trying to pull in X =very annoying. I also hate the way that Ubuntu doesn't include a compiler in the default install. I don't understand how a unix-like distribution could come without a compiler in the default install. My opinion is that Ubuntu (probably also Suse and Fedora) is not meant for developers like myself, or you (poster of article) for that matter.

    2. Re:OK, I'll bite... by capebretonsux · · Score: 1

      As much as I love Slack, and for as long as I've used it, I would never recommend it to anyone I know... just imagine the questions! My God, there wouldn't be enough hours in the day. That being said, I love Slack and likely won't be using anything else in the near future. Mind you, I've always wanted to know how everything works 'under the hood', and that's ultimately what keeps me using Slackware. I've best heard it described as being 'as user-friendly as a coiled rattlesnake.' It does nearly nothing for you, and you're expected to go it alone for the most part. Personally I love it, but for a first-time linux user? Clear your schedule.

      More on topic, why not a BSD box? FreeBSD is the only one I can recommend from personal usage, but I've read good reviews about PCBSD. Linux-wise, if you're a new user nowadays I'd wholeheartedly recommend Ubuntu. It didn't end up staying on any of my computers, but it was the most user-friendly linux distro I'd ever used.

    3. Re:OK, I'll bite... by akadruid · · Score: 2, 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 same thing means Mono might well be a problem for Microsoft. While developers like us might get paid for running XP + VS 2008, it does't take us much extra coding to deploy to Linux and Mono, and, unlike desktops, the kit that does the databases, web services and ASP.NET hosting doesn't have bundled Windows licenses. In fact, Windows server is a 450 quid option on a 500 quid server. That kind of margin pays for quite a few hours testing.
      --
      "Those who cast the votes decide nothing; those who count the votes decide everything." (attrib. Joseph Stalin)
    4. Re:OK, I'll bite... by tokul · · Score: 1

      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.
      It won't be lean and mean after you install mono with slackbuild. Box that is supposed to be basic + mono + gui will also have lots of C development tools.
  20. 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?
  21. Why not just... by Anonymous Coward · · Score: 0

    echo "All your base are now belong to Microsoft; sucker!" > /etc/issue
    Same effect, none of the risk.
  22. Many Choices by manboy9 · · Score: 1

    AFAIK, there is no such thing as a Linux-based "Mono OS". You'll probably need to modify an existing distro. Since you claim not to be a Linux expert, Ubuntu might be a good choice, but it's a bit of a heavyweight. You'd need to spend a lot of time disabling features to trim it down, which requires quite a bit of Linux knowledge, so it doesn't really help you avoid learning Linux. Same applies to Fedora, SuSE, etc. If you intend to develop on a platform that closely resembles your target platform, keep in mind that these are arguably "nicer" distros for daily use than the ones I'm about to suggest. Something like Gentoo gives you a lot of customizability, and works on lots of hardware (possibly a plus if you plan to put your media center on exotic hardware). Easier to use, but still lightweight, is Arch Linux, which would be my personal preference for a project such as this. It's very lightweight, and relatively easy to use. You still need to be comfortable with command-line, config files, man pages etc., but it's better than Gentoo or LFS. The only isssue I can see is that it's 686-optimized, so it might not fit your hardware.

  23. DIY by hlt32 · · Score: 1

    #1 Download debian netinst or ubuntu server.

    #2 Install distro.

    #3 aptitude search mono

    #4 sudo aptitude install etc.

    #5 sudo aptitude install xorg fluxbox

    #6 ???

    #7 Profit.

    --
    à_à
    1. Re:DIY by mollymoo · · Score: 1

      I wouldn't go for a server distribution for a multimedia GUI project without checking that it doesn't have a kernel tuned for throughput rather than latency (eg. 100Hz ticks, no preemption). Just use any old desktop distribution and turn off what's not required. It's not like a couple of gigs of disk space matters much on a box that will be storing digital video.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  24. 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.

    1. Re:yeah, it's called... by Anonymous Coward · · Score: 0

      > the old stuff works well enough

      Every time you read about a buffer overflow attack, you're seeing proof that the old stuff does in fact not work well enough. I consider "can't get pwn3d through normal use of the app" to be functionality, and when an app fails to implement such a feature, it's quite broken.

      > C# may be gone in three years and you have to start from scratch.

      The CLR is here to stay. You can use your stuff written in C# from any of dozens of different languages from VB to PowerShell to Python.

    2. Re:yeah, it's called... by nguy · · Score: 1

      You know, I'm kind of sympathetic. I think C and C++ suck and I agree we need something to replace C and C++.

      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.

    3. Re:yeah, it's called... by Scaba · · Score: 1

      Mono is not .NET.

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

    4. Re:yeah, it's called... by nguy · · Score: 2, 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 entirety of Mono is not .NET.
      • Linux distributions (even SuSE last I looked) only install the ECMA libraries and the Linux libraries; .NET is a separate install. So, the usual Mono installation on Linux neither "is" .NET, nor does it even contain the .NET libraries.


      I think Novell and Miguel are hurting the Mono project by conflating Mono and .NET. But just because they are stupid doesn't mean people like you should be spreading FUD about Mono on Linux.
    5. Re:yeah, it's called... by HalAtWork · · Score: 1

      Can't you just use windows.forms with Mono?

    6. Re:yeah, it's called... by nguy · · Score: 1

      Can't you just use windows.forms with Mono?

      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 (and it even works on Windows).

  25. Mono != .NET by nguy · · Score: 1

    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 need to install the .NET libraries for Mono. I can't think of any Mono desktop app on Linux that actually uses those.

  26. Bare Linux by treak007 · · Score: 1

    If you are looking for a barebones distro, try gentoo (gentoo.org). For a barebones window manager, perhaps try something like fluxbox or blackbox. Pretty much, gentoo will give you a base system and it will be up to you to set everything up.

    --
    Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
  27. Mono = .NET by Anonymous Coward · · Score: 0

    Mono != .NET "The Mono Project is an open development initiative sponsored by Novell to develop an open source, UNIX version of the Microsoft .NET development platform."
    Doesn't matter how you spin this. Mono is .NET! Gotta love that Microsoft stuff in your GNU/Linux...
  28. Damn Small Linux by pavon · · Score: 2, Informative

    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 need a window manager - you can run X11 applications without a WM, and if all you are doing is running a single fullscreen app that is often preferable. I used to do that when running quake on memory starved systems. Do a search for the xinitrc file to learn how to set that up.

  29. Re:foss schmoss, mono sux by Anonymous Coward · · Score: 0

    Preach it, brother! I don't know how long it took me to figure out how to import (you have to *select* the thing that's *already* selected in the menu!), and then... there's no fucking UNDO button! Whoever is behind F-Spot should take up gardening instead.

  30. Re:Just use MythTV. by tolan-b · · Score: 1

    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/

  31. I think... by TaleSpinner · · Score: 1

    > I'm thinking about developing a split personality to deal with this paradox.

    I think both of you already have. =)

  32. Re:Just use MythTV. by willyhill · · Score: 1
    The answer is you can't

    Why?

    the purpose is better filled with MythTV

    I would agree if it wasn't for the fact that you yourself have said in the past it's a nightmare to get running correctly.

    Vista's DRM makes media a headache

    Agenda much?

    no way M$ will share enough information

    Ah, the "M$ will kill Mono" meme. I'm not sure what good it would do if I even try to address that. People who are smarter than me have tried and gotten nothing but ridicule and abuse from people like you.

    --
    The twitter monologues. Click on my homepage and be amazed.
  33. Ubuntu / Debian ? by Anonymous Coward · · Score: 0

    You can build your dreambox this way with a Debian based system:
    - install the "barebone" distribution => "server" or "cli"
    - apt-get the most high-level stuff you need => all the dependencies will be installed

    for example, just:
    sudo aptitude install monodevelop

    next you can fetch a pretty window manger / desktop environnement

  34. How to advocate free software by Anonymous Coward · · Score: 0
    twitter, please read this carefully. Following this advice will make Slashdot a better place for everyone, including yourself.

    • As a representative of the Linux community, participate in mailing list and newsgroup discussions in a professional manner. Refrain from name-calling and use of vulgar language. Consider yourself a member of a virtual corporation with Mr. Torvalds as your Chief Executive Officer. Your words will either enhance or degrade the image the reader has of the Linux community.
    • Avoid hyperbole and unsubstantiated claims at all costs. It's unprofessional and will result in unproductive discussions.
    • A thoughtful, well-reasoned response to a posting will not only provide insight for your readers, but will also increase their respect for your knowledge and abilities.
    • Always remember that if you insult or are disrespectful to someone, their negative experience may be shared with many others. If you do offend someone, please try to make amends.
    • Focus on what Linux has to offer. There is no need to bash the competition. Linux is a good, solid product that stands on its own.
    • Respect the use of other operating systems. While Linux is a wonderful platform, it does not meet everyone's needs.
    • Refer to another product by its proper name. There's nothing to be gained by attempting to ridicule a company or its products by using "creative spelling". If we expect respect for Linux, we must respect other products.
    • Give credit where credit is due. Linux is just the kernel. Without the efforts of people involved with the GNU project , MIT, Berkeley and others too numerous to mention, the Linux kernel would not be very useful to most people.
    • Don't insist that Linux is the only answer for a particular application. Just as the Linux community cherishes the freedom that Linux provides them, Linux only solutions would deprive others of their freedom.
    • There will be cases where Linux is not the answer. Be the first to recognize this and offer another solution.

    From http://www.ibiblio.org/pub/linux/docs/HOWTO/Advocacy

    1. Re:How to advocate free software by pAnkRat · · Score: 1

      yeah,

      but it would also make /. a prety boring place, wouldn't it?

      Wasn't there a thread a few weeks ago about no single /. thread being complete without a Microsoft bashing?

      --
      we need an "-1 Plain wrong" moderation option!
  35. 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.

  36. Look at LFS by ComputerSlicer23 · · Score: 2, 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/

    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

    1. Re:Look at LFS by 4e617474 · · Score: 1

      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 of Knoppix 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 else, it's going to be the easiest way to explore the different minimal GUI's out there. If Monoppix has all the same boot options, it sounds like a perfect fit for the machine you want to do your coding in.

      --
      Finally modding someone offtopic when they rant about what "Begging the Question" means: priceless.
  37. warning: this is slashdot! by Goeland86 · · Score: 1

    As much as it makes sense to ask the question here, I'm afraid of the thunder of distro bashing this is going to start.
    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 have a distro bash party like slashdot only can, I don't know that the poster will find a decent answer...

    --
    ---- I am certain of only one thing : I know nothing else.
  38. Windows by Anonymous Coward · · Score: 0

    Windows seems to satisfy this person's requirements:

    * Very barebones - doesn't even come with an ssh client
    * Good hardware support (usually)
    * Should run all of .NET quite well
    * Exceptionally simple window manager

    It's not Linux, granted, but it's close enough and very simplistic.

  39. Debian or Ubuntu Minimal. by SanityInAnarchy · · Score: 1

    Just grab the Ubuntu Alternate install CD, or start from Debian. Same principle, but no real point in getting Ubuntu Server -- you probably want the generic kernel anyway, not the server kernel.

    --
    Don't thank God, thank a doctor!
  40. One word: by halivar · · Score: 1

    Patents.

    And yes, they exist on elements of the ECMA-334 and ECMA-335 specifications.

    1. Re:One word: by stratjakt · · Score: 1

      They exist on all the other MS-originated technologies I listed, too.

      It isn't about patents, copyright, copyleft, GNU, or any such concept.

      It's simply everyday sycophants doing what they do best, feigning outrage for something they don't even understand. Someone on some stupid forum, maybe this one, set the trend that Mono is a bad thing(tm), and god fucking forbid anyone draw their own conclusions, because that would requiring some knowledge - expertise even - in the subject matter at hand, and frankly, that's a lot like work.

      --
      I don't need no instructions to know how to rock!!!!
  41. Xubuntu. Or stay with Windows. by Qbertino · · Score: 1

    Lightweight? Don't no nothin' 'bout Linux?
    You want Xubuntu. 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.

    --
    We suffer more in our imagination than in reality. - Seneca
  42. xfce? Yeah that's pretty much all you need. by zeromusmog · · Score: 1

    The posts suggesting you don't re-invent the wheel are wise, especially since there are already packages out there to get you where you want to go with negligible overhead. Check out xubuntu for a pretty much out-of-the-box barebones GUI without spending a week or two (or more) learning the minutiae of Linux inner workings, or if you really want to sink your teeth in, get Gentoo running and only include packages for xfce and mono. Gentoo is pretty much a build-your-own-distro kit (at least last I used it over a year ago).

    The only thing I found Gentoo could do reasonably better than Windows or a pre-built distro or even GNOME/KDE on Gentoo, ever, in months of messing with it, is that I could run a Playstation emulator (ePSXe) with no "hiccups" due to background processes kicking in every now and then. Even then I likely just am not configuring something right or I could have solved the problem with a newer and speedier processor. Believe you me, I was looking for applications of "barebones" setups--I had a huge nerd-on for only running the bare minimum of what I needed and thought it would be this vastly superior experience. It's really not.

    Really, the minimalism thing is only for learning how things work, very specific situations with limited hardware power, and embedded systems. For a media center with most hardware made in the last like 5 years (or longer, depending), xubuntu will be more than enough minimalism.

  43. Re:Just use MythTV. by Anonymous Coward · · Score: 0

    Why go with slapdash hacks? Just buy an AppleTV and go with something that works perfectly out of the box. Same with Linux. Mac users never have to worry about the sheer onslaught of malware attacks that Linux, BSD or Windows users have to guard themselves against and hope that a new zero day doesn't trash their boxes.

  44. Make Your Own Ubuntu Live CD/DVD or Distro with Re by Anonymous Coward · · Score: 0

    Make Your Own Ubuntu Live CD/DVD or Distro with Remastersys

    I'm surprised this isn't more well known, Ubuntu + Remastersys is very nice and easy:

    http://www.remastersys.klikit-linux.com/

    Official Remastersys forum, here's where you ask and learn:
    http://loscompanion.com/forums/index.php?board=58.0

    http://en.wikipedia.org/wiki/Remastersys
    http://lifehacker.com/software/linux-tip/make-an-ubuntu-backup-live-cddvd-with-remastersys-330181.php
    http://klikit.pbwiki.com/Remastersys
    http://www.ubuntu-unleashed.com/2007/09/remaster-and-clone-your-ubuntu-install.html
    http://www.ubuntugeek.com/creating-custom-ubuntu-live-cd-with-remastersys.html
    http://www.howtoforge.com/ubuntu-linux-mint-livecd-with-remastersys

    For those that don't already have it handy, here is the repo info for you /etc/apt/sources.list file.

    # Remastersys
    deb http://www.remastersys.klikit-linux.com/repository remastersys/

    Please MOD this up if you find it useful, I think it is, but it gets buried with time and people don't see it because I'm posting as anonymous coward, thanks!

  45. Re:Just use MythTV. by Anonymous Coward · · Score: 0

    People who are smarter [tirania.org] than me have tried and gotten nothing but ridicule and abuse from people like you. It could be argued that the people at Microsoft are some of the smartest in the world and would not have been stupid enough to invest a bunch of money in transitioning tens of thousands of Microsoft "developers, developers, developers" onto a programming platform that would allow them to write applications that run as well on Linux as they do on Windows.

    Instead of taking that route, I will ask if you can link to a more independent source than Miguel de Izaca, and link to actual content instead of the front page of a blog.
  46. Re:Just use MythTV. by Daengbo · · Score: 1, Funny

    Hey Twat ... er ... Twit. How's it going?

    He's a developer. He wants to develop. He wants to use Mono. Legal issues aside, Mono allows quick development of full-function applications. Why do you believe that Mono would have MS's DRM? Why would something written in Mono be required to listen to the broadcast flag?

    You're even less coherent than usual today.

  47. OpenSuSE by oliderid · · Score: 2, 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.)

  48. BSD by octagonamassador · · Score: 1

    Apple has capitalized on that train. Heard OSX?

  49. Exherbo? by Anonymous Coward · · Score: 0

    Why not try Exherbo?

    OK, I Want to Try Exherbo

    No you don't.

    Yes I Do

    OK, maybe you do, but we don't particularly want you to try it because we don't want to deal with you whining when you find that absolutely nothing works. Exherbo isn't in a fit state for users. We might get there one day, but it's not a priority. Right now, all we care about is getting it into a fit state for a small number of developers.

  50. A Bare-Bones Linux+Mono+GUI Distro? by Anonymous Coward · · Score: 0

    I've been using Mono for about 5 months now. I develop windows GUIs and web-services in Visual Studio on Windows and so far everything has run very smoothly in Linux. In fact I was shocked by how well its worked.

    Not sure what you mean about the 'Mono Operating System' though.