Recently, I've been writing some sort of thesis. Mostly a study note, for helping me (and others) with architecting a program because all those confusing and complicated concepts.

I'd like some peer reviews, because most of the material in the are based on ideas rather than practical experience.

For example, I defined a "shell" as:

Any application that 1.) interacts with the user(s), 2.) controls or initiates the execution of some programs, and possibly 3.) processes files.

and listed Xcode, Emacs, and sh(1) as examples.

I called "setting the CLOEXEC flag on file descriptors" the "commonly used, and is the canonical way, to avoid the leaking of file descriptors"

In multi-threading, I differenciated between access to 1) memory, and 2) abstract per-process resources (file descriptors, signal handlers).

Further, I said the best synchronization (in multi-threading) is the "least" synchronization, and listed degration of concurrency as a reason.

I also advised the serialization of access to "abstract resources" under a single control thread.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.