Qt is a great framework for building cross-platform applications. It provides a set of classes to wrap almost any OS service and you can write your application once and compile and deploy it many. Qt is also a great choice for embedded Linux system. If you need GUI, Qt is the fastest way. Write your code […]
In my Embedded Linux courses, I’m using Qemu to simulate a Linux system. Qemu simulates many boards including hardware, interrupts, networking and more. In this tutorial, I’ll cover the steps to build a complete system including kernel, filesystem, and application Qemu – Building from source You can install binary version but it is better to […]
Debugging is a complex task. Most of the work time, developers spend on debugging and it is important to be familiar with many debugging tools In Linux, the native debugger is GDB and it is command line based and looks ugly and primitive. Many developers , especially those who moved from windows and worked with tools like […]
Python has input/output features which are very easy to use. Files are accessed through file objects and you can open, read, write and close files using a very simple and easy to use functions from the standard library. To manage files and deal with special file formats (xml, json..) python provides special packages that make the […]
To create a child process in Linux/Unix , you can use clone(2) or fork(2). We use clone(2) is to implement multithreading and namespaces. We use fork(2) to create a “real” (child) process, i.e. separate address space and resources In this post i will cover fork, its patterns and its pitfalls Lets start with a simple […]
Regular Expressions are commonly used in Linux command line tools like sed, awk, grep etc. Most programming languages support them in either built – in or through an external library. The main problem of using them is that they difficult to understand, but they are well worth the effort to learn. Using a regular expression […]
Android applications are built from 4 types of components: Activity – Screen (code and GUI) Service – independent code supplying something Content Provider – Data service Broadcast Receiver – component for global events handling The developer can create multiple components from each type and each one can be an entry point. In this tutorial i […]
The Executable and Linking Format (ELF) is the file format standard for executables, objects, shared libraries and core dumps in Linux/Unix. The newest debug information format, compatible with ELF, is DWARF 5 If you are not writing a new compiler or debugger it is not necessary to understand every bit on those formats but there are […]
Signals are very useful feature in linux to send notification from one process to another and from the kernel to the process. Signals are sent in some error cases (accessing wrong memory address, bus error, floating point error, …) and also to inform the user application (timer expired, child process finished, IO is ready, ….) […]
Modern operating systems allow a user to run several applications simultaneously, so that some tasks can be run in the background while the user continues with other work in the foreground. The user can also run multiple copies of the same program at the same time. To create a task we can use process or […]