Hacker News new | past | comments | ask | show | jobs | submit login
Ulix – a Literate Unix (ulixos.org)
98 points by tokenrove on Dec 19, 2015 | hide | past | web | favorite | 40 comments



Looking at the code on GitHub[1] I don't understand how this qualifies as "literate" programming. I'm also not quite sure why you'd version binaries as well as /etc/passwd... There's also an awful lot of "// old line comment removed". Maybe I'm confused but this does not "read like a book".

EDIT: I found what I was looking for [2].

[1]: https://github.com/hgesser/ulix

[2]: https://raw.githubusercontent.com/hgesser/ulix/master/ulix-b...


Look at the ulix-book-0.13.nw file. It is the literate document. It contains all the code for the kernel.


Ah, you replied to me just as I found it. I think the README should hint that the code is in the book ;)


I added a pull request based on your comment.


Oh, wow! This looks great! I generally like the GPL (including 3) - but wonder if MIT/BSD moght not have been an even better choice for a text book, where someone might want to build on example code and use it in a different system.

At any rate the PDF version looks (and more importantly reads) great.


I volunteered at the Free Software Foundation for about 2 years when I was a student at MIT.

GPL is almost always a bad choice for open source projects. I could write for days on the subject - but I'll try to be brief.

(Note: I am not a lawyer and not speaking on behalf of the FSF, just on my own capacity.)

This was during the years Linux was the rebel, Microsoft was the suits, and you could plop the GPL on anything and people would embrace it as the worlds. Code was open - but untouchable by the corporations.

To my surprise, after joining them rank and file of the private sector people chided me for my enthusiasm in the GPL.

I realize in retrospect the youthful folly of it. It turns out the "poison pill" that is the derivative work clause of the license affects everybody. That is, hardware vendors, game makers, medium sized companies, small companies, individuals, even more permissively licensed open source projects can't touch GPL.

What took me years to realize is when corporate brought us into a meeting with the lawyers, LGPL and GPL w/ exceptions are in the same boat! These exceptions are weak compared to the 9 pages of restrictions biased toward the virility of it.

What made me really popular in open source, made me an outcast at work. It got me, fresh out of MIT, fired, and for a time on welfare (only for the period of 2 weeks).

GPL uses the term "Free" in a twisted, marxist way. It's restrictive and, while done in good faith, completely burns bridges and appeal to people who'd otherwise be happy contributing upstream to some projects.

Reminder, I am not a lawyer and was only a volunteer at FSF. I still accept GPL for some projects, but my opinion has since changed since entering the workforce.


GPL works well to protect the freedom of its users. Now I understand this can me it unpopular with closed-source shops but it wasn't designed to make corporations happy.

I would've expected someone who volunteered at FSF understood this basic fact (or trade-off, if you like) long ago. After reading your story, I'm not sure what actually motivated you to volunteer there in the first place. I somehow can't believe it's because you really shared their philosophy.

To me, it seems you are the one who's twisting things motivated by a personal anecdote.


No, GPL software was not meant to make corporations happy. But to me, the spirit of open source software is, to make the software used and to encourage sharing of the source between developers. Now, with all the challenges for corporations, GPL basically ensures that most developers of commercial software have to stay away from it and are forced to create a parallel, closed universe. And you don't need the strict requirements of the GPL to keep software open. As we can see from the recent opening up of .NET, Swift, etc. even very large companies prefer the open source approach for their projects, as long as it does not exclude them from any non-open use.


> the spirit of open source software is, to make the software used and to encourage sharing of the source between developers.

This is why many of us feel it is important to support Free Software instead of Open Source Software. Freedom - and preserving a free development environment for General Purpose Computers - is a far more important goal.

> GPL basically ensures that most developers of commercial software have to stay away from it

That's not the GPL's fault, proven by the fact that there are commercial software companies that sell GPL software.

There are reasons to not use GPL, but you don't want to follow the community's rules, you don't get to steal their work. Nothing is free; either pay the price the community sets (follow the GPL), or negotiate another license from the authors.

> very large companies prefer the open source approach

Yes, they prefer being able to take code for free without any ethical obligation to give back, a very narcissistic attitude. This meme that the GPL is "bad" or "less-free" is just a cheap excuse to try to get free code.

> exclude them from any non-open use

They only have to open the code associated with someone else's GPL code they are using. Depending on what you're writing, this code can be isolated so you only need to open the source to that particular program. If you're linking to an LGPL library, it's even easier.


> That's not the GPL's fault, proven by the fact that there are commercial software companies that sell GPL software.

You cannot "sell" GPL software. You can provide it as a service (one time fee, the customer can reuse it without additional payments) or just charge service fees. But for most commercial software the development costs can be financed only if you have the traditional selling model, it would not exist otherwise.

> There are reasons to not use GPL, but you don't want to follow the community's rules, you don't get to steal their work. Nothing is free; either pay the price the community sets (follow the GPL), or negotiate another license from the authors.

No one talked about stealing. I very careful observe the license of any software I touch - this is exactly the reason GPL makes me sad. I can't touch it, I have to treat the software as if it not existed. With the software I can use, I often can enhance it on paid time and donate back, but there is just no way of doing so with GPL software.

> Yes, they prefer being able to take code for free without any ethical obligation to give back, a very narcissistic attitude. This meme that the GPL is "bad" or "less-free" is just a cheap excuse to try to get free code.

You got it exactly backwards. Developers at companies are very aware of the ethical obligation to give back and usually are able to do so - LGPL is mostly fine for this reason. But GPL requires them to open source something else too, and that is where the conflict arrives. The GPL license does not only involve the software it is on, but it also tries to affect others people software.

I think every developer has the freedom to choose any license she or he wants and the license should be observed. I have seen good software pass away, because the developer was not willing to share it at all, and there is good software which does not get used, because the license terms prevent it. So I can only hope every developer chooses the license carefully, and as discussed GPL basically excludes the software from commercial environments. If thats what the author wants, fine. But it needs to be considered.


Nobody really sells GPL software, they sell support for it or they sell it together with hardware. I mean, the GPL is perfectly reasonable from a commercial perspective if you're going to charge a one-time fee to release your software and dispense with royalties, but nobody really does that.



I wasn't counting dual-licensing, because what you're buying isn't a copy of the software but the permission to ignore the GPL, but fair enough.


It seems you want open source software and the positive things that that entails. The GPL does not want that, it wants free-as-in-freedom-as-defined-by-RMS. There are naturally pros and cons to each. People seem to forget the cons of a non-free(libre) license coupled with open source. Especially the long-term effects.

For the uninitiated/"unbrainwashed", the difference between open source software and free-as-in-freedom software:

http://www.gnu.org/philosophy/open-source-misses-the-point.h...


If you want a good definition of free, just pick up any philosophy book on liberty.

I use the free-as-in-freedom-as-defined-by by John Locke, John Stuart Mill, Isaiah Berlin and so many others. Free, that is freedom, that is liberty, is not the same thing anarchy and the complete lack of restrictions. freedom is not, "A liberty for everyone to do what he likes, to live as he pleases, and not to be tied by any laws". It is to be "under no restraint apart from standing rules to live by that are common to everyone". Share and share alike would be one such model, as is the freedom from interference by other people, and DRM and proprietary licenses is the model for restrictions.

To quote philosopher Isaiah Berlin: "'Freedom for the pike is death for the minnows'; the liberty of some must depend on the restraint of others."


"Free software" is not defined merely by dictionary definitions of "free" or "liberty".

For example, people are not free to create derivative works and not share them.

I'm not saying "free software" is an improper phrase, just there is more nuance than you imply.


Both the free software and open source definition require that you can create derivative work and share them. That freedom depends on the restraint of the author to use copyright law to persecute them under copyright law, or digital restrictions through DRM.


> make the software used and to encourage sharing of the source between developers

That's a very narrow interpretation of what RMS had in mind. Free software movement and its basic license GPL has always been about users' freedom and community.

Also, you're conflating open source and free software here. GPL is a license conceived by the free software movement.


> GPL works well to protect the freedom of its users.

As do the BSD and especially(?) the Apache Software License.

What possibly can be said in favour of GPL is that it:

* make the code more resistant to forks, esp. less free

* opens an option for the original author of code to do dual-licensing

* provides an opportunity for the authors to prevent certain uses of the code

Case in point : there is nothing in either the ASL, BSD or MIT that allows you to go back and make already licensed code less free. The original authors can choose to license their new or existing code under another license as well, as can coders using GPL.

Personally I would be happy if everyone could stop pretending that GPL is more free or respects users more, - as I have tried to show above it does not.

There might still be ideological and even practical reasons to use GPL, but it is NOT more free, possibly less.


> As do the BSD and especially(?) the Apache Software License.

