Coding Experiments: LainOS - the nExt generation of UNIX. Click to Return to the Home Page Picture of Lain Courtesy of Triangle Staff / Pioneer LDC.


Discussion with Minddog - An Introduction to LainOS
May 2nd, 2003
Profile: Webservices leader, and active System.Xml maintainer for the DotGNU project.

Printer Friendly Version

[00:22] <minddog> our project was trashed a year ago, now we're picking it up from the ground and working with more focus
[00:22] <minddog> basically we tweak the freebsd libraries to a point where they are GNU compliant
[00:22] <minddog> then we hack on the kernel
[00:22] [Neovanglist] I see
[00:22] [Neovanglist] cool
[00:23] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> i see
[00:26] <minddog> 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] <minddog> lol
[00:26] [Neovanglist] *it
[00:26] [Neovanglist] one, no taskbar
[00:26] [Neovanglist] two, a full 3d environment
[00:27] <minddog> 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] <minddog> 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] <minddog> I have to ask, i'm a GNU evangelist ;)
[00:28] <minddog> 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] <minddog> Here's just a small suggestion
[00:29] [Neovanglist] BSD is a very very open liscense
[00:29] <minddog> GPL your UI stuff and make it very modular
[00:30] [Neovanglist] in what way?
[00:30] <minddog> 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] <minddog> i'd say a libgdk equiv
[00:30] [Neovanglist] to be cross-platform compliant
[00:30] <minddog> great!
[00:30] [Neovanglist] they should compile out of box on most linux/bsds
[00:30] <minddog> I'm excited =)
[00:30] [Neovanglist] any other platform will be taken up by interested users
[00:31] <minddog> 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] <minddog> yeah
[00:32] [Neovanglist] which it is very VERY good at
[00:32] <minddog> 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] <minddog> rofl
[00:33] [Neovanglist] *yes they are different*
[00:33] * minddog is definitely not an engineer
[00:34] <minddog> 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] <minddog> hehe
[00:34] [Neovanglist] now
[00:35] [Neovanglist] LainOS expects to clean up what is long past due
[00:35] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> Usually thats the case though
[00:39] [Neovanglist] well, it's time to clean things up in my opinion
[00:39] <minddog> 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] <minddog> 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] <minddog> Fresco is a consistent, configurable, stand alone, modular, and device independent user interface system,
[00:41] <minddog>
[00:42] <minddog> so, in the end, you want your graphics device to speak on an independent device
[00:42] [Neovanglist] right
[00:43] <minddog> so you can alt+<graphical>
[00:43] [Neovanglist] to be a part of the system
[00:43] <minddog> 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] <minddog> 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] <minddog> this on the otherhand will blow gnome/kde out of the water
[00:44] [Neovanglist] no, not really
[00:44] <minddog> 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] <minddog> hrmm, what else are you thinking about
[00:45] <minddog> how about your filesystem management
[00:45] <minddog> 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] <minddog> from the user standpoint
[00:46] [Neovanglist] well
[00:46] <minddog> the user should not know what root or what libraries are
[00:46] <minddog> they should see only the applications they installed
[00:46] [Neovanglist] here is how I see it
[00:47] <minddog> 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] <minddog> well i think combining the same unix-style user permissions is fine
[00:48] <minddog> if they want to interact directly with a filesystem
[00:48] [Neovanglist] yea, I agree
[00:48] <minddog> they have an fs agent (some type of gui)
[00:49] <minddog> otherwise they would have a management agent(another gui) for their applications
[00:49] [Neovanglist] right
[00:49] <minddog> when they install an application/compile it will do some sort of registration to the management agent
[00:49] <minddog> 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] <minddog> i'm a very XML kinda guy
[00:50] [Neovanglist] users need to be able to "see" their dependancy tree
[00:50] <minddog> 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] <minddog> debian's system works pretty well
[00:51] <minddog> 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] <minddog> i think management of installations should be set once
[00:52] <minddog> 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] <minddog> well he can, but seperate from the time he installs
[00:53] <minddog> heres what i think
[00:53] <minddog> (Install Preferences GUI) User can create installation types and where they should go
[00:54] [Neovanglist] ahh
[00:54] <minddog> User creates a "Network" Type installation to install over nfs
[00:54] [Neovanglist] like prorgam type groups?
[00:54] <minddog> done.
[00:54] [Neovanglist] like ok, this is X type of progy remember this
[00:54] <minddog> 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] <minddog> he selects network type from the pulldown
[00:54] <minddog> the program is installed on the nfs
[00:54] [Neovanglist] ahh
[00:55] [Neovanglist] I like it
[00:55] <minddog> 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] <minddog> this is all based on another abstraction layer for the user
[00:55] <minddog> 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] <minddog> yeah no problem
[00:56] <minddog> exactly
[00:56] [Neovanglist] at the root level
[00:56] <minddog> 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] <minddog> 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] <minddog> hrmm i'd stick with /home/user
[00:57] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> 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] <minddog> keep one thing in mind
[01:01] <minddog> GNU is like an army that needs food
[01:01] <minddog> you feed it, they'll fight for you
[01:01] [Neovanglist] yup
[01:01] <minddog> 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] <minddog> 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] <minddog> hrmm
[01:03] [Neovanglist] a reference on possibilites and improvements
[01:03] <minddog> Have you introduced yourself to the DotGNU community yet?
[01:04] [Neovanglist] nope
[01:04] <minddog> Your ideas would be welcomed
[01:04] <minddog> We have some interesting projects
[01:04] [Neovanglist] I'd love to get involved
[01:04] [Neovanglist] do you have a url?
[01:04] <minddog>
[01:04] <minddog> the project has been my focus for a number of months now
[01:05] <minddog> but i'm doing some hacking on our dgee project lately
[01:05] <minddog> we are having a meeting in 2 hours
[01:05] <minddog> on freenode
[01:05] <minddog> 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] <minddog> sure
[01:06] <minddog> good talking
[01:06] [Neovanglist] yea, totally
[01:07] [Neovanglist] will you be following the LainOS project in the future?
[01:07] <minddog> 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] <minddog> okay 7pm, sounds good