Reddit Reddit reviews Operating System Concepts

We found 18 Reddit comments about Operating System Concepts. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Operating Systems
Operating System Concepts
Check price on Amazon

18 Reddit comments about Operating System Concepts:

u/polypeptide147 · 14 pointsr/HowToHack

Start here.

Read those left to right. You will learn a lot about networking, a lot about Python and how that is commonly used to hack, and then a lot about Kali Linux. You won't learn how to use the tools, but you will learn what they are.

I would also recommend "Operating System Concepts" but it is a bit pricey. I like that book because it doesn't teach you how to use a bunch of commands in linux, rather it teaches you how operating systems work and why they work that way. Very interesting, and there is an entire section on security. Also, "Penetration Testing" is a good one, and it is cheap too. You will learn how to use some Kali tools, but you'll also learn the important stuff. Buffer overflows and format string attacks are what you need to know how to do. You need to know how to look at and manipulate memory.

If you want to figure out how to do it yourself, read the first four books. If you want a step-by-step guide of exactly what to do, read the last book. It is also pretty important, IMHO, to know a bit about operating systems, but honestly you don't need that one. It just tells you why things are the way they are, which is sometimes helpful when you're like "oh I wonder if I can hack in like this" but then you remember that you could, but they changed it because you could.

Good luck on your endeavors!

Edit: I looked at the sidebar and it agrees with me about learning how OS's work. It says: I think the best place to start is to get a solid understanding of OS concepts first. The combo of Linux, C, and ASM are almost essential to really understanding how everything melts together. I like this resource: http://wiki.osdev.org/Expanded_Main_Page.

u/mcur · 14 pointsr/linux

You might have some better luck if you go top down. Start out with an abstracted view of reality as provided by the computer, and then peel off the layers of complexity like an onion.

I would recommend a "bare metal" approach to programming to start, so C is a logical choice. I would recommend Zed Shaw's intro to C: http://c.learncodethehardway.org/book/

I would proceed to learning about programming languages, to see how a compiler transforms code to machine instructions. For that, the classical text is the dragon book: http://www.amazon.com/Compilers-Principles-Techniques-Tools-Edition/dp/0321486811

After that, you can proceed to operating systems, to see how many programs and pieces of hardware are managed on a single computer. For that, the classical text is the dinosaur book: http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333 Alternatively, Tannenbaum has a good one as well, which uses its own operating system (Minix) as a learning tool: http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/0136006639/ref=sr_1_1?s=books&ie=UTF8&qid=1377402221&sr=1-1

Beyond this, you get to go straight to the implementation details of architecture. Hennessy has one of the best books in this area: http://www.amazon.com/Computer-Architecture-Fifth-Quantitative-Approach/dp/012383872X/ref=sr_1_1?s=books&ie=UTF8&qid=1377402371&sr=1-1

Edit: Got the wrong Hennessy/Patterson book...

u/Knighthawkbro · 6 pointsr/linuxadmin

Honestly, you are never going to find a way to shortcut you out of this situation. No one answer is going to be perfect and get you from A to B if your already at C. I had a similar experience with programming and web development.

I studied computer networking all my adult life and never thought I would be developing as my career at the moment. It is the burden of knowing too much and not having a clear direction. What I needed was more confidence in my skills which can only really develop over the years through experience.

You say you already know a lot of Linux and Bash concepts. CD/CI pipelines try to abstract a lot of OS related involvement since your code doesn’t need to know how low level kernel operations are happening.

What it sounds like you need is knowledge of OS concepts, not just Linux concepts. I say this because every OS has its own way of doing the same thing one way or another.

For example virtual memory, if you understand the concept of virtual memory in any OS rather than a specific OS’s semantics regarding Virtual memory then I think you would be better off in the long run.

If I am wrong and you are the master of the Linux environment, I believe you just need to deep dive into development strategies and the core principles of CD/CI. Once you have a foundation it doesn’t really mater if you are a Jenkins expert or CircleCI expert, all that matters is if you have a foundation to fall back on.

Edit: if you wanted my two cents on material here are some books I recommend.

The Practice of System and Network Administration

Operating Systems Concepts

UNIX and Linux System Administration Handbook

u/Echohawkdown · 6 pointsr/TechnologyProTips

