RostakaGmfun's blog    Feed



My name is Rostyslav Kurylo and I am passionate about software, and technology behind it. During my work days I am mostly busy with system programming for Linux and embedded platforms, and that is also what I like to do in my spare time, though with more experiment and joy :)

I do not pretend to be a generalist, but I like to consider the whole hardware and software stack when working on a project and make interesting obsevations about it.

This blog was initially meant to be a summary of what I’ve learned so far in the world of software engineering, but tends to be updated with new contant very rarely, so don’t judge it too strictly.

This blog uses slightly modified jekyll-minimal-theme.


PCI overview

PCI is a widespread bus for peripheral interconnection usually found on x86 platforms (although originally designed with cross-platformness in mind). It is also used as a transport layer for VirtIO devices - paravirtualization standard used in modern hypervisors.

Utilizing I2C multibyte transfers

I2C is a common hardware protocol to communicate with multiple low-speed peripherals located tightly on the board. I2C is used mostly in the embedded devices. That is why performance considerations are common when talking about I2C-enabled peripherals, especially about those that consume or produce lots of data (like different kinds of sensors).