Starting my journey with Minux3 and the 3rd edition of the OS: Design & Implemtation

68 views
Skip to first unread message

Daniel Morgan

unread,
Sep 10, 2023, 12:55:47 AM9/10/23
to minix3
Hello,
I recently got my 3rd edition of the OS:D&I book and started my journey reading and studying this book while using Minix.

Are there others still on this journey as well?

I installed Minix 3.1.0 on a vm in Virtual Box so I had something that matched exactly what I am reading in the book.  But I also installed Minix 3.3 in a vm as well.  I got Minix 3.3 to connect to my host's internet.  But I was unable to get Minix 3.1.0 to do so.

Anyways, I am not ready to ask questions yet.  I am still getting starting - reading, researching, etc...  I just wanted to see if there are others out there as well.

I feel like I jumped into this book and Minix at the wrong time (late).  I've been wanting to get the book for the longest time - many years.  I finally decided to get the book.  And maybe everyone has moved on?

I do hope others get involved to bring Minix 3 up to a certain level it can be installed on modern hardware and support newer devices including usb, etc.  While at the same time trying to keep Minix small and simple.  I hope people understand that Minix is an education tool.    Linux is huge.   Where as the entire Minix OS and its source code fit on a cd that got installed into a vm for me.   

I hope I progress enough along this journey I can contribute changes to Minix.  

I jumped into this to make myself a better user and programmer for Unix-like operating systems by helping me understand what is going on underneath the hood.

- Daniel

Justin Handville

unread,
Sep 10, 2023, 3:24:02 AM9/10/23
to minix3
On Sunday, September 10, 2023 at 12:55:47 AM UTC-4 Daniel Morgan wrote:
Hello,
I recently got my 3rd edition of the OS:D&I book and started my journey reading and studying this book while using Minix.

It's a modern classic well worth reading.
 
Anyways, I am not ready to ask questions yet.  I am still getting starting - reading, researching, etc...  I just wanted to see if there are others out there as well.

There are plenty of folks willing to answer questions and help.
 
I feel like I jumped into this book and Minix at the wrong time (late).  I've been wanting to get the book for the longest time - many years.  I finally decided to get the book.  And maybe everyone has moved on?

AST retired, and when he did, a lot of the regulars working on Minix 3 moved on. There are occasional efforts to reboot the project, but so far, it's been difficult to get permission.
 
I do hope others get involved to bring Minix 3 up to a certain level it can be installed on modern hardware and support newer devices including usb, etc.  While at the same time trying to keep Minix small and simple.  I hope people understand that Minix is an education tool.    Linux is huge.   Where as the entire Minix OS and its source code fit on a cd that got installed into a vm for me.   

Even if not, the concepts taught in the book are useful. Minix 3 can always be run in a VM as is, even as hardware evolves.
 
I hope I progress enough along this journey I can contribute changes to Minix.  

If things start again, I'm sure you'd have the opportunity. Even if not, the concepts you learn from the book could be used to create a similar OS on your own. The 3.1.x Minix kernel is around 5000 lines of C. It would be a significant effort, but you could teach yourself from this book and write an OS targeting ARM, RISC-V, or even x86_64. Perhaps this OS wouldn't be as performant or complete as other modern OSes with many decades of continuous improvement, but it would be your own. Also, this book opens the door toward understanding other microkernel OSes, like seL4.
 
I jumped into this to make myself a better user and programmer for Unix-like operating systems by helping me understand what is going on underneath the hood.

Welcome aboard, and good luck!
 

Daniel Morgan

unread,
Sep 18, 2023, 12:05:01 AM9/18/23
to minix3
Hello all.  
I am continuing on my journey.  Still on chapter 1 but I am taking my time to understand things.  Re-read if needed.  I saw a snippet in the book about simplified command processor on what it needed to do to run a command, such as, the copy command: cp.  Fork is called to create a child process using a copy of the environment, code, and registers.  And depending on the result of fork(), you know it is the child process running the code vs. the parent process.  Interesting. Etc.   So, I was thinking of taking the example code and compiling it in a C compiler.  Then tweak it a little bit to see what it does.  And read up on the documentation on the various system calls used.

I see on the wiki the various guides including user, install, virtual machines, developer, etc.   I was just wondering if we could have a separate page for the prerequisites whether hardware, software, knowing a programming language, or about virtual machines.  Maybe some example books or tutorials to bring someone up to speed who is not currently a student. Some things are obvious like knowing the C programming language.  So the C Programming Language 2nd ed by K&R is the book to learn (or re-learn in my case).  Not that I completely forgot C.  The past 10-20 years has been knowing C just enough for interop with libraries written in C from higher programming languages.   I also assume knowing UNIX/Linux utilities/commands, text editors, help.  These are listed on various Minix guides.  Since the latest versions of Minix use many commands from NetBSD userland - so maybe a good NetBSD book to read?  What programming languages would be good to know for Minix?  C, x86 32-bit assembly language, Perl, Python, tcl, shell scripting?   What are some more good books to read that are not on the developer or user guides?

I read that Minix uses ash but another places says sh.  Bash is available which is typically the default on Linux.   So, what shell/shell programming should i learn for Minix?  

I've already taken a peek at the Minix source code in C just to see how it looks in /usr/src. I am curious, how do you build Minix on Minix?   How much RAM do you need to do this?
Did i read that the latest Minix like 3.3/3.4rc can use modern hardware like USB devices?  SCSI disks?

And how close are these later versions of Minix 3 are close to The Minix Book?  Is it really the userland that is different but the kernel is basically same which additions to support new hardware like USB and SCSI?

Are there students out there still going through the book learning Minix?

Thanks, Daniel
danmorg on irc








Reply all
Reply to author
Forward
0 new messages