In the interim, I suggest the following books:

  • Digital Design and Computer Architecture, by Harris & Harris - covers the circuitry & hardware logic used in computers. Should also cover how data is handled on a hardware level - memory's a bit rusty on this one, and I can't find my copy of it right now. Recommend that you read this one first.

  • Computer Organization and Design, by Patterson & Hennessy - covers the conversion of system code into assembly language, which itself turns into machine language (in other words, covers the conversion of programs from operating system code into hardware, "bare metal" code). Knowledge of digital circuitry is not required before reading, but strongly recommended.

  • Operating System Concepts, by Silberschatz, Galvin & Gagne - covers all the basic Operating System concepts that each OS today has to consider and implement. While there are Linux-based ones, there are so many different Linux "flavors" that, IMO, a book that covers a specific Linux base (called a Linux kernel) exclusively would be incomplete and fail to address all the key aspects you'll find in modern OSes. Knowledge of coding is required for this one, and therefore should be read last.

     

    As for the coding books, I suggest you pick one up on Python or Java - I'm personally biased towards Python over Java, since I think Python's syntax and code style looks nicer, whereas Java makes you say pretty much everything you're doing. Both programming languages have been out for a long time and see widespread usage, so there's plenty of resources out there for you to get started with. Personally, I'd suggest going with this book for Java and this book for Python, but if you go to Coursera or Codecademy, you might be able to get better, more interactive learning experiences with coding.

    Or you can just skip reading all of the books I recommended in favor of MIT's OpenCourseWare. Your choice.
u/[deleted] · 5 pointsr/iiiiiiitttttttttttt

Actually, that's the most useful book here, most of the content would be still relevant.

And they still have dinosaurs on the cover of the current edition. It's a widely used book.

u/solid7 · 3 pointsr/learnprogramming

In that pile-o-stuff there are really two main subjects: architecture and operating systems. I'd pick up recent copies of the dinosaur book and where's waldo. Silbershatz and Tanenbaum are seminal authors on both subjects.

There are numerous resources to learn C. Since I seem to be recommending books, Kernighan and Ritchie's book is pretty much the gold standard.

Good luck.

u/wademealing · 3 pointsr/linux

These books specifically:

http://pages.cs.wisc.edu/~remzi/OSTEP/

https://www.amazon.com.au/Operating-Systems-Concepts-Abraham-Silberschatz/dp/1118063333/ref=sr_1_1?ie=UTF8&qid=1551058787&sr=8-1&keywords=Operating+System+Concepts

​

http://man7.org/tlpi/index.html

​

And most importantly a wasted youth reading far too many online newsgroups, rfc's and troubleshooting technical issues.

​

u/ksheep · 3 pointsr/geek

It appears to be this book. Looking at the 2011 version, the above quote shows up in Chapter 8, word for word. Looks like they kept it in newer versions as well (and someone said that it was there in the 2008 version, too).

u/jerrro · 2 pointsr/learnprogramming

This book is really good. Edit: Seems like I took this for the wrong book. I meant this one

u/errorkode · 2 pointsr/learnprogramming

I started working on my own operating system a few months back (in NIM, not Rust) and can tell you, yes, you're indeed in over you head, but don't let that stop you. Just be aware that progress will be slow and hard. You will have to learn a lot of arcane things about your language, your processor and operating systems in general, while your OS for the most part just crashes and you pour over memory dumps.

I'm not saying this to discourage you, just be aware what you're getting yourself into here. As others have pointed out, there are a bunch of tutorials out there on how to get started with Rust, but that will only get you to the point where you can start your work in earnest.

By far the most useful resource on my adventures so far has been the OSDev Wiki. It's not the best organized place out there, but they have accumulated a lot of knowledge there that can be hard to get your hands on. I can also recommend the "Dinosaur Book" Operating System Concepts for a general overview of stuff operating systems tend to do.

I can tell you that you'll learn a lot, but if you just want to get a taste of systems programming you can also get an Arduino or something and build cool robots - it will take you less time to get into any you'll have more to show for it.

u/0x7E3 · 2 pointsr/learnprogramming

Two commonly recommended books on this topic are The Dinosaur Book and Modern Operating Systems. For something a little more concise (and free) you could try Operating Systems: Three Easy Pieces.

For an actual course, you could try Computer System Engineering from MIT Open Courseware.

u/9us · 1 pointr/java

I learned it from the dinosaur book:

http://amzn.com/1118063333

