Hacker News Comments on
Design and Implementation of the FreeBSD Operating System, The
Hacker News Stories and CommentsAll the comments and stories posted to Hacker News that reference this book.
The Design and Implementation of the FreeBSD Operating System, 2nd ed., in the same category.
The Design and Implementation of the FreeBSD Operating System: https://www.amazon.com/Design-Implementation-FreeBSD-Operati...
I recommend (by most expensive, to free):
Marshall Kirk McKusick's FreeBSD Intensive Code Walkthrough: https://www.mckusick.com/courses/advdescrip.html
Also, The Design and Implementation of the FreeBSD Operating System (2nd Edition): https://www.amazon.com/Design-Implementation-FreeBSD-Operati...
Thirdly: grab a copy of FreeBSD (or OpenBSD) and (a) set it up in VirtualBox and SSH it into locally (b) use an old ThinkPad. Then grab the source code of the base system. Build and install it. And start reading code of things like usr.bin/grep/grep.c
⬐ antoncohenI have't done the code walkthrough course, but I bought and watched Kirk McKusick's Kernel Internals course and it is excellent (https://www.mckusick.com/courses/introdescrip.html). It is based around FreeBSD, but is a generic enough Unix internals course that it is good for Linux.
I'm thankful to have the opportunity to learn from someone with such deep knowledge of Unix, who was involved with BSD from the early days in the 80s to modern FreeBSD.
"The Design and Implementation of the FreeBSD Operating System" not only does a great job at covering how the UFS filesystem is implemented, but also does a great job at explaining how and Unix systems are implemented. I highly recommend this book to anyone with an interest in Unix internals.
If you are into operating systems:
The Design and Implementation of the FreeBSD Operating System
⬐ cpercivaSeconded. After being a FreeBSD developer for a dozen years some people might expect me to know everything this book covers, but in fact I pulled it out just last month to help me understand how some details of how the VFS layer and the NFS client worked.⬐ weavieI would be very impressed if anyone (human) could keep that whole book in their head!
If you haven't read the book "Design and implementation of the FreeBSD operating system" (https://www.amazon.com/Design-Implementation-FreeBSD-Operati...) you should. It's possibly the best "applied" OS book. It also contains some interesting code samples in the book which is surprisingly uncommon in comparable books.
FreeBSD has for years had some features that are only now reaching 'mainstream' popularity (e.g. jails, which containers are based on). This books explains all that in quite a bit of detail and manages to stay high level enough not to get boring with the details but gives you enough detail to have a pretty detailed understanding.
It's also one of the few books that talks about networking in very practical terms (and not like OSI layers and whatnot) which makes me say that it's also possibly one of the best books on networking (you learn quite a bit about networks from how OS's work with them).
It also has the hands down best file system around (the book also talks about that).
And unlike large parts of linux, the kernel source is actually pretty legible.
⬐ skrebbelAs a lifelong Windows user, I've always been surprised about the obsession Unix users seem to have with filesystems.
I mean, as an end user (developer, but I assume that doesn't matter), what I expect from a filesystem is:I also appreciate how many tools can use stats (eg filemtime) for good effect, and how fine grained permissions help keep my computer secure. All filesystems I've ever used let me do these things, and have for a long time.
* let me save a file in a directory * let me open it again
This probably makes me a Blub programmer in file system terms. What am I missing? Why should I be dissatisfied with NTFS? I mean, in all honesty I don't even know which filesystems my various hard drives and sd cards have - I just save and open files.⬐ manquer⬐ eeZi>> let me open it again This is the tricky part, you should about worry as a user
Will it open exactly the same ? How likely is data corruption ? Will it work if I mount it on another OS or another version ? Is versioning supported ? Can it save all the modifications to a file and can I roll back to previous version if I want to ?. Can I take periodic backups without copying/transferring entire drive or entire files even ? Will using "a" file system improve/change my disk life time ?⬐ akvadrakoNTFS is a quite decent filesystem – even more so when it was introduced – and there is a lot to be said for having a one standard.
But would you really want to work with FAT or even exFAT as your main OS? It's about 20% slower and doesn't support ACLs or journaling, so you can lose data in a crash.
So filesystems matter and Linux still doesn't have a standard choice that's as good as other OSes had 5 years ago.⬐ regularfryThe extra features and differences in the ways the filesystems work make workflows practical which, while they might be theoretically possible on older one work, are too inefficient, or need task-specific userspace tooling to achieve.
Sparse files are one example. They weren't in the original NTFS, although I'm not sure when they were introduced. If your workflow involves lots of files that happen to be mostly zeroes (which is surprisingly common), then you can save a lot of space and time by simply not writing those zeroes to disk. You could achieve the same result by compressing the files, but then everything you might want to use to manipulate those files has to be aware of that compression, and you've got added CPU overhead you might not want.
Copy-on-write snapshots are another. If you've taken a point-in-time backup and want to update it, you can take a snapshot and just copy the changed files across. That's not the clever bit, you can obviously do that with things like rsync. The clever bit is that you can make both the snapshot and the new version fully working file trees, which any of your other tools will work transparently with, and still take advantage of the space saving of the shared, unchanged parts. Again, you could mimic this by either fully copying the file tree first (in which case no space saving, and extra time to duplicate the files) or with hardlinks (which rsync does, but especially on Windows not all tools work well with).
I think one of the reasons Unix users seem to be more interested in filesystems than Windows users is that it's far, far harder to develop a new filesystem (or new filesystem features) on Windows than elsewhere. The Linux kernel interface was specifically designed to make it easy to plug new filesystem implementations in, so people have. On Windows, you're pretty much reliant on MS doing it for you, so you might not even notice when significant new NTFS features go in which would be headline news in other ecosystems. NTFS doesn't have to compete, and its users are in a sense locked in.⬐ astrobe_It's about how the FS does this stuff.
Take for instance the old FAT filesystem from MS-DOS. If you use it on an SD/SSD (or even a USB key, that's more or less the same tech), you're likely to burn it fast, unless the device does "wear-leveling" internally. Journaling filesystems like Ext4 avoid that by make it so that they don't overwrite again and again the same sector even if the system overwrites the same file again and again.
Another aspect is resilience to system crashes or power outages. A sudden power outage can leave data half-written, including the file allocation table, which may result in severe data corruption. This is especially important for embedded devices, but not only. Some file systems are designed with that possibility in mind.
Then there are performance considerations. FAT had to group sectors into clusters because of the limited number of FAT entries, so a little 1Kb file would actually use something like 8Kb on the disk (Windows still display both sizes BTW). There's also caching policies. If you want something "crash-proof", you don't want any write cache. But if you want something fast, you want a big cache. some filesystems pick resilience, others pick performance, others let you set the parameters you want.⬐ wolf550e⬐ wvhI think you have confused journaled with log structured filesystems.⬐ astrobe_Yes I had.Are you talking about high-performance high-reliability server applications, or more about end-user front-end applications?
There's a bit of a difference when it comes to running servers with thousands of users where you want to squeeze every drop of performance out of your hardware and without ever losing data, as to developing an end-user POS interface or other GUI applications. FreeBSD might be picked more often for back-end applications and Windows more for user-facing applications. It's the difference between keeping one user happy versus keeping many as happy as possible.
It probably doesn't matter much what kind of car you drive in the city centre – the requirements and limits are very different than on a race track where every little detail matters in the performance equation.⬐ jvdhWindows handles a lot of abstractions, to hide users from the nitty gritty details (OS X does the same thing). One of those things is hiding as much of the file system as possible.
Unix usually has users engaged at a lower level, adding a startup daemon means moving a file to a certain place. That shows that filesystems are much more the direct interface for the operating system.
Also, it is possible to have a Unix operating system, but have a completely different filesystem underneath. This is just not possible for Windows users. So there is no choice, so it is nothing Windows users think about in general.> FreeBSD has for years had some features that are only now reaching 'mainstream' popularity
It's also lacking a bunch of features that reached "mainstream popularity" a long time ago.
Example: ASLR, the most important exploit mitigation techniqueFreeBSD is still lacking ASLR support despite a number of attempts and an actively maintained fork.
- 2001 - PaX Linux - 2003 - OpenBSD - 2005 - Upstream Linux - 2007 - Windows - 2007 - OS X - 2011 - iOS - 2016 - NetBSD
Linux even has Kernel ASLR (even though its effectiveness is debatable and it's much better with the Grsecurity patchset).
I'm a FreeBSD user and run it on a number of firewalls, but FreeBSDs approach at security worries me and I consider porting everything to OpenBSD or Linux.
It did not even have signed packages until recently!
That was a great writeup, thanks. The author has a real talent for writing engaging explanations.
I've been making my way through The Design and Implementation of the FreeBSD operating System, which is a bit denser and more formal. It was nice to read about some of the same ideas in a different implementation. I'd recommend the book to anybody who enjoyed the post.
⬐ dimonomidThank you for such a positive feedback!
And thanks for sharing the book, I'll probably get to it. I've read a couple of books on Linux Kernel before writing TNeo, but haven't read anything on FreeBSD yet.
Wow! I just realized FreeBSD is about as old as I am! FreeBSD is a great system, and going from Windows to Ubuntu to FreeBSD was a fun transition, one I recommend for anybody willing to learn more about computers.
Recently a new book came out too for FreeBSD, I'll see if I can post it here without some sort of referral link: http://www.amazon.com/dp/0321968972/ref=wl_it_dp_o_pd_nS_ttl...
I managed to get one of my professors to purchase the book as well, and it was a nice piece of material for Intro to Operating Systems.
⬐ profquailI saw a promotion for Design and Implementation of the FreeBSD Operating System, 2nd. ed this morning, in case anyone is considering purchasing the book. If you buy it direct from the publisher, there is a coupon code  for 35% off -- bringing the price down to a very reasonable $36.
⬐ mwcampbellA DRM-free ebook is available here:⬐ omnibrain⬐ craftkillerCan anyone with an account please check how much shipping to germany costs? I don't want to set up an account with another site just to check shipping costs. I can get the book from Amazon but the Bok + eBook bundle informit offers looks attractive, but it all depends on the shipping costs.⬐ benjarrellI tried with the shipping address to the German Parliment (taken from https://www.bundestag.de/htdocs_e/visits/hinweis)
Platz der Republik 1 Berlin 11011 Germany
International shipping -- $9.00⬐ omnibrainThanks.The FreeBSD foundation is one of the charities that smile.amazon.com donates to, so if you're not already using it, consider purchasing the booking through smile.amazon.com so 0.5% of your purchase goes to them.⬐ aristusI audited McKusick's kernel class at Berkeley extension. 8 hour sessions every Saturday for a couple of months. I don't have a formal CS background but at the time had 10-12 years of professional experience. It was the most useful class I have ever taken, removing the magic behind the OS.⬐ Someone1234⬐ jrapdx3Was that online?⬐ KedarMhaswadeYou can register here: https://www.mckusick.com/courses/introinterestform.html and if you are not in the Bay Area, you could buy the videos.As a long-time user of FBSD (since 4.x), the book looks like it's quite comprehensive. Keeping up with all the recent changes is difficult, and this detailed reference covers an impressive range of topics (as far as I can determine from the preview), particularly newer and updated features like the Capsicum framework, security features, ZFS, geom among others.
One disappointment is the book doesn't have much to say about UEFI and Secure Boot, which will be important to easily integrate FBSD with other systems on current PC hardware. Understandable though, as they're still in development and the authors not yet ready to discuss it.
For an 800+ page book the price is rather modest. Looks like one that will have to go on my "must get" list.⬐ gonzo⬐ przemocUEFI just went into FreeBSD (it might make 10.1-RELEASE)
In other words: it's too early.⬐ kev009⬐ digitailorThe UEFI memstick works for me. But there's no EFI ZFS boot loader, root on ZFS is an open feature still.⬐ TomteBut the book claims to "cover all major improvements between Versions 5 and 11". :-)⬐ tkinomFeel the Force, Read the Source! :-)⬐ cpercivaUEFI is in 10.1-BETA1, so I think it's safe to assume that it will be in 10.1-RELEASE. ;-)If it wasn't ready by print date, it would be a very ugly section. ;) None of the tools people have made to get BIOS 'nixes to install on UEFI worked for me. (Debian still has no install for UEFI.) Maybe this process would work for FreeBSD. Here's what I had to do to get crunchbang going on a 2009 MacBook Pro (which is UEFI):Bonus: Apple's bootloader is now gone, speeding things up and removing an extra bootup selection. Straight to GRUB.
1. Install Linux Mint via USB thumbdrive (Ubuntu has UEFI support) Use to format and partition destinination drive appropriately 2. install grml-rescueboot 3. cp crunchbang .iso to /boot/grml-rescueboot 4. In the grub CLI (that 40x80 first stage GRUB prompt), set the $root variable 5. > linux ($root)/install/vmlinux > initrd ($root)/install/initrd.* 6. Insert Crunchbang install DVD, locate CDROM drive in the GRUB CLI (enjoy finding things in the 40x80 context) 7. Install, reboot, sudo update-grub, reboot 8. Celebrate, and then weep bitterly because it took ten hours to figure out
Does anyone know if this process might work for 'BSD? Haven't installed one since the mid-2000s.⬐ dmm> Debian still has no install for UEFI.
It works fine for me? What's missing? I installed Debian on a UEFI system with gpt disk sometime around May 2013 and it's been running fine since.⬐ NoneNone⬐ digitailorYes you're right, except I wasn't able to get a Debian install image to burn to a thumb drive the Mac would recognize. That's why I had to use Mint. Unfortunately, for this particular MBP there are no nvidia drivers that work well or at all in Mint, so I went the masochistic #! install route. I'm glad I did though.⬐ Kurtz79It's about Ubuntu, but using this I was able to create a bootable USB drive with rEFIt, and then booting a FreeBSD live CD image on another stick for installing.⬐ josteinkFirst this:
> Debian still has no install for UEFI.
> I wasn't able to get a Debian install image to burn to a thumb drive the Mac would recognize
Blaming Debian for the locked down nature of Macs and the general shortcomings of Apple-computers for hacking-purposes seems a bit far-fetched.
Get a laptop not made by patent-trolls, and you may expect better Debian-support.⬐ Kurtz79I don't think he is blaming Debian in any way.⬐ digitailorSomething got lost in translation- I use Debian exclusively as my Linux distro, and Crunchbang is a thin veneer over it. It was a lot of effort to get it going on that MacBook and worth every hour. The distro has zero responsibility to support Mac hardware, but they were close, and the last mile was my job. That's entirely reasonable.
Do you know how happy I was to figure out how to get the Apple bootloader off of the machine? Joyous! I was proud ;)I was never into FreeBSD (I hoped to dive into it more in the past, but never done so sadly), but heard that 1st ed was really good, so the revised version quite likely shouldn't be any worse (hopefully even better). I would order it, but there are still many technical books on my shelf waiting for my attention, thus adding another one will not help in that matter.
One thing is sure, even if you're not into FreeBSD, broadening your perspective is never wrong. So I may eventually order it in the future.⬐ umanwizard⬐ jonaldomoFreeBSD combined with this book is great for learning about operating systems in general, regardless of whether you care about FreeBSD specifically. The book goes into a lot of detail about why certain design decisions were made, and how things are implemented in other operating systems.
If you're already studied some other OS in general, you might not need this book, but if you haven't, this is a great place to start.⬐ KedarMhaswadeThanks! Do you think it's useful to get this one even if you have used Linux almost exclusively? Will it make it easier for one to get into Kernel development?⬐ truncateI've worked a little on kernel. I think it would surely help to get into kernel development. Codebase is different, but they share similar architecture. If you understand one, it wont be hard to get started with other. From my experience I found BSD codebase easier to approach than Linux.⬐ countYes. I'd also get 'Modern Operating Systems' by Tannenbaum, which will explain lots of stuff that might be opaque/confusing if you're not already a kernel guy.⬐ pjmlpPersonally I would say yes, as it shows not all UNIXes are alike.⬐ umanwizardSure. But it's worth having a FreeBSD box (or VM) that you can use to tinker with the kernel.
Recompiling FreeBSD kernel source is super easy, by the way. It comes in /usr/src on your machine and all you need to do to reinstall one with your changes is "make buildkernel && make installkernel" . Actually understanding the sometimes decades-old source code, on the other hand, might be a little more difficult...⬐ KedarMhaswadeHow'd you compare this with Linux Kernel Development by Robert Love and/or Bovet/Cesati, especially for someone who's a newbie (but curious to learn and work hard)?For those of you who get to use this knowledge in your day to day jobs what kind of things are you working on?⬐ lsllcMy copy arrived yesterday. A real old-school textbook; reminds me of the days of poring over "Modern Operating Systems" in college!⬐ incisionMine arrived yesterday.
The size and heft of the print book is a welcome surprise, it's something that you could toss in a bag and hold to read without support (2.7 lbs, 9.4x6.4x1.4) - relevant for something that will eventually be shelved among stuff like "The Linux Programming Interface" (5 lbs, 9.5x7.2x2.3)⬐ Rapzid⬐ nomadlogicTLPI is my favourite book(technical book I own). Sometimes I look over at it and think "Man, what a great book". I'm very tempted to purchase this as well :)These books are pretty much a must read for anyone interested in the internals of Unix-type systems. I keep them right next to my TCP/IP Illustrated volumes, I reckon it's always good to have good reference material handy - especially when it is well written and researched.⬐ danso⬐ samuelYou sold me. I'm not particularly interested in knowing enough about FreeBSD to diagnose anything non-trivial, but I am interested in learning about design decisions behind operating systems.This book is great, even if you don't use FreeBSD. I remember that I learnt how a TLB/MMU really works by reading this book, and not on an Operating Systems lecture.⬐ snlacksWould HN-commenters recommend this (based off of experience with either edition) over other OS books for a self-teaching CS Curriculum?
Do you agree that picking one OS to study is the best way to learn about Operating Systems generally?⬐ gabriel⬐ michaelsbradleyI've read many theory and hands-on OS books and this book (the 1st Ed) is my favorite. But it is a dense book! Quite awesomely dense to be honest. One OS to study will certainly help (it helped me) to fully understand why the theory can be useful. This book especially can help make the connection between theory and practice.⬐ snlacks⬐ kaspersetI'll check it out, thanks. It might come in handy after I read a couple other books.This should also help you: http://pages.cs.wisc.edu/~remzi/OSTEP/⬐ snlacksWow! Thank you.Is there a comparable, relatively up-to-date book for Linux?⬐ mwcampbell⬐ pkayeTo be comparably authoritative, I guess a book like this for Linux would have to be written by Linus Torvalds or another senior Linux kernel developer.⬐ incisionNot exactly.
What really sets this book apart, in my opinion, is just how readable it is. I haven't run across anything with quite the same combination of style and depth for Linux.
You could read through something like The Linux Programming Interface  or Understanding the Linux Kernel  and with effort extract much of the same information, but without the pace/structure/commentary that I think this book does so well.
Thing is, conceptually much of what you'll read in this book will be applicable to Linux just fine and having read it will make it far easier to grok how/where the two differ.What are the major changes from the 1st edition? I had bought the old one just a few months back...⬐ rdc12Has anything important from the first edition been omitted from the second?⬐ cms07The first edition is quite good. I'm sure the 2nd is just as good.⬐ NoneNone⬐ cbd1984It seems odd that this book is only about the kernel, given that the BSD camp has always said that an advantage of a BSD over Linux is that a BSD is the whole package, from the GUI and command shell on down, whereas Linux is 'just' the kernel, and relies on distros to be usable.⬐ kev009⬐ muhahahaehhThe userland would be harder to write a long lasting book on. It's prone to change between major version numbers.. for instance clang/c++ RT/etc. It would be cool to see a volume on this stuff, but it would probably need a ton of authors and be more like a series of exposes (thinking a book like Architecture of Open Source Applications)Don't forget: http://www.openbsdfoundation.org/⬐ takeda⬐ ChuckMcMWhat this link has to do with the book?⬐ darkandbroodingOh man, now you've triggered my OCD and I feel pedantic.I have a very dog eared copy of the first edition and ordered this one. I also bought a copy of the CS class that Kirk taught at UCB on VHS video tape back when I was at NetApp.
I sort of think of three books as being core of a curriculum understanding operating systems, this book, "The Design of the UNIX Operating System" by Bach, and "Operating System Concepts" by Silbershatz. Owning and understanding those three texts will give you everything you need to know about working in the kernel and designing your own OS code.
⬐ linhatThe only non-FreeBSD systems I have to deal with by now are my Cellphone (Android) and my TV (funny enough, also Android). Made the switch from YOUR_FAVOURITE_LINUX_FLAVOUR after having to deal with (st)Ubuntu way too much at work.
Nonetheless, as much I prefer running FreeBSD on any kind of server system (as I have been for years), after using it on my (fairly new) laptop for a couple months now, I really wish there was better (new and shiny) hardware support (a commonly acknowledged FreeBSD deficiency, so yeah, I knew what I was getting myself into). Given, I only bought it because my old laptop was stolen at work, it belonging to the Haswell family did not really help (no internal WiFi [Intel IWN 7260], no hardware accelerated graphics [HD4400] and so forth...). But hey, who am I to complain, time to get hacking, which I suppose is more in the spirit of the BSD culture anyway and I'm not going back to NIX.
So yeah, glad this book got updated, most likely picking up this new edition...⬐ geekamI want to start learning internals of nix systems. Is this a good book to start with? Or is there a book on Linux (or any other nix OS) that I should begin with?⬐ myg204⬐ hadoukenioI recommend the xv6 source and commentary. Here's the link: http://pdos.csail.mit.edu/6.828/2012/xv6.html (has a pdf you can print out along with C code listing, and with nice references). It's very similar in idea to Lyon's commentary but with a more modern C code base.⬐ matt_heimerA little older but "The Magic Garden Explained: The Internals of UNIX System V Release 4, An Open Systems Design" is a really well written book for the core UNIX concepts.⬐ adamnemecekThat kind of depends on your background. I think that this book is recommended in some OS college courses as complementary reading since it describes a full blown OS and not some simpler OS that might be better suited for teaching purposes. You might want to find some OS college course that has materials available online, work through that and read this as you go along or when you are done with the course.⬐ JSnodont waste your time on BSD anymore. Linux dominates.⬐ ketralnis⬐ cpercivaOh I'm sorry, we'll all stop using our own favourite toys and start using your favourite toys.
Sorry for the inconvenience.⬐ adamnemecekYou don't know what you are talking about.⬐ stormqloudSo not true.
FreeBSD is a great server OS. With VM's hardware support gets less important for some use cases. IE LAMP.
The ports selection in FreeBSD is second to none. Linux has nothing close.
JuniperOS is retooled freebsd.
Lots of imbedded projects are based on BSD and always will be. The insanity of GPL licensing.
GPL3 is for activists and manifesto's. LGPL, GPL2 more then covered it for non activists.⬐ dscrd>The ports selection in FreeBSD is second to none. Linux has nothing close.
Well... I don't know about that. The Debian repositories seem quite close to that offering, at least by their breadth. Arch Linux's core repositories offer a high quality up-to-date minimal set, while their community and AUR repos offer a very wide set of 3rd party software, even if the latter is not always reliable.
Even though I like a lot about FreeBSD, I always found the ports the most awkward and error-prone part of it. And it's far too flexible, which for me was not worth the burden.⬐ herokusaki>With VM's hardware support gets less important for some use cases.
Speaking of, I wish jail-based FreeBSD VPSs were more widely available and cheaper. Where I've seen them the price is such that their use is hard to justify compared to Linux containers on RamNode or Digital Ocean.⬐ nnq⬐ throwaway812> jail-based FreeBSD VPSs
Isn't this called "shared FreeBSD hosting with shell access"? Like http://djangoeurope.com/ used to be, I think (I see they're Debian based now)...⬐ SanddancerNo. FreeBSD jails are different from a chroot jail -- it's much closer than OpenVZ than to something like Xen. You're running the core OS's kernel, but you have your own userland, namespaces, process space, etc.> The ports selection in FreeBSD is second to none. Linux has nothing close.
If you mean Linux-just-the-kernel, sure? But that's not really comparable.
Every Linux distro has a collection of 3rd-party packages; neither FreeBSD's 3rd party package integration (ports) nor breadth of software is particularly exceptional in this space.
And FreeBSD doesn't seem to attract as many volunteers to keep its port collection up to date, or at least that has been my experience.
> Lots of imbedded projects are based on BSD and always will be. The insanity of GPL licensing.
Sure. I work on a BSD-derived embedded system at $DAYJOB. But the GPL doesn't prevent Linux use in lots of spaces.⬐ stormqloud⬐ adamnemecekGPL3 certainly does.
Linux itself is fine with the GPL. Thats an OS only.
The problem is usually the Linux dist. Their solution to the packages problem is to include the kitchen sink.
Licensing is along the lines of "what's that". Ergo you use FreeBSD (or one of the others) when you need to have something to satisfy lawyers.
It's all tracked.
Companies can modify some minor bit for their "secret sauce" and bundle it up inside the vacuum cleaner. Not the hacker version.
Since the internet of the future is the "internet of things" that's kinda important.⬐ throwaway812GPLv3 doesn't see very widespread use.
Fedora tracks licenses on a package by package basis. You can fairly easily determine what the license of a library you use is, and recursively examine dependencies to see if there is something objectionable in there.
FreeBSD ships GPLv3 ports (gcc47, ...). So... it's not just smooth sailing there, either.
No need to hate on either platform.> JuniperOS is retooled freebsd.
Same with Orbis OS, the OS powering PS4.⬐ samuelAnd NetApp's Data ONTAP...If you want to understand how operating systems work, this is a very good book to start with.
If you just want to learn enough to be able to use unix, look for something else. As the title says, this book is about design and implementation, not usage.⬐ geekamI want to understand how Operating Systems work. Thanks.
I did read the theory of OS by Silberschatz, Galvin et. al. I needed something that had more real-world orientation with source code references.⬐ NzenTo see another way that operating systems (could) have gone, you could read about Niklaus Wirth's Oberon system that Zurich university still uses and develops on. He & Jurg Gutknecht designed/built the system from processor & peripherals to the language and end user applications. Total stack consistency.First edition was a great book. For anyone interested in other OS dev books, I highly recommend:
- Design and Implementation of the UNIX Operating System (Maurice J. Bach) - Modern Operating Systems (Andrew S. Tanenbaum) - Operating Systems Design and Implementation (Andrew S. Tanenbaum) - Linux Core Kernel Commentary (Scott Andrew Maxwell)⬐ kriroOr if you are a bit less technical "The Elements of Computing Systems". A very good book for the "I taught myself how to program and now I'm curious about OSdev" crowd.
[adding to the off topic rant: I generally agree but off the top of my head "Schrödinger programmiert Java" and the entire Schrödinger... series are decent and hit the typical US-style tone. Not sure if you count a programming book as a technical book though :)]⬐ winkMoreover there were hardly any tech books besides those 2 by Tanenbaum that I thorougly enjoyed reading as much. Not quite like a novel, but surely not as dry as usual.
Queue mildly relevant rant: I've never seen a German technical author hit the casual tone that American authors are a lot better at. Originally German tech books usually are as fun reading as manuals to a device and not entertaining at all...⬐ matt_heimerMr. Tanenbaum seems like a nice guy. I gave away a copy of Operating Systems Design and Implementation for my osdev website a couple years ago and asked him if he'd sign a copy if I sent it to him. He apologized for not having spare copies to give away and he paid to ship the book even though I told him I would.