Computer Old Farts Forum
 help / color / mirror / Atom feed
* [COFF] Most folks here started their OS learning with Unix
@ 2019-01-10 14:52 david
  2019-01-10 15:09 ` ralph
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: david @ 2019-01-10 14:52 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 923 bytes --]

Myself it was v6 (most likely the typesetter version).

What I’d like to see discussed is how people today learn to write, enhance, design, and otherwise get involved with an OS.

When I was teaching at UCSD my class on Unix Internals used writing a device driver as the class project and covered an overview of the Unix OS using the Bach book. Even then (the late 80’s) it was hard to do a deep dive into the whole of the Unix system.

Today Linux is far too complex for someone to be able to sit down and make useful contributions to in a few weeks possibly even months, unlike v6, v7 or even 32v. By the time of BSD 4.1[a,b,c] and 4.2 those had progressed to the point that someone just picking up the OS source and trying to understand the whole thing (VM, scheduling, buffer cache, etc) would take weeks to months.

So what is happening today in the academic world to teach new people about OS internals?

	David


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] Most folks here started their OS learning with Unix
  2019-01-10 14:52 [COFF] Most folks here started their OS learning with Unix david
@ 2019-01-10 15:09 ` ralph
  2019-01-10 15:23 ` clemc
  2019-01-10 15:39 ` crossd
  2 siblings, 0 replies; 5+ messages in thread
From: ralph @ 2019-01-10 15:09 UTC (permalink / raw)


Hi David,

> So what is happening today in the academic world to teach new people
> about OS internals?

Do you know of https://en.wikipedia.org/wiki/Xv6 ?

-- 
Cheers, Ralph.
https://plus.google.com/+RalphCorderoy


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] Most folks here started their OS learning with Unix
  2019-01-10 14:52 [COFF] Most folks here started their OS learning with Unix david
  2019-01-10 15:09 ` ralph
@ 2019-01-10 15:23 ` clemc
  2019-01-10 15:26   ` clemc
  2019-01-10 15:39 ` crossd
  2 siblings, 1 reply; 5+ messages in thread
From: clemc @ 2019-01-10 15:23 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2888 bytes --]

The architects of MIT's 6.828 course "Operating Systems Engineering") were
unsatisfied with the current stable of systems for teaching, so they did a
reimplementation of 6th Edition in modern ANSI C (with a couple of GNU
extensions for things like assigning names to registers) targeting a
multiprocessor x86.

As I look it, it is a clean interesting, and accessible piece of work.  As
the person that mentioned it to be said: "a modern take on a classic" - the
course if being offered this fall at the URL:   6.828 / Fall 2014
<http://pdos.csail.mit.edu/6.828/2014/xv6.html>

The latest xv6 source is available via
        git clone git://pdos.csail.mit.edu/xv6/xv6.git
<http://git//pdos.csail.mit.edu/xv6/xv6.git>

Tools are can be found at:   6.828 / Fall 2014
<http://pdos.csail.mit.edu/6.828/2014/tools.html>

Using the MIT course or the Lion's text will teach how the kernel works and
how a user program interacts with it.   IMO: Lion's commentary is super and
100% of the source is there to read and ponder.  Please remember that
generations of the best kernel hackers started with this document (although
some of us predate it - but when I saw it I made a copy).

And as I said, I just looked at the MIT documents and they are awesome too;
but I have just opened them up and have not yet gotten a chance to try the
exercises.

What is even cooler is if you want to try xv6 - it will just run on your
system using QEMU (which the MIT folks point too - they even made some mods
to QEMU to help with their project).
ᐧ

On Thu, Jan 10, 2019 at 10:00 AM David <david at kdbarto.org> wrote:

> Myself it was v6 (most likely the typesetter version).
>
> What I’d like to see discussed is how people today learn to write,
> enhance, design, and otherwise get involved with an OS.
>
> When I was teaching at UCSD my class on Unix Internals used writing a
> device driver as the class project and covered an overview of the Unix OS
> using the Bach book. Even then (the late 80’s) it was hard to do a deep
> dive into the whole of the Unix system.
>
> Today Linux is far too complex for someone to be able to sit down and make
> useful contributions to in a few weeks possibly even months, unlike v6, v7
> or even 32v. By the time of BSD 4.1[a,b,c] and 4.2 those had progressed to
> the point that someone just picking up the OS source and trying to
> understand the whole thing (VM, scheduling, buffer cache, etc) would take
> weeks to months.
>
> So what is happening today in the academic world to teach new people about
> OS internals?
>
>         David
> _______________________________________________
> COFF mailing list
> COFF at minnie.tuhs.org
> https://minnie.tuhs.org/cgi-bin/mailman/listinfo/coff
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/coff/attachments/20190110/410d456c/attachment-0001.html>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] Most folks here started their OS learning with Unix
  2019-01-10 15:23 ` clemc
@ 2019-01-10 15:26   ` clemc
  0 siblings, 0 replies; 5+ messages in thread
From: clemc @ 2019-01-10 15:26 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3300 bytes --]

BTW: that was cut/pasted from my quora answer: Clem Cole's answer: Which
Linux kernel version's source code is better for newbie to read?
<https://www.quora.com/Which-Linux-kernel-versions-source-code-is-better-for-newbie-to-read/answer/Clem-Cole>
ᐧ
ᐧ

On Thu, Jan 10, 2019 at 10:23 AM Clem Cole <clemc at ccc.com> wrote:

> The architects of MIT's 6.828 course "Operating Systems Engineering") were
> unsatisfied with the current stable of systems for teaching, so they did a
> reimplementation of 6th Edition in modern ANSI C (with a couple of GNU
> extensions for things like assigning names to registers) targeting a
> multiprocessor x86.
>
> As I look it, it is a clean interesting, and accessible piece of work.  As
> the person that mentioned it to be said: "a modern take on a classic" - the
> course if being offered this fall at the URL:   6.828 / Fall 2014
> <http://pdos.csail.mit.edu/6.828/2014/xv6.html>
>
> The latest xv6 source is available via
>         git clone git://pdos.csail.mit.edu/xv6/xv6.git
> <http://git//pdos.csail.mit.edu/xv6/xv6.git>
>
> Tools are can be found at:   6.828 / Fall 2014
> <http://pdos.csail.mit.edu/6.828/2014/tools.html>
>
> Using the MIT course or the Lion's text will teach how the kernel works
> and how a user program interacts with it.   IMO: Lion's commentary is super
> and 100% of the source is there to read and ponder.  Please remember that
> generations of the best kernel hackers started with this document (although
> some of us predate it - but when I saw it I made a copy).
>
> And as I said, I just looked at the MIT documents and they are awesome
> too; but I have just opened them up and have not yet gotten a chance to try
> the exercises.
>
> What is even cooler is if you want to try xv6 - it will just run on your
> system using QEMU (which the MIT folks point too - they even made some mods
> to QEMU to help with their project).
> ᐧ
>
> On Thu, Jan 10, 2019 at 10:00 AM David <david at kdbarto.org> wrote:
>
>> Myself it was v6 (most likely the typesetter version).
>>
>> What I’d like to see discussed is how people today learn to write,
>> enhance, design, and otherwise get involved with an OS.
>>
>> When I was teaching at UCSD my class on Unix Internals used writing a
>> device driver as the class project and covered an overview of the Unix OS
>> using the Bach book. Even then (the late 80’s) it was hard to do a deep
>> dive into the whole of the Unix system.
>>
>> Today Linux is far too complex for someone to be able to sit down and
>> make useful contributions to in a few weeks possibly even months, unlike
>> v6, v7 or even 32v. By the time of BSD 4.1[a,b,c] and 4.2 those had
>> progressed to the point that someone just picking up the OS source and
>> trying to understand the whole thing (VM, scheduling, buffer cache, etc)
>> would take weeks to months.
>>
>> So what is happening today in the academic world to teach new people
>> about OS internals?
>>
>>         David
>> _______________________________________________
>> COFF mailing list
>> COFF at minnie.tuhs.org
>> https://minnie.tuhs.org/cgi-bin/mailman/listinfo/coff
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/coff/attachments/20190110/ac161b0c/attachment.html>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [COFF] Most folks here started their OS learning with Unix
  2019-01-10 14:52 [COFF] Most folks here started their OS learning with Unix david
  2019-01-10 15:09 ` ralph
  2019-01-10 15:23 ` clemc
@ 2019-01-10 15:39 ` crossd
  2 siblings, 0 replies; 5+ messages in thread
From: crossd @ 2019-01-10 15:39 UTC (permalink / raw)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2821 bytes --]

On Thu, Jan 10, 2019 at 10:00 AM David <david at kdbarto.org> wrote:

> Myself it was v6 (most likely the typesetter version).
>
> What I’d like to see discussed is how people today learn to write,
> enhance, design, and otherwise get involved with an OS.
>
> When I was teaching at UCSD my class on Unix Internals used writing a
> device driver as the class project and covered an overview of the Unix OS
> using the Bach book. Even then (the late 80’s) it was hard to do a deep
> dive into the whole of the Unix system.
>
> Today Linux is far too complex for someone to be able to sit down and make
> useful contributions to in a few weeks possibly even months, unlike v6, v7
> or even 32v. By the time of BSD 4.1[a,b,c] and 4.2 those had progressed to
> the point that someone just picking up the OS source and trying to
> understand the whole thing (VM, scheduling, buffer cache, etc) would take
> weeks to months.
>
> So what is happening today in the academic world to teach new people about
> OS internals?
>

I'm a kernel engineer, but I don't have much of a formal background in
computer science; my training was in mathematics.

However, I audited the MIT OS course about a year ago (my office is across
the street from campus and Robert Morris and Adam Belay were kind enough to
let me sit in on the class and pester them with questions). They used JOS,
which has a fairly unique architecture, and xv6, which is a "modern"
re-implementation of most of v6.

I've seen some universities try to cover Linux (I believe my alma mater,
Columbia, does this), and I imagine that what that means is that they talk
about various subsystems at a relatively high level and give some very
focused programming assignments.

In the 90s there was a flurry of "teaching" operating systems. Things like
NACHOS and some successor systems were popular. I suspect Minix remains
popular in some circles, though I don't know.

I remember once in the 90s talking to some sysadmins; one of the Unix guys
got talking to the local VMS guru (who, by the way, was an amazingly
talented programmer--probably one of the best I've ever seen before or
since). They got to arguing about the merits of the respective systems and
the Unix guy incredulously said, "Unix is the textbook operating system..."
to which the VMS guy replied, "yeah, because the textbook was written about
Unix...". That's kind of a true statement and has always sort of stuck with
me.

The systems that influence me personally the most in my day-to-day work are
plan9, Unix, VMS (also in its other guise as Windows), Akaros, and to a
lesser extent L4, Multics, TOPS-20 and Minix.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/coff/attachments/20190110/3f4e8bd6/attachment.html>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-01-10 15:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-10 14:52 [COFF] Most folks here started their OS learning with Unix david
2019-01-10 15:09 ` ralph
2019-01-10 15:23 ` clemc
2019-01-10 15:26   ` clemc
2019-01-10 15:39 ` crossd

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).