If you are resourceful you can find this book for free. Or you can get older versions for very cheap (http://amzn.com/0471694665) and the relevant concepts are still pretty much the same.

u/empleadoEstatalBot · 1 pointr/argentina

> For those who prefer video lectures, Skiena generously provides his online. We also really like Tim Roughgarden’s course, available from Stanford’s MOOC platform Lagunita, or on Coursera. Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference.
>
> For practice, our preferred approach is for students to solve problems on Leetcode. These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
>
> Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
>
>
>
> [The Algorithm Design Manual](https://teachyourselfcs.com//skiena.jpg) [How to Solve It](https://teachyourselfcs.com//polya.jpg)> I have only one method that I recommend extensively—it’s called think before you write.
>
> — Richard Hamming
>
>
>
> ### Mathematics for Computer Science
>
> In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
>
> The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
>
> Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász. Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
>
> For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.
>
> For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures.
>
>
>
> > If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
>
> — John von Neumann
>
>
>
> ### Operating Systems
>
> Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their writing styles, and for being the 1000-page-long type of textbook that gets bits bolted onto it every few years to encourage purchasing of the “latest edition”.
>
> Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure of the book and feel that the exercises are well worth doing.
>
> After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix, The Design and Implementation of the FreeBSD Operating System, and Mac OS X Internals.
>
> A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. A great choice is xv6, a port of Unix V6 to ANSI C and x86 maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
>
>
>
> [Operating Systems: Three Easy Pieces](https://teachyourselfcs.com//ostep.jpeg)
>
>
>
> ### Computer Networking
>
> Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
>
> Our favorite book on the topic is Computer Networking: A Top-Down Approach. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online.
>
> For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course available on their MOOC platform Lagunita.
>
> The study of networking benefits more from projects than it does from small exercises. Some possible projects are: an HTTP server, a UDP-based chat app, a mini TCP stack, a proxy or load balancer, and a distributed hash table.
>
>
>
> > You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
>
> — Bob Kahn
>
> [Computer Networking: A Top-Down Approach](https://teachyourselfcs.com//top-down.jpg)
>
>
>
> ### Databases
>
> It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
>
> Given the circumstances, we encourage self-learners to generally avoid textbooks and start with the Spring 2015 recording of CS 186, Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
>
> One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
>
> Readings in Database Systems, better known as the databases “Red Book”, is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebreaker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
>
> If you insist on using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
>

> (continues in next comment)

u/Unrepentant_Priapist · 1 pointr/buildapc

As a sysadmin and PC builder, there are almost no common skills between the two. I rarely ever physically touch hardware at work any more. Even then, it's just racking and cabling a newly purchased server or storage array, turning it on, and walking away. Anybody could do that, though, and the rest happens in software. I don't even touch them when hardware fails -- modern systems have diagnostics that tell you exactly what part in what slot is broken to the point of flashing an LED next to it; some of our storage arrays even automatically order their replacement parts. Swaps are all tool-less, and again, pretty much anyone could do it, so we have operations people who go around and change things out.

I guess the only commonality is that sysadmins and PC builders both install and use operating systems, but that's not really a skill, either. Even that I did one time at work, built a template, and scripted everything so that someone can do the next one by answering a few questions and clicking a button.

Not that I would dissuade OP from becoming a sysadmin if he's interested in the work; just the opposite. It can be a really interesting job, pay is generally several times the median, and you get to work with some really cool tech depending on the industry you're in. OP, if you're interested in this field, my advice would be to learn, in depth, how operating systems work. Get a copy of Operating System Concepts and learn it. Learn C and look at one or more of the open-source Unix/Unixlike kernels to understand how practical implementation differs from theory. This will all cost you $200 and some time (well, a lot of time).

Once you have done this, you're ready to get yourself whatever you need to get a job (maybe some college, some experience at a small company, the usual industry certifications, etc., in whatever combination works for you; I went to college and wrangled myself some work experience back in the nineties when the job market was so good anyone could get one, your approach may be different now.)

u/cfeyer · 1 pointr/learnprogramming

Concurrency has quite a bit of theory involved. A good chunk of time is spent on it in courses on the theory of operating systems. Here's one text frequently used in such courses (older editions should be fine, too):

https://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333/

u/kyle_m_adkins · 1 pointr/learnprogramming

Code is also a good book. If you want textbooks:

This is a good one for computer architecture. And there's a companion course/website at www.nand2tetris.org. https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686/ref=ed_oe_p

I like this one as far as operating systems go: https://www.amazon.com/gp/aw/d/1118063333/ref=dp_ob_neva_mobile

For learning programming, I would check out courses at www.udemy.com. But be mindful of ratings & reviews because the quality of courses can vary pretty drastically. But I've had good experiences there. www.udacity.com also has great courses. They offer paid nanodegrees but you can take every individual course free of charge. www.teamtreehouse.com is another good website

If you're interested in networking, this is a good book for starters: https://www.amazon.com/gp/aw/d/0768685761/ref=dp_ob_neva_mobile

Any A+/Network+ certification books or courses would also be a great way to learn networking and computer hardware

Those are pretty big topics in tech & computer science. There's a ton of stuff to learn. I've been studying this stuff for probably 2-3 years and sometimes I feel like I've barely scratched the surface. Let me know if that helps & if there are other topics you'd want book recommendations on! :)

u/FooBarWidget · 0 pointsr/programming

"Created its own problem"? The problem is documented in detail in two Unix operating systems books, as explained in the blog post. We didn't create the problem -- this problem is fundamental to how Unix works, and using Docker doesn't suddenly make it go away.

If you don't believe me, go read Operating Systems Concepts by Silberschatz et al, or Advanced Programming in the UNIX Environment by Stevens et al. Look up what they have to say about PID 1 and zombie processes.

Heck, even Solomon Shykes, founder of Docker inc, recognizes this problem. But it pains me that I have to appeal to authority even though the facts are out there.