Wyrm: Baby Steps for ELF

With the July 4th Holiday, I enjoyed a 3-day weekend but intentionally limited the time I spent hacking on Wyrm. There’s a lot to unpack in creating a full operating system and toolchain (even with a limited scope). Instead of jumping into full fledged implementation, I took the opportunity to brainstorm and structure the project.

Given we’ve got a hugeeeee amount of work ahead in bootstrapping a kernel and toolchain, the big question becomes “where to start”. For this project, I’ll be trying to maintain a “Test Driven Development” practice. A unit test framework also creates a simplified environment for early development.

The first project milestone will be a “Hello World” constructed kernel from our toolchain. Qemu supports loading a binary ELF image, and most portable toolchains will work with ELF binaries. For the first project milestone, the Wyrm toolchain will construct a valid ELF kernel image with a “Hello World” assembly kernel. With ELF, the Wyrm toolchain may create images for either or fledging OS or the Linux ecosystem. The end-goal is a fully self-hosting system – but until that point, Linux or Windows can provide a host environment.

If someone forced me to select a ‘favorite’ programming language, I’d likely fall into the Python camp. Python does not, unfortunately, make for a good “system” programming language. However, both Julia and Nim advertise some degree of compiled / system programming features. For our toolchain, I’m going to pull a page out of Julia’s playbook and utilize the simplicity of Scheme for compiler and runtime implementation. With a strong Scheme toolchain, I hope to experiment with a maybe-Python / maybe-Scala frontend. With a scheme-work-alike, we can utilize a “proper” scheme implementation to bootstrap the system. I’ve selected “Chicken Scheme”.

With the few commits this weekend, there’s a small test framework and the start of some low level scheme primitives for building ELF files.

Nix News: Embedded Linux Update

Today I’ll cover my major take-homes from a couple embedded Linux conferences that I (virtually) attended.

Subjects:

  • Let’s be positive
  • All about embedded linux
  • Be prepared: Containers are coming! (Someone please make docker-lite for embedded!)
  • Risc V is up and coming real soon now
  • Learn VSCode if you want a common IDE experience
  • Diversity thoughts – there’s a person behind the email
  • Open Source maintainers ask for our patience
  • Check out Virtual Conferences in 2020

Resources:

Special Thanks to:

  • https://audionautix.com/ – Rockin’ zombie track

Episode 7 – XLS, XLSX What is Difference?

Today I cover a small “oops” from the UK health center, and extend some thoughts on its relationship to “Real Programming”.

Episode 4 – Fall 2020 Programming Developments

A look at major new developments in the coding world for C/C++ – and some brief talk on Amazon BottleRocket and Microsoft’s Hyper-V advancements.

T-7 weeks

Looks like I have a job. I received the job offer on Tuesday, accepted on Wednesday, and start on Monday. So, why do I say T-7 weeks? Well, put simply, in my current living situation I can not really have access to a linux box. In 7 weeks, I will be moving into a place of my own, complete with a working network, and so forth. So, to be fair, it might be a bit more than that if I take into account cable setup, getting the lease signed, moving time… But basically, I need 3 paychecks to recover from the enormous financial toll moving with less than a weeks notice and no job prospects took. Oddly enough, now that it looks like I found something, I’m getting a lot of calls and emails about interviews. The job I’m taking is good all around: good location, good money, and really nice people. Only downside is that they are a Windows based shop. (But, that just really means more job security for me now that I think about it, especially if they ever decide to move platforms.)

So, right now I have 7 weeks abouts until I can do a linux install and start hacking stuff again. I have all sorts of cool project ideas, and things I want to get going especially some thoughts on conary stuff I’ve been thinking about, but I have no way of doing any of it right now. So, I’m stuck writing them in text files and waiting for some time.

I have had a few people ask why I moved with such short notice, the short answer is family issues. The long answer is that I left the religion associated with my family and felt the need to leave the area as well as my family is somewhat well known with that particular group. I’m not going to go further into this on this blog, as it is on some planets and I don’t want to upset anyone. Let just say it’s hard to go to places and keep running into people that know about how you “left” and want to “save you”. I make no judgements anymore about people of any religious groups – I really don’t think anyone has things right, so why quibble?

