Learning programming, the operating system is the basic knowledge you must master, so what is the operating system?

Why, the operating system is Windows, Linux, Mac, IOS, Android, IOS and so on that we use every day?

This word is not false, but the operating system as a computer science in a basic discipline, certainly can not be so grounding gas right, overall to point lofty concept, shock you.

According to Baidu Encyclopedia, an operating system is a computer program that manages computer hardware and software resources. It is also the core and cornerstone of a computer system. Operating systems need to handle such basic tasks as managing and configuring memory, prioritizing the supply and demand of system resources, controlling input and output devices, operating networks, and managing file systems. The operating system also provides an interface for users to interact with the system.

This is introduced on the tall enough, then what on earth is the operating system, in simple terms, the operating system is a kind of software that manages computer hardware and software resources, computer hard disk, mouse, keyboard, display devices, such as are managed by it, you open the game, open the browser, or see a movie, are to be executed by the operating system.

Without the operating system, the computer has no soul and is just a pile of hardware.

Now that we know the basic concepts of an operating system, why should we learn an operating system?

First, of course, because of the interview.

Secondly, no matter what programming language you learn, you can’t avoid dealing with the operating system. For example, when you learn Java, you use multi-threading technology. In fact, the operating system is responsible for managing processes and threads, so the threads in Java often have to correspond with the threads or processes in the operating system.

In addition, you will learn about memory allocation. For example, in c++, you can allocate a segment of memory directly, which is actually called by the operating system API to allocate memory.

The operating system not only manages the scheduling of processes and threads, the allocation and management of memory, and the processing of devices and IO, but also manages file systems and networks.

Most importantly, the operating system is responsible for loading code from the hard disk into memory and telling the CPU to read the code, which is the basis on which all computers run.

If you do not know the operating system, you will be confused when learning advanced effects of programming language in the future, such as thread process scheduling, memory allocation, or Learning Linux-related knowledge. Therefore, only by learning the operating system, we can better learn other languages and technologies.

Today we recommend a good list of books on operating systems! Please find!

Operating system book list

Deep understanding of computer systems

In-depth Understanding of Computer Systems (2nd Edition) The full title of this book is Computer Systems: A Programmer’s Perspective, so it is also called CSAPP. If you want to lay a solid computer foundation and do not want to the operating system computer structure compiler principles of these books all read, read in-depth understanding of the computer system is the most efficient way.

Randal E. Bryant received his Ph.D. in computer science from the Massachusetts Institute of Technology in 1981 and has been on the faculty of Carnegie-Mellon University since 1984.

David R. O ‘Hallaron Professor of Electrical and Computer Engineering at Carnegie Mellon University.

Introduction to operating systems

This is a book about modern operating systems. Around the three main concepts of virtualization, concurrency, and persistence, the book introduces the major components of all modern systems (including scheduling, virtual memory management, disk and I/O subsystems, and file systems).

The book consists of 50 chapters divided into three parts covering virtualization, concurrency, and persistence. Most chapters of the book address specific problems and then use the techniques, algorithms, and ideas introduced in the book to solve those problems. I introduce the concepts in the form of a humorous and insightful dialogue to help readers understand the principles of virtualization, concurrency, and persistence in operating systems.

The book is comprehensive and provides real working code (rather than pseudo-code), as well as corresponding exercises, which are suitable for teachers of relevant majors in colleges and universities as well as students’ self-study.

Author’s brief introduction

Remzi H.Arpaci-Dusseau and Andrea C. Andrea C.Arpaci-Dusseau and his wife are computer science professors at the University of Wisconsin. Both teach and research computer operating systems.

30 days homemade operating system

“30 Days of Homemade Operating System” is a fun, practical and learning operating system book. The author from the construction of the computer, assembly language, C language began to explain, so that readers in practice to master the algorithm. Under the guidance of this book, you can write all the code from zero and in 30 days you can make a 32-bit multi-tasking system with a windowing system.

Homemade Operating System in 30 Days is for operating system enthusiasts and programmers alike.

Author’s brief introduction

Hidemi Kawai, born in 1975, is an “offbeat” developer who specializes in “lightweight” programming. He made a name for himself with his OSASK project in 2000. OSASK is an open source 32-bit micro-operating system. It is not based on a kernel such as Linux, but developed completely from scratch. It implements advanced features such as GUI, multi-task, multi-language and so on in the capacity of a floppy disk, and starts in just one second. The content of this book can be regarded as the author based on OSASK, teaching readers to develop an operating system from scratch, and at the same time, beginners can understand more knowledge behind the operating system in the process of writing the operating system.

More quality book list recommended!

Get the basics of the JVM and check out these books.

Can’t figure out the Java multithreading and concurrent programming interview questions? You may need this book list!

This Java Web must-read list is worth reading for all Java engineers!

Booklist for programmers – a public account that recommends good books for programmers. Pick up a daily list of fine books, quality learning resources and software tools for you. Focus on cutting-edge technology and industry information, and pay more attention to your self-improvement. Author Huang Xiaoxi is alibaba Java engineer, hope to accompany you to read 50 books a year!