Javier Martín-Torres is a Spanish astrophysicist and researcher known for his work in planetary science, particularly in the study of Mars and the potential for life in extraterrestrial environments. He has been involved in research related to the atmospheric conditions on Mars, the habitability of other celestial bodies, and the implications of his findings for understanding the potential for life beyond Earth.
ELF Hello World Tutorial / SHN_ABS by Ciro Santilli 37 Updated +Created
hello_world_len points to the special st_shndx == SHN_ABS == 0xF1FF.
0xF1FF is chosen so as to not conflict with other sections.
st_value == 0xD == 13 which is the value we have stored there on the assembly: the length of the string Hello World!.
This means that relocation will not affect this value: it is a constant.
This is small optimization that our assembler does for us and which has ELF support.
If we had used the address of hello_world_len anywhere, the assembler would not have been able to mark it as SHN_ABS, and the linker would have extra relocation work on it later.
ELF Hello World Tutorial / .shstrtab by Ciro Santilli 37 Updated +Created
Section type: sh_type == SHT_STRTAB.
Common name: "section header string table".
The section name .shstrtab is reserved. The standard says:
This section holds section names.
This section gets pointed to by the e_shstrnd field of the ELF header itself.
String indexes of this section are are pointed to by the sh_name field of section headers, which denote strings.
This section does not have SHF_ALLOC marked, so it will not appear on the executing program.
readelf -x .shstrtab hello_world.o
outputs:
Hex dump of section '.shstrtab':
  0x00000000 002e6461 7461002e 74657874 002e7368 ..data..text..sh
  0x00000010 73747274 6162002e 73796d74 6162002e strtab..symtab..
  0x00000020 73747274 6162002e 72656c61 2e746578 strtab..rela.tex
  0x00000030 7400                                t.
If we look at the names of other sections, we see that they all contain numbers, e.g. the .text section is number 7.
Then each string ends when the first NUL character is found, e.g. character 12 is \0 just after .text\0.
ELF Hello World Tutorial / SHT_NULL by Ciro Santilli 37 Updated +Created
Richard A. Anthes by Wikipedia Bot 0
Richard A. Anthes is a prominent figure in the fields of meteorology and atmospheric science. He is best known for his contributions to weather forecasting and climate research, particularly through his work with the National Center for Atmospheric Research (NCAR) in the United States, where he served as director from 1988 to 1999. Anthes has been influential in the development of numerical weather prediction models and has made significant contributions to understanding mesoscale meteorology and the interaction between weather and climate.
ELF Hello World Tutorial / SHT_STRTAB by Ciro Santilli 37 Updated +Created
Sections with sh_type == SHT_STRTAB are called string tables.
They hold a null separated array of strings.
Such sections are used by other sections when string names are to be used. The using section says:
  • which string table they are using
  • what is the index on the target string table where the string starts
So for example, we could have a string table containing:
Data: \0 a b c \0 d e f \0
Index: 0 1 2 3  4 5 6 7  8
The first byte must be a 0. TODO rationale?
And if another section wants to use the string d e f, they have to point to index 5 of this section (letter d).
Notable string table sections:
  • .shstrtab
  • .strtab
ELF Hello World Tutorial / SHT_SYMTAB on the executable by Ciro Santilli 37 Updated +Created
By default, NASM places a .symtab on the executable as well.
This is only used for debugging. Without the symbols, we are completely blind, and must reverse engineer everything.
You can strip it with objcopy, and the executable will still run. Such executables are called "stripped executables".
Atmospheric sounding is a technique used to measure and analyze the vertical profile of atmospheric variables, such as temperature, humidity, and pressure, throughout the atmosphere. This process provides critical data that helps meteorologists and scientists understand weather patterns, climate variations, and atmospheric conditions. There are several methods and instruments used for atmospheric sounding, including: 1. **Weather Balloons (Radiosondes)**: A common method involving the release of balloons that carry instruments (radiosondes) into the atmosphere.
Boundary layer meteorology is a specialized field of meteorology that focuses on the atmospheric boundary layer (ABL), which is the lowest part of the Earth's atmosphere. This region extends from the surface up to a few kilometers above ground level and is directly influenced by the Earth's surface and its characteristics, such as land use, vegetation, topography, and temperature.
High Integrity C++ is a set of guidelines and methodologies aimed at ensuring the reliability, safety, and maintainability of C++ code, particularly in critical systems where failures can lead to significant consequences, such as in aerospace, automotive, medical devices, and other safety-critical applications. The main focus of High Integrity C++ is to provide a standardized approach to developing software that adheres to strict quality standards.
ELF Hello World Tutorial / Specified file formats by Ciro Santilli 37 Updated +Created
The ELF standard specifies multiple file formats:
  • Object files (.o).
    Intermediate step to generating executables and other formats:
    Source code
    
        |
        | Compilation
        |
        v
    
    Object file
    
        |
        | Linking
        |
        v
    
    Executable
    Object files exist to make compilation faster: with make, we only have to recompile the modified source files based on timestamps.
    We have to do the linking step every time, but it is much less expensive.
  • Executable files (no standard Linux extension).
    This is what the Linux kernel can actually run.
  • Shared object files (.so).
    Libraries meant to be loaded when the executable starts running.
  • Core dumps.
    Such files may be generated by the Linux kernel when the program does naughty things, e.g. segfault.
    They exist to help debugging the program.
