18

What is a zombie process or thread, and what creates them? A zombie process is a dead processes. The OS is just keeping information around so the parent can check the exit code of the processes at some later point as such the OS keeps information about them and thus they turn up when looking at processes. Do I just kill them, No. They are already dead. ...


7

In general I would say that kernel code is not unit tested (I'm sure there are some exceptions). There are a few things that make kernel code difficult to unit test Kernel code generally interfaces with hardware. Kernel code does not link to the standard c library, it uses kernel specific headers etc. You could decouple all of your functions that do not ...


5

Of course you're missing some possibilities - the curse and blessing of open-source software is that anyone can create their own alternative, and many do - but you've listed the most important platforms and distribution formats. So what do you do to be as compatible as possible? There are two broad options. The first is to distribute source code with ...


5

A zombie thread is a thread that have terminated its execution but didn't terminated cleanly. It deallocates the resources used by the thread but keeps an entry in the thread/process table. Theoretically, the zombie thread exits from this status by executing a _join (POSIX). It means that when your main is finished, the zombie process would be killed with ...


5

It is done the same way it is done on any OS; by distributing packaged binaries. configure; make; make install is still commonly seen in instructions for open source software because it is very portable and often allows you to install software written for generic UNIX rather than Linux specifically. Compiling the software on the destination machine (or one ...


5

I tried this on x86_64 Patch against 94836ecf1e7378b64d37624fbb81fe48fbd4c772: (also here https://github.com/pskocik/linux/tree/supersyscall ) diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl index 5aef183e2f85..8df2e98eb403 100644 --- a/arch/x86/entry/syscalls/syscall_64.tbl +++ b/arch/x86/entry/syscalls/...


4

Two main gotchas which come to mind immediately are: Error handling: each individual syscall may end with an error which needs to be checked and handled by your user-space code. A batching call would therefore have to run user-space code after each individual call anyway so the benefits of batching kernel-space calls would be negated. Additionally, the API ...


4

Actually, the assembly parts and the other architecture specific parts are pretty small. Very little code is actually assembly, mostly parts dealing with the very early booting process. A little bit more code is platform-specific code, but it's still relatively little compared to the huge majority of code that's pretty platform-independent. General ...


3

Invoking command anywhere from the terminal means that the command is available in the PATH. PATH is an environment variable containing an order list of directories. Whenever a command is called the list is parsed to see if an executable file of the same name is available. If it is, it is executed. If nothing was found you get "command not found error" ...


3

To be honest, don't bother cutting your teeth on a project you are not passionate about. That is called work. If you want to contribute to Chromium (or any project for that matter). find their development page, join the discussion channels immerse yourself in their direction by looking at the dev faq, roadmaps, and bug tracker verify that you can ...


3

As you know, the -L flag to the linker is used to specify a path to search for libraries (static or shared) at link time. The -R flag to the linker can be used to embed in the executable a path to be used to search at run time. This is needed if your shared library will be installed in a location not in the standard system shared library path. To ...


3

Every git commit has separate "author" and "committer" metadata fields, which can be set manually when doing a commit, or automatically through mechanisms like pull requests in github. This allows workflows that include sending patches via email, which is apparently still the main mechanism used for the Linux kernel - the github repository is just a mirror, ...


2

A zombie process is a process that has both terminated its execution and has been removed from the list of scheduled processes, but has not yet been deleted. Depending upon the OS, tt might or might not still have various resources assigned to it, and may be queried, but it will not run. Some OS'es (by design) are not allowed to dynamically create or ...


2

First of all, TDD was invented a decade after Linux. Even non-TDD unit testing was not common before that, except on safety-critical projects. Second, it's not so much the language that's problematic to unit test as the domain. You basically have to mock out the computer hardware. A lot of the units are at a higher level, so it is doable, it's just not ...


2

Can I conclude that TDD is not as common for functional and procedural languages as it is for object-oriented code? No, you cannot conclude that by looking at a select (very large and legacy) codebase. Browsing quickly through the source tree revealed no evidence of anything like TDD. I saw no test code of any kind. These look like test code to me: ...


2

We do that at work. We do not want to distribute the source code, so binary-only distributions are the only choice. Our solution to this shared library version problem is to link most libraries statically. (Exception: libc is linked dynamically.) You can specify an individual library as /full/path/to/library.a. Please note that the linking order of statical ...


1

different distros have different set of libraries, + Debian vs RPM packages You know your "surface dependencies". So for each distro you need to find the packages that provide those dependencies (and document that), and to test that it does also bring all transitive dependencies (not just in terms of underlying libraries, but also in terms of "built with ...


Only top voted, non community-wiki answers of a minimum length are eligible