Several Questions about SGAM & GAM & IAM & PFS in SQL Server
How SQL Server knows that extents have free space ?

SQL Server tracks free space on the page, in heap tables as well as in LOB pages using PSF page internally.
Also, you can use sys.dm_db_file_space_usage DMV to find out total_page_count, allocated_extent_page_count as well as unallocated_extent_page_count within a database.

Page Free Space (PFS) pages record the allocation status of each page, whether an individual page has been allocated, and the amount of free space on each page. The PFS has one byte for each page, recording whether the page is allocated, and if so, whether it is empty, 1 to 50 percent full, 51 to 80 percent full, 81 to 95 percent full, or 96 to 100 percent full.
A PFS page is the first page after the file header page in a data file (page number 1). This is followed by a GAM page (page number 2), and then an SGAM page (page 3). There is a PFS page approximately 8,000 pages in size after the first PFS page. There is another GAM page 64,000 extents after the first GAM page on page 2, and another SGAM page 64,000 extents after the first SGAM page on page 3. The following illustration shows the sequence of pages used by the Database Engine to allocate and manage extents.

Click here to enlarge - output using DBCC PAGE

Refer to : Inside The Storage Engine: GAM, SGAM, PFS and other allocation maps

File header &amp; SGAM &amp; GAM &amp; IAM pages are among the first pages within a file. What data-structure actually points to them ?

I do not get this question. The smallest unit of storage is a page. Eight 8K Pages form an extent. Below is what comprises of a data page:

I would highly recommend to read SQLSkills.com blog wherein Paul and his team blogs a lot about SQL Server internals.