So, now I am working on a shopping list and debating how to handle the big issue of furnishing an apartment and starting my life over, (but now with a job!). I’m probably going to finance a big chunk o’ stuff if I can find a good deal such that I don’t have to pay interest. It’s a rather interesting question of which is better: having things now, or buying cheap stuff to last a bit and piecing together nice stuff as you go. I think I could come up with some really good mathmatical arguments for going to a local furniture store and financing the whole thing with one of those 0% interest no payments for 12 months deals… Basically, there is no way around the need for furniture, so I have to spend some money, and I’d like good furniture later, so the question becomes if any interest I had to pay on new financed furniture would outweight the cost of buying old furniture, getting new furniture and selling/donating the old, and all the transportation involved. Needless to say, after worrying about being homeless for a short period, these are nice problems to have. The only thing I am currently 100% sure I’m going to purchase is a full size weighted-key piano/keyboard – mostly because of the other major piece of news I have….

In addition to a “day job”, I am now going to be performing as a pit musician in a production of Nunsense, a musical comedy. I’ve been to several rehearsels so far to hear the ladies sing, and the pit rehearsals start in full scale on Monday as well… Going to be a long day Monday, standard 8-5 job and then from 7-11 I’m Mr. Musician. Slightly scared that I haven’t seen the music yet, I really hope my site reading skills are up to par. The play starts at the beginning of August and runs to the end of the month. This will be the first time I’ve performed for a group in a non-religious setting. Needless to say, since I am moving out of the garage(literally), I’ll need a piano to keep practicing for future plays.

I also asked the owner of the theatre if I could try my hand at bartending, and that is going very interestingly. I bartend now for a local comedy club on Thursday nights, under the direct supervision of an older bartender. You learn more about alcohol in a few minutes mixing drinks than in a lifetime of reading… Favorite drinks in order are currently: Long Island Ice Tea, Georgia Peach, Captain and Coke. It’s also interesting to learn just how hidden the taste of alcohol can be by some of the different fruit juices. For instance, even though it’s only moderately alcoholic (I’d say around 10% on strong mix), I can’t really taste it in a Malibu and Pineapple. I guess the lesson here is to be careful of fruit-juice drinks in bars. Anyway, if any of my friends reading this have any plans of being around during a weekend in August, give me a shout and I’ll either get you in to see Nunsense or buy you a drink at the comedy club. Funny enough, I met my contact that told me about the career opportunity I recently landed with through working there… Funny how life works.

Moving

Family concerns have caused me to severely expediate plans on my leaving the area. I went on vacation for 2 weeks to scope an area out (don’t laugh, it’s a nice place), and then moved out on Tuesday. I have now arrived safely and am getting ready to move into my temporary quarters. Internet access right now is spotty at best, but should be settled out in a week or so. It’s amazing how much junk you accumulate over the years… the only things that I really didn’t bring with me are: my books, my dog, and my bike. My brother is keeping the dog, my books will be shipped up when I get a real address, and my bike, an old-fashioned human powered kind, is yet to be figured out. As the bike was built for me, a 6′5″ guy, I’m not sure how easy it would be to sell, and getting a new one of the same caliber would be expensive, but not prohibitively so. Anyway, I’m now a degreed person officially on the job market. After spending 2 months tracking down brace problems and extra semicolans in high school students’ java code, looking at some real stuff will probably be interesting. In any case, most of my internet access time is currently on borrowed Windows computers, so I haven’t had any access to IRC or any form of IM. I hope everyone out there is doing well.

Yes, I am alive…

