News for hackers. Stuff that matters.
Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @01:15PM (#8325591)
Me too. My favourite were the Oberon variants, specially System 3 release with its gadgets.

The proof you could have an workstation OS written in a GC enabled systems programming language.

I cherish Microsoft for its work in Windows, it is the only mainstream OS that can save us from UNIX monoculture.

Yes, UNIX has a bunch of nice ideas, but that is all.

Re:Minix 3.3.0 by the_af on Tuesday September 16, 2014 @01:28PM (#8325699)
> I cherish Microsoft for its work in Windows, it is the only mainstream OS that can save us from UNIX monoculture.

Note that the Microsoft way tends to lead to another monoculture and to vendor lock-in. I'd say "of course, the same applies to the products of every other corporation", except that in my experience, everyone is using Windows on the PC.

Probably because I'm not a hacker from the 70s, when I discovered Linux (note a BSD variant would also have worked, had I known about them) it was a breath of fresh air in the ubiquitous monoculture that was Windows.

Re:Minix 3.3.0 by forca on Tuesday September 16, 2014 @01:41PM (#8325793)
Like you, I discovered Linux in 1998 and have personally used it exclusively since. I get as many people off the MS and Apple treadmill and onto Libre/OSS as I can, especially in SOHO settings. I've yet to not be able to do something I needed done in Linux, even if it did take a bit more time or effort initially.
Re:Minix 3.3.0 by tracker1 on Tuesday September 16, 2014 @03:00PM (#8326347)
It's funny, I have an easier time getting friends/family on to a usable Linux OS than myself. I tend to use windows on the desktop (more about cost/value) and OSX for my laptops... I run Linux for my HTPC, and on servers.

I run multiple monitors and multiple drives in my desktop, and generally one of those two things will lead me to pain when it comes to installation, or an upgrade cycle with the OS. I really don't like playing with my desktop for a half a day to get it running again when I'm trying to get work done.

Given, it's a lot better today than in years past, I just haven't had it in me to go to Linux for a month, only to have an update break something that will take hours to fix. That just doesn't happen as much in OSX or Windows.

I kind of wish one desktop platform would come to true prominence in Linux, and I care less about which one, as any one... then that one can get a lot better. I don't even mind gnome 3 or unity so much. I just want something that will keep working right through a few upgrade cycles... opposed to where I really consider not running updates on my desktop.

My last attempt at Linux for a primary OS was about a year and a half ago. I tend to get the bug to try it out every couple years. Eventually, I hit a wall a week or few weeks in that I just don't have time/patience to deal with.

PC-BSD was also a really nice option, but the limited VM options and support for current hardware really killed that for me. I think BSD fits my mindset better, but Linux has become more ubiquitous.

Either way, I would love to see a truly great desktop Linux platform for me. A power user and programmer who likes to tinker with stuff, but wants something that has an ok ui, that gets regular updates without issue. Most of the time, when I did update, it was more for something I wanted to play with other than the main OS.

Re:Minix 3.3.0 by jrapdx3 on Tuesday September 16, 2014 @07:18PM (#8327645)
I don't know when you last looked at FreeBSD/PC-BSD but there's been improvement in graphics performance, and driver coverage in general, though admittedly not as much as Linux, Windows, etc.

Also PC-BSD is working on a BSD-specific desktop called Lumina. It's at an early stage of development so not yet clear how well it will compete with established DEs.

It will be interesting to see how far Linux goes with Wayland, said to be a replacement for X. If X becomes deprecated on Linux, probably BSDs won't travel that path and stick with X, which means X development will be more or less up to the BSD projects. Just my speculation about these things.

What I'm waiting for most is completion of FreeBSD UEFI support, including Secure Boot. Once that's available it should make dual-booting FreeBSD+Windows much easier--a great option to have.

Re:Minix 3.3.0 by tracker1 on Wednesday September 17, 2014 @06:32PM (#8332731)
Yeah, it's been a while since I've looked... I really need to have a good multi-platfrom VM host in whatever environment I use... usually VMWare, because I do a lot of work that brings me into windows, mac and linux which was the biggest drawback last I looked.

It will be cool to see what happens in the next couple years though.

Re:Minix 3.3.0 by sergiosgc on Tuesday September 16, 2014 @01:42PM (#8325803)
> I cherish Microsoft for its work in Windows, it is the only mainstream OS that can save us from UNIX monoculture.

I tend to simplistically reduce this choice between:

- Everything is a file (the unix way); and

- Everything is an object (the windows way)

Both choices have the potential for great results. In practice, however, the documentation and composability in the everything is a file paradigm has shown to produce better results. Unix ecosystems are more alive; it is easier to replace system parts and create operating systems out of your own choice of replaceable layers. The monolithic nature of Windows is a reflection on the failure of the object oriented approach to operating system interfaces.

Mind you, I don't think it is an intrinsic fault. It may be that it's a fault of this implementation of an OO operating system.

This is the main reason I dislike what the Gnome folks are pushing down Linux's throat. The Gnome way is, today, at odds with the Unix way.

Re:Minix 3.3.0 by fragmede on Tuesday September 16, 2014 @03:37PM (#8326634)
That's an over-simplification, as when you get down to it, there are plenty of things that don't use the file API on UNIX, or at least have convenient wrappers so you're not blindly calling 'ioctl' left and right. I'm thinking specifically of the socket API for bind/connect/accept, the inotify interface, with inotify_* functions, the (less commonly used these days) serial port API, with the tc* and cf* functions.

> It may be that it's a fault of this implementation of an OO operating system.

I'm not convinced it's just this implementation. When everything's an object, there's additional overhead as a programmer trying to use the API.

File based API - Open a file using the same 'open' call you've always used, and then call 'read' or 'write' (or even 'ioctl') on the file descriptor. Call 'close' when done. There may be multiple files you need to access to get the particular behavior you want.

Object based API - Browse around the docs until you find that particular subsystem's API. Read a bunch. Finally instantiate the object you need. Set all of the objects various properties. Call CreateObject(object, options). Wait, go back and create a options object. Set all of the properties on that object as well. Try that until you figure out you needed to call CreateObjectEx instead. Hit your head on the desk for a couple hours until you figure out that you also need to call RunObject, and that one of the parameters on the options object was set wrong.

As a programmer, the file-based API is just a layer of indirection to make things easier, and shouldn't be considered a limiting factor.

Then again, there's this article about Event Tracing on Windows, that makes me think it's just this iteration of OO-based operating system, and a better designed API would do us all a favor.

http://mollyrocket.com/casey/stream_0029.html

Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @02:59PM (#8326337)
> Both choices have the potential for great results. In practice, however, the documentation and composability in the everything is a file paradigm has shown to produce better results.

Until you start doing IPC between processes, IOCTL, heavy graphics programming and there goes the abstraction.

Re:Minix 3.3.0 by mwcampbell on Tuesday September 16, 2014 @03:16PM (#8326475)
What makes IPC better on Windows? Are you suggesting that COM method calls across processes is a good thing?
Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:27PM (#8326559)
The point being that not everything is actually a file, requiring other set of operations.
Re:Minix 3.3.0 by taeric on Tuesday September 16, 2014 @01:51PM (#8325868)
That is more easily reduced to

  - You can do anything you want with anything (objects)
  - You have a discrete set of file operations.  (files)
That is, the "object" way sounds more promising and unlimited. I think, in practice, it is that unlimited nature that actually hurts.

Though, I hate the "paradox of choice" and I think I am saying it reduces to that. :(

Re:Minix 3.3.0 by jude- on Tuesday September 16, 2014 @02:40PM (#8326196)
I don't think it's the paradox of choice at work. I think instead that the set of file operations happens to permit arbitrary interaction with an object. Specifically, file operations already represent:

* data accesses (read),

* data mutations (write, trunc),

* metadata accesses (readdir, closedir, stat, statfs, readlink),

* metadata mutations (creat, mkdir, link (and symlink), unlink, rmdir),

* interaction contexts (open, close, opendir, closedir),

* namespaces (mount, umount).

I would argue that any object (OS-level or otherwise) can be represented as a filesystem. The advantage of doing so is that the client interface stays the same in all cases. I think it's this constraint on the interface that makes file operations and filesystems so appealing in the long run.

Re:Minix 3.3.0 by taeric on Tuesday September 16, 2014 @03:48PM (#8326704)
Right. My point is that you have to make your operations fit within that language. As opposed to the object metaphor, where you get to define the language however you want.

Very similar to the REST versus SOAP/whatever paradigm. Neither one should be more capable than the other. In fact, REST should be the more restrictive choice. Right?

Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:15PM (#8326470)
Now try to do real time 3D graphics with those operations.

Plan9 window manager is not an example of performance.

Re:Minix 3.3.0 by jude- on Tuesday September 16, 2014 @03:55PM (#8326728)
Depending on how it's implemented, there's no real reason why it couldn't be done. For example, I could create SceneGraph_fs, which exposed the scene graph of objects as a directory hierarchy. The filesystem's toplevel directory would be organized with a /scenegraph/ directory for the scenegraph, /lights/ for the light models, and /tmp/ for a scratch space for constructing objects and staging them to be added. Each node in the scene graph would be represented by a directory under /scenegraph/ which contained one file for each distinct chunk of data the graphics engine would need to know (like a position matrix, an orientation matrix, a mesh model, a texture map, etc., depending on whether or not the directory represented a model or a transformation).

For data in /scenegraph/, SceneGraph_fs would accept well-formatted writes to a node's files as a means to update the node in the scene--for example, to translate the node, you would write a new matrix to the object's positional matrix file (the write() would return EPERM if the matrix was malformatted). To create or modify an object atomically, you could describe it under /tmp/ in SceneGraph_fs, and rename() it into place. You could manage lights and lighting data in the same way.

Of course, the graphics card interfacing happens in filesystem implementation. But, the application interacts with the scenegraph as a filesystem, not as an object.

Re:Minix 3.3.0 by ahomescu1 on Tuesday September 16, 2014 @07:06PM (#8327606)
> - Everything is an object (the windows way)

I wouldn't say there is a "Windows way", considering that current Windows is actually a system composed of several different layered components:

1) The NT kernel (which is pretty nicely designed) its own ideas of what "objects" are and all the ObXXX functions.

2) Win32 which is a horrible mess from the Windows 3.1 days and maybe earlier.

3) COM and flavors, which actually came later with its own brand of objects.

4) The .NET framework.

It doesn't seem to me that "Windows objects" are really unified in spirit and design across all these components (not to mention that Win32 isn't object-oriented at all).

Re:Minix 3.3.0 by dschiptsov on Thursday September 18, 2014 @06:28AM (#8334508)
Everything is a file on a FS - so-called permanent storage. Everything is an object - where? in memory. That's the source of all problems, ORMs, ORBs, persistence layers, etc.
Re:Minix 3.3.0 by metafex on Tuesday September 16, 2014 @01:39PM (#8325777)
> Yes, UNIX has a bunch of nice ideas, but that is all. Ouch, that actually hurts a little. Yes, the kernel team at Microsoft is the real deal, but I'll not go into that.

As to "a bunch of nice ideas", I'd suggest you take a look at the concepts that Plan 9 from Bell Labs brings to the table. The everything is a file concept there is something I wish would have taken over the more classic approach to devices, networking, etc. Want to open a remote shell on another server? Easy as opening a file handle. Accessing the CPU and running programs? Same story. Now if you call that just a nice idea, I rest my case ;-)

Microsoft even explored some of those concepts in their research OSes like Singularity and Midori. There has to be something about those ideas that they appeal even to MS, that's just my view though.

Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:31PM (#8326592)
Quoting Rob Pike on his Slashdot interview:

We really are using a 1970s era operating system well past its sell-by date. We get a lot done, and we have fun, but let's face it, the fundamental design of Unix is older than many of the readers of Slashdot, while lots of different, great ideas about computing and networks have been developed in the last 30 years. Using Unix is the computing equivalent of listening only to music by David Cassidy.

Re:Minix 3.3.0 by taeric on Tuesday September 16, 2014 @04:44PM (#8327000)
There has to be some irony there, given the development tendencies of golang. :)
Re:Minix 3.3.0 by LnxPrgr3 on Wednesday September 17, 2014 @01:11AM (#8328693)
Not to mention programming languages in general.

We're still wrapping our heads around decades-old ideas. We can be sure software development is finally a mature field when we're unflinchingly using 100+-year-old constructs because they've withstood the test of time.

One of my favorite fields, DSP, leans on math from around the turn of the 20th century. Far from shameful, I consider that a win for mathematics.

Re:Minix 3.3.0 by jacquesm on Tuesday September 16, 2014 @03:01PM (#8326354)
I think the main reason why 'everything is a file' is so powerful is because it comes with a built in security model.
Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:21PM (#8326523)
Plan 9 != UNIX
Re:Minix 3.3.0 by metafex on Tuesday September 16, 2014 @03:42PM (#8326664)
Yeah, I know, it's the unix concept thought further :)
Re:Minix 3.3.0 by gillianseed on Tuesday September 16, 2014 @01:56PM (#8325895)
>I cherish Microsoft for its work in Windows, it is the only mainstream OS that can save us from UNIX monoculture.

What is Windows doing differently than UNIX monolithic kernels? Drivers and filesystems run in NT kernel space.

Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:20PM (#8326521)
- Moving their kernel to C++

- Exposing an OO ABI (COM, WinRT)

- Moving beyond C for systems programming (C++, .NET Native, Sing#)

- Experimenting with new OS architectures (Singularity, Drawbridge)

- Continue the multimedia OS culture of Atari ST, Amiga systems

Re:Minix 3.3.0 by gillianseed on Wednesday September 17, 2014 @11:32AM (#8330461)
>Moving their kernel to C++

Not sure this matters given the extreme low-level nature of kernel and driver coding. Certainly not enough to warrant a rewrite, which I guess is a result of Microsoft more or less dropping support for modern C in their compiler by not even supporting C99 fully.

>Experimenting with new OS architectures

Certainly Singularity was an interesting experiment, sadly and typical of Microsoft mentality, once they ruled it out for production use and passed it off for others to play with, they chose to do so under such a restrictive license (shared source) that no one will do something interesting with it.

As for drawbridge, the same ideas regarding sandboxing are being worked on in the Linux camp, and from what I understand also in solutions like Capsicum on FreeBSD, from the looks of it, *NIX is way ahead of Microsoft in this area.

>Continue the multimedia OS culture of Atari ST, Amiga systems

Not sure what you mean here unless you are talking about coming with a GUI out-of-the-box ?

Your typical current Linux distro is more of a 'multimedia OS' than Atari ST or Amiga ever was (owned them both), which includes BeOS, the one which actually carried that moniker.

Re:Minix 3.3.0 by vezzy-fnord on Tuesday September 16, 2014 @01:48PM (#8325852)
You're saying it as if having a bunch of nice ideas that have been practically implemented is a negligible thing.

To add on to what a previous commenter said, Plan 9 is proof that Unix's nice ideas are more than a few. In fact, the ultimate irony is that some of the most fascinating OS design has emerged from being more Unix than Unix itself.

Plan 9 has also become pretty much the only breath of fresh air from an architectural standpoint in Linux, what with procfs and all.

Re:Minix 3.3.0 by pjmlp on Tuesday September 16, 2014 @03:24PM (#8326546)
Except Plan 9 is not UNIX. It is an evolution of UNIX.

I seriously doubt I could use such abstractions for high performance 3D computing.

Re:Minix 3.3.0 by AceJohnny2 on Tuesday September 16, 2014 @01:24PM (#8325672)
> I cherish Microsoft for its work in Windows, it is the only mainstream OS that can save us from UNIX monoculture.

lol