Author: Liran B.H

Embedded Linux – Working with QT

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 […]

Read more

Building Embedded Linux System with Qemu

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 […]

Read more

10 Things You Can Only Do With GDB

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 […]

Read more

8 Python Modules For Files Handling

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 […]

Read more

Linux – fork system call and its pitfalls

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 […]

Read more

Python – Regular Expressions Practical Guide

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 […]

Read more

Android Services and AIDL

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 […]

Read more

Linux – Inside the Build Process

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 […]

Read more

Linux – Handling Signals in a Multithreaded Application

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, ….) […]

Read more

Python Multitasking – MultiThreading and MultiProcessing

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 […]

Read more