…although, for the past 2 months I’ve had no access to a computer at home, besides my Mac laptop, which was at AppleCare for some of that time…. “The great mishap” happened on Friday, February 10th. A long story short, if your computer is freezing in linux at random intervals it’s probably a better idea to figure out why before you get that lovely ozone/burning silicon smell from melted components. To make matters more interesting, my file server went down about a week later. I managed to revive (or rebuild) my main computer a couple days ago, so I once again have rpath linux going. I have not recovered the file server yet, which will only turn on a few minutes before shutting itself off. As I don’t think I can really justify having a file/print server anymore however, I’m probably going to go out and purchase a huge hard drive and move everything unto that. Why didn’t I get everything working again sooner? Let’s just say that student teaching is probably the biggest time drain of all time… I had no clue what teachers went through before, grading papers, doing lesson plans, etc… Especially where I was working, where they have gone from teaching 5 classes to teaching 6. My basic schedule involved getting home at around 4:30 everyday, and then grading papers, working on lesson plans, updating worksheets, figuring out presentations on my ibook, (not to mention all the actual student teaching stuff), until 7:30-8:00 PM. Of course, student teaching didn’t start out that way – they start you out observing and then teaching preprepaired lessons and so on. Teaching in general is basically a 12 hour a day job, the best I can figure. Of course, everyone has been telling me that after your first year when you get everything figured out, it becomes an 8 hour a day job. I don’t see how that’s possible, but I’ll take their experience over my own limited experience. Anyway, if you wake up at 6:00 AM everyday to get to the school at 7:30 AM, and then work solid until 7:30 PM with only a 45 minute break to drive home, it’s not exactly on your mind to figure out how to repair a computer after that.

Which brings me to the good news, I’m through student teaching as of yesterday 4/7/06, and will officially recieve my degree next month. Which means, for the time being I’m taking some much needed time off to recoup, figure things out, and try to answer the non-spam, non-mailing list emails I’ve recieved over the past 2 months of computerlessness. Given the fact that my inbox currently has around 20,000+ emails in it, that might take some time. (I think 3/4 are spam however, but I can’t seem to get junk mail filtering working right with thunderbird…) If you did email me, and I did not respond, or were expecting an email from me and did not get it because you emailed me, or whatever, I’d highly recommend emailing me again, as the message could very well have gotten lost in the pile.

So, to summarize, I’m currently a solid 2 months behind in all things opensource, and given the pace at which things opensource evolve, that might was well be 2 years behind. I’ve got some serious catching up to do right now, as I don’t intend to leave the community even though I must admit I went on hiatus for a while there. Hopefully should be back on IRC again after moving some hard drives around and doing a reinstall to get current, my best guess would put this sometime on Tuesday. I’m taking the next several days off to go do something fun. I don’t know what yet, but I deserve it. This message was written with a repaired computer, with the old hard drive just plugged in and almost nothing is working right – I just wanted to leave a long note saying I was alive.

I owe a lot of people an apology for essentially dropping off the face of the Earth right now. Specifically, I think I’ve really slighted those at rpath. Dropping off the community for a bit, especially without contacting anyone to let them know what was going on, was very unkind especially given how great they have been. So, I apologize here, with the hope that everyone understands my brain has been mincemeat for a while. My instincts tell me that they probably need some help in packaging split X, split KDE, and the new docbook stuff which probably came out in the last 2 months. At least, that’s the major new stuff that seems to have gone on after I left. Maybe I can make some ammends by helping out. It’ll be interesting to see some real bugs after chasing down missing and extra semicolons in students’ code for the past 3 months. I’ll also be back on the lookout for bugs in the distribution, now that I’m installing it again.

I tried running a few conary updates to see if I could still work with a 2+ month old conary against whatever version is running on the server. It worked. Conary is definately ready to use now. I hadn’t seen much of anything major bugwise in January, and this last update “just worked”. (Not that I recommend using a 2+ month old conary, bug fixes and updates are good things…)

Best wishes to everyone, it’s good to be back.

Good riddance…

… to school and all that. I’m finished for the semester and summer is here! Which means….. more time hacking on Specifix!

In any case, KDE 3.4 is packaged, built into the repository, and ready to go. (Or at least should be at the time of this entry.) Lots of bugfixes are included in this new release, so if you’re still running KDE 3.3.x you should download and try it out.

The job hunt continues, although I’ve yet to recieve any callbacks from any of the places I’ve applied. Hopefully something will pan out soon.

In the immediate future, I think I’ll focus on clearing up the applications menu, by making sure the entries in /usr/share/applications are all meaningful, and see about setting up KDE to only show it’s application menus, and not those entries which should really show up only under GNOME, like the screensaver icon. (Should be possible, requires more research.) I’d also like to fix GNOME to only show GNOME icon themes, and KDE vice-versa. Basically, get the menus and themes working together nicely.

Next on the todo list is further investigating init scripts. I’m highly interested in developing a parrallel, dependency based, init system, preferably with a graphical touch added in, but this is less urgent on the priority list.