< 1176508956 0 :crathman_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1176509051 0 :bsmntbombdood!n=gavin@adsl-76-201-191-162.dsl.milwwi.sbcglobal.net JOIN :#esoteric < 1176509194 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nevermind, found it. < 1176509200 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Package browser; imagine that. < 1176509991 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1176510780 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is *attempting* to get his distro up and running < 1176511054 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And failing horribly. < 1176511687 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176512110 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1176512316 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm writing a farming roguelike. < 1176512330 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(After spending 3 hours reading about magnetism/electricity.) < 1176512436 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you mean the hero is a farmer < 1176512437 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :? < 1176512471 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :No, it's a roguelike with inspiration from Harvest Moon. < 1176512471 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Concept: < 1176512471 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Are you going to farm magnetic carrots? < 1176512595 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The Glorious Empire is waging war against the Evil Enemies of the Empire. The Empire has given a call to all of its citizens to help with the Empire's Exploits. Rather than taking to the frontlines, you have decided to help your Empire in the other way -- to farm. Each and every crop you harvest is distributed out to the Citizens and the Empire compensates your efforts. To aid your effort, the Empire allows you to purchase Indentured < 1176512595 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Servants (prisoners of the Glorious War) to help out on the farm. In order to prove your worth to the Empire, you must successfully set up your own empire of farms. < 1176512623 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that does not sound like a roguelike. < 1176512632 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It does now, bub. < 1176512732 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :To further aid your exploits, Magical Engineers constantly perform research on technological Improvements. Of course, Research is accelerated with Donations. Use your money effectively to purchase Indentured Servants and place skillful Donations for the benefit of the Empire. < 1176512762 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that sounds very much like an economic simulation and not at all like a roguelike. < 1176512776 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But it's being done in curses. < 1176512780 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so? < 1176512786 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So. < 1176512793 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's just the interface < 1176512797 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anything can be done in curses < 1176512801 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Except that you actually interactively farm. < 1176512818 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Until you hire the indentured servants you need, of course.) < 1176512834 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Then you purchase another farm off struggling farmers.) < 1176513107 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :OH OH OH < 1176513110 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'll help. < 1176513121 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...you could make it online... and turn it into a MUD. :) < 1176513148 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION already has a big partially complete python library for MUDs < 1176513286 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We're abandoning Abrasax, aren't we? < 1176513288 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Count me in! < 1176513346 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...eh, it's possible/likely. < 1176513760 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176513913 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, eh.. but I'll try not to be cynical. < 1176513926 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm? < 1176513984 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I think we'll be able to do Abrasax as long as we're willing to put in some work. < 1176514010 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :all else fails... we can go with the power of numbers and join up with an existing OS project that might be having problems. < 1176514012 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Indeed we will. < 1176514146 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is looking for a public domain microkernel < 1176514269 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :No, not MUD. < 1176514456 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :if we need to make our own kernel... < 1176514463 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I say go with the minimalist of the minimal. < 1176514483 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :just a flimsy layer over the hardware... < 1176514506 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1176514599 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And then have an "upper kernel" handle permissions and such? < 1176514619 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :basically just like.... talking to the MMU and dispatching interupts... and maybe some other stuff. < 1176514637 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, eh... not necessarily. But yeah... basically just breaking down all the functions into different parts. < 1176514692 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Dividing into "lower kernel" and "upper kernel" doesn't really seem a bad idea. < 1176514734 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Have the lower kernel handle all the dirty work, and then the upper kernel can do it "cleanly" by calling the lower one? < 1176514775 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I was jsut thinking like.... a really small kernel... and then.... everything else in userville < 1176514848 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So the lower kernel's division of privileges goes no farther than "this program can do anything at all" vs. "this program can only talk to other programs"? < 1176515001 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...what? < 1176515037 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah... the security doesn't come till later. < 1176515165 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You mean the lower kernel doesn't have division of privileges at all? < 1176515208 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I can eat banannas? < 1176515211 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So, about Pascal. < 1176515285 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :no... it basically sends interupts off to other places... and manages memory. Privledges wouldn't even make sense there. < 1176515299 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sends interrupts off to other places and manages memory... < 1176515321 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So it's a library containing the OS's entry point? < 1176515331 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why not make a Forth OS? < 1176515345 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Non-interactive programming is for nubs. < 1176515410 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's interactive programming? < 1176515424 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it's just... the kernel. It just handles the most basic hardware stuff and delegates it to other software. < 1176515430 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :It's one huge... callback-thingy. < 1176515502 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Callback-thingy? < 1176515520 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's the most basic function of the operating system... to assign crap as callbacks. All other functionality emerges from that. < 1176515541 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So it provides some "system calls"? < 1176515651 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So you dismiss it to non-interactive just like that? < 1176515654 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You fiends. < 1176515663 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Interactive programming, like a REPL. < 1176515712 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :no no... not system calls... those aren't callbacks - they're simply subroutines because they're always present. < 1176515727 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Uggh, are you listening to me, you stupid piece of cake? :P < 1176515745 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you can't do anything with system calls if there's nothing around to call them. You can't create anything to call systems calls without having an input device < 1176515758 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yes you can. < 1176515763 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, THERE WILL BE NO INTERACTIVE. OUR OPERATING SYSTEM WILL BE LIKE A FRIDGID SEX PARTNER < 1176515771 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION things of a clock to control current. < 1176515874 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm probably thinking of the wrong side of the sex SevenInchBread. < 1176515999 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: subroutines? < 1176516006 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So it's like a library or module? < 1176516054 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Uggh, make it interactive. < 1176516075 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: what do you mean? < 1176516081 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Like, create a Forth-level interface to interrupts and just start building up the rest in Forth words. < 1176516117 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You only need to implement a stack, some way to fetch memory, and some way to store words, plus interrupt-based words. < 1176516123 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think we want "the rest" to be very modular and easy to do in any programming language. < 1176516144 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :In any non-REPL language :( < 1176516157 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You can compile to Forth words, you know? < 1176516198 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's REPL? < 1176516205 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Read-Eval-Print-Loop. < 1176516228 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, system calls are like a library... yes < 1176516276 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :http://www.amresearch.com/v6/ < 1176516278 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :<-- Read there. < 1176516288 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :basically I just want to kernel to do things like "oh cool... an interrupt! CONTEXT SWITCH POWERS ACTIVATE!" < 1176516308 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Compilers can compile to Forth words, which are basically supported by a barebones kernel. < 1176516334 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: you seem a little Forth-obsessed lately. < 1176516344 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Does it have closures, whatever they are? < 1176516345 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Well, you seem very non-interactive obsessed. < 1176516371 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: I... still don't get what you mean by "interactive". < 1176516381 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Have you never played with a Lisp or a Forth before? < 1176516395 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I've played with a Lisp or two. < 1176516436 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Play with gForth. It's an experience. < 1176516462 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176516465 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's just a prompt that lets you type in Forth words, which are then just looked up. < 1176516468 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...might want to check Sukoshi's fanatic-o-meter < 1176516489 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, so it's an.... interactive interpreter? < 1176516491 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It doesen't have to be *Forth*, but you seem to be gearing this for a non-interactive base. < 1176516497 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: Yes. Crazy isn't it? < 1176516515 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :A barebones microkernel drops you into that. OpenBoot does something similar. < 1176516515 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thought that was a common thing..... < 1176516519 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Suddenly, I want to combine Thue with something roughly Forth-like. < 1176516546 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I use python's shell interpreter all the time... it's nothing amazing. < 1176516561 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's sarcasm. < 1176516573 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Commands are taken from the left and executed. Any results are put back on the left. < 1176516578 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Plus Python's shell interpreter doesen't execute machine code directly. < 1176516592 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"Other" computation is done with Thue-like replacement rules. < 1176517884 0 :iano_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1176517926 0 :iano!i=me@sub26-46.member.dsl-only.net JOIN :#esoteric < 1176521566 0 :ihope!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176521731 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1176523085 0 :Sukoshi!unknown@unknown.invalid PART #esoteric :? < 1176524818 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1176527350 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1176529022 0 :Sukoshi!n=user@user-3cf843l.dsl.mindspring.com JOIN :#esoteric < 1176529113 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1176529657 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so < 1176529663 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :how do you run a process in the background again? < 1176529669 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :& < 1176529671 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like... in Linux distros < 1176529676 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... that doesn't seem to be working < 1176529685 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :is that on all linux distros? < 1176529695 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :& after the statement < 1176529750 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You said you used Pascal. < 1176529753 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that it must not read/write the shell std streams < 1176529758 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :once upon a time yes < 1176529767 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Do you think it is better than C? < 1176529772 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Sort of curious.) < 1176529945 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Uggh. Why doesen't Radio Shack give the Maximum Energy Product (or Magnetic Field) of their magnets? -_-'' < 1176530039 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, anyway to prevent that without... recompiling the program? < 1176530067 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, you use > and < to redirect I/O. < 1176530075 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, example? < 1176530089 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: ``ls > grep -i hi'' < 1176530091 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errrr < 1176530095 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ls | grep -i hi < 1176530111 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....what's the | < 1176530114 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... And that's not an example of IO rediirection .... < 1176530118 0 :GreaseMonkey!n=GreaseMo@222-154-158-199.jetstream.xtra.co.nz JOIN :#esoteric < 1176530123 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :| is the piping character. < 1176530133 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It pipes stdiout of the first application to stdin of the second. < 1176530144 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... how would I tell the program to redirect output to.... hmmmmm... /dev/null... or just nowhere < 1176530176 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, i have little opinion on C/Pascal, they both seem old to me, C's advantage is that it has enormous support and libraries. < 1176530177 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :For that you use > < 1176530194 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so.... dev/null > SomeApp? < 1176530199 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errr... < 1176530210 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SomeApp >/dev/null < 1176530210 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :``cat /dev/null | app'' < 1176530224 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :> redirects output to an FD. < 1176530232 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: ignore Sukoshi :) < 1176530241 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :.... -_-'' < 1176530282 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on a shell line, file for stdout. < 1176530306 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :a friend is complaining about the shell window for a server app being unable to close without shutting the whole thing down < 1176530311 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...and the ampersand isn't working < 1176530322 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It has to. < 1176530330 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.....well it's not < 1176530330 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :``xchat &,, < 1176530338 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*``xchat &'' < 1176530431 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, &>file takes both stdout and stderr, at least in bash < 1176530441 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Does the same in ZSH. < 1176530479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, the redirection may not be necessary for X commands. < 1176530491 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they rarely write to the terminal, I think. < 1176530518 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cannot check as i am on windows these days. < 1176530524 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :They do sometimes. < 1176530528 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: O_O < 1176530540 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :人殺し!!!! < 1176530540 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, errors i guess. < 1176530565 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just wants the shell window to go away without the MUD crashing < 1176530567 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except for ssh'ing to my old unix account. < 1176530572 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, like Firefox tells me (in Japanese, because I use that locale so my Japanese fonts are nice) that it can't find the 'hicolor' font every so often. < 1176530596 0 :Bigcheese!n=blah@adsl-152-212-115.asm.bellsouth.net JOIN :#esoteric < 1176530652 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh, i see. < 1176530676 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You can tell him to write a mini-app that creates a little GUI window that forks the input to a shell. < 1176530679 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think something more than background might be needed for that. < 1176530687 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my memory is hazy. < 1176530694 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What WM does he use? < 1176530741 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :WM? < 1176530841 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Window Manager .... < 1176530847 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I don't know. < 1176530932 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :..... < 1176530947 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... try the daemon command. < 1176530961 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :.... What command is that oerjan ? < 1176530975 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, it was a function < 1176530987 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my eyes skipped that part < 1176531042 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm? < 1176531093 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, have you tried "command &>/dev/null .> those all sound very... out of the way. < 1176531395 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :disown < 1176531401 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Isn't there just a way to make it work with &? < 1176531405 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Should I get a green fez? < 1176531410 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nohup < 1176531432 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah, nohup. < 1176531452 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i guess that's it. < 1176531519 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah, disown too. < 1176531957 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: maybe you could recolor your red fez picture to test... < 1176531982 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What about semi-purple fez? < 1176532137 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's fez? < 1176532210 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/hats/RedFez-med.jpg < 1176532308 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My red fez picture is a uniquely bad picture of me XP < 1176532309 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and that's GregorR unless he's fooling us. :) < 1176532401 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so not only do you need to recolor it, you also need to graft it onto another picture of you :) < 1176532443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_might_ be simpler to get a physical sample, then. < 1176532509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but then, a new picture of the red one seems in order. < 1176532625 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, I ordered it. < 1176532641 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll take a picture of me in my new green fez and then recolor that X-P < 1176532681 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I also ordered a tricorn. < 1176532717 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1176532837 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Mein Hut, es hat drei Ecken Drei Ecken hat mein Hut... < 1176532898 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :We have that saying, but in English. < 1176532906 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, saying == song lyric IIRC < 1176532915 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and in norwegian, but I think the German is original. < 1176533002 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :How is "drei" pronounced? < 1176533007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :somewhat disturbing that the google hits all spell it differently... < 1176533012 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1176533029 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: dry < 1176533038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :more or less < 1176533095 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unless austrian, the y should be shifted somewhat towards a < 1176533369 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :basically, the rules for pronouncing ie and ei in English and German are approximately opposite of each other. < 1176533457 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Noyce :-P < 1176533468 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :We can thank the Great Vowel Shift for that (probably) < 1176533509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i should think so. < 1176534028 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :we should all speak the same language < 1176534033 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :then build a tower to heaven < 1176534148 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :AND THAT LANGUAGE SHOULD BE ENGLISH < 1176534158 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :IF ENGLISH WAS GOOD ENOUGH FOR JESUS, IT'S GOOD ENOUGH FOR TEXAS < 1176534178 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :english is the language of god, because it's what the bible is written in < 1176534186 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Egg-zactly. < 1176534190 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :X-P < 1176534293 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and besides, the spelling of Hebrew seems to be even worse. < 1176534376 0 :iano!unknown@unknown.invalid QUIT : < 1176535054 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :doubtful < 1176535764 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i've read that beginners need to have vowel signs added, and it take years to be able to read anything without them. < 1176535784 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the former is true; the latter isn't < 1176535793 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you get used to it very quickly < 1176535829 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Same with hieroglyphs :P < 1176535902 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1176535962 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Why can't I find a good skimmer for under $100 X_X < 1176536056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :thank god for wikipedia disambiguation. < 1176536065 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :? < 1176536103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :allowing me to find out what "skimmer" may mean < 1176536137 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah :P < 1176536203 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although if it had been anyone but you i would _still_ not know :) < 1176536227 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, y'know, I want a sea bird. < 1176536327 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah yeah, and you have this nice bridge you have to sell. < 1176536414 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are skimmers handmade perhaps? < 1176536423 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I guess so. < 1176536443 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It used to be a very popular style of hat, but I presume they're no longer made en masse. < 1176536490 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lol hat < 1176536516 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as i said, if it had been anyone but GregorR... :) < 1176536537 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, I saw one at my usual online hat shop while looking for a tricorn. < 1176536543 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And it cost $112 O_O < 1176536554 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I googled, and they're all that expensive >_O < 1176537293 0 :nooga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176537599 0 :clog!unknown@unknown.invalid QUIT :ended < 1176537600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1176538890 0 :SevenInchBread!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1176540746 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :If soemone wants to buy me rare Earth magnets, they should. < 1176541024 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Funny, I was JUST having the compulsion to buy rare Earth magnets for somebody I barely know online! < 1176541554 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Just for these sorts of moments. < 1176541583 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Look, people in hormone-filled teenage chatrooms buy clothes for people they barely know. < 1176541607 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why can your hormones cloud you to the same level of idiocy? :( < 1176541621 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*can't < 1176541631 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I have no hormones. I am an android. < 1176541946 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey, at least Sukoshi is not asking for fissible substances :) < 1176542002 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Exactly. < 1176542378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but then, who knows what a denizen of #esoteric could do with a rare Earth magnet. < 1176542523 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It was for a generator, but I could think of more sinister things < 1176542524 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :. < 1176542573 0 :nooga!i=nooga@xdsl-6552.lubin.dialog.net.pl JOIN :#esoteric < 1176543903 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1176546409 0 :sebbu!n=sebbu@ADijon-152-1-49-208.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176546718 0 :sebbu2!n=sebbu@ADijon-152-1-81-169.w83-203.abo.wanadoo.fr JOIN :#esoteric < 1176546800 0 :sebbu3!n=sebbu@ADijon-152-1-63-92.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176547788 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176547995 0 :sebbu2!unknown@unknown.invalid QUIT :Connection timed out < 1176548392 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :gnight everone < 1176548549 0 :sebbu3!unknown@unknown.invalid QUIT :Connection timed out < 1176548579 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"My bot can beat up your bot. Wait, sorry, *I* can beat up your bot *through* my bot." < 1176548820 0 :jix__!n=jix@dyndsl-091-096-051-007.ewe-ip-backbone.de JOIN :#esoteric < 1176548864 0 :Sukoshi!unknown@unknown.invalid PART #esoteric :? < 1176549090 0 :sebbu!n=sebbu@ADijon-152-1-111-160.w86-218.abo.wanadoo.fr JOIN :#esoteric < 1176549642 0 :nazgjunk!unknown@unknown.invalid QUIT :"Bi-la Kaifa" < 1176549933 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1176552504 0 :sebbu3!n=sebbu@ADijon-152-1-59-135.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176553608 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1176554273 0 :sebbu!n=sebbu@ADijon-152-1-28-122.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176554392 0 :sebbu2!n=sebbu@ADijon-152-1-99-229.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1176555459 0 :sebbu3!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176555575 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1176556466 0 :sebbu2!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176556776 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1176557199 0 :sebbu!n=sebbu@ADijon-152-1-34-242.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176558161 0 :jix__!unknown@unknown.invalid NICK :jix < 1176559790 0 :sebbu2!n=sebbu@ADijon-152-1-54-219.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1176559852 0 :sebbu3!n=sebbu@ADijon-152-1-100-167.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1176560976 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176561105 0 :sebbu2!unknown@unknown.invalid QUIT :Connection timed out < 1176561150 0 :sebbu3!unknown@unknown.invalid QUIT :Connection timed out < 1176562082 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1176567446 0 :sebbu!n=sebbu@ADijon-152-1-89-22.w81-49.abo.wanadoo.fr JOIN :#esoteric < 1176573402 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You know, if I want to write a kernel, I'm really going to have to learn more about x86. < 1176575100 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or write for a different architecture. < 1176575148 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I hear that linux-linux-gnu makes for a useful one (Linux runs on it, at least). :p < 1176575593 0 :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1176575704 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176575738 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, hmmm < 1176575772 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pikhq: linux-linux-gnu? < 1176575794 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the basic kernel should basically just... take hardware interupts and place them on a queue that can be accessed by like... a hardware-dispatch process of some kind < 1176575871 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Still sounds like a kernel library/module. < 1176575874 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I see privledges being arbitrary flags that can be set on processes. < 1176575902 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :they don't do anything on their own... other stuff just needs to check to see if certain flags are set. < 1176576037 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Yes: GNU/Linux running on Linux. < 1176576047 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(AKA Usermode Linux) < 1176576118 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm.... the kernel could also handle system call interupts.... it would handle some of the memory allocation calls... but most of the other ones would be delegated to some userland process < 1176576140 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Would it also handle processes? < 1176576157 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The kernel, I mean? < 1176576175 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :processes are basically just bits of code attached to interupts... and since the kernel will be handling interupts... probably. < 1176576180 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :at least at the most basically level < 1176576193 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bits of code attached to interrupts? < 1176576204 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So they're subroutines run whenever you get an interrupt? < 1176576220 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it won't -schedule- the processes or anything... it'll just provide the operations for moving them around in memory. < 1176576245 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-nod- that's what interupts do. They're kind of like exceptions in the programming language universe. < 1176576257 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So what does schedule the processes? < 1176576259 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :except most of them have nothing to do with errors < 1176576269 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :a process. :) < 1176576316 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :paradoxical, no? But definetely possible. < 1176576358 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION scribbles all over SevenInchBread < 1176576385 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How about the kernel handles process scheduling, memory, and system calls, and then there aren't very many system calls? < 1176576407 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And maybe interrupts too. < 1176576425 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it would impossible to do the operating system if the kernel didn't handle interupts. < 1176576449 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :they're part of the hardware < 1176576453 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :(some of them) < 1176576506 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I want the kernel only what it needs to do - which is interupts and memory. < 1176576512 0 :calamari!unknown@unknown.invalid QUIT :Remote closed the connection < 1176576532 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176576532 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1176576555 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So it handles interrupts and contains the instructions for a couple system calls? < 1176576569 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And the rest is left up to the "upper kernel"? < 1176576574 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... the system calls will be in kernel land. < 1176576581 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... yes < 1176576621 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesnt't like the "upper kernel" terminology... but whatever. The "upper kernel" is basically a bunch of processes < 1176576632 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Try just 'userspace'. < 1176576645 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is what every other microkernel calls it. < 1176576648 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So process scheduling and system calls will be handled by processes... < 1176576664 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pikhq: what every other microkernel calls what? < 1176576677 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ihope: The set of processes which support the rest of the system. < 1176576684 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well.... system calls are interupts... which go to the kernel... which then triggers some other process < 1176576702 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: hmm... < 1176576714 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Could be done. < 1176576736 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's basically what makes a microkernel a microkernel.... it doesn't handle all the system calls < 1176576885 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... once the kernel receives a system call interupt... I think it should delegate to call to a list of programs that have associated themselves with the system call which get executed in some order of priority.... that way you can redefine the system calls any way you want. < 1176576913 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: A microkernel is a kernel design where almost everything is handled by userspace processes. < 1176576919 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1176576988 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Usually, a microkernel *will* handle all the system calls. . . The thing being, they have very, very few system calls (usually just things like exec(char *); and send_message(pid_t);). < 1176576991 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What would you call a kernel that handles all the system calls but whose system calls are pretty basic? < 1176577003 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That would be a microkernel. < 1176577022 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That would be the usual form of a microkernel, in fact. < 1176577027 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :when we design the microkernel... we just need to make it as general as possible. Don't worry about the specifics... the microkernel should be pluggable into any kind of OS design. < 1176577040 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Execute process and send message, eh? < 1176577052 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How would things like hardware interaction be done? < 1176577070 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :interupts < 1176577087 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :which get put on like... a "hardware signal" queue or whatever < 1176577095 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Depends upon the kernel. . . Mach, at least, provides a very, very basic interface to hardware via syscalls. Mach, though, is rather monolithic for a microkernel. . . < 1176577096 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And how do you make sure not every process can interact with all hardware? < 1176577108 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and a system call for checking out recent hardware signals < 1176577125 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pikhq: GNU Mach? < 1176577140 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ihope: All the Mach variants, including GNU Mach. < 1176577141 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh. The Mach microkernel. < 1176577155 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(they all come from the same original project) < 1176577185 0 :Pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*GNU* Mach's hardware interface is a subset of the Linux module API. . . < 1176577246 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, don't need to worry about that till other stuff. I don't think the microkernel itself needs to worry about privledges < 1176577272 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it does however... need an interface to allow other crap to worry about privledges for it. < 1176577304 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So under the exec and send_message thing, does the kernel handle processes? < 1176577323 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If so, surely some processes have permission to do things that other processes don't have the permission to do. < 1176577344 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets out his list of system calls < 1176577413 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah.... you'll probably have to get used to me not worry about permissions at all.... since I don't really care about them either way. < 1176577419 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*worrting < 1176577424 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*worrying < 1176577502 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Enter supervisor mode, switch to other process, end time slice, add permission to process, remove permission from process, check process for permission, invoke service, register service, unregister service, grab service, allocate memory, deallocate memory... < 1176577530 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and create process. < 1176577556 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That and some ways of interacting with process scheduling should do it. < 1176577559 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....probably don't need all of those < 1176577583 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Get process permissions, set process permissions instead of those fancy ways of doing things? < 1176577594 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1176577601 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I'd X out the permission stuff, the service stuff, aaaand... the switch-to-other-process... since you don't need it because of interupts < 1176577624 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Switch-to-other-process can be done with interrupts? < 1176577637 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....that's -always- how processes are switched < 1176577668 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The process invokes a certain interrupt which switches to the other process without help from the kernel? < 1176577699 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :no... the kernel handles the interupts. So it's like a system call in certain regards < 1176577727 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the difference is kind of trivial anyways. system calls are interupts too < 1176577758 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, if we want to be able to switch to another process manually, what ways are there of doing that besides a system call? < 1176577784 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I don't know. < 1176577844 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So system calls are needed? < 1176577864 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :......of course they are. < 1176577873 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Needed for manual process switching, I mean. < 1176577923 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so.... alloc, deloc, talk, waik, and some sort of check-hardware system call(s) < 1176577929 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*wait < 1176577950 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The permission stuff is needed unless you want almost all permission stuff to be handled by another process, which means system calls being handled by another process. < 1176577957 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you don't need enter supervisor mode... I don't think. < 1176577979 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You don't need to let processes enter supervisor mode if you provide some other way of accessing hardware. < 1176578004 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :wrong... the kernel handles system calls... however it can still let another process check permissions for it < 1176578025 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is that in response to what I just said about hardware? < 1176578039 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Well, no, obviously not. < 1176578040 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :no.. the permission response < 1176578053 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you're right about the supervisor mode thing... < 1176578057 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The kernel can indeed handle system calls, but it would need another process to do the permission thing. < 1176578076 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess I can't argue either way about that. < 1176578100 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Except that you still need some level of permissions in the kernel, even if it's just an omnipotence flag. < 1176578118 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Services are for inter-process communication. How else are you going to do that? < 1176578149 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well... I guess you could share memory. < 1176578152 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :services are names... set to processes. Not too terribly kernel-required < 1176578183 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What else is going to handle them? < 1176578192 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...guess. :) < 1176578200 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How else will a process send a message to the process that handles them? < 1176578239 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Will it send a message to the process telling it to send a message to itself? < 1176578308 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you lost me. < 1176578314 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How else will a process send a message to the process that handles them? < 1176578320 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That handles messages, I mean. < 1176578400 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-cough- well, if you gave processes names.... < 1176578453 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And what handles those names? The kernel? < 1176578476 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1176578538 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Can you think of a way it could be otherwise? < 1176578539 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :makes sense to me < 1176578576 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :either that... or you could just have a process that handles "services" < 1176578629 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If names are handled by the kernel, and you let processes have multiple names, and then call the names services... < 1176578663 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION scratches "grab service" < 1176578705 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION refuses to call anything "sevice"... through sheet pig-headed dislike of the word. < 1176578710 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :*sheer < 1176578769 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How about calling them interfaces, then? < 1176578791 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....reminds me of OO. even worse than service < 1176578794 0 :nooga!unknown@unknown.invalid QUIT :"Lost terminal" < 1176578799 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I like "names". < 1176578863 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hey, that's a good idea! < 1176578905 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :or if we want to sound more intellectual... we can go with "memes" < 1176578923 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Why would we do that? < 1176578939 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :same reason we'd call it any other name < 1176578942 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders... < 1176578947 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How about we call them vistas? < 1176578951 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or windows? < 1176578964 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1176578968 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :buttons? < 1176578977 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-ahem- NAMES IT IS < 1176578977 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Calling them names sounds fine. < 1176579013 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So have we concluded that "invoke name, register name, unregister name" are kernel-worthy? < 1176579050 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not sure about invoke name... isn't that the same as switch-process? < 1176579103 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1176579106 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :here's an idea < 1176579119 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Invoke name sends stuff to a process, switch switches to that process so it can handle the stuff. < 1176579124 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And what's your idea? < 1176579132 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :permissions.... can be a set of programs that must return a success for a certain program. < 1176579139 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and "flags" can be a totally different concept. < 1176579153 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so a permission becomes a more like a check. < 1176579230 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Permissions can be handled by having every process without the "omnipotent" flag invoke a name and switch instead of actually doing the system call. < 1176579280 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... invoke("canRead", 5, some/file) ...which shoots off a series of processes that either exit with success or failure < 1176579308 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :these processes could in turn.... do things like invoke("has flag", 5) ...and fail or succeed bassed on that < 1176579314 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Why shoot off a series of processes when you can just invoke one name? < 1176579328 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :One name which handles everything else? < 1176579329 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :"canRead" is that one name. < 1176579336 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :one ring to rule them all? < 1176579383 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah... canRead can be registered to one process... which handles all the other processes... or whatever < 1176579418 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yup, sounds good. < 1176579421 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but yeah... my basic idea is to have flags... for putting values on processes and files.... but with a "permission check" being an operation that checks a number of registered processes for a success or failure < 1176579444 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so you could expand or decrease the meaning of certain permission checks < 1176579463 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Would this be part of the kernel? < 1176579469 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hehe, sorry, just finding any possible way to add potential play-around-ability. < 1176579497 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not really... the only part that's a system call would be the invoke-name part < 1176579506 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If not, you've nicely reduced the permission system calls to "get omnipotence flag" and "set omnipotence flag". < 1176579527 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> why do we need that again? < 1176579563 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Enter supervisor mode, create process, switch to other process, end time slice, get omnipotence flag, set omnipotence flag, invoke name, register name, unregister name, allocate memory, deallocate memory, create process? < 1176579575 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: so that we can control the omnipotence flag? < 1176579590 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :can't we do that like we do the rest of the flags? < 1176579602 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :invoke("hasflag", 5, "omnipotence") < 1176579633 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is the kernel going to invoke a process in order to determine whether a process is omnipotent? < 1176579644 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sounds easier to just have a flag for it. < 1176579662 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> makes sense to me. why do we need an omnipotence flag though? < 1176579702 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Do you want to make all processes omnipotent? < 1176579712 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....what the hell does that even mean? < 1176579726 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Do away with permissions completely and let any process do anything. < 1176579793 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-shrug- sounds like we could integrate that into the rest of the permissions stuff.... < 1176579844 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, the "big permission handler process" checks for permission and then makes the call, right? < 1176579873 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not really... < 1176579874 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If we try to integrate that into the rest of the permission stuff, the call that the BPHP makes has to go through the BPHP. < 1176579877 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Not really? < 1176579884 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I was saying the permissions can be just like servies < 1176579891 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How? < 1176579893 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that execute a number of programs... to check for a certain condition. < 1176579901 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like this < 1176579917 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :invoke("canread", 5, some/file) < 1176579987 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You mean the process says "yes" or "no" instead of making the call itself? < 1176579996 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and then the canread process executes a number of other programs that have been configured to it... the default one being something like invoke("hasflag", some/file, "readable") < 1176579999 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :or something similar. < 1176580007 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah... it just returns a success value < 1176580016 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That could work. < 1176580016 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...most likely as an exit code < 1176580036 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's all a permission is... a yes or a no < 1176580066 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :what the permission allows control of... is entirely dependent on when and where it is being checked < 1176580146 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...it also gives you the option to make your own permissions... and use them as you please. < 1176580147 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, we may not want the process to have to exit every time it has to give a yes/no answer. < 1176580189 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Maybe we could have an "allow/deny" system call. < 1176580196 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :that's true... I've been thinking of ways to give processes the ability to send replies to specific requests... instead of spitting out its answers to a single queue... < 1176580216 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so it can just send 0 or 1 back to a request message < 1176580222 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :as a reply < 1176580286 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Actually, "allow/deny/sdeny", sdeny denying the request but not telling the process that it's been denied. < 1176580305 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... I don't see how those fit in as syscalls < 1176580331 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I like just having permissions as names < 1176580333 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric : Maybe we could have an "allow/deny" system call. < 1176580345 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and use the invoke-name call to ask permissions < 1176580367 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1176580373 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I mean.. I don't see how allow/deny makes any sense as syscalls < 1176580391 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric : that's true... I've been thinking of ways to give processes the ability to send replies to specific requests... instead of spitting out its answers to a single queue... < 1176580402 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :allow/deny/sdeny is how you send the reply. < 1176580418 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :no no... I mean... generic replies... not just allow or deny < 1176580444 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Maybe plain old allow/deny, and make the BPHP tell the process the result of the system call? < 1176580466 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like... if A send "ls" to B... then B will receive the message in its message box... and then be able to reply to that message with "hello \n world \n" < 1176580483 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it would be a IPC thing... < 1176580496 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That's what I've been saying. < 1176580528 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :to reply to a paticular message... < 1176580544 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A makes the system call, B gets it, B allows or denies it, B sends the result back to A. < 1176580565 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We also need to be able to set an active/inactive flag on processes to make sure that they don't check the result of a system call before there is a result. < 1176580565 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ls isn't a system call though < 1176580592 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is what you said related to handling permissions, then? < 1176580608 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you can handle that with polling... and a "waitreply" ability (not necessarily a system call... but an option in the IPC api) < 1176580617 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it is.. in a way. < 1176580639 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I mean... the reply thing will be used to answer permission requests... but that's not its specific purpose. < 1176580644 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'm starting to confuse myeslf. < 1176580686 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so "calling" a process is a combination of sending a message and then immediately waiting for its reply. < 1176580708 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Let's pick up on this later, shall we? < 1176580710 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not sure if the kernel should be responsible for replies though.... < 1176580712 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :sure. < 1176580870 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will get a shower and then be back < 1176581406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's it called in math when something is part of a group or whatever they're called in math? < 1176581423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like x E R with a cool-looking e & r < 1176581509 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: being an element of a set? < 1176581514 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or a member of a set. < 1176581581 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The set containment symbol in Unicode is ELEMENT OF, or U+2208.\ < 1176581610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, set < 1176581653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does the 'set containment symbol' have a _more official sounding_ name? < 1176581919 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I don't think so. < 1176581968 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Just like there's no "more official-sounding" name for the Unicode character INFINITY. < 1176582050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well you can say INFZORZ < 1176582068 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a lot more official < 1176583183 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I call it a membership test < 1176583187 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....which sounds official < 1176583202 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, alright... back... and... NEW IDEAS < 1176583208 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :good < 1176583227 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... I know how we can encapsulate permissions into all the kernel functions < 1176583229 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Are we still on about microkernel? < 1176583231 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :er... syscalls < 1176583239 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :LOLZBIG < 1176583244 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :instead of INFINITY < 1176583253 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :... < 1176583283 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lolzbig is much better that infzorz, i shall use that one from now on < 1176583311 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, see... applications won't be system calls normally... operations like alloc and dealloc can be handled by userspace processes that have special access to the kernel. < 1176583329 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And what would that special access consist of? < 1176583331 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :System calls? < 1176583333 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :something like a "givemagichat" syscall... that gives a process access to the basic syscalls. < 1176583385 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so you have a process called "mm"... that handles memory allocation, and has the magic hat < 1176583396 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so it can make the alloc and dealloc call. < 1176583410 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but also do things like check permissions < 1176583479 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :oh... and for the problem we've been having with our name: Abrasax can be the name of the entire operating system... and Sophia can be the name of the microkernel project. < 1176583534 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As long as there aren't any interfering trademarks on "Sophia". < 1176583597 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :fuck intellectual property. < 1176583609 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :You can't trademark a fucking NAME... Jesus Christ. < 1176583648 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :actually, I have trademarked "Jesus Christ". < 1176583669 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I've trademarked "NAME", SevenInchBread ... cease and desist. < 1176583684 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :USPTO.gov has 129 trademarks matching "Sophia". < 1176583703 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is so fed up with copyright stuff at this point... that he just disregards the cnocept all together. < 1176583752 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Multiple of them are for just "Sophia",. < 1176583802 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You ignore copyrights? < 1176583811 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1176583811 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: just like most ppl < 1176583824 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :VLC breaks the DMCA < 1176583828 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :with the dvd code < 1176583831 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :but noone cares < 1176583836 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :civil disobedience is the best way to bring about a change... if I want to get rid of copyright altogether - I stop obeying copyright laws. < 1176583843 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I often obey copyright law. < 1176583868 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Anyyywayyyyy... < 1176583887 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :GNUHurd is the most compleet microkernel atm right? < 1176583899 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :pretty soon... if everyone stops obeying copyright laws (which is happening more often)... then copyriight won't be around anymore. < 1176583905 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Bigcheese: Mmmmmmm, doubtful ... but maybe. < 1176583911 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :what else is there? < 1176583925 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :there's quite a few fully complete microkernels out there. < 1176583939 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :are any foss? < 1176583943 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :there's a big family of them called L4 < 1176583945 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :foss? < 1176583951 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :free open source software < 1176583966 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :l4 is, thats what GNUHurd is bassed on < 1176583974 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Mach is open source. < 1176583981 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but none of them are public domain. < 1176583991 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :bsd-like < 1176583992 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :? < 1176583992 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, trademark and copyright aren't the same thing, naturally. < 1176583999 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Trademark is pretty much a good thing. < 1176584008 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Unless it's used for retarted things < 1176584012 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, I disregard intellectual property altogether. < 1176584014 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :same with pattents < 1176584043 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bigcheese: what do you mean, used for retarded things? < 1176584078 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :like a trademark on a common word < 1176584100 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...such as Sophia. < 1176584102 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1176584105 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, those can be annoying. < 1176584129 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Same with pattents, just about every thing is pattented atm. < 1176584132 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :trademarks are highly annoying < 1176584135 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :crap like _tabs_ < 1176584135 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1176584139 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the company i'm working for < 1176584145 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :patents are retarded. They don't encourage competition at all. < 1176584167 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :has an online app that we wanted to call "Vista" < 1176584175 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bigcheese: tabs on computers or actual tabs? < 1176584182 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and then we were threatened to be sued by... Visa < 1176584189 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Tabs as in, firefox tabs < 1176584189 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and had to change the name < 1176584192 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :in software < 1176584235 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Trademark 74423619 is on "SOPHIA" as applied to "computers and computer programs", but it's dead. < 1176584239 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, hmm.... with this layout... we can take names out of the kernel. Names are purely a userspace invention... < 1176584253 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, the "syscalls aren't usually called directly by applications" layout < 1176584291 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :you should make a c++ kernel :P < 1176584307 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :There's also a trademark on "SOPHIA" as applied to "computer hardware, in-circuit emulators and computer software relating to microprocessor development systems". < 1176584312 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It's number 74148425. < 1176584321 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And it's live. < 1176584325 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....fuck it. < 1176584425 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :we've got alloc, dealloc, magichat, demagichat, kill, hmmmm.... what else do we need... fork? < 1176584453 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :fork is stupid :P < 1176584457 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Either we use a different name or we risk trademark infringement. < 1176584464 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :except I don't like the name kill... let's call it zap. It sounds more like wizardy than murder. < 1176584471 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Name it < 1176584479 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :ohnoesitsamicrokernel < 1176584487 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: maybe you could create a list of system calls and exactly what they do and show it to me. < 1176584496 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, if we risk trademark infringement... then I'm fully liable. That sound good to you? < 1176584513 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :For now. < 1176584544 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Serial number 73501942 is for "SOPHIA" as applied to "Computer System Analyzers and Peripherals Therefor", and it's dead. < 1176584645 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, the root process.... the one that first has magichat set can be called overmind... at PID 0 < 1176584672 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :PID 1 can be Mother... serving a purpose similar to init... as the parent of all top-level processes < 1176584722 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You could write a spec for this kernel. < 1176585224 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... I've never used memory allocation manually... so I need to read up on it to learn how it's usually done through system call < 1176585225 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :s < 1176585337 0 :jix__!n=jix@dyndsl-091-096-050-151.ewe-ip-backbone.de JOIN :#esoteric < 1176585495 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, hmmmm... I wonder how alloc and dealloc should work... I think the mm process could handle a lot of the allocation algorithm... and maybe the kernel could provide the basic "create a block of memory within a certain range of memory addresses" syscall for it < 1176585558 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sbrk(2)? < 1176585564 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :alloc(pid, size, stataddress) < 1176585597 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's the Windowsesque way. < 1176585611 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and mm could provide the actual interface that programs would use. < 1176585658 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Any problems with it? I mean... I don't expect actual application programs to use that... just the mm process. < 1176585676 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't have any positive or negative opinion on it *shrugs* < 1176585681 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It certainly would work fine. < 1176585692 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :malloc is implemented in the libc using sbrk < 1176585712 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :what does that do? < 1176585772 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That extends the break. There is a single "line" in the memory space between "allocated" and "unallocated" memory. < 1176585779 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :sbrk increments that. < 1176585833 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1176585933 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... I'll leave it up to mm... and just have this one as the most fundamental mechanism. < 1176585942 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :It's probably the most basic form of memory allocation I could think of. < 1176586078 0 :ihope!unknown@unknown.invalid QUIT :Nick collision from services. < 1176586112 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1176587990 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, hmmm.... I'm trying to organize stuff in a way that makes sense... like... < 1176588015 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I've got "address spaces" and "threads"... as different concepts.... with a process being a combination of the two. < 1176588091 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :threads are sexy < 1176588102 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what happens when a bunch of guys who know nothing about OS design try to design an OS < 1176588134 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :something magical? < 1176588170 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :something worthy of tears < 1176588179 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :or both? < 1176588430 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1176588513 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1176590299 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ihope, hmmm... what kind of operations does Linux allow on threads? < 1176590313 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :right now I've just got addthread(pid, prog, pc) < 1176590460 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :pthreads < 1176590462 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1176590480 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :But basicly start, stop, eatcheese < 1176590493 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :join < 1176590495 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.....what's the last one? < 1176590499 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and... the last last one < 1176590544 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :join gets the return value of a thread and frees it's memory < 1176590547 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :(stack) < 1176590564 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :>.> hmmm... threads have memory independent of the process? < 1176590571 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I thought all threads on a process shared the same memory. < 1176590600 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :they do < 1176590607 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :they have their own stack tho < 1176590620 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah... you mean... "the memory containing information about the thread" < 1176590626 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :not... the threads allocated memory right? < 1176590629 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :and the stack < 1176590630 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1176590634 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...what stack? < 1176590638 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :... < 1176590641 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :err < 1176590652 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :like if you declare an int in a function < 1176590656 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :it's put on the stack < 1176590669 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so..... the memory? < 1176590672 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :(well, it could be in a register, but w/e < 1176590673 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :) < 1176590705 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Stack-based_memory_allocation < 1176590978 0 :sebbu2!n=sebbu@ADijon-152-1-67-18.w83-203.abo.wanadoo.fr JOIN :#esoteric < 1176591449 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1176592412 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Bigcheese, ...hmmm... does the kernel need to deal with the threads stack... or is it something that could be implemented another way? < 1176592495 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1176592515 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1176592524 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :Other than alocate it < 1176592528 0 :Bigcheese!unknown@unknown.invalid PRIVMSG #esoteric :i don't think so < 1176593610 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: so you're saying we're probably going to create a terrible operating system? < 1176593643 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1176593652 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Maybe probably? :P < 1176593707 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bigcheese: do you know anything about operating system design? < 1176593841 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If so, I will... make some odd half-attempt at paying you to help us out! < 1176594237 0 :sebbu2!unknown@unknown.invalid QUIT :Client Quit < 1176594912 0 :ihope__!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric