background preloader

Misc / Articles

Facebook Twitter

Kernel 101 – Let’s write a Kernel - Arjun Sreedharan. Kernel 101 – Let’s write a Kernel by Arjun Sreedharan Hello World,Let us write a simple kernel which could be loaded with the GRUB bootloader on an x86 system.

Kernel 101 – Let’s write a Kernel - Arjun Sreedharan

This kernel will display a message on the screen and then hang. How does an x86 machine bootBefore we think about writing a kernel, let’s see how the machine boots up and transfers control to the kernel:The x86 CPU is hardwired to begin execution at the physical address [0xFFFFFFF0]. It is in fact, the last 16 bytes of the 32-bit address space. This address just contains a jump instruction to the address in memory where BIOS has copied itself.Thus, the BIOS code starts its execution.

BIOS first searches for a bootable device in the configured boot device order. That’s your kernel!! Disclaimer: The views expressed here are solely those of the author in his private capacity and do not in any way represent the views of the author's employer or any organization associated with the author. Debugging a jet – Businessweek. PostgreSQL Exercises. Test d’expression régulière. CodeCombat (JS)

A 30 minute introduction to Rust. I recently gave a proposal for Rust’s documentation.

A 30 minute introduction to Rust

An important component of my overall proposal is a short, simple introduction for people who may have heard of Rust, so that they can figure out if Rust is right for them. The other day, I saw this excellent presentation, and thought it might serve as a great basis for this introduction. Consider this an RFC for such an introduction. Feedback very welcome on the rust-dev mailing list or on Twitter.

Rust is a systems programming language that focuses on strong compile-time correctness guarantees. Let’s talk about the most important concept in Rust, “ownership,” and its implications on a task that programmers usually find very difficult: concurrency. Ownership Ownership is central to Rust, and is one of its more interesting and unique features. Int *dangling(void){ int i = 1234; return &i;} int add_one(void){ int *num = dangling(); return *num + 1;} This function allocates an integer on the stack, and stores it in a variable, i.

Free programming books. Chris Granger - Light Table IDE. Machine learning is way easier than it looks. It’s easy to believe that machine learning is hard.

Machine learning is way easier than it looks

Sir, Unity, Mecanim And The Trials Of Small Studio In-Game Animation. We thought it might be insightful for you guys to be able to read a bit more about the challenges we’ve faced in completely overhauling our animation system since the success of our Kickstarter.

Sir, Unity, Mecanim And The Trials Of Small Studio In-Game Animation

As we mentioned in that pitch, animation is one of the key challenges for the game, and we feel we need high quality character animation to really make the experience work. So that’s what we’ve been doing. However, it was not without complications. During the time where we were working on the initial prototypes for Sir, we were lucky enough to get Frogames‘ Christophe Canon to produce some great character art and an early model for the main enemy NPC, the Hunter. A Great Old-Timey Game-Programming Hack. A long time ago, when I was a college undergrad, I spent some time working on computer video games.

A Great Old-Timey Game-Programming Hack

This was in the 8-bit PC era, when the gaming hardware was almost impossibly slow by today’s standards. It might not surprise you, then, to learn that game programmers of yore did all sorts of crazy things to make their games run at playable speeds. Crazy, crazy things. This is a story about one of those things. While I’ve done my best to recall the important details, I may have gotten some things wrong.

(Note: This post contains some small images as inline-data URLs that some feed readers apparently don’t handle well. Update 2013-12-16: There have been lots of great comments about this story on Hacker News and Proggit, as well as here on the blog. Xplain. <p class="warning"> This article relies a lot of interactive demos that use JavaScript to show how the X Window System works.

Xplain

The article unfortunately won't work properly without these interactive demos, so if you feel like you're missing out, try enabling JavaScript? </p> Introduction¶ Last year, I wrote an article describing the free and open-source graphics stack, explaining all of the interconnected pieces: X11, graphics drivers, DRM, and DRI, and their roles in getting pixels placed on the screen.

In the year since, I've answered a lot of really good questions from the Linux community about my post, about X11, and about Wayland. However, I still field plenty of questions from lots of people about this, and a lot of the time, it's extremely simple stuff: "What is X? " These sort of questions were what inspired me to write "The Linux Graphics Stack" in the first place, but there's really never been a comprehensive, historical writeup of our display server technologies in general.

NES Programming.