GNU/Linux >> Znalost Linux >  >> Linux

Jaký je rozdíl mezi voláním knihovny a voláním systému v Linuxu?

Nic takového jako „volání do knihovny“ ve skutečnosti neexistuje. Můžete volat funkci, která je propojena se sdílenou knihovnou. A to jen znamená, že cesta ke knihovně je vyhledána za běhu, aby se určilo umístění funkce, kterou chcete volat.

Systémová volání jsou nízkoúrovňová volání jádra, která zpracovává jádro.


Pokud zadáte man man ve vašem shellu uvidíte seznam sekcí manuálu

2 Systémová volání (funkce poskytované jádrem)

3 Volání knihovny (funkce v rámci programových knihoven)

Například najdete chmod v části 2 příručky při zadávání man chmod . A fprintf v sekci 3.


Systémová volání jsou zpracovávána přímo jádrem.

Volání knihovny zpracovává dynamická (nebo staticky propojená) knihovna. Program, který volá knihovnu, musí nejprve tuto knihovnu importovat, než bude volání fungovat. Samotná volání knihovny mohou používat systémová volání.

Někdy jsou knihovny poskytovány jako "front-endy" pro systémová volání, aby poskytovaly další funkce nebo snadné použití, které jádro neposkytuje.


Linux
  1. Jaký je rozdíl mezi InnoDB a MyISAM?

  2. Jaký je rozdíl mezi „vyhledat“ a „najít“ v Linuxu?

  3. Jaký je rozdíl mezi unlink a rm?

  1. Jaký je rozdíl mezi linuxovým kontejnerem a obrázkem?

  2. Jaký je rozdíl mezi příkazem locate a find v Linuxu

  3. Jaký je rozdíl mezi env a set (na Mac OS X nebo Linux)?

  1. Jaký je rozdíl mezi vyrovnávací pamětí a mezipamětí v Linuxu?

  2. Jaký je rozdíl mezi ovladačem platformy Linux a normálním ovladačem zařízení?

  3. Jaký je rozdíl mezi procfs a sysfs?