Simplifying the CORNELIUS memory map

It’s funny how ideas work their way out sometimes. Today I spent an hour ow two simplifying the memory map for my operating system and language CORNELIUS. I had thought that the way I had laid out the memory was pretty much as simple as it could be for this application, but just yesterday it …

Continue reading ‘Simplifying the CORNELIUS memory map’ »

Developing memory-mapped IO

I’m trying to make a concerted push on a first working version of CORNELIUS at the moment, and it’s throwing up all sorts of interesting aspects of software development. For the first version I am building the minimum OS and language in C. However, I am trying very hard to minimise the amount of C …

Continue reading ‘Developing memory-mapped IO’ »

Basics of a FORTH style systen

I have been reading about the early days of FORTH recently, and learned a lot about the ideas and philosophy behind the language and the system. In the past, when I had tried to create my own FORTH-style languages I think I was missing something important. I had been confusing the “language” of available FORTH …

Continue reading ‘Basics of a FORTH style systen’ »

Programming a Problem-Oriented Language

Several Posts ago, during a discussion of why I am interested in bare-metal operating systems development, I linked to Charles Moore’s biography on his ColorForth.com web site. At the time I was interested in looking at a variety of stack-based languages for inspiration, including ColorForth. Sure enough, ColorForth had some interesting ideas, but what stopped …

Continue reading ‘Programming a Problem-Oriented Language’ »

What is a “high level language”?

When I was first learning about computer science in the early 1980s, much was made of the difference between “low-level” and “high level” languages. Back then, it seemed as if the distinction was fairly clear: “low level” languages are languages which require you to understand the mechanics of how a computer works, and tell it …

Continue reading ‘What is a “high level language”?’ »

Operating System metaphors: Rooms and Doors

I am a big believer in the power of metaphor and analogy in software development. While these things can certainly be misused, they are also a useful way of viewing a design from different perspectives to gain fresh insight. Some metaphors are so common that we even lose sight of the fact that they are …

Continue reading ‘Operating System metaphors: Rooms and Doors’ »

What is an “operating system”?

Since deciding to have a go at producing my own operating system for the Raspberry Pi, one thing has been going round and round in my head. What exactly is an “operating system”? According to the introduction to the “Baking Pi” tutorials from the University of Cambridge: An operating system is just a very complicated …

Continue reading ‘What is an “operating system”?’ »

Interlude: a bit of history

Bear with me if you are here for insights about Raspberry Pi development. This will all come together eventually. I hope. In the early 1980s I studied Computer Systems Engineering at the University of Warwick. During the second year of the course I shared a student house with three friends and we had all sorts …

Continue reading ‘Interlude: a bit of history’ »