Skip to content
Anton GoncharovAI systems developer

Modern Operating Systems

Andrew S. Tanenbaum, Herbert Bos

  • Programming
  • Operating systems

The classic textbook on how operating systems work: processes and threads, memory management, file systems, input/output, deadlocks, virtualization, multiprocessor systems and security. At the end, Linux, Android and Windows are examined.

Key ideas

  1. An operating system is abstractions over hardware: a process, an address space, a file.
  2. Threads are cheaper than processes, but shared memory requires synchronization.
  3. Virtual memory and paging let programs not think about physical memory.
  4. A deadlock is easier to prevent with a resource acquisition order than to cure afterwards.

How I apply it

The bots and APIs I write run in containers on Linux. Understanding processes, memory and I/O helps me choose between threads, processes and asyncio and figure out why a service has hit a memory or disk limit.

Where and how I applied it

  • Demo · Web app · PWA · vanilla JS

    Offline courier app

    A Service Worker keeps the app on the device, and the change queue is sent in order with a growing pause on a poor connection.

  • Demo · Web app · question → SQL → chart · PostgreSQL in the browser

    AI data analyst

    PostgreSQL runs in a separate Web Worker thread, and a query is stopped after 5 seconds — the interface doesn’t freeze.

  • Demo · Python backend · webhooks → amoCRM and Bitrix24

    Lead integration hub

    Delivery to CRM is asynchronous and parallel: while one CRM isn’t responding, the other leads don’t wait.

More on the shelf

  • Reading

    Hands-On APIs for AI and Data Science

    Ryan Day

    A practical book on building an API for data and connecting AI to it. The running project is a FastAPI service with a database and documentation, then an SDK for it, using the API in analytics and, finally, LangChain agents that call the API themselves.

    AI and agentsPythonAPIApplied in 3 projects
  • Reading

    Server Applications in Python, Django, Flask and FastAPI

    R. S. Bukharev

    The path of server-side development in Python, from sockets and protocols to architecture and launch on a server. Django, Flask and FastAPI are covered through real projects: a CRM system, a Telegram bot with server-side logic, a REST API for a mobile app and a WebSocket chat. Separate chapters cover caching and scaling, Docker and Kubernetes, PostgreSQL, MySQL, SQLite and MongoDB, and security: password hashing, JWT and OAuth 2.0, protection against SQL injection, XSS and CSRF, TLS.

    ProgrammingPythonBackendApplied in 1 project