Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9209861
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T00:56:47+00:00 2026-06-18T00:56:47+00:00

I am reading Linux Kernel Development by Robert Love. I don’t understand this paragraph

  • 0

I am reading Linux Kernel Development by Robert Love. I don’t understand this paragraph about the bio structure:

The basic container for block I/O within the kernel is the bio structure, which is defined in <linux/bio.h>. This structure represents block I/O operations that are in flight (active) as a list of segments. A segment is a chunk of a buffer that is contiguous in memory. Thus, individual buffers need not be contiguous in memory. By
allowing the buffers to be described in chunks, the bio structure provides the capability for the kernel to perform block I/O operations of even a single buffer from multiple locations in memory. Vector I/O such as this is called scatter-gather I/O.

  1. What exactly does flight(active) means?
  2. “As a list of segments” — are we talking about this segmentation?
  3. What does “By allowing the buffers … in memory” mean?
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T00:56:49+00:00Added an answer on June 18, 2026 at 12:56 am

    Block Devices are such device which deals with a chunk (512, 1024 bytes) of data during an I/O transaction. “struct bio” is available for block I/O operations from Kernel-Space. This structure is commonly used in block device driver development.

    Q1) What exactly does flight(active) means?

    Block devices are usually implemented with a File-System meant for storing files. Now when ever an user-space application initiates a File I/O operation (read, write), the kernel in turn initiates a sequence of Block I/O operation through File-System Manager. The “struct bio” keeps track of all Block I/O transactions (initiated by user app) that is to be processed. That’s what is mentioned here as flight/active regions.

    “Q2) As a list of segments” — are we talking about this segmentation?

    Memory buffers are required by the kernel to hold data to/from Block device.

    In kernel there are two possiblilites in which the memory is allocated.

    1. Virtual Address Continuous – Physical Address Continuous (Using kmalloc() – Provides good Performance but limited in size)
    2. Virtual Address Continuous – Physical Address Non-continuous (Using vmalloc() – For huge memory size requirement)

    Here a segment indicates the first type i.e. continuous physical memory which is used for block IO transfer. List of segment indicates a set of such continuous physical memory regions. Note that the list elements are non-continuous memory segments.

    Q3) What does “By allowing the buffers … in memory” mean?

    Scatter-gather is feature which allows data transfer from/to multiple non-continuous memory location to/from device, in a single shot (read/write transaction). Here “struct bio” keeps record of multiple segments that is to be processed. Each segment is a continuous memory region whereas multiple segments are non-continuous with one another. “struct bio” provides capability to the kernel to perform scatter-gather feature.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

After reading up on this answer and Linux Kernel Development by Robert Love and,
I am currently reading 'Linux Kernel Development' by Robert Love and I do not
Right now I'm reading the book "Linux Kernel Development 3d Edition" by Robert Love.
I was reading about linux kernel development and I just read some text that
Okay, I'm reading about Linux kernel development and there are some code snippets using
I'm reading Understanding Linux Kernel. This is the snippet that explains how Linux uses
I'm trying to understand the Linux kernel, so I'm reading Linux kernel source. So
Recently, I am reading some Linux kernel space codes, I see this uint64_t used;
Upon reading Linux Kernel Development I saw next statetement: Traditionally, upon fork() , all
I am reading Linux Kernel Development and get confused by the differences between mutex

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.