Suppose someone forked BSD kernel, modified it heavily over years and made a closed source product of out of it (you don't actually need to suppose it anyway). Users get zero out of four freedoms they would have gotten with GPL.

https://www.gnu.org/philosophy/free-sw.html

As a user, you now can't freely run the kernel on multiple computers as you like, you are not allowed to investigate what the binary blob actually does on your hardware, you're not allowed to give a copy to your friend, and you're not allowed to make patches and redistribute. So while this worked very well for some company and allowed them to launch a series of products in series quickly (which translated into billions in revenues), it screwed all of the four basic freedoms for all (paying) users.

Now tell me, how exactly is BSD license going to protect my rights as a user here?

As for the original developers of BSD, I'm guessing they might have been happier if that company contributed (some of) their changes back. Or maybe a few bucks from the billions of dollars they made.

BSD license basically gave the company to screw everyone else, both end users and original developers. Only a free software license such as GPL protects them both.

> make the code more resistant to forks, esp. less free

GPL doesn't have any restriction on forks. At all. Re-licensing and forking are orthogonal concepts.

> opens an option for the original author of code to do dual-licensing

That doesn't have anything to do with GPL itself.

> provides an opportunity for the authors to prevent certain uses of the code

It guarantees that four freedoms mentioned in the above link are protected.


> As do the BSD and especially(?) the Apache Software License.

Nope. As a user of a closed source program built on top of BSD or ASL license I certainly don't have the rights I would have had if the bottom layers were GPL. BSD, ASL allows the programmer to (type) cast away the freedoms, they can inherit in private, enjoying the benefits but giving nothing back.


>>> GPL works well to protect the freedom of its users.

>> As do the BSD and especially(?) the Apache Software License.

> Nope. As a user of a closed source program built on top of BSD or ASL license...

Bam. Got you. You, and the Mac users mentioned in the other comment weren't using open source software.

Users of the original software are still protected.

> I certainly don't have the rights I would have had if the bottom layers were GPL.

You wouldn't anyway. They'd just use something else.


Precisely my point, BSD or ASL allows one to inherit free but make the final product non-free. The end user (incidentally, also the original author) gets cut out of it.


How do you define freedom w.r.t. software? Based on your examples, you differ from Stallman, but it is unclear to me how you see it.


more restrictions => the less freedom.

Which means liberal licenses pr def are more free.


iOS and MacOS users face huge barriers to hacking their devices because the BSD license didn't even attempt to ensure their freedom to do so. To publish code without copyleft is to donate your work to the parasites of the industry.


iOS and Mac users willingly chose shiny over free. They never had a free OS, merely one built on some free components.

Re parasites: do you mean people and companies who use OSS without giving (enough) back, like most of us?


>GPL uses the term "Free" in a twisted, marxist way. It's restrictive and, while done in good faith, completely burns bridges and appeal to people who'd otherwise be happy contributing upstream to some projects.

I am a Marxist. Go on?

(I have my own critique of the GPL - by its nature, it demands I conform to a liberal conception of freedom. I do not consider it a freedom to have corporate entities exploit my software for profit without compensating me.)


The argument is something like workers owning the means of production is akin to users having control of the source code. Which although maybe debatable, is not a slur in and of itself.


GPL uses the term "Free" in a twisted, marxist way.

How, pray tell, is it Marxist?


I just got an email from a FSF employee asking me to remove comment. That was fast.

> How, pray tell, is it Marxist?

It's a meme from #/g/technology on irc.rizon.net.


Way to discredit yourself. Makes me wish MITs education was more well-rounded


What did you actually do, fresh out of MIT, such that your philosophical support for the GPL was the actual proximate cause for which you were fired? I'm having trouble seeing how this could come about for somebody who was neither determining nor advising about policy, so I'm curious as to what your role was.


> GPL uses the term "Free" in a twisted, marxist way.

You appear to be using the term "Marxist" as a snarl term.

This is strong evidence you're trolling.

Please leave. We don't especially want trolls here.


Even if the rhetoric was out of bounds, the right remedy would be to "improve", not "leave".

But the use of the term was fair.

There is a political and ideological aspect of the fierce-copyleft outlook that cross-fertilizes with Marx-ish thinking. Eben Moglen is often eloquent on these themes. It's not necessarily an insult to observe this.

And in this kind of casual, vernacular use – uncapitalized, even! – people also understand 'marxist' to describe language that has been shifted, by certain stylized theories of production and exploitation, from its plainer meaning in other contexts. That's a reasonably expressive way to describe the very particular and ideologically-qualified definition of "Free" that the FSF prefers.


>We don't especially want trolls here.

And judging from the responses in this thread, it appears that he is successful.

Or do you enjoy feeding trolls?


Feeding trolls isn't what makes them stay. Lax moderation makes them stay.


Please don't say things like this.


I've used both BSD and GPL licensed software at work. I've never heard of anyone getting fired for that.

BSD - if you want your software to be used as much as possible, even if the user doesn't return the favor.

GPL - if you want corporations who benefit from your software to give something back. (also useful for dual licensing, so you can make money).


A couple of fundraisers for those who still support the FSF, copyleft, the GPL, Free Software or Linux:

https://www.fsf.org/appeal/ https://sfconservancy.org/supporter/




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: