comp.lang.ada
 help / color / mirror / Atom feed
From: Hadrien Grasland <hadrien.grasland@gmail.com>
Subject: Re: Stanford's Pintos Course
Date: Thu, 19 Nov 2015 00:38:28 -0800 (PST)
Date: 2015-11-19T00:38:28-08:00	[thread overview]
Message-ID: <03bdf331-6a54-4abe-9643-f4fc60ccadc9@googlegroups.com> (raw)
In-Reply-To: <87oaeqlojm.fsf@nightsong.com>

Le jeudi 19 novembre 2015 03:18:38 UTC+1, Paul Rubin a écrit :
> > I haven't looked through it terribly thoroughly, but I'd like to know if any
> > of the venerable here have experience with this system, or can recommend
> > any other "frameworks" for developing OS-level code in Ada.
> 
> I don't know that course you describe, but the basic features you
> mentioned are pretty standard in OS's, and you could read an OS book and
> implement in Ada (with some intrinsics for raw memory access etc).
> Tanenbaum's old book about OS's and Minix is pretty readable, describing
> a simple message passing OS written in C.  You could do something
> similar in Ada.  Of course I'm sure there's newer books now as well.

Also from Tanenbaum, I would strongly recommend "Modern Operating Systems". It's the single most useful book I've ever read on the theory and architecture behind operating systems.

Couple that with a general reference book on hardware architecture, and more detailed reference materials on the specific hardware you're targeting (e.g. wiki.osdev.org is a pretty good start for anything x86), and you should be all set.

The most tricky part will be, in my experience, to learn how to make your favorite programming language implementation produce suitable binaries, with a specific memory layout and without any dependence on underlying runtime services. This is usually the part of compilers and linkers that is most poorly documented, because it is not used very often. Thankfully, if you're using a reasonably popular language, someone has already done that and documented the process somewhere on the Web. See, for example, the "bare bones" tutorials of the OSdev wiki.

Once you've gone through that tricky part, it's really programming as usual, except that you have to write all the runtime services you need yourself. Quite an enlightening experience!


  reply	other threads:[~2015-11-19  8:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-19  1:22 Stanford's Pintos Course Nick Gordon
2015-11-19  2:18 ` Paul Rubin
2015-11-19  8:38   ` Hadrien Grasland [this message]
2015-11-19 13:22 ` Lucretia
2015-11-19 16:41   ` Luke A. Guest
2015-11-19 13:23 ` Lucretia
2015-11-19 18:23 ` johnscpg
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox