Content tagged Operating Systems

Normal Thoughts, Nerd Thoughts

posted on 2009-02-01 00:18:46

I'm going to try to keep this short. Top 5 things that have been stuck in my head the last 2 days.

1: Actually, 1 hasn't been stuck in my head it's a few interesting news bits from this morning. One being an interesting interview and look at Middle East policy with Obama, the other being Jessica Alba calling out Bill O'Reilly on WWII neutrality. I normally wouldn't post the latter sort of junk but I found it pretty funny for one reason or another.

2: Amon Tobin is awesome. Literally, awesome. My favorite two albums of his are Supermodified and Permutation but I can't choose between those two. Seriously though, just listen to Nightlife off of Permutation or Slowly off of Supermodified. Listen to those for me. Please. Tell me they're not masterfully composed or beautiful. It's all sample-based. He's staggering.

3: I'm going to be moving by the end of may. I need to save up for a down payment on an apartment (with Teresa) somewhere nearby and public transit accessible. I may also change internet service providers. If I do that, does it make sense to buy hosting from someone (I'd definitely choose a Linode 360 in Atlanta at $20/month)? I'd still keep a server at home for, uh..."file transfer operations", media serving and SSH access or some such. I just don't want to have to run off of it for bandwidth and downtime reasons.

**Computer Nerd warning: I think what follows may be the most concise explanation of what really interests me in Computer Science that I've written, namely item 5. Item 4 is prerequisites, sort of. If you want to understand some of the reasons I'm into computing and the questions that interest me you could do worse than read what follows. Note that I think Computer Science is generally one of the most interesting fields that exists because it lets you study anything: Games, AI (Psychology/Philosophy/Ontology/Nature of intelligence), Theory of Computation (Mathematical Foundations of Logic), User Interface Design/HCI (Psychology/Aesthetics/Usability), Programming Languages (Linguistics). etc...but what follows are my personal reasons, not general ones.**

4: I posted this reddit thread yesterday but the topics debated are so interesting to me I'm going to post it again. Consequently, I've spent this morning peeking at things like this, and a lot of the work Jonathan Shapiro has been doing over the last few years, particularly BitC and Coyotos. I came into programming last year excited about my understanding that to support the trend towards parallelism we had to rework something significant on at least one of the following levels {Computer Architecture, Operating Systems, Programming Languages}.

I also understood that the field had a lot of lovely innovations which (debatably) never conquered the mainstream such as Lisp, Unix on one side, Plan 9 on the other, RISC architectures, etc. One always has to struggle with Worse is Better. Note that I did say debatably, Lisp/Scheme increasingly influence recent languages, Unix is slowly working towards the consumer market through OS X and Linux and has always been strong in Industry, Plan 9...well...[pdf warning]Rob Pike has some interesting words[\pdf], and Intel's x86 chips apparently hardware translate the CISC ISA down to some sort of RISC-like micro-ops.

The point is the solutions which were elegant or "technologically superior" did not tend to be the ones favored by the market for various reasons. Note that I am not saying we all should be using Lisp Machines. These technologies were beaten in the market for good reasons but that doesn't mean they were a direction we shouldn't pursue. Consequently, I am beginning to understand that because the foundations of this industry which has taken over the world since 1970 are in many ways fundamentally unsound that we should harbor a desire to eventually rework those foundations. Namely by the insertion of abstractions to aid the modern programmer in issues of parallelism and secure and reliable code.

5: I guess the question that really gets me is, "Where should all this abstraction be?". That is, what are the right layers in which to have the abstractions we settle upon? I think a number of things suggest that the Computer Architecture and Operating System layers are not the correct ones and that the abstractions should wind up in our Programming Languages. Backwards compatibility and the price-performance competition with existing industry being the principle obstacles to Architecture and Operating Systems. Of course, once you've figured out where the abstraction should be you have to move on to "How do we create these abstractions and put them in their place?" or the question of implementation which is for all intents and purposes much harder. This has taken way too long to write and I'm pretty spent at the moment. Hopefully, I'll get a chance to flesh out these ideas later.

**/end nerdery**

PS: It's begun. Mike Miller was right. I'm doomed to be a Computer Historian...

Belated Blogging

posted on 2008-11-03 22:50:51

A lot has been happening lately and I guess I've been too wrapped up in it to write anything down here. I've been readmitted to SPSU for the Spring 09 semester, have filed the FAFSA and am currently looking into financial aid options. I'll have more on that soon but I am planning on going. Better to be there and learning than out of school doing Help Desk work and not learning enough about programming. That said, I'm totally out of funds about now and a part-time Help Desk position would be wonderful for the foreseeable future (i.e. post starting at SPSU). Or a contract position until school starts.

Due to the aforementioned brokeness I won't be grabbing LittleBigPlanet which a few people have asked me about. I am impressed with some of the things people have churned out with it though including a working 1,600 part calculator and a recreation of Gradius. Cute.

Will also got back in touch with me which I was quite happy about and I made some changes at his suggestion to my little hangman program. It's down to 115 lines of code and is pretty polished at this point. The only way to go forward would be to add new features but I'll put that aside until I've finished PCL. I also may have a quick weekend project to write a BASH script for RedLinux in the near future thanks to some of the great resources at the Linux Documentation Project. I've got some ideas for a future RedLinux release but I'll likely put that off until December or so.

What else has been going on lately? Well, OOPSLA and Lisp50 happened fairly recently and I couldn't make it but I've enjoyed reading about it thanks to articles on Lispy's blog and some words from Luke Gorrie. I'm still pretty jealous of Luke Gorrie as he always seems to be playing with neat ideas and technologies and generally hangs out with the "cool kids" a lot. He was at OOPSLA and Lisp50 and then managed to be hanging out with Alan Kay, Ian Piumarta and co at VPRI when Slava Pestov came through to talk about Factor. What a jerk! (jk lukego) There's a great video of Slava's Factor talk which he delivered at Google as well. It would be neat if some of the Lisp50 talks made it online but somehow I don't expect to see that happen. I've also been keeping an eye on the btrfs and xorg mailing lists but that's not too relevant really. BTRFS for 2.6.29!

I've been doing a little bit of reading on Lisp Machines of late and hope to run one in a VM when/if I get an X200. I'd also love to run a copy of Linux 0.01 in QEMU or VirtualBox and maybe ReactOS as well. Nothing like a small, well-understood system right? A nice external keyboard wouldn't hurt either as mine has gotten a bit beaten down over the years and is a PS/2 keyboard so it won't play with the X200. Reddit has some suggestions and I'm rather leaning towards a Das Keyboard but one of the mechanical-switching Cherry units would be fine too. Paul Stamatiou has some interesting suggestions about back to school stuff but I'll mostly stick to his thoughts on study habits and motivation. I think I've got the rest sorted out. His thoughts on living the cloud life and using newsgroups should be useful though.

That's all for now. I'm off to skateboard and shower while there's still some good sunshine out before hunkering down with more lisp. Did I mention a new version of SBCL came out? Don't forget to vote tomorrow. Keep an eye on things with the help of Peter Seibel and Randall Munroe! won't hurt either. ;-)

Thinking is awesome.

posted on 2007-08-09 19:04:22

So excited right now. So many awesome things happening. I can hardly wait to write the news on the next monday update. Hell with it, I'll post some things I've looked at read or thought about in the last 48 hours.
A couple of things.
Kristian Hoegsberg is amazing.
I'm starting to think that given time Ubuntu/Linux can out-Mac Mac. More explanation necessary. I'll get to you. Note that this is not the same as saying they can out-Apple Apple.
Web 2.0 is...auhweiruhaudsf. Free data is...oiajdsofiewaofm. People are crazy. Tim O'Reilly finds the words for the stuff I've been thinking. Freedom is complicated. Delicious, and prescient too! But what about open spectrum...
Certain companies actions do make it a legitimate concern...
Carmack is a genius and anything he says is gold. Need to find out what his kool aid is and drink some.
Been thinking about some security with regard to wireless cookies and WEP Cracking.
Still waiting on news of Banshee trunk improvements.
Sun is serious about Open Source. Maybe more so than anybody else. And yet they still act funky with Java. I'm still trying to figure out how I feel about this.
This looks really useful for next time I encounter data loss. It does happen.
Between academics lining up to help and the German government, I feel like Wikipedia is going to be pretty hard to make ridiculous generalizations regarding quality about "real soon now". It's not just wikipedia tough. Everyone is getting in on the peer production action. Peer production will only become more visible.
There are lots of books that should be written about software. These are some. This is interesting as a look at where things are\might be headed.
I continue to be torn up about the language wars. Are they in some ways just plain silly? Yes. All the same, furthering our tools matters. A lot. Competitors still include Erlang, Haskell, etc.
I tend to think of the web server market as being kind of stagnant. Or at least I did until this summer. Of course, I basically just heard about Apache and IIS until this summer. I'd never actually run/setup/worked with web servers until this summer. I kind of feel like that market is in the midst/outset of a shake up though. Observe.
Amazon's hardware as a service stuff just gets more and more interesting as the days go by. We're going to wake up one morning and this will have changed the world.
There are some real shifts happening. There are different work styles emerging. We'll see what comes of it.
I'm really excited that there is video of Steve Yegge talking online. I can't believe I haven't looked for some before. He's so damn smart I'll listen to anything he says. It links to all the other OSCON 2007 content too which is great because I've been wondering why GUADEC, OSCON, and Ubuntu Live content is all over t3h int4rwebz. Conferences are good because of mindshare but please share your geniuses keynotes with me. Imitate TED.
Keep working at those Online Desktop chestnuts. Even if it doesn't turn out to be the right problem, it sure will help our platform stand out.
I'm really glad this exists. It seems like it could be much more elegant than a reverse proxy or other load balancing solution.
It's always good to know what other people are reading and if anyone is exploring a critical literature then it's Worldchanging. So I'm assuming I'll find something lifechanging on this list.
We really can do just about anything these days. Between this and some 3D printing reports from Siggraph 2007 I have high hopes for what will be possible by 2020.
Lessig is awesome. So is proof of how awesome he is.
If you think the web isn't almost an OS layer itself, you're wrong. Now let's do performance analysis on it!
Social media really does matter. Open Source is naturally on the leading edge of that too. Video and Audio included.
We really are moving away from the desktop. Whether it's the web(Online Desktop), mobile (iPhone, OpenMoko), other embedded or home theater, or some strange new device (OLPC XO, Zonbu, zareason, minis and micro-atx, etc) there are strong currents in this sea.
Gnome and Linux really are doing good things. I'm really excited about watching us surge ahead on so many fronts.
Emerging worlds are cool and it's only going to happen more and more in games and serious apps. Mash up the virtual and the physical. It's all code. What distinction?
Knowing job projections is useful.

Kernels are interesting, you've got Linux, BSDs, Solaris, Darwin\XNU, whatever powers XP and Vista. But they're really just parts of the stack. All the same, they're really important parts of the stack. Infrastructure will always matter. It's just not the focus now. What we're building with it is the focus. The OS is irrelevant in so much as it's just an enabler. This sounds obvious and stupid. I need to think more on what I'm trying to say.

Maybe the processor industry going massively multicore is the only way to force software developers to take advantage of the power that's already there. By forcing them to adopt new programming conventions they force out 30 years of cruft code and development methodology that is bug-prone. Goodbye imperative, hello functional.

Okay, that's it for now. Sorry for the linkflood\social braindump.

Hacker Culture and The Road Ahead (poor man’s draft)

posted on 2007-07-04 19:24:00

Of late there has been a growing awareness and concern over the migration of applications from our desktops onto the Internet and the emergence and rise of Software-as-a-Service (SaaS) along with a consequent deluge of predictions about the death (or irrelevance) of the desktop. While these discussions are not without merit I feel they share some general flaws in approach which I seek to address here.

One of the hard parts about engaging in such discussions is that they do not constrain themselves to a purely technical realm. Much about the Hacker Culture is, or was, revolutionary due to it's contribution to the larger movements of desktop computing and the internet and this awareness of prior revolutionary behavior coupled with the endless proclamations of revolution in the industry that pass for marketing lead to a confused understanding of what revolutions really did occur, where they have led us, and what might lie on the road ahead.

Thanks to the general muddiness of these still fresh (and some would say ongoing) revolutions, discussions about something as simple as the migration of applications and functionality from a local machine to a networked server bring with them issues of law, technology, history, politics, economics, marketing, sociology, and innovation. The capacity for simple discussion of events as they are has become impossible. Given this state of affairs, I will do my best (through my biases, which are many) to sort through the rabble.

Most responses to the statement that applications are moving from the desktop to the web fall into one of two camps. The first being that the desktop is as important as it's always been and\or that the web isn't significantly infringing on the desktop's importance and functionality. The second response is that there are no open source web services and open source needs to figure out how to compete in this new emerging market. Both are knee jerk reactions, one just comes from a position of invulnerability or incredulity while another comes from a position of fear or paranoia.

Before going any further I'd like to state some of my assumptions and\or biases. First, the desktop is changing. There are some forces undoubtedly at work that change the extent to which our data and applications are local and thus our computer is losing some of it's centrality and being distributed out on "the grid" of the internet. Second, the desktop hasn't changed. This may seem contradictory to the first assumption but I don't think it is.

What I mean essentially by this is that the next paradigm beyond that of the desktop, GUI, keyboard and mouse hasn't arrived yet and until it does things largely will be the same. We will still need an OS to talk to the hardware and software besides a browser to do many things we do, especially given that high speed internet access is not yet available everywhere all the time. Finally, while the next paradigm beyond that of the desktop may presently exist in the wild we cannot distinguish it as the next paradigm until it has already run it's course. We will not know the world has changed until it has.

In terms of the responses to the idea that applications are moving webward, I'd like to start with Perspective A. The person who believes Perspective A thinks that the desktop isn't changing or that it's functionality and importance aren't threatened by the rise of web applications. I'd like to refute this by offering myself as a personal example. I've never used a mail client. Ever. Thunderbird, Outlook, Evolution, iMail, any of it. All my e-mail has always been webmail and even trying to think of e-mail as being an offline phenomena that I have saved locally to look at when I'm offline is an odd and foreign concept. The idea of a mail client is, for me, irrelevant. I think that's enough to show that the desktop is changing.

Now to address Perspective B. The person who believes Perspective B believes that Open Source will lose relevance in a world where net-accessible advertising-sponsored software (gmail) is available if Open Source does not create equivalent software. This is misguided on a number of levels. Not least of which is related to the fact that open source emerged in response to a lack of Richard Stallman's access to printer drivers. The scratch your own itch element of web services is not available. There is no platform to begin copying. There is no central service upon which other services are built besides the backbone of the net itself, which is just Linux Clusters anyway. There isn't a Unix to begin copying.

A lack of a target is no small problem. The initial starting goal of developing a UNIX-like Operating Environment was crucial to open source getting off the ground in a meaningful way, at least as far as Linux is concerned. There is no web equivalent. The problems run deeper than this though and can be drawn out further by remembering the early moniker of free software. Freedom to modify is not a valid goal of a webapp and not only because of the client-server model. Web software doesn't sleep. It's always live and there are always users. This wouldn't be a large problem given the nature of SCMs like bazaar today. Just create a new branch. And yet the notion of a server trying to run multiple versions of a web app or service is simply ludicrous. The notion that Facebook as a platform is a walled garden is not necessarily misguided if applied liberally to other web apps. Freedom of data can be a concern but on the web freedom of code will have to take on a new form. Perhaps this is a problem we should confront.

And whereas the 80s and 90s left hackers free to tinker with little consequence for the majority of the world the extent to which the personal computer has invaded the workings of human civilization make even minor undertakings more serious in influence than the GNU C Compiler was the day it was started. Finally, the entire conversation is too wrapped up in notions of maintaining relevance and influence. Open Source at last has something to lose even if it's legacy is invulnerable. Whatever emerges next will emerge independent of our actions. Hopefully we will see it coming and aid it's rise or even have a hand in it but we cannot act out of fear. Tinkering away like a bunch of crazed kids with legos got us here and it will get us wherever there is too. Even if open source loses the war over code, the inroads made in the war over organizing methods or production are likely to change the face of the society.


tech thoughts (mac\linux, web\desktop, ubiquitous computing\pc). it's really about time i wrote something on open APIs and web\desktop. can open source happen on the web? linus made a replacement for unix. there is no central web app\top\thing to replicate in this fashion.
things to tackle:
hacker culture came from academic underground. tinkerers. web 2.0 came from where?

people think open source should "compete" but with what? the only thing to compete with that even approaches web platform status in the way unix approached workstation platform status is google. how do hackers compete with that exactly? there is no web 2.0 target the way there was a unix OS target. and are all web app vendors now just walled gardens, facebook is aol, etc? that's weird. that doesn't make sense. but really the only unwalled web garden is the browser. and that's on the desktop.

what about the politics of all this? the politics then in the 70s\80s\early 90s and the politics of technology now? it's gone from nobody caring to tons of people. it affects everyone now. we have to have a goal to move into this new space.

open source as a method of production versus open source as tools of production. most of the tools of production are already in existence. the web apps simply apply open source production methodologies to already existing tools of production. the web IS open source. stop yelling about the proprietary web. when we're speaking about open source on the web we can only be worried about one of three things. legal data\property squabbles, the tools themselves (apps), or the methods (open source\social web\web 2.0).

also, modifying services to work on your own server the way we used to modify code on our own systems requires the server infrastructure in the first place which few people have. plus i would assume it contributes to a loss in the network effects of web apps.

how does fear\relevance\influence play into things? are we afraid of microsoft, google, etc? were we then? what are we struggling against? a lot of maneuvering seems to be about inert versus potent forces. microsoft is pretty impotent and google is clearly the next 800-pound gorilla but what is the thing people are afraid of?

finally, there is a difference between the significance of platforms\communities\ecosystems and the things we fear and the next big thing. product life cycles account for something here. the OS isn't a point of competition anymore. it's not a market with billions in it. it's not hot and it's not a point of innovation. it's in the background. even with apple it's 90% background. applications are mostly background too. there are cms and crm and inventory and other business apps and integrated suites that are still relevant but it's not what i'd call a point of innovation.

Unless otherwise credited all material Creative Commons License by Brit Butler