Linux Interview Questions: March 2020

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Linux Interview Questions

March 2020
Page |1

Locking and Synchronization


1. On a uniprocessor machine with preemption disabled, what will happen internally when
we say spin_lock()?
2. Can I lock a spinlock in one CPU and unlock it another CPU?
3. What are the pros and cons of using per CPU variable as synchronization method?
4. What is the maximum amount of time CPU can be in critical section after acquiring
spinlock?
5. What is the difference between binary semaphore and mutex in Linux?
6. What is the difference between down_interruptible vs down_killable in semaphore?
7. Can i call kmalloc(GFP_KERNEL) while holding a spinlock?
8. What are the lock free algorithms present in Linux kernel?
9. By disabling interrupts, will we get protection from concurrent access?

Memory Management
10. What are the use of L1, L2, and L3 Caches?
11. Difference between GFP_KERNEL and GFP_ATOMIC.
12. Where are page tables stored?
13. How do you test whether there are memory leaks in a Linux application?
14. Which file in Linux gives you information about memory zones?
15. Difference between kmalloc and vmalloc.
16. What does malloc(0) return?
17. What is the maximum memory that can be allocated using vmalloc?
18. What is the maximum memory that can be allocated using kmalloc?
19. What is the difference between VIRT, RES and SHR fields in top command?
20. What is the system call used by malloc and free?
21. What is the maximum memory that I can allocate using malloc?
22. What is cache coherence?
23. Linux intentionally leaves the first few kilobytes (or even megabytes) of each process's
virtual address space unmapped, so that attempts to dereference null pointers generate
an unhandled page fault resulting in an immediate SIGSEGV, killing the process. a) Yes b)
No
24. Virtual memory is divided into ____ a) pages b) bytes c) bits
25. What are the advantages of using virtual memory?
26. ____ is a method of data transfer between main memory to input/output device without
the need of processor.
27. Differences between vmalloc and kmalloc.
28. What is the maximum amount of RAM you can access with 32 bit processor?
Page |2

29. When you call malloc from user space, from where it allocates memory: low mem/high
mem or any other location?
30. Why use volatile memory? Why not always use nonvolatile memory?
31. What does kmalloc(0) return?

Process Management
32. What is the difference between context switch and preemption?
33. On a multiprocessor system, how do you find out which process is running on which
processor?
34. How to change the priority of a process in Linux?
35. How can I find out the Count of number of times a process has been preempted in Linux?
36. What happens internally during context switch in Linux kernel?
37. What is buffer/cache?
38. Difference between orphan and zombie process.
39. What is the use of swapper process in Linux?
40. How to kill the process which is in TASK_UNINTERRUPTIBLE state?
41. What is load average in Linux?
42. What is resident memory in process?
43. What is the use of Procedure-linking table (PLT) while application is starting up?
44. Difference between fork and vfork.
45. What is kernel preemption?
46. What is process kernel stack and process user stack?
47. What is difference between background process and daemon?
48. Which state the process is in when executing the below line and waiting for input?
scanf("%d", &val);
a) TASK_INTERRUPTIBLE b) TASK_UNINTERRUPTIBLE

Interrupts
49. Which hardware is responsible for generating timer interrupts in Linux kernel?
50. How to direct interrupt to a particular cpu in Linux kernel
51. Interrupt handler in Linux kernel run with current interrupt line disabled on all processors.
a)True b) False
52. What is the difference between request_irq and request_threaded_irq?
53. What are the advantages of disabling interrupts?
Page |3

54. What happens when two interrupts arrive at the same time in Linux?
55. Does Linux kernel supports interrupt nesting?
56. APIC vs PIC in x86.
57. Can we use printk inside interrupt handler?
58. What happens when we are in interrupt handler and another interrupt arrives?
59. Can we disable interrupts on all processors in Linux kernel?
60. How Message Signalled Interrupt works?
61. What happens if we call schedule() in interrupt handler?
62. What all actions cannot be performed in interrupt handler?

PCI
63. How do you check how many lanes are being used by pcie card in Linux?
64. Maximum number of PCI devices that can be connected to a host?
65. What are lanes in PCI?
66. How auto detection of PCI devices happen in PCI?
67. What is a PCI bridge?
68. Is PCI serial protocol or parallel protocol. What is the maximum data rate achieved with
PCI?
69. What is the use of Base Address Register in PCI?
70. What is the use of PCI protocol?

Processor
71. Difference between processor and core?
72. What is NUMA?
73. Does microprocessor have internal memory? a) Yes b) No
74. System bus = address bus + data bus + control bus. Yes/No
75. Consider a square matrix of x size, which technique will be faster to perform sum of
elements of the matrix?
A) Traversing row by row and adding elements
B) Traversing column by column and adding elements
76. What is a cache line?
77. What is SMP?
78. Comment the registers you know about any processor and its purpose.
79. What are the factors you consider when selecting a processor for your project?
80. Why do we need PCI, USB and other kind of buses why can't we directly connect
peripherals to the processor?
81. Explain differences between SRAM and DRAM in terms of cost, access time and size.
82. What is difference between motherboard, chipset and processor?
Page |4

83. Difference between pads and pins on a SoC.


84. What is out of order execution in processor?

Libraries (Static and Shared) + Compilation


85. Where do executables look for shared objects at runtime?
86. What is the purpose of fPIC flag while generating shared library?
87. What are the advantages of static library over shared library?
88. What is present inside a static library?
89. What are relocations in an object file?
90. What is the benefit of declaring a symbol as weak?
91. What are the operations performed by linker during compilation process?
92. When two userspace executables uses same shared library .so, how it organised in
process address space?
93. Will a code compiled in one Linux distribution work on all other Linux distribution?
94. Why c code is converted to assembly and then to machine code. What is the benefit of
converting it to assembly? Why not directly to machine code?
95. Will the assembly of the below code generated by compiler same on Windows/Linux?
int add(int a, int b)
{
return a+b;
}
96. What are drawbacks of using inline?
97. What will be the output of echo $?, when you return 256 from your c main function
98. C code compiled on one Linux distribution (eg ubuntu) will it execute on other Linux
distribution (redhat)?
99. Whether GCC searches for both static and shared library. Which is searched initially by
gcc compiler?
100. What is a toolchain?
101. How do you find out whether a particular binary has debugging symbols or not?

Memory Mapped IO and Port Mapped IO


102. Difference between IO Mapped IO and Memory Mapped IO.
103. cat /proc/ioports does it list all the I/O Ports used by the processor?
a) Yes b) No
104. Will there be any data in /proc/ioports for ARM?
105. Does x86 uses memory mapped IO? A) Yes B) No
Page |5

106. Difference between microcontroller and System on Chip.


107. Which processors uses I/O Mapped I/O for accessing peripheral devices
memories/registers?

Linux Kernel Module Programming


108. Will a module be loaded if it has while(1) loop in module_init function?
109. Where do you find the information of builtin modules from running Linux image?
110. What is the use of likely and unlikely macros in Linux kernel?
111. The Makefile macro that one sets to identify what file for the kernel Makefile to make
into a module is _____. a. obj-m b. obj-y c. target d. list
112. Why we can't unload the module when bug() is call?
113. Is Linux source sufficient to compile a Linux kernel module or do I need to install the
kernel for building modules?
114. How do you find the Linux version of a compiled kernel module?
115. What happens if we don't specify MODULE_LICENSE macro in C Code?

Character Drivers
116.What is the maximum major number in case of Character and block device driver?
117. Which one will you use to empty a file?
a) /dev/null b) /dev/zero
118. What are the examples of character devices in Linux?
119. What is the use of file->private_data in a device driver?

Commands
120. How to create 100 files in a single command?
121. Why running ps command without options on shell shows only two entries?
122. ____ command will you use to find list of C files present in a directory.
123. Which Linux commands you run when you get a new embedded hardware?
124. Difference between 'echo 0>file' and 'echo 0 > file'.
125. What is the first tool you use if your c/cpp application is not behaving properly in Linux?

Time Management
126. Will the call to date command read from rtc?
127. gettimeofday and clock_gettime both returns the wall time. Which one will you use in
your application and how do you decide?
Page |6

Files
128. What is the use of O_SYNC flag while opening the file?
129. What is the difference between file and inode?
130. I have closed stdout close(1) Can we reopen it?

Scheduling
131. How is scheduler invoked in Linux kernel?

Signals
132. What are the advantages of sigaction over signal?

Bottom Halves
133. Which context softirq/tasklets/workqueues runs?
134. What are the various bottom halves techniques available in Linux Kernel?
135. Why do we need to divide interrupt handler into top half and bottom half?
136. Differences between softirqs and tasklets.

Linux Boot Flow


137. Which is loaded first Initrd or kernel image during boot?

