Discussion with Minddog - An Introduction to LainOS May 2nd, 2003 irc.eggheads.org Profile: Webservices leader, and active System.Xml maintainer for the DotGNU project. [00:22] our project was trashed a year ago, now we're picking it up from the ground and working with more focus [00:22] basically we tweak the freebsd libraries to a point where they are GNU compliant [00:22] then we hack on the kernel [00:22] [Neovanglist] I see [00:22] [Neovanglist] cool [00:23] GNUStep was going to be our main WM [00:23] [Neovanglist] one thing you may be interested in [00:23] [Neovanglist] well [00:23] [Neovanglist] lemme summarize the project [00:23] we haven't fully decided that =) [00:23] [Neovanglist] LainOS is comprised of several projects, each to be completed in the following order [00:23] [Neovanglist] LainWM - The Next Generation Window Manager [00:24] [Neovanglist] LainFM - A standalone lightweight file manager which will also work in harmony with LainWM [00:24] interesting [00:24] [Neovanglist] LainAM - A standalone program/driver/dependancy management system [00:25] [Neovanglist] LainDM - a XDM/GDM type program to work with LainWM [00:25] hrmm so veering off of the /usr/ports idea? [00:25] [Neovanglist] and then the LainOS kernel [00:25] [Neovanglist] we are focusing on one project then moving on to the next [00:25] [Neovanglist] with the ideal that it will make the code cleaner, and more interoperable [00:25] [Neovanglist] since everyone who does LainFM (or most) will be moved from LainWM [00:25] [Neovanglist] hence they will have an intimate knoledge of LainWM [00:26] i see [00:26] good project management ;) [00:26] [Neovanglist] thanks ^_^ [00:26] [Neovanglist] some of the project goals are [00:26] [Neovanglist] one, and foremost to make the real next-gen ui [00:26] [Neovanglist] to be the next "windows 95" [00:26] [Neovanglist] a few things about ti [00:26] lol [00:26] [Neovanglist] *it [00:26] [Neovanglist] one, no taskbar [00:26] [Neovanglist] two, a full 3d environment [00:27] So no X11? [00:27] [Neovanglist] three, no more than 3 inputs to do any standard UI navigation task [00:27] [Neovanglist] well it'll run on X11 (most likely) [00:27] * minddog thinks fresco is better ;) [00:27] [Neovanglist] well [00:27] [Neovanglist] the Display server is still up in the air [00:27] [Neovanglist] after planning/conceptualizing we start technology testing [00:27] i see [00:27] [Neovanglist] to pick library/foundation canidates [00:28] [Neovanglist] this way we get what we need first, and don't have to change over mid program [00:28] I have to ask, i'm a GNU evangelist ;) [00:28] Whats the licensing like? [00:28] [Neovanglist] right now it's BSD liscensing [00:28] [Neovanglist] I like the ideals of it [00:29] [Neovanglist] but I like GNU aswell [00:29] [Neovanglist] we may move to GNU for protection [00:29] Here's just a small suggestion [00:29] [Neovanglist] BSD is a very very open liscense [00:29] GPL your UI stuff and make it very modular [00:30] [Neovanglist] in what way? [00:30] So that a linux user or solaris user could run it [00:30] [Neovanglist] oh [00:30] [Neovanglist] well [00:30] [Neovanglist] we plan on all the LainXX aps (LainWM,FM,etc) [00:30] i'd say a libgdk equiv [00:30] [Neovanglist] to be cross-platform compliant [00:30] great! [00:30] [Neovanglist] they should compile out of box on most linux/bsds [00:30] I'm excited =) [00:30] [Neovanglist] any other platform will be taken up by interested users [00:31] We're moving labyrinth towards a GNU kernel so we can become a bsd-like, but not bsd o/s [00:31] [Neovanglist] well the thing about BSD [00:31] [Neovanglist] is it was never ever designed in any way as a desktop os [00:31] [Neovanglist] it's a server os [00:32] yeah [00:32] [Neovanglist] which it is very VERY good at [00:32] i know where you are going ;) [00:32] [Neovanglist] a few things about LainOS [00:32] [Neovanglist] the ideal of the final project is to create the first truly usable *nix OS [00:32] [Neovanglist] the truth is [00:32] [Neovanglist] with any *nix os [00:32] [Neovanglist] even mandrake [00:33] [Neovanglist] it only runs *well" for power users [00:33] [Neovanglist] people who know what they are doing [00:33] [Neovanglist] that is the case [00:33] [Neovanglist] because it was designed to be used by enginieers [00:33] [Neovanglist] not humans [00:33] rofl [00:33] [Neovanglist] *yes they are different* [00:33] * minddog is definitely not an engineer [00:34] but i'm not human either then [00:34] [Neovanglist] a human expects something to function like it is supposed to [00:34] [Neovanglist] an engnieer expects it not to [00:34] [Neovanglist] but also expects to be able to fix it [00:34] [Neovanglist] thats the difference [00:34] [Neovanglist] this is the story behind *nix [00:34] hehe [00:34] [Neovanglist] now [00:35] [Neovanglist] LainOS expects to clean up what is long past due [00:35] thats a new perspective to me =) [00:35] [Neovanglist] things such as modular drivers [00:35] [Neovanglist] right now [00:35] [Neovanglist] the graphical UI is patched and hacked on [00:35] [Neovanglist] the driver base is different [00:35] [Neovanglist] the code bases are different [00:35] [Neovanglist] the result is a confusing operating environment [00:35] [Neovanglist] the kernel does not expect to work with a UI such as X [00:36] [Neovanglist] it just kinda does it [00:36] [Neovanglist] in the end of LainOS the kernel will be tied into but NOT dependant on the UI [00:36] [Neovanglist] that means, that it will fit into the UI server, but still operate seperatly [00:36] [Neovanglist] such that drivers will be unified [00:36] I could see some interesting kernel hacks with graphics [00:36] [Neovanglist] a LainOS driver will be the whole deal [00:37] [Neovanglist] and if you want to change a setting it won't be a x or system setting [00:37] [Neovanglist] it'll be a setting all across the board [00:37] [Neovanglist] also, the code bases/dependancys [00:37] the libggi is a good look [00:37] [Neovanglist] too much redundancy [00:37] [Neovanglist] you have a GNU tool set, a standard tool set [00:37] [Neovanglist] kernel/console io, X11 IO [00:37] [Neovanglist] too much BS [00:37] [Neovanglist] it needs to work together [00:37] [Neovanglist] without hacks [00:37] basically a large env variable changer hehe [00:38] [Neovanglist] in some ways [00:38] [Neovanglist] more like an intergrated environment [00:38] [Neovanglist] think about it tho [00:38] [Neovanglist] the more you look at it [00:38] [Neovanglist] the more obivious it seems that X, and the rest of how we know *nix today [00:38] [Neovanglist] are just hacks that got blown out of porportion [00:38] [Neovanglist] X was just an experiment, never designed to be a true solution to the problem [00:39] [Neovanglist] I mean it has to stack itself ontop of the console [00:39] Usually thats the case though [00:39] [Neovanglist] well, it's time to clean things up in my opinion [00:39] I haven't studied fresco on that subject [00:39] [Neovanglist] a great example of this is that you can't alt+F(whatever) from console to console while in X [00:39] [Neovanglist] had it been implimented correctly [00:39] [Neovanglist] it would have been a part of the system/console [00:39] [Neovanglist] and it wouldn't matter [00:40] [Neovanglist] if it ran in a terminal, you should still be able to go from term to term [00:40] these are complaints about X, not really BSD [00:40] [Neovanglist] well [00:40] [Neovanglist] I'm using X as an example [00:40] [Neovanglist] most things are like this [00:40] [Neovanglist] the way *nix functions in general is like this [00:40] [Neovanglist] it's just time to tie it all together and straighten it out [00:41] Fresco is a consistent, configurable, stand alone, modular, and device independent user interface system, [00:41] http://www.fresco.org/architecture.html [00:42] so, in the end, you want your graphics device to speak on an independent device [00:42] [Neovanglist] right [00:43] so you can alt+ [00:43] [Neovanglist] to be a part of the system [00:43] i see [00:43] [Neovanglist] not just a object on top of the system [00:43] [Neovanglist] plus [00:43] [Neovanglist] I want to make it so that it really is usable [00:43] [Neovanglist] so that humans can run it [00:43] [Neovanglist] to be the real "next-gen" os [00:43] [Neovanglist] and to be open source to boot [00:43] hrmm [00:43] [Neovanglist] here is the thing [00:43] [Neovanglist] if we can suceed at this [00:43] [Neovanglist] the age of MS and etc will be over [00:43] [Neovanglist] if we can make the next-gen os [00:44] [Neovanglist] they won't be able to compete commercialy [00:44] * minddog believes the age of MS is just about over [00:44] [Neovanglist] people will switch over, buisness, etc [00:44] [Neovanglist] because it's a better product [00:44] this on the otherhand will blow gnome/kde out of the water [00:44] [Neovanglist] no, not really [00:44] their entire architecture depends on an Xserver [00:44] [Neovanglist] they will just change to meet the trend [00:45] [Neovanglist] it will reshape the community for the better [00:45] [Neovanglist] let them build on a foundation of steel instead of a foundation of sand [00:45] hrmm, what else are you thinking about [00:45] how about your filesystem management [00:45] are you going to do the mac thing ;) [00:46] * minddog thinks seperating the user from the file system is best [00:46] [Neovanglist] well, I like the idea of journaling for one [00:46] [Neovanglist] second, I'm not a filesystem expert [00:46] [Neovanglist] so thats not really my ballpark [00:46] from the user standpoint [00:46] [Neovanglist] well [00:46] the user should not know what root or what libraries are [00:46] they should see only the applications they installed [00:46] [Neovanglist] here is how I see it [00:47] and the files they saved [00:47] [Neovanglist] I think the user should be able to get to everything if he/she chooses [00:47] [Neovanglist] but, if they are just a standard user [00:47] [Neovanglist] who doesn't want to see all that [00:47] [Neovanglist] then don't show it to them [00:48] well i think combining the same unix-style user permissions is fine [00:48] if they want to interact directly with a filesystem [00:48] [Neovanglist] yea, I agree [00:48] they have an fs agent (some type of gui) [00:49] otherwise they would have a management agent(another gui) for their applications [00:49] [Neovanglist] right [00:49] when they install an application/compile it will do some sort of registration to the management agent [00:49] the perfect o/s will compile and install and manage the application from a point and click ;) [00:50] [Neovanglist] right [00:50] [Neovanglist] and I plan to use XML for that [00:50] [Neovanglist] inspired by apple [00:50] [Neovanglist] one big thing is visualation [00:50] i'm a very XML kinda guy [00:50] [Neovanglist] users need to be able to "see" their dependancy tree [00:50] yup [00:50] [Neovanglist] in terms they can understand [00:50] [Neovanglist] and more importantly [00:50] [Neovanglist] what they can see it with [00:50] debian's system works pretty well [00:51] although i think gentoo does it best [00:51] [Neovanglist] they should be able to use effectivly to make it do what they want [00:51] [Neovanglist] part of LainAM is to make a universtal install wrapper [00:51] [Neovanglist] so that when somebody downloads a rpm, or a src.tar.gz, or etc it'll detect it [00:51] [Neovanglist] and say "hey do you want to install this?" [00:52] [Neovanglist] then provide an install-shied type install system to it [00:52] [Neovanglist] so they can select paths, etc [00:52] [Neovanglist] also, to provide good clean uninstall support [00:52] i think management of installations should be set once [00:52] and only once [00:52] [Neovanglist] which would be helped by asking the user if they want to install as a program or a dependancy [00:52] [Neovanglist] well, why not let the user decide? [00:53] [Neovanglist] if they want to set it every time let them [00:53] [Neovanglist] if not, then don't [00:53] well he can, but seperate from the time he installs [00:53] heres what i think [00:53] (Install Preferences GUI) User can create installation types and where they should go [00:54] [Neovanglist] ahh [00:54] User creates a "Network" Type installation to install over nfs [00:54] [Neovanglist] like prorgam type groups? [00:54] done. [00:54] [Neovanglist] like ok, this is X type of progy remember this [00:54] user downloads irssi.tar.gz and install [00:54] [Neovanglist] put it here [00:54] [Neovanglist] yea, I see what you mean [00:54] [Neovanglist] good idea [00:54] he selects network type from the pulldown [00:54] the program is installed on the nfs [00:54] [Neovanglist] ahh [00:55] [Neovanglist] I like it [00:55] so when the Application Manager is opened, it checks the "network" type applications to see if the wire is live and shows those icons [00:55] [Neovanglist] woah, I got an idea [00:55] [Neovanglist] this is somewhat unrelated but consider this [00:55] this is all based on another abstraction layer for the user [00:55] sure lets hear it [00:56] [Neovanglist] each user, when they log in, is logging into a interal NFS type system. It appears as if it's entirly HIS computer, but it's not, it's a shared, multi-user computer [00:56] [Neovanglist] he can change/do anything he/she wants [00:56] [Neovanglist] but [00:56] [Neovanglist] it won't effect other users [00:56] [Neovanglist] because his "system" is on a higher, virtual layer [00:56] yeah no problem [00:56] exactly [00:56] [Neovanglist] at the root level [00:56] Sys FS -> User FS mapping you could say [00:56] [Neovanglist] you will see things like XF86Config.todd, and .jane, and etc [00:57] [Neovanglist] for all the files that are different for that user [00:57] Kernel Mode/User Mode [00:57] [Neovanglist] right [00:57] [Neovanglist] and that kernel/user mode will float right up with the UI server, and etc [00:57] hrmm i'd stick with /home/user [00:57] but they won't see that [00:57] [Neovanglist] well here is the thing [00:57] [Neovanglist] if it's a virtual user fs [00:57] [Neovanglist] they will think they see the whole system [00:57] [Neovanglist] just as if they were root [00:57] [Neovanglist] but they are really seeing their "version" of it [00:58] [Neovanglist] so they really do have total system control [00:58] [Neovanglist] but [00:58] [Neovanglist] they're system control [00:58] [Neovanglist] will not effect other users [00:58] [Neovanglist] imagine the thin client possibilities [00:58] they can't interact with devices like root though [00:58] [Neovanglist] not unless they are privilidged to, but in any case they will be operating at a root level [00:58] [Neovanglist] just in their virual system [00:58] [Neovanglist] if a big server is set up [00:59] wheel needs to go, use sudoers for that [00:59] [Neovanglist] each user has a thin client and a virtual system on that server [00:59] yes [00:59] [Neovanglist] they have an entire system fs [00:59] [Neovanglist] that they can do anything with [00:59] [Neovanglist] even install apps like they are root [00:59] [Neovanglist] but [00:59] [Neovanglist] it's roon on their virtual fs/system [00:59] [Neovanglist] *root [01:00] [Neovanglist] see, isn't this whole project exciting? it allows for blue sky ideals on every aspect of computing [01:00] yup =) [01:00] [Neovanglist] if it's ok with you [01:00] [Neovanglist] I'm gonna post this log on the #LainOS site under the docs [01:00] hehe [01:00] [Neovanglist] I like to give my followers stuff to feed on [01:01] [Neovanglist] so they can better grasp the project vision [01:01] keep one thing in mind [01:01] GNU is like an army that needs food [01:01] you feed it, they'll fight for you [01:01] [Neovanglist] yup [01:01] thats the reason why linux is on top right now [01:02] [Neovanglist] in my opinion [01:02] [Neovanglist] the lines between BSD and Linux are going to blend [01:02] yes, we're already merging [01:02] [Neovanglist] it's going to become one ideal os based on a fusion of concepts for both [01:02] [Neovanglist] thats just the nature of Open Source [01:03] [Neovanglist] here is one thing about this project [01:03] [Neovanglist] even if it doesn't find completion [01:03] [Neovanglist] the research and ideals it generates [01:03] [Neovanglist] will be valuable resources for the future [01:03] hrmm [01:03] [Neovanglist] a reference on possibilites and improvements [01:03] Have you introduced yourself to the DotGNU community yet? [01:04] [Neovanglist] nope [01:04] Your ideas would be welcomed [01:04] We have some interesting projects [01:04] [Neovanglist] I'd love to get involved [01:04] [Neovanglist] do you have a url? [01:04] http://www.dotgnu.org [01:04] the portable.net project has been my focus for a number of months now [01:05] but i'm doing some hacking on our dgee project lately [01:05] we are having a meeting in 2 hours [01:05] on freenode [01:05] in #dotgnu, so if you'd like to listen in [01:06] [Neovanglist] I"m there [01:06] [Neovanglist] I'll be there in about an hour, I have a few things to do first [01:06] sure [01:06] good talking [01:06] [Neovanglist] yea, totally [01:07] [Neovanglist] will you be following the LainOS project in the future? [01:07] yes, very interested [01:07] [Neovanglist] cool [01:07] * minddog looks for mailing list [01:07] [Neovanglist] I need to set one up [01:07] [Neovanglist] I may do that tommorw [01:07] [Neovanglist] we have a meeting tommorw [01:07] [Neovanglist] check the site [01:07] [Neovanglist] it's listed there [01:07] [Neovanglist] I need to update it tonight aswell [01:07] [Neovanglist] I'll do it after the .gnu meeting [01:08] okay 7pm, sounds good