I was initially confused - I thought this was going to be an OS implemented in Lua, but it's a Linux distribution which has special sandboxing for Lua: http://luaos.net/docs/manual.php#4.
I've poked around a decent amount of the site, and I'm still not clear on what this is a solution to.
Special Sandboxing that, I think, is implemented in Java. So this is an OS in the sense that it only depends on having a JVM and Lua interpreter installed.
Not that this is a great metric (especially when the source languages are taken into account), but here are the LOC counts in the project:
I'm a big fan of Lua, and a big fan of correctness via simplicity, but I worry the author is a little too confident for his own good. Take his sample webserver: http://lua4everything.dyndns.org/ and the accompanying blog post: http://blog.luaos.net/
That particular example is simple and doesn't permit much room for nefarious actions, but as soon as he adds support for a wider selection of files, POST (and other verbs), caching, templating, authentication and access control, etc, the code will grow in complexity and the advantages of Lua will recede.
For instance, remove the line "isin(path, sources)" and there is a arbitrary file read. White lists are more secure, but they don't scale.
After this spectacle what interest I had in the project when it was first announced waned. Community around an open-source project is very important, and this is not how to build it. I'd rather see the project forked than deal with someone like this.
Looks like a very cool project but aren't we passed the phase where something like "developed by a former Google employee" needs to be added to add some faux prestige to the project?
It's a reliable heuristic for filtering links that usually do not stand on their own technical merit. The same applies more generally, e.g. to fancy domains, university affiliations, site designs, random fashionable buzzword dropping, ...
You could call it the I Automatically Do Not Care Rule(tm).
"X who worked at Google on Y" would be a good heuristic, if Y is a good product, but just "worked at Google"? I think Google is too large nowadays for that to be a good heuristic.
As an extreme example, are you implying that people who get fired from Google are likely to make good products?
I thought the same when I wrote this and had it removed for a while. The reason is that I wanted to make clear that this isn't a project by someone who knows Lua, because he plays World of Warcraft or something like that.
There are just lots of operating system projects by people who don't really know what an operating system is.
Even though he's a Google employee, we still don't know that he just knows lua because he plays World of Warcraft, or is otherwise a suitable operating system designer.
I figure it's best to just let the project stand on it's own ground.
> A first-class modern Linux distribution for the desktop
If you want a modern Linux desktop and web browser scriptable in Lua, consider installing Awesome window manager[1] and LuaKit[2] on top of the distro of your choice instead.
Awesome is just that. I've been using it for a year or so and love it. Lua is a fantastic language for configuring things. A few lines of Lua code with Awesome and your application windows go exactly where you want them to when opened without needing to reach for the mouse.
The problem is that supporting enough of the PC hardware to build a graphical system from the ground up is a many hundreds of thousands, if not millions, of lines of code commitment. It takes many many bug reports over several years to stabilize something like that.
You could perhaps do something on a newer, simpler, and well-designed and documented architecture (say an ARM dev board with a network interface to an X/NX/VNC/browser interface). But even Google continues develops Android on top of Linux for a reason.
Linux is fine, it's just a kernel. Innovation goes into the user space, between /sbin/init and /bin/sh. I, for one, would start changing all the configuration files of /etc/ to a standard format: json, yaml, scheme, lua, python, it doesn't really matter, just abstract that part away.
The underlying API is always going to be POSIX and the ABI is going to be C based which in this age we can do better.
Regarding abstraction - there is way too much already.
A platform should stand alone and self host be viable, which is impossible with the Linux kernel as you have to pull in most of GNU to build it and change it.
First, Lua is not spelled in all caps, because it is a Portuguese word. That would be like spelling PYTHON in all caps.
Second, Lua is the faster than any interpreted "scripting" language I know of. And if you use LuaJIT, performance can even approach that of compiled languages such as C.
And third, a completely Lua OS is a long-term goal. As I understand it, the main focus of the project at this point is the creation of Safe Lua, then to slowly replace Linux-based userland parts with Lua-based parts.
>First, Lua is not spelled in all caps, because it is a Portuguese word. That would be like spelling PYTHON in all caps.
That argument is orthogonal to whether Lua should or should not be spelled in all-caps. Besides being a Portuguese word, it's also the name for a programming language, and that use could have a different spelling rule.
For example a "gnu" is an english world (an animal of the antelope family), but we spell the organization that bears a gnu as it's logo: GNU.
Same for Python. Actually, Python servers as a counter-argument to your point, because we spell it "Python" (initial cap) whereas if we treated it as an english word it would be just "python".
That argument is orthogonal to whether Lua should or should not be spelled in all-caps. Besides being a Portuguese word, it's also the name for a programming language, and that use could have a different spelling rule.
It's not an argument, it's a statement of fact. I'm not more than a Lua dilettante, yet I know this. The name derives from a Portugese word, so it should be treated as a proper noun, not an acronym.
EDIT: iPad completion snafu.
EDIT: For example a "gnu" is an english world (an animal of the antelope family), but we spell the organization that bears a gnu as it's logo: GNU.
GNU is an acronym, which is why it's spelled that way, which is stated on their websites.
>It's not an argument, it's a statement of fact. I'm not a more than a Lua dilettante, yet I know this. The name derives from a Portugese word, so it should be treated as a pronoun, not an acronym.
And again, the fact that the name derives from an actual word tells us nothing about how we should treat a language that uses it.
For example, I can make a language called "table" and specify in the docs and faq that it should be written as TABLE (all caps).
Also: "pronoun"? Huh? Pronouns are words like "his", "him" etc. Perhaps you meant "noun"? Still, we don't treat either nouns or pronouns with an initial capital mid-sentence, whereas for Lua we do.
>GNU is an acronym, which is why it's spelled that way, which is stated on their websites.
My point is, the spelling is a arbitrary decision by the project. Notice how, despite it being an acronym they don't write G.N.U, but GNU (and keep the gnu animal imagery).
They could have dictated for us to spell it gnu or Gnu or G.n.u, just as easily.
Case in point: the BETA programming language is spelled in all-caps despite BOTH not being and acronym AND being a proper english word.
Excellent points. According to the project site, "Lua" is correct.
> "Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!
Maybe you're right about this not being the best title, but the emphasis is on the Lua programming language.
Lua has a pretty nice performance btw. LuaJIT doesn't have as much backing as V8 or SpiderMonkey and still easily outperforms both of them. I think it's a bit sad that it isn't used in place of Java. Even if you don't like the bare language it'd be nice, if you could have something fast to base another language (there are many language implementations btw, not just Moonscript btw.) on. I wonder if it wouldn't make a nice "bytecode" for a VM, but I am really not into language design.
I was thinking along the same lines. What happened to Guile ( http://www.gnu.org/software/guile/ )? Maybe the developer(s) were not aware of it's purpose?
Substitute Lua with Tcl and it would still be underwhelming.
If this is successful, it would not be difficult to make a loader that lets it run Scheme. Of course, there are probably better Scheme implementations than Lua out there.
I've poked around a decent amount of the site, and I'm still not clear on what this is a solution to.