Kernel Threads
138. irq/ - Threaded interrupt handlers
ksoftirqd/ - Softirq Threads
kworker/ - Workqueue Threads
What more kernel threads you see in ps?
139. How do you identify kernel thread from ps output?

Linux Kernel Internals


140. What is difference between operating system and kernel?
141. Do we need device tree if we don't have any SPI or I2C devices connected?
142. Is Linux Kernel Monolithic? a) Yes b) No
143. A Linux distribution is a combination of Linux kernel + _____
Page |7

144. What are the different ways to find out the kernel command line parameters?
145. What do you mean by vanilla kernel?
146. Is it possible to boot Linux kernel without initrd/initramfs?
147. Which one will you use for custom driver operations:sysfs or ioctl?
148. Difference between printk and trace_printk.
149. Which kernel parameters you added to kernel command line?
150. When an unallocated pointer is derefrenced, who will check that this is invalid
instruction?
151. What is the difference between initrd and initramfs?
152. What is the use of asmlinkage in Linux kernel?
153. /proc/kallsyms contains both global and exported symbols. How do you identify
exported symbols from output of /proc/kallsyms?
154. We say Linux kernel is monolithic. What does it mean?
155. What is the use of compatible property in nodes of device tree?
156. Will /proc/kallsyms contains the global variables defined in Linux kernel modules?
157. What exactly is kernel headers? Why should we install them for generating kernel
modules?
158. Which time is used in dmesg logs?
159. Explain the role of the variable preempt_count in the Linux kernel.
160. What is the initial value of jiffies on boot?
161. What is jiffies in Linux kernel?
162. Difference between mdelay and msleep in Linux kernel.
163. Can I disable drivers which are configured as builtin from loading?
164. How Linux kernel modules are automatically loaded in any Linux distribution?

System Calls
165. How do you allow only root to run your user application. If normal user is running your
user application, you need to print a message and exit?
166. What are the maximum number of arguments we can have for a system call?
167. Who updates the errno in Linux? a) glibc b) Linux Kernel c) None of these d) Both
168. Can I update the system call table from Linux Kernel module?
169. Does calling gettimeofday() from your user space code perform a mode switch from user
to kernel space?
Sysfs
170. Attributes in sysfs are mapped to a) directories b)files
171. kobjects in sysfs are mapped to a) directory b)files
172. What is the use of /etc/fstab file in Linux?
Page |8

Linux Kernel Compilation


172. What should be the number of jobs when compiling Linux kernel make –j?
173. What are the different commands you can run on a generated kernel image
(bzImage/vmLinux/vmlinuz) before installing?
174. Difference between vmLinux and bzImage?
Misc
175. What are the minimum requirements of Linux to work on a hardware?
176. What is the asm-generic folder in Linux source code? What it contains?
177. What is the use of initrd image while booting?
178. How do you find out which init manager is running on your Linux machine:
sysvinit/systemd?
179. What is the first function that will be called when Linux kernel is loaded?
180. What are the data structure implemented in Linux kernel?
181. As an embedded developer, how do you test a temperature sensor without any special
hardware?
182. We have systemd-analyze plots for boot up time measurement,Do we have any such
similar tools to measure the different sequence of shut down time?
183. Can we run Linux on microcontroller?
184. Given a device datasheet, what all you look for?
185. Kernel code on Intel processor is running on ring a) 0 b) 1 c) 2 d) 3
186. What is difference between debug build and release build?
187. What is segmentation fault?
188. What are the various mechanisms available for asynchronously notifying user space
from kernel space about a particular event?
189. When should we add Suffixes like 'L', 'U', 'LL', 'UL', to integers in C?
190. What is the difference between if(1 < x < 2) and if( (1 < x) && (x<2))?
191. Which one do you prefer and why? char buf[256] = {0}; or char buf[256]; memset(buf,
0, sizeof(buf));?
192. Why a c code compiled in Linux, will not work in windows even they are of same
architecture?
193. What is a loopback device?
194. What is the significance of LD_LIBRARY_PATH environmental variable?
195. What is the significance of /proc/devices file?
196. What is the use of environmental variable PATH?
197. How do you detect segmentation fault?
Page |9

198. What is monotonic clock?


199. What is the simplest technique you can do to make someone Linux system unusable?
200. What is vdso?
201. Which will execute faster / or >> ?

Linux Device Model


202. Explain the relation between ksets, kobjects and ktypes?

You might also like