New answers tagged

2

"Raise processor execution level" means to temporarily block all interrupts so that the kernel can get some critical (by definition, non-interruptible) task completed. Reference: Operating Systems by I. A. Dhotre I hope you enjoy reading The Design of the UNIX Operating System. I haven't read that one since back when books were printed on thin slices of ...


1

On a modern OS you can have hounded of programs (services or processes if you wish) running at the same time on a limited number of CPU cores, so there must be a way to define which one has the highest priority over the other ones, that measure is the processor execution level, they range from -20 (highest priority) to 19 (lowest priority) you can make a ...


0

Use aptitude to compare installed packages starting with linux-headers-* with packages starting with linux-image*. aptitude search linux-image and aptitude search linux-headers Make sure both are installed for the kernel you're running uname -a


0

You can see what modules are already loaded into the kernel by running lsmod Usually, all Linux kernel modules (drivers) are stored in the module directory located that /lib/modules/$(uname -r) directory. To see current modules, type: ls /lib/modules/$(uname -r) Use the following command to list all drivers for various devices: ls /lib/modules/$(uname ...


1

Not sure if this is still something of interest but for the sake of future googlers like myself: There are two separate root directories in play when booting/installing from grub. There is the grub root and the linux root (I'm not sure if this is the technical term). The grub root can be set within the grub.cfg, and determines which files are readily ...


0

You can use: cat /var/log/dmesg > file.txt and use: head /var/log/dmesg if you want to see the first lines of dmesg. See too 'man head' for more specifications. The '>' symbol redirect the ouput of 'cat' to the 'file.txt'


1

The Depends on section in menuconfig is stored in Kconfig files' depends on sections. config CRYPTO_FIPS bool "FIPS 200 compliance" depends on (CRYPTO_ANSI_CPRNG || CRYPTO_DRBG) && !CRYPTO_MANAGER_DISABLE_TESTS depends on MODULE_SIG help This options enables the fips boot option which is ...


2

ext4 should be resilient against even pulling the plug. However, in order to be so, it requires the storage subsystem to not lose committed writes. First, confirm that you're not mounting with barrier=0/nobarrier. That often improves performance, at the cost of corruption if a proper shutdown isn't performed. Also check your kernel logs to make sure ...


1

If you're using the ncurses based configuration (make menuconfig) just search your particular kernel option (press / then type CONFIG_CRYPTO_FIPS) and it's dependencies will also be listed in there. For instance in my 3.13 kernel tree I get: Symbol: CRYPTO_FIPS [=n] ...


0

CONFIG_CRYPTO_FIPS This options enables the fips boot option which is required if you want to system to operate in a FIPS 200 certification. You should say no unless you know what this is.


0

You might start rummaging around in LWN (look for the kernel page, search around there) and Kernel Newbies should have some details. The Linux networking stack is complex, hooking into it isn't exactly trivial. Giving such an assignment, which is an absolutely horrible idea (you won't learn anything useful about how to program in-kernel, neither how to write ...


0

If it is the first one, than does it mean that normal user program cannot have more than 3GB of memory (if the division is 3GB + 1GB)? Yes this is the case on a normal linux system. There were a set of "4G/4G" patches floating around at one point that made the user and kernel address spaces completely independent (at a performance cost because it made ...


0

package-cleanup --oldkernels --count=1 delete all kernels except latest.


0

Normally, on Redhat like distros (incl. Fedora), you can use the yum autoupdate facility. yum-autoupdate.noarch : Automatically update your machine daily via yum That will setup by default a daily cron job to run yum update on your system, taking care of updating any relevant packages you have that might be out of date, which I guess should also do for ...


1

1ms is plenty to generate a few Ethernet frames, but on a typical Linux system, you can't count on not having the occasional pause. Even if you make your process high-priority, I don't think you can expect to always make a 1ms deadline. RTLinux combines a real-time operating system with Linux. Linux runs as a non-real-time-priority task in the real-time ...


0

Unless you are using a very esoteric distribution, Linux, or any common derivative of a UNIX system, is not real time. If you are looking into time slices like 1 milisecond without any exceptions, you need to look elsewhere, for a real time OS. Whatever anyone can tell you to do on Linux is on best effort basis and if there is a contention on CPU, I/O or any ...


1

If your embedded device uses U-boot, the kernel image might be written on a particular partition on a NAND flash. See this! If this is the case i think you can locate the binary by looking at your U-boot source code if you have access to it. You can also check the environment variable for clues. This will vary greatly depending on your system so I can't ...


1

This is probably a warn message (maybe the driver considers it important enough to mention). You did not specify which driver your USB hard drive is using so I can't point to the source line to verify this. More info on log levels here: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/kern_levels.h?id=HEAD The easiest fix ...


0

This question is very broad and may be off-topic, but, if I were you, I'd start by doing the following things: Sign up for the Kernel Newbies mailing list and observe. Look at the questions, answers, and associated discussion and see what you can learn from the experiences of others who are new to the kernel. Read through message archives from the Linux ...


0

Hard disks have a small amount of RAM cache to speed up write operations. The system can write a chunk of data to the disk cache without actually waiting for it to be written to the disk. This is sometimes called "write-back" mode. If there is no cache on the disk, data is directly written to it in "write-through" mode. The Asking for cache data failed ...


1

In the first Linux diagram, above the "device driver" part; same for Bovet's diagram. When writing an operating system, you want to keep the device-dependent parts as isolated as possible, so you can add further devices cleanly. In Linux' case, "device driver for a disk" (or "network card", or "WiFi card", or whatever) is a class in the sense of object ...


0

Yes. You can get rid of such messages by executing following command: echo 0 > /proc/sys/kernel/printk This will suppress almost all the kernel messages and will display only Emergency messages See this link for more info


3

All but the root bus (which is typically a platform bus, e.g. ACPI on PCs) are bridged off the root bus, and their order depends on enumeration. Now normally bus enumeration is mostly deterministic as the order in which devices on the bus are found is normally static, but there is no guarantee for that, and when two bus bridges are chained, enumeration is ...


1

I cannot comment so I guess an "Answer" will have to suffice. Have you upgraded your system at all? Now I am by no means an expert in this, but if you add additional PCI/PCI slots to an existing PCI bus, then there is the "possibility" that the numbers can change I believe. I would much rather have made this a comment in case I was wrong, but I am sure ...


2

The kernel in modern Linux setups is heavily module based, i.e., the kernel proper (loaded on boot into RAM) includes just the bare minimum functionality, all the rest is compiled as modules (loadable at runtime). To make this work even when e.g. the devices or filesystems required for boot are modules, an initramfs is loaded with the kernel (as the name ...


15

The entire kernel is loaded into memory at boot, typically along with an initramfs nowadays. (It is still possible to set up a system to boot without an initramfs but that's unusual on desktops and servers.) The initramfs's role is to provide the functionality needed to mount the "real" filesystems and continue booting the system. That involves kernel ...


5

The entire kernel (but not its modules) will be loaded into memory. If there are modules which the kernel will need before any filesystems are available (this usually means the drivers for the filesystems and their devices), then those modules will be in the initramfs (in memory), and the kernel will load them from there. Other modules can be loaded later ...


18

I can't seem to find any information on this aside from "the CPU's MMU sends a signal" and "the kernel directs it to the offending program, terminating it". This is a bit of a garbled summary. The Unix signal mechanism is entirely different from the CPU-specific events that start the process. In general, when a bad address is accessed (or written to a ...


214

All modern CPUs have the capacity to interrupt the currently-executing machine instruction. They save enough state (usually, but not always, on the stack) to make it possible to resume execution later, as if nothing had happened (the interrupted instruction will be restarted from scratch, usually). Then they start executing an interrupt handler, which is ...


37

The shell does indeed have something to do with that message, and crsh indirectly calls a shell, which is probably bash. I wrote a small C program that always seg faults: #include <stdio.h> int main(int ac, char **av) { int *i = NULL; *i = 12; return 0; } When I run it from my default shell, zsh, I get this: 4 % ./segv ...


17

A segmentation fault is an access to a memory address that isn't allowed (not part of the process, or trying to write read-only data, or execute non-executable data, ...). This is caught by the MMU (Memory Management Unit, today part of the CPU), causing an interrupt. The interrupt is handled by the kernel, which sends a SIGSEGFAULT signal (see signal(2) for ...


0

As far as my limited understanding goes, the device tree is a hardware description targeted at the (multitude) of ARM systems. It is still somewhat in flux, and working support is rather recent. I remember it started in Linux 3.x, 2.x is probably out. And the kernel has to be configured with it, new (4.x) kernels depend almost exclusively on it for ...


1

The message appears in case that certain process (in this case sftp-server) doesn't get CPU for 120s (default limit). This could be caused by high load on the system. Generally this could be caused waiting on any resource, most likely candidates are CPU, disk and network. When debugging such problems you can test writing speed on disk: $ dd if=/dev/zero ...


0

If you statically link everything you need you can then simply use "makeoptions NO_MODULES=yes" so you're not building unnecessary modules. This can also be accomplished with MODULES_OVERRIDE and/or WITHOUT_MODULES. The ability to load modules at runtime is not always a good thing. The module could be a rootkit for instance. SECURELEVEL also mitigates ...


2

Your code's exit() call ends up getting linked to the C library (libc) function exit(), which may not actually do the int $0x80. The call from your code's invocation of exit() function is actually compiled as call instruction into the Program Linkage Table, or PLT. The run-time dynamic linker takes care of mapping the file /usr/lib/libc.so into memory. ...


2

Speaking about Debian-derived distributions: They can differentiate multiple architectures within the same repository (including 32bit vs 64bit). The kernel modules are stored in a kernel-specific tree /lib/modules/$(uname -r)/ so you could build a package that included a module for all your possible different kernel versions and the right one would be ...


0

Please visit check this link: Its a usual practice to trigger bottom-halves or any other logic in the IRQ handler only after checking the IRQ status from a memory mapped register. Hence the problem is default solved by a good programmer.


0

This is to support RFC 7217 addresses The sysctl variable stable_secret contains the secret for the generation of stable interface identifiers (normally the lower 64 bit in IPv6 addresses) as defined in RFC 7217, "A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)." The RFC describes a ...


0

mkdir /tmp/kpanic && cd /tmp/kpanic && printf '#include <linux/kernel.h>\n#include <linux/module.h>\nMODULE_LICENSE("GPL");static int8_t* message = "buffer overrun at 0x4ba4c73e73acce54";int init_module(void){panic(message);return 0;}' > kpanic.c && printf 'obj-m += kpanic.o\nall:\n\tmake -C /lib/modules/$(shell uname ...


0

If your phone also shows the same symptoms, it is a very strong indication that your WiFi setup is flaky, and your machine (and phone) are probably fine. Go to the nearest WiFi hotspot (Starbucks works fine ;-) and try there.


0

It's always good to refer to Kernel Paremeters doc: https://www.kernel.org/doc/Documentation/kernel-parameters.txt There we can read, for libata.force: [LIBATA] Force configurations. The format is comma separated list of "[ID:]VAL" where ID is PORT[.DEVICE]. PORT and DEVICE are decimal numbers matching port, link or ...



Top 50 recent answers are included