In this tutorial, we consider only object and executable files.
Cloud and fog physics is a branch of atmospheric science that focuses on understanding the formation, development, and interactions of clouds and fog in the Earth's atmosphere. This field of study encompasses various processes related to the microphysical, thermodynamic, and dynamic properties of clouds and fog. ### Key Components of Cloud and Fog Physics: 1. **Cloud Formation**: Clouds form when moist air rises, cools, and condenses into water droplets or ice crystals.
Atom localization by Wikipedia Bot 0
Atom localization generally refers to the methods and processes used to determine the precise position of atoms within a given system or material. The concept is particularly relevant in various fields such as physics, chemistry, and material science. In the context of quantum mechanics and condensed matter physics, atom localization can describe scenarios where atoms or particles are influenced by potential wells or barriers that restrict their movement, leading to localized states.
ELF Hello World Tutorial / Standards by Ciro Santilli 37 Updated +Created
The LSB basically links to other standards with minor extensions, in particular:
A handy summary can be found at:
man elf
ELF Hello World Tutorial / .strtab by Ciro Santilli 37 Updated +Created
Holds strings for the symbol table.
This section has sh_type == SHT_STRTAB.
It is pointed to by sh_link == 5 of the .symtab section.
readelf -x .strtab hello_world.o
outputs:
Hex dump of section '.strtab':
  0x00000000 0068656c 6c6f5f77 6f726c64 2e61736d .hello_world.asm
  0x00000010 0068656c 6c6f5f77 6f726c64 0068656c .hello_world.hel
  0x00000020 6c6f5f77 6f726c64 5f6c656e 005f7374 lo_world_len._st
  0x00000030 61727400                            art.
This implies that it is an ELF level limitation that global variables cannot contain NUL characters.
Atomic electron transition refers to the process by which an electron in an atom moves from one energy level (or state) to another. This transition can occur when an electron absorbs or emits energy, typically in the form of photons (light quanta). The fundamental aspects of atomic electron transitions can be summarized as follows: 1. **Energy Levels**: Electrons exist in discrete energy levels or orbitals around the nucleus of an atom. Each level corresponds to a specific energy state.
Atomic orbital by Wikipedia Bot 0
An atomic orbital is a mathematical function that describes the wave-like behavior of an electron in an atom. This concept arises from quantum mechanics and is fundamental to understanding the structure of atoms and the arrangement of electrons within them. Here are some key points about atomic orbitals: 1. **Shape and Energy**: Atomic orbitals have distinct shapes (spherical, dumbbell-shaped, etc.) and energy levels. The shape and orientation of an orbital are determined by the quantum numbers that describe it.
Atomic recoil by Wikipedia Bot 0
Atomic recoil refers to the phenomenon that occurs when an atom or a nucleus absorbs energy from a photon (a particle of light) or a particle (such as an alpha or beta particle) during an interaction. When this energy is absorbed, the atom is set into motion due to the conservation of momentum, and it recoils as a reaction to the incoming energy. In a quantum context, when an atom absorbs a photon, it can be excited to a higher energy state.
ELF Hello World Tutorial / STT_FILE by Ciro Santilli 37 Updated +Created
Entry 1 has ELF64_R_TYPE == STT_FILE. ELF64_R_TYPE is continued inside of st_info.
  • 10 8: st_name = 01000000 = character 1 in the .strtab, which until the following \0 makes hello_world.asm
    This piece of information file may be used by the linker to decide on which segment sections go: e.g. in ld linker script we write:
    segment_name :
    {
        file(section)
    }
    to pick a section from a given file.
    Most of the time however, we will just dump all sections with a given name together with:
    segment_name :
    {
        *(section)
    }
  • 10 12: st_info = 04
    Bits 0-3 = ELF64_R_TYPE = Type = 4 = STT_FILE: the main purpose of this entry is to use st_name to indicate the name of the file which generated this object file.
    Bits 4-7 = ELF64_ST_BIND = Binding = 0 = STB_LOCAL. Required value for STT_FILE.
  • 10 13: st_shndx = Symbol Table Section header Index = f1ff = SHN_ABS. Required for STT_FILE.
  • 20 0: st_value = 8x 00: required for value for STT_FILE
  • 20 8: st_size = 8x 00: no allocated size
Now from the readelf, we interpret the others quickly.

Pinned article: ourbigbook/introduction-to-the-ourbigbook-project

Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
We have two killer features:
  1. topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculus
    Articles of different users are sorted by upvote within each article page. This feature is a bit like:
    • a Wikipedia where each user can have their own version of each article
    • a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
    This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.
    Figure 1.
    Screenshot of the "Derivative" topic page
    . View it live at: ourbigbook.com/go/topic/derivative
  2. local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:
    This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
    Figure 5. . You can also edit articles on the Web editor without installing anything locally.
    Video 3.
    Edit locally and publish demo
    . Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.
  3. https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
  4. Infinitely deep tables of contents:
    Figure 6.
    Dynamic article tree with infinitely deep table of contents
    .
    Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact