Older blog entries for lgerbarg (starting at number 39)

17 Apr 2001 (updated 18 Apr 2001 at 18:40 UTC) »

I have been quiet on a bunch of things recently. I have been hired by Apple Computer. I sent the following to the Darwin Development list a few minutes ago:

Some of you already know this. For most of you it is the first you have heard of it. Starting in July I will be working for Apple.

I suppose the most important element of this is how alters my relationship with Darwin. While I have been hired to work on OS X, I have not been hired to continue any of my Darwin work specifically. I will continue to work on the projects I have been involved with in my free time. I expect that the reduction in the amount of time I have available will be more than offset by the new resources at my disposal, both in terms of easy access to development hardware and software, and the fact that I will actually ne able go and pester various people in person ;-) In short I do not see it significantly altering things, and expect to maintain a similiar presence on the lists, and in the community.

Now I need to get back to coding...


I fixed some nasty races in Apple's serial driver last night. A lot of people were panicking when they tried to use ppp on an smp machine, so I deiced to take a look at it. People seem to be pretty happy with it, and actually don't personally have an smp machine to test it, so I will have to take their word for it. There are actually links to it on www.xlr8yourmac.com, and the OS X page of www.macfixit.com.

I made my first commit into Darwin today, in BootX. It is not actually in the external repository yet (I am not sure when anoncvs.opensource.apple.com syncs itself off of cvs.opensource.apple.com). It felt cool, now I just need to see if I a got the conventions they use for tagging right ;-)

Not much coding today, I have work to do, as well as watch the Get Smart Marathon. I have these really fond memories of Nick at Night doing this week long Get Smart event where they played something like 10 hours of Get Smart each night, and every night had a different theme. I must have been in 5 th or 6th grade, my parents told me a had to go to bad by 11 or 12 on a school (I don't recall exactly). I always stayed up reading anyway, but I remember sating up till about 3 or 4 each night that week watching Get Smart. Back them I could get by with 3 hours of sleep a night for a week at a time. Oh the joys of youth.

On the Darwin mailing list we get a lot of people eager to help, but who have no experience. I have started to assemble a page of useful references on OS design, particularly aimed at people interested in working on Darwin. Click here to check it out.

Well, /dev/random seems to be working now. I tracked down one crasher, and went to see why FreeBSD had not been effected by it. Turns out they were, and that a fix had been placed in the repository several hours before I had figured it out. I took their fix instead of mine, becuase I feel it is best to keep in synch where possible. Most of the changes I had to make are to make is SMP safe on ppc, some of the atomicity assumptions they make are not right for the platform, though should work just fine on Intel.

The wavelan card is now probing, attaching, and starting to activate the chips when it crashes. At first I thought I had my interrupts misconfigured... Now I am thinking I need to modify the accessor macros. What I really need to do is setup a two machine debug setup and poke the hardware enough to see what the heck it looks like under OS X (are the bridges doing endian swapping, etc). I think I coould hash it all between the code and my head, but poking is just so much simpler. Maybe this weekend. Once I get these two down I can get back to the elevator code, softupdates, and I have few other ideas ;-)

Oh boy. Mac OS X was released man I have been busy playing with it. Did three things this weekend, but I have not quite finished anyway:

Synched /dev/random with the new stuff Mark M. did in FreeBSD, and made changes for the New OS X. I am panicking, but even the old patch is panicking with new kernel, it appears they changed some of the mutex/locking code and it is fouling me up.

I almost have Ben H.'s port of the NstBSD wavelan driver working with real PCMCIA wavelan cards under OS X. I can match and probe fine, but I seem to panic on trying to get an IO window. It might be a bug in my code, though I don't if the IOPCCard16Device code has ever been tested, so it could be a bug in the driver superclass.

I made a bunch of changes to IOBlockStorageDriver. I should have a working elevator sort in it sometime soon. The allocation routines are a complete hack, and it is not doing any of Elevator optimizations, but those should be easy to fix once I get it working.

Anyway, I seem to have started a bunch of the things on my todo list hopefully I should be able to close out random and the intial wavelan port later this week, then I can work on the elevator code and maybe get back to softupdates.

New TODO list:

  • Resync Darwin /dev/random with FreeBSD /dev/random and Mac OS X 1.0 (Darwin 1.3) -- will do this weekend once I have OS X Release
  • Write disk elevator code for Darwin
  • Finish softupdates port for Darwin
  • Reverse the infrared protocol for my Casio watch and write something that can dump my phone book from OS X to it ;-)
  • Write a module for iTunes for my Archos 6000 (Someone wrote a playlist generator, I get the impression it uses winamp format playlists, it should not be too hard)
  • Figure out how to adapt Ben H.'s new AirportDriver to work with both internal Apple card and wavelan's under Mac OS X
  • Finish paper for MacHack
  • Oh yeah I have a silly real job thing as well
Clearly I have way to much to do, anyone else want to do some of it ;-)

Well, I am a Darwin Developer finally. Apple offered to make me one in December, but because of a lot complexities it did not happen until Feb 19th (the day afetr my 21st birthday ;-).

The details have not quite entirely worked themselves out (I have not gotten a chance to exchange my ssh key for CVS access, and my name is not up on the page yet), but it feels good.

I got teTeX up and running on OS X the other day. I was writing a paper in it, and got sick of scping it over to a solaris box. I will probably put the port on anoncvs.opensource.apple.com when I do get my cvs access working ;-)

Oh, I am presenting at MacHack. I really should make more frequent updates, they would be smaller.


Oh boy. It has been forever since I have written. I did some cool stuff in the last month, but I don't think I am going to get to any of it in this entry. I am in a kind of wierd position.

I have an airport basestation, and moved to a new apartment over break. Since I have not had DSL installed yet I decided to use it to dial into my universities modem bank. As it turns out the thing only works with a couple of premade modem scripts Apple provides, none of which were suitable. I sat down, and hacked the image around and figured out how to write my own. It works and I am happy.

Normally I would pass this kind of info on to other people (like the guy who wrote airport configurator), but I am in a really awkward spot. For various reasons I am being sent some NDA materials from apple. I have not signed the forms yet, but I have every intention of doing so. I have not seen anything I should not have, and the stuff that I am getting involved with has nothing to do with the airport stuff, but it could be messy. To top it off Apple is flying me out for an on campus interview later this month.

Not quite sure what I should do with the info I figured out. I sent an email to my primary contact at Apple to see what he thinks.

Well, it is really busy around here, end of the semester and all.

I started a port of FreeBSDs new random driver to Darwin. Currently it builds, runs, and panics. I think that is because I just converted the mutex calls, and there are apparently some semantic differences. Particularly FreeBSD supports recursive mutexes, and it appears that mach does not. I have a way to fix it, I just need some time, hopefully tomorrow or over the weekend.

So much work, so little sleep

30 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!