C
C
ClusterBias2019-05-09 22:58:20
Programming
ClusterBias, 2019-05-09 22:58:20

What does it mean to understand the structure of operating systems?

Hello. I often hear from "IT gurus" that a programmer simply needs to understand the structure of the operating system in order to write better code. But I can't figure out what it really means. In my understanding, to understand something, it is either an opportunity to write it yourself, or to be able to understand something that has already been written. That is, to really know how a particular implementation works. In reality, these people (I mean those whose work is not directly related to low-level programming) can understand, for example, Linux sources? Or when they say this, they mean the general concepts of operating systems? If the latter, then what is the benefit?

Answer the question

In order to leave comments, you need to log in

8 answer(s)
S
Sergey Gornostaev, 2019-05-10
@sergey-gornostaev

The more a programmer knows, the better he can do his job. Knowledge of the principles of operation and implementation features of the interpreter/compiler/virtual machine will allow you to develop more efficient programs than just knowing the language. Knowing the principles of operation and implementation features of the operating system will allow you to develop even more effective programs. Knowledge of iron is even more effective. It's up to you to decide how cool a specialist you want to become.

L
longclaps, 2019-05-09
@longclaps

To explain for a long time, it is better to implement a bypass solution.
ClusterBias You do n't need to understand operating systems to write better code .
Just try, be diligent and diligent. And we'll talk about the design of operating systems another time.

V
Vladimir T, 2019-05-09
@32bit_me

As if the operating system exists in order to abstract from hardware and details of internal implementation. So the statement is simply wrong.

A
ApeCoder, 2019-05-10
@ApeCoder

People can figure it out even without sorts - Mark Russinovich figured it out at one time using the leaked debugging symbols from Windows (see, by the way, his book "Windows internals").
There is a "law of leaky abstractions" according to which there will always be a situation when it becomes necessary to know the details of the implementation and not just the interface. For example, this often occurs when there are severe performance requirements or when something goes wrong.

S
Stanislav Bodrov, 2019-05-12
@jenki

I often hear from "IT gurus" that a programmer simply needs to understand the structure of the operating system in order to write better code.
Quality criteria are different. The code can be high-quality, beautiful, readable, correct, working correctly and stably, but slowly.
To have an idea about the principle of operation of the OS on which the code is executed is a sign of good taste and level of knowledge. True, aerobatics begins after you begin to understand how the code is executed by the OS and how it works on hardware. Because at the physical level there are a lot of nuances that can negate many good undertakings.

P
Peter, 2019-05-10
@petermzg

For example, know about "Preemptive multitasking" that any thread can be interrupted at any time and for this reason, in a multithreaded program, you need to take care of data synchronization.
It is not at all necessary to know how it is implemented at the OS level, but it is necessary to understand what it is in the OS.

C
CityCat4, 2019-05-10
@CityCat4

you need to understand the device of the operating system

True only in part. Shit-coder-formslap does not need to understand anything - he has knowledge honed to the skills that he uses in his work. He has enough of them, but he put aside for development a long time ago, because ... (here is a long list of "why" which includes everything from a wife and a mortgage to the world behind the scenes) To
a programmer who thinks about self-development, about growing, to do cooler projects - knowing how the OS works is highly desirable. Because there are moments that cannot be understood without understanding why this happens.
For example, the mana describes how to use fork(). But why it is necessary to apply it this way and what will happen if this is not done - without some understanding of the work of the axis, the understanding of the work of the call will not come.

L
Lander, 2019-05-17
@usdglander

Event #1. You pressed the "Z" button on the keyboard.
Event #2. In the notebook, which is open on the screen, the letter "Z" appears.
Until you know in detail what happens between these events, it’s too early to talk about knowing the device of the operating system.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question