Absolutely you should. It’s not just common sense from a security POV, it should also be practice as matter of business ethics. Let’s imagine the following scenario: Alice leaves, and her computer is transferred to Bob. Bob didn’t know it, but Alice was into illegal shota porn and left several files tucked away outside of … Read more
Edit: The question was a little confusing, so I’m answering it two different ways. OS-level threads vs Green Threads For clarity, I usually say “OS-level threads” or “native threads” instead of “Kernel-level threads” (which I confused with “kernel threads” in my original answer below.) OS-level threads are created and managed by the OS. Most languages … Read more
S_ISREG() is a macro used to interpret the values in a stat-struct, as returned from the system call stat(). It evaluates to true if the argument(The st_mode member in struct stat) is a regular file. See man stat, man fstat or man inode (link to inode man page) for further details. Here’s the relevant part … Read more
A trap is an exception in a user process. It’s caused by division by zero or invalid memory access. It’s also the usual way to invoke a kernel routine (a system call) because those run with a higher priority than user code. Handling is synchronous (so the user code is suspended and continues afterwards). In … Read more
wait returning >= 0 tells you a child process has terminated (and that calling wait didn’t fail), but it does not tell you whether that process terminated successfully or not (or if it was signalled). But, here, looking at your code, it’s fairly obvious the program does care about whether the child process that terminated did so successfully or not: … Read more
Softwares run on the OS on a very simple premise – they require memory. The device OS provides it in the form of RAM. The amount of memory required may vary – some softwares need huge memory, some require paltry memory. Most (if not all) users run multiple applications on the OS simultaneously, and given … Read more
I’m hoping someone could shed some light on how to make the parent wait for ALL child processes to finish before continuing after the fork. I have cleanup code which I want to run but the child processes need to have returned before this can happen.
A byte is a memory unit for storage A memory chip is full of such bytes. Memory units are addressable. That is the only way we can use memory. In reality, memory is only byte addressable. It means: A binary address always points to a single byte only. A word is just a group of bytes – 2, 4, 8 depending upon the data bus size of the CPU. To understand the memory operation fully, you must be familiar with the various registers of the CPU and the memory ports of the RAM. I assume … Read more
A macOS and iOS share many of the same frameworks, low level (kernel) code, and share a common kernel and several core components. You can read about that in the following Wikipedia article: Darwin (operating system) However when it comes to their differences, it became a bit more complicated to find out. Can anyone help … Read more
Windows: C++, kernel is in C Mac: Objective C, kernel is in C (IO PnP subsystem is Embedded C++) Linux: Most things are in C, many userland apps are in Python, KDE is all C++ All kernels will use some assembly code as well.