Hands-On System Programming with Linux :: Explore Linux System Programming Interfaces, Theory, and Practice.
Twenty five years ago, as often happens in our industry, pundits laughed at and called Linux a joke. To say that view has changed is a massive understatement. This book will cement for you both the conceptual 'why' and the practical 'how' of systems programming on Linux, and cove...
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham :
Packt Publishing Ltd,
2018.
|
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | Twenty five years ago, as often happens in our industry, pundits laughed at and called Linux a joke. To say that view has changed is a massive understatement. This book will cement for you both the conceptual 'why' and the practical 'how' of systems programming on Linux, and covers Linux systems programming on the latest 4.x kernels. |
Beschreibung: | Test case 3. |
Beschreibung: | 1 online resource (780 pages) |
ISBN: | 1788996747 9781788996747 |
Internformat
MARC
LEADER | 00000cam a2200000Mi 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-on1065095373 | ||
003 | OCoLC | ||
005 | 20241004212047.0 | ||
006 | m o d | ||
007 | cr |n|---||||| | ||
008 | 181117s2018 enk o 000 0 eng d | ||
040 | |a EBLCP |b eng |e pn |c EBLCP |d MERUC |d OCLCQ |d UKAHL |d RDF |d OCLCO |d OCLCF |d OCLCQ |d N$T |d NLW |d UKMGB |d OCLCO |d OCLCQ |d OCLCO |d TMA |d OCLCQ | ||
015 | |a GBC209467 |2 bnb | ||
016 | 7 | |a 019121435 |2 Uk | |
020 | |a 1788996747 | ||
020 | |a 9781788996747 |q (electronic bk.) | ||
020 | |z 9781788998475 |q print | ||
035 | |a (OCoLC)1065095373 | ||
037 | |a 9781788996747 |b Packt Publishing | ||
050 | 4 | |a QA76.76.O63 |b .B555 2018 | |
082 | 7 | |a 005.432 |2 23 | |
049 | |a MAIN | ||
100 | 1 | |a Billimoria, Kaiwan N. | |
245 | 1 | 0 | |a Hands-On System Programming with Linux : |b Explore Linux System Programming Interfaces, Theory, and Practice. |
260 | |a Birmingham : |b Packt Publishing Ltd, |c 2018. | ||
300 | |a 1 online resource (780 pages) | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
588 | 0 | |a Print version record. | |
505 | 0 | |a Intro; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Linux System Architecture; Technical requirements; Linux and the Unix operating system; The Unix philosophy in a nutshell; Everything is a process -- if it's not a process, it's a file; One tool to do one task; Three standard I/O channels; Word count ; cat; Combine tools seamlessly; Plain text preferred; CLI, not GUI; Modular, designed to be repurposed by others; Provide mechanisms, not policies; Pseudocode; Linux system architecture; Preliminaries; The ABI. | |
505 | 8 | |a Accessing a register's content via inline assemblyAccessing a control register's content via inline assembly; CPU privilege levels; Privilege levels or rings on the x86; Linux architecture; Libraries; System calls; Linux -- a monolithic OS; What does that mean?; Execution contexts within the kernel; Process context; Interrupt context; Summary; Virtual Memory; Technical requirements; Virtual memory; No VM -- the problem; Objective; Virtual memory; Addressing 1 -- the simplistic flawed approach; Addressing 2 -- paging in brief; Paging tables -- simplified; Indirection; Address-translation. | |
505 | 8 | |a Benefits of using VMProcess-isolation; The programmer need not worry about physical memory; Memory-region protection; SIDEBAR :: Testing the memcpy() C program; Process memory layout; Segments or mappings; Text segment; Data segments; Library segments; Stack segment; What is stack memory?; Why a process stack?; Peeking at the stack; Advanced -- the VM split; Summary; Resource Limits; Resource limits; Granularity of resource limits; Resource types; Available resource limits; Hard and soft limits; Querying and changing resource limit values; Caveats; A quick note on the prlimit utility. | |
505 | 8 | |a Using prlimit(1) -- examplesAPI interfaces; Code examples; Permanence; Summary; Dynamic Memory Allocation; The glibc malloc(3) API family; The malloc(3) API; malloc(3) -- some FAQs; malloc(3) -- a quick summary; The free API; free -- a quick summary; The calloc API; The realloc API; The realloc(3) -- corner cases; The reallocarray API; Beyond the basics; The program break; Using the sbrk() API; How malloc(3) really behaves; Code example -- malloc(3) and the program break; Scenario 1 -- default options; Scenario 2 -- showing malloc statistics; Scenario 3 -- large allocations option. | |
505 | 8 | |a Where does freed memory go?Advanced features; Demand-paging; Resident or not?; Locking memory; Limits and privileges; Locking all pages; Memory protection; Memory protection -- a code example; An Aside -- LSM logs, Ftrace; LSM logs; Ftrace; An experiment -- running the memprot program on an ARM-32; Memory protection keys -- a brief note; Using alloca to allocate automatic memory; Summary; Linux Memory Issues; Common memory issues; Incorrect memory accesses; Accessing and/or using uninitialized variables; Test case 1: Uninitialized memory access; Out-of-bounds memory accesses; Test case 2. | |
500 | |a Test case 3. | ||
520 | |a Twenty five years ago, as often happens in our industry, pundits laughed at and called Linux a joke. To say that view has changed is a massive understatement. This book will cement for you both the conceptual 'why' and the practical 'how' of systems programming on Linux, and covers Linux systems programming on the latest 4.x kernels. | ||
630 | 0 | 0 | |a Linux. |0 http://id.loc.gov/authorities/names/n94087892 |
630 | 0 | 7 | |a Linux |2 fast |
650 | 0 | |a Operating systems (Computers) |0 http://id.loc.gov/authorities/subjects/sh85094982 | |
650 | 6 | |a Systèmes d'exploitation (Ordinateurs) | |
650 | 7 | |a operating systems. |2 aat | |
650 | 7 | |a Operating systems. |2 bicssc | |
650 | 7 | |a Programming & scripting languages: general. |2 bicssc | |
650 | 7 | |a Linux. |2 bicssc | |
650 | 7 | |a Computers |x Operating Systems |x UNIX. |2 bisacsh | |
650 | 7 | |a Computers |x Programming Languages |x C. |2 bisacsh | |
650 | 7 | |a Computers |x Operating Systems |x Linux. |2 bisacsh | |
650 | 7 | |a Operating systems (Computers) |2 fast | |
776 | 0 | 8 | |i Print version: |a Billimoria, Kaiwan N. |t Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |d Birmingham : Packt Publishing Ltd, ©2018 |z 9781788998475 |
856 | 4 | 0 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1925338 |3 Volltext |
938 | |a Askews and Holts Library Services |b ASKH |n AH35400947 | ||
938 | |a EBL - Ebook Library |b EBLB |n EBL5573416 | ||
938 | |a EBSCOhost |b EBSC |n 1925338 | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-on1065095373 |
---|---|
_version_ | 1816882476860047360 |
adam_text | |
any_adam_object | |
author | Billimoria, Kaiwan N. |
author_facet | Billimoria, Kaiwan N. |
author_role | |
author_sort | Billimoria, Kaiwan N. |
author_variant | k n b kn knb |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.O63 .B555 2018 |
callnumber-search | QA76.76.O63 .B555 2018 |
callnumber-sort | QA 276.76 O63 B555 42018 |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | Intro; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Linux System Architecture; Technical requirements; Linux and the Unix operating system; The Unix philosophy in a nutshell; Everything is a process -- if it's not a process, it's a file; One tool to do one task; Three standard I/O channels; Word count ; cat; Combine tools seamlessly; Plain text preferred; CLI, not GUI; Modular, designed to be repurposed by others; Provide mechanisms, not policies; Pseudocode; Linux system architecture; Preliminaries; The ABI. Accessing a register's content via inline assemblyAccessing a control register's content via inline assembly; CPU privilege levels; Privilege levels or rings on the x86; Linux architecture; Libraries; System calls; Linux -- a monolithic OS; What does that mean?; Execution contexts within the kernel; Process context; Interrupt context; Summary; Virtual Memory; Technical requirements; Virtual memory; No VM -- the problem; Objective; Virtual memory; Addressing 1 -- the simplistic flawed approach; Addressing 2 -- paging in brief; Paging tables -- simplified; Indirection; Address-translation. Benefits of using VMProcess-isolation; The programmer need not worry about physical memory; Memory-region protection; SIDEBAR :: Testing the memcpy() C program; Process memory layout; Segments or mappings; Text segment; Data segments; Library segments; Stack segment; What is stack memory?; Why a process stack?; Peeking at the stack; Advanced -- the VM split; Summary; Resource Limits; Resource limits; Granularity of resource limits; Resource types; Available resource limits; Hard and soft limits; Querying and changing resource limit values; Caveats; A quick note on the prlimit utility. Using prlimit(1) -- examplesAPI interfaces; Code examples; Permanence; Summary; Dynamic Memory Allocation; The glibc malloc(3) API family; The malloc(3) API; malloc(3) -- some FAQs; malloc(3) -- a quick summary; The free API; free -- a quick summary; The calloc API; The realloc API; The realloc(3) -- corner cases; The reallocarray API; Beyond the basics; The program break; Using the sbrk() API; How malloc(3) really behaves; Code example -- malloc(3) and the program break; Scenario 1 -- default options; Scenario 2 -- showing malloc statistics; Scenario 3 -- large allocations option. Where does freed memory go?Advanced features; Demand-paging; Resident or not?; Locking memory; Limits and privileges; Locking all pages; Memory protection; Memory protection -- a code example; An Aside -- LSM logs, Ftrace; LSM logs; Ftrace; An experiment -- running the memprot program on an ARM-32; Memory protection keys -- a brief note; Using alloca to allocate automatic memory; Summary; Linux Memory Issues; Common memory issues; Incorrect memory accesses; Accessing and/or using uninitialized variables; Test case 1: Uninitialized memory access; Out-of-bounds memory accesses; Test case 2. |
ctrlnum | (OCoLC)1065095373 |
dewey-full | 005.432 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.432 |
dewey-search | 005.432 |
dewey-sort | 15.432 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>05691cam a2200625Mi 4500</leader><controlfield tag="001">ZDB-4-EBA-on1065095373</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr |n|---|||||</controlfield><controlfield tag="008">181117s2018 enk o 000 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">EBLCP</subfield><subfield code="b">eng</subfield><subfield code="e">pn</subfield><subfield code="c">EBLCP</subfield><subfield code="d">MERUC</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">UKAHL</subfield><subfield code="d">RDF</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCF</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">N$T</subfield><subfield code="d">NLW</subfield><subfield code="d">UKMGB</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">TMA</subfield><subfield code="d">OCLCQ</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">GBC209467</subfield><subfield code="2">bnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">019121435</subfield><subfield code="2">Uk</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1788996747</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781788996747</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9781788998475</subfield><subfield code="q">print</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1065095373</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">9781788996747</subfield><subfield code="b">Packt Publishing</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.76.O63</subfield><subfield code="b">.B555 2018</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.432</subfield><subfield code="2">23</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Billimoria, Kaiwan N.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Hands-On System Programming with Linux :</subfield><subfield code="b">Explore Linux System Programming Interfaces, Theory, and Practice.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Birmingham :</subfield><subfield code="b">Packt Publishing Ltd,</subfield><subfield code="c">2018.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (780 pages)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Print version record.</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Intro; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Linux System Architecture; Technical requirements; Linux and the Unix operating system; The Unix philosophy in a nutshell; Everything is a process -- if it's not a process, it's a file; One tool to do one task; Three standard I/O channels; Word count ; cat; Combine tools seamlessly; Plain text preferred; CLI, not GUI; Modular, designed to be repurposed by others; Provide mechanisms, not policies; Pseudocode; Linux system architecture; Preliminaries; The ABI.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Accessing a register's content via inline assemblyAccessing a control register's content via inline assembly; CPU privilege levels; Privilege levels or rings on the x86; Linux architecture; Libraries; System calls; Linux -- a monolithic OS; What does that mean?; Execution contexts within the kernel; Process context; Interrupt context; Summary; Virtual Memory; Technical requirements; Virtual memory; No VM -- the problem; Objective; Virtual memory; Addressing 1 -- the simplistic flawed approach; Addressing 2 -- paging in brief; Paging tables -- simplified; Indirection; Address-translation.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Benefits of using VMProcess-isolation; The programmer need not worry about physical memory; Memory-region protection; SIDEBAR :: Testing the memcpy() C program; Process memory layout; Segments or mappings; Text segment; Data segments; Library segments; Stack segment; What is stack memory?; Why a process stack?; Peeking at the stack; Advanced -- the VM split; Summary; Resource Limits; Resource limits; Granularity of resource limits; Resource types; Available resource limits; Hard and soft limits; Querying and changing resource limit values; Caveats; A quick note on the prlimit utility.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Using prlimit(1) -- examplesAPI interfaces; Code examples; Permanence; Summary; Dynamic Memory Allocation; The glibc malloc(3) API family; The malloc(3) API; malloc(3) -- some FAQs; malloc(3) -- a quick summary; The free API; free -- a quick summary; The calloc API; The realloc API; The realloc(3) -- corner cases; The reallocarray API; Beyond the basics; The program break; Using the sbrk() API; How malloc(3) really behaves; Code example -- malloc(3) and the program break; Scenario 1 -- default options; Scenario 2 -- showing malloc statistics; Scenario 3 -- large allocations option.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Where does freed memory go?Advanced features; Demand-paging; Resident or not?; Locking memory; Limits and privileges; Locking all pages; Memory protection; Memory protection -- a code example; An Aside -- LSM logs, Ftrace; LSM logs; Ftrace; An experiment -- running the memprot program on an ARM-32; Memory protection keys -- a brief note; Using alloca to allocate automatic memory; Summary; Linux Memory Issues; Common memory issues; Incorrect memory accesses; Accessing and/or using uninitialized variables; Test case 1: Uninitialized memory access; Out-of-bounds memory accesses; Test case 2.</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Test case 3.</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">Twenty five years ago, as often happens in our industry, pundits laughed at and called Linux a joke. To say that view has changed is a massive understatement. This book will cement for you both the conceptual 'why' and the practical 'how' of systems programming on Linux, and covers Linux systems programming on the latest 4.x kernels.</subfield></datafield><datafield tag="630" ind1="0" ind2="0"><subfield code="a">Linux.</subfield><subfield code="0">http://id.loc.gov/authorities/names/n94087892</subfield></datafield><datafield tag="630" ind1="0" ind2="7"><subfield code="a">Linux</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Operating systems (Computers)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh85094982</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Systèmes d'exploitation (Ordinateurs)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">operating systems.</subfield><subfield code="2">aat</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Operating systems.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programming & scripting languages: general.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Linux.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Operating Systems</subfield><subfield code="x">UNIX.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming Languages</subfield><subfield code="x">C.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Operating Systems</subfield><subfield code="x">Linux.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Operating systems (Computers)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Billimoria, Kaiwan N.</subfield><subfield code="t">Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice.</subfield><subfield code="d">Birmingham : Packt Publishing Ltd, ©2018</subfield><subfield code="z">9781788998475</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1925338</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">AH35400947</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBL - Ebook Library</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL5573416</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">1925338</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
id | ZDB-4-EBA-on1065095373 |
illustrated | Not Illustrated |
indexdate | 2024-11-27T13:29:13Z |
institution | BVB |
isbn | 1788996747 9781788996747 |
language | English |
oclc_num | 1065095373 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource (780 pages) |
psigel | ZDB-4-EBA |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Packt Publishing Ltd, |
record_format | marc |
spelling | Billimoria, Kaiwan N. Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. Birmingham : Packt Publishing Ltd, 2018. 1 online resource (780 pages) text txt rdacontent computer c rdamedia online resource cr rdacarrier Print version record. Intro; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Linux System Architecture; Technical requirements; Linux and the Unix operating system; The Unix philosophy in a nutshell; Everything is a process -- if it's not a process, it's a file; One tool to do one task; Three standard I/O channels; Word count ; cat; Combine tools seamlessly; Plain text preferred; CLI, not GUI; Modular, designed to be repurposed by others; Provide mechanisms, not policies; Pseudocode; Linux system architecture; Preliminaries; The ABI. Accessing a register's content via inline assemblyAccessing a control register's content via inline assembly; CPU privilege levels; Privilege levels or rings on the x86; Linux architecture; Libraries; System calls; Linux -- a monolithic OS; What does that mean?; Execution contexts within the kernel; Process context; Interrupt context; Summary; Virtual Memory; Technical requirements; Virtual memory; No VM -- the problem; Objective; Virtual memory; Addressing 1 -- the simplistic flawed approach; Addressing 2 -- paging in brief; Paging tables -- simplified; Indirection; Address-translation. Benefits of using VMProcess-isolation; The programmer need not worry about physical memory; Memory-region protection; SIDEBAR :: Testing the memcpy() C program; Process memory layout; Segments or mappings; Text segment; Data segments; Library segments; Stack segment; What is stack memory?; Why a process stack?; Peeking at the stack; Advanced -- the VM split; Summary; Resource Limits; Resource limits; Granularity of resource limits; Resource types; Available resource limits; Hard and soft limits; Querying and changing resource limit values; Caveats; A quick note on the prlimit utility. Using prlimit(1) -- examplesAPI interfaces; Code examples; Permanence; Summary; Dynamic Memory Allocation; The glibc malloc(3) API family; The malloc(3) API; malloc(3) -- some FAQs; malloc(3) -- a quick summary; The free API; free -- a quick summary; The calloc API; The realloc API; The realloc(3) -- corner cases; The reallocarray API; Beyond the basics; The program break; Using the sbrk() API; How malloc(3) really behaves; Code example -- malloc(3) and the program break; Scenario 1 -- default options; Scenario 2 -- showing malloc statistics; Scenario 3 -- large allocations option. Where does freed memory go?Advanced features; Demand-paging; Resident or not?; Locking memory; Limits and privileges; Locking all pages; Memory protection; Memory protection -- a code example; An Aside -- LSM logs, Ftrace; LSM logs; Ftrace; An experiment -- running the memprot program on an ARM-32; Memory protection keys -- a brief note; Using alloca to allocate automatic memory; Summary; Linux Memory Issues; Common memory issues; Incorrect memory accesses; Accessing and/or using uninitialized variables; Test case 1: Uninitialized memory access; Out-of-bounds memory accesses; Test case 2. Test case 3. Twenty five years ago, as often happens in our industry, pundits laughed at and called Linux a joke. To say that view has changed is a massive understatement. This book will cement for you both the conceptual 'why' and the practical 'how' of systems programming on Linux, and covers Linux systems programming on the latest 4.x kernels. Linux. http://id.loc.gov/authorities/names/n94087892 Linux fast Operating systems (Computers) http://id.loc.gov/authorities/subjects/sh85094982 Systèmes d'exploitation (Ordinateurs) operating systems. aat Operating systems. bicssc Programming & scripting languages: general. bicssc Linux. bicssc Computers Operating Systems UNIX. bisacsh Computers Programming Languages C. bisacsh Computers Operating Systems Linux. bisacsh Operating systems (Computers) fast Print version: Billimoria, Kaiwan N. Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. Birmingham : Packt Publishing Ltd, ©2018 9781788998475 FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1925338 Volltext |
spellingShingle | Billimoria, Kaiwan N. Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. Intro; Title Page; Copyright and Credits; Packt Upsell; Contributors; Table of Contents; Preface; Linux System Architecture; Technical requirements; Linux and the Unix operating system; The Unix philosophy in a nutshell; Everything is a process -- if it's not a process, it's a file; One tool to do one task; Three standard I/O channels; Word count ; cat; Combine tools seamlessly; Plain text preferred; CLI, not GUI; Modular, designed to be repurposed by others; Provide mechanisms, not policies; Pseudocode; Linux system architecture; Preliminaries; The ABI. Accessing a register's content via inline assemblyAccessing a control register's content via inline assembly; CPU privilege levels; Privilege levels or rings on the x86; Linux architecture; Libraries; System calls; Linux -- a monolithic OS; What does that mean?; Execution contexts within the kernel; Process context; Interrupt context; Summary; Virtual Memory; Technical requirements; Virtual memory; No VM -- the problem; Objective; Virtual memory; Addressing 1 -- the simplistic flawed approach; Addressing 2 -- paging in brief; Paging tables -- simplified; Indirection; Address-translation. Benefits of using VMProcess-isolation; The programmer need not worry about physical memory; Memory-region protection; SIDEBAR :: Testing the memcpy() C program; Process memory layout; Segments or mappings; Text segment; Data segments; Library segments; Stack segment; What is stack memory?; Why a process stack?; Peeking at the stack; Advanced -- the VM split; Summary; Resource Limits; Resource limits; Granularity of resource limits; Resource types; Available resource limits; Hard and soft limits; Querying and changing resource limit values; Caveats; A quick note on the prlimit utility. Using prlimit(1) -- examplesAPI interfaces; Code examples; Permanence; Summary; Dynamic Memory Allocation; The glibc malloc(3) API family; The malloc(3) API; malloc(3) -- some FAQs; malloc(3) -- a quick summary; The free API; free -- a quick summary; The calloc API; The realloc API; The realloc(3) -- corner cases; The reallocarray API; Beyond the basics; The program break; Using the sbrk() API; How malloc(3) really behaves; Code example -- malloc(3) and the program break; Scenario 1 -- default options; Scenario 2 -- showing malloc statistics; Scenario 3 -- large allocations option. Where does freed memory go?Advanced features; Demand-paging; Resident or not?; Locking memory; Limits and privileges; Locking all pages; Memory protection; Memory protection -- a code example; An Aside -- LSM logs, Ftrace; LSM logs; Ftrace; An experiment -- running the memprot program on an ARM-32; Memory protection keys -- a brief note; Using alloca to allocate automatic memory; Summary; Linux Memory Issues; Common memory issues; Incorrect memory accesses; Accessing and/or using uninitialized variables; Test case 1: Uninitialized memory access; Out-of-bounds memory accesses; Test case 2. Linux. http://id.loc.gov/authorities/names/n94087892 Linux fast Operating systems (Computers) http://id.loc.gov/authorities/subjects/sh85094982 Systèmes d'exploitation (Ordinateurs) operating systems. aat Operating systems. bicssc Programming & scripting languages: general. bicssc Linux. bicssc Computers Operating Systems UNIX. bisacsh Computers Programming Languages C. bisacsh Computers Operating Systems Linux. bisacsh Operating systems (Computers) fast |
subject_GND | http://id.loc.gov/authorities/names/n94087892 http://id.loc.gov/authorities/subjects/sh85094982 |
title | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_auth | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_exact_search | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_full | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_fullStr | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_full_unstemmed | Hands-On System Programming with Linux : Explore Linux System Programming Interfaces, Theory, and Practice. |
title_short | Hands-On System Programming with Linux : |
title_sort | hands on system programming with linux explore linux system programming interfaces theory and practice |
title_sub | Explore Linux System Programming Interfaces, Theory, and Practice. |
topic | Linux. http://id.loc.gov/authorities/names/n94087892 Linux fast Operating systems (Computers) http://id.loc.gov/authorities/subjects/sh85094982 Systèmes d'exploitation (Ordinateurs) operating systems. aat Operating systems. bicssc Programming & scripting languages: general. bicssc Linux. bicssc Computers Operating Systems UNIX. bisacsh Computers Programming Languages C. bisacsh Computers Operating Systems Linux. bisacsh Operating systems (Computers) fast |
topic_facet | Linux. Linux Operating systems (Computers) Systèmes d'exploitation (Ordinateurs) operating systems. Operating systems. Programming & scripting languages: general. Computers Operating Systems UNIX. Computers Programming Languages C. Computers Operating Systems Linux. |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=1925338 |
work_keys_str_mv | AT billimoriakaiwann handsonsystemprogrammingwithlinuxexplorelinuxsystemprogramminginterfacestheoryandpractice |