글리시

glibc
GNU C 라이브러리
원저작자롤랜드 맥그래스
개발자GNU 프로젝트, Ulrich Drepper에 의한 대부분의 공헌
초기 릴리즈1987년, 35년(연장)[1]
안정된 릴리스
2.36 / 2022년 8월 2일[2]
저장소
기입처C
운영 체제Unix와 같은
유형런타임 라이브러리
면허증.2001: LGPL-2.1 이후[a]
1992: LGPL-2.0 이후[b]
웹 사이트www.gnu.org/software/libc/
Linux API는 Linux 커널의 시스템콜 인터페이스, GNU C 라이브러리(GNU), libdrm, libalsalibevdev(freedesktop.org)로 구성됩니다.
GNU C 라이브러리는 Linux 커널시스템 호출을 둘러싼 래퍼입니다.
Linux 커널과 GNU C 라이브러리가 함께 Linux API를 형성합니다.컴파일 후 바이너리는 ABI를 제공합니다.

GNU C 라이브러리는 일반적으로 glibc로 알려져 있으며 GNU 프로젝트의 C 표준 라이브러리 구현입니다.이름에도 불구하고 현재는 C++(및 간접적으로 다른 프로그래밍 언어)도 직접 지원합니다.1980년대에 GNU 운영체제용 Free Software Foundation(FSF)에 의해 시작되었습니다.

GNU Lesser General Public [3]License에 따라 출시된 glibc는 무료 소프트웨어입니다.GNU C 라이브러리 프로젝트는 GNU 시스템 및 Linux를 커널사용하는 많은 시스템을 위한 핵심 라이브러리를 제공합니다.이러한 라이브러리는 ISO C11, POSIX.1-2008, BSD, OS 고유의 API 등을 포함중요한 API를 제공합니다.이러한 API에는 open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit 등의 기본 기능이 포함됩니다.

역사

glibc 프로젝트는 1980년대 자유 소프트웨어 재단(FSF)에서 10대 [7]때 일했던 Roland McGrath가 주로 작성했습니다.1988년 2월에 FSF는 glibc가 ANSI [8]C에 필요한 기능을 거의 완료했다고 설명했습니다.1992년까지, ANSI C-1989와 POSIX.1-1990 기능이 구현되었고 POSIX.[9]2에서 작업이 진행 중이었다.1995년 9월 Ulrich Drepper는 glibc에 그의 첫 공헌을 했고 1997년까지 대부분의 커밋이 그에 의해 이루어졌다.Drepper는 수년간 유지보수 업무를 담당했으며,[10] 2012년까지 프로젝트에 대한 모든 커밋의 63%가 누적되었습니다.

2009년 5월에 glibc는 Git [10]저장소로 이행되었습니다.

2010년에는 GPL과 호환되지 않는 glibc에서의 Sun RPC 구현으로 인해 발생한 라이선스 문제가 해결되었습니다.BSD [11][12]라이선스로 Sun RPC 컴포넌트를 재라이센스함으로써 수정되었습니다.

2014년에 glibc는 s390의 [13]ABI 파손 버그로 고생했습니다.

롤랜드 맥그래스는 glibc를 시작한 지 30년 만인 2017년 7월 "명예 유지자로 선언하고 프로젝트에 직접 관여하지 않는다.지난 몇 달 동안, 아니 지난 몇 년간은 제가 필요없다는 것을 증명해 주셨습니다."[7]

버전 이력

대부분의 시스템에서는 lib 파일(예를 들어 /lib/libc.so.6)을 실행하여 glib 버전을 얻을 수 있습니다.

포크 및 변종

1994년에 Linux 개발자들은 glibc를 개발하였다.그들의 포크인 "Linux libc"는 1998년 경까지 별도로 유지되었다.저작권 속성이 불충분했기 때문에 변경 내용을 GNU [31]Libc로 병합할 수 없었습니다.언제 FSF가 1997년 1월에 glibc 2.0공개한 커널 개발자들 libc POSIX표준과 glibc 2.0의 우수한 준수로 인해 리눅스 중단했다.[32]glibc 2.0또한 더 좋은 국제화와 보다 심도 깊은 번역, IPv6기능, 64비트 데이터 접근, 다중 스레드 응용 프로그램 시설, 이후 버전 호환성,는다암호는 [33]더 휴대하기 쉬웠죠마지막으로 사용한 Linux libc 버전은 내부 이름(soname)을 사용했습니다.libc.so.5.이후 Linux의 glibc 2.x에서는 soname libc.so.6[34][better source needed] 사용됩니다.

2009년에 Debian과 다수의 파생상품은 glibc에서 변형[36] eglibc로 [37]전환했다.Eglibc는 Freescale, MIPS, MontaVista Wind [38]River로 구성된 컨소시엄의 지원을 받았다.임베디드 사용에 보다 적합하도록 변경 내용이 포함되어 있으며 Power와 같은 glibc에서 지원되지 않는 아키텍처에 대한 지원이 추가되었습니다.PC e500.eglibc 코드는 버전 2.20에서 [39]glibc로 Marge되었습니다.2014년부터 eglibc는 중단되었습니다.익토 프로젝트와 데비안도 데비안 [40]제시가 발매된 이후 glibc로 복귀했다.

운영위원회

2001년부터는 [41]Ulrich[42] Drepper가 주도적인 공헌자이자 관리자로서 도서관의 개발을 감독해 왔습니다.Ulrich Drepper에 의해 리차드 [43][44][45][46]스톨먼에 의한 적대적 인수 공작의 실패로 공공연히 묘사되었기 때문에 운영위원회 설치는 공개적인 논란에 휩싸였다.

2012년 3월 운영위원회는 Ryan Arnold, Maxim Kuvyrkov, Joseph Myers, Carlos O'Donell 및 Alexandre Oliva가 GNU 유지보수의 책임을 지도록 자체 해산하고 Drepper를 제거하기로 의결했습니다(단, 추가 의사결정 [47][48]권한은 없습니다).

기능

glibc는 단일 UNIX 사양, POSIX(1c, 1d 및 1j) 및 ISO C11, ISO C99, Berkeley Unix(BSD) 인터페이스, System V Interface Definition(SVID; 시스템 V 인터페이스 정의) 및 X/Open Portability Guide(XP)에 필요한 기능을 제공합니다.nt 시스템과 모든 X/Open UNIX 확장 기능을 함께 제공합니다.

또한 glibc는 GNU를 개발하는 동안 유용하거나 필요하다고 생각되는 확장 기능도 제공합니다.

지원되는 하드웨어 및 커널

glibc는 다양한 커널과 다양한 하드웨어 아키텍처를 실행하는 시스템에서 사용됩니다.가장 일반적인 용도는 x86 하드웨어 상에서 Linux 커널을 사용하는 시스템에서 사용되지만 공식적으로 지원되는[49] 하드웨어에는 32비트 ARM새로운 64비트 ISA(AArch64), ARC, C-SKY, DEC Alpha, IA-64, Motorola m68k, MicroBlaze, MIPS, Nios II, PA-C포함됩니다.공식적으로 HurdLinux 커널을 지원합니다.또한 OpenSolaris[50]분기형 버전뿐만 아니라 FreeBSD와 NetBSD의 커널에서 실행되는 패치 적용 버전이 있습니다(각각 Debian GNU/kFreeBSDDebian GNU/NetBSD 시스템이 구축됩니다).또한 BeOS 및 [51]Haiku에서는 (편집된 형태로) 사용되며 libroot.so이라는 이름이 붙습니다.

소형 디바이스에서 사용

glibc는 과거 Linus Torvalds나[52] 임베디드 Linux 프로그래머 등 다른 라이브러리보다 속도가 느리고 '블루드'하다는 비판을 받아왔다.이러한 이유로, 작은 설치 공간을 강조하는 몇 가지 대체 C 표준 라이브러리가 생성되었습니다.그러나 많은 소규모 디바이스 프로젝트에서는 애플리케이션 지원, 표준 컴플라이언스 및 완전성 때문에 작은 대체 솔루션보다 GNU libc를 사용합니다.예를 들어 Openmoko 및 iPaq용 익숙한 Linux 핸드헬드(GPE 디스플레이 소프트웨어 [54]사용 시) 등이 있습니다[53].

호환성 레이어

다른 생태계용으로 작성된 프로그램을 glibc 인터페이스 제공 시스템에서 실행할 수 있도록 하기 위한 호환성 레이어("")가 있습니다.여기에는 Android의 Bionic용 호환성 계층인 libhybrisWindows API에서 glibc 및 Unix와 유사한 시스템에서 사용할 수 있는 기타 네이티브 API에 대한 호환성 계층으로 볼 수 있는 Wine이 포함됩니다.

「 」를 참조해 주세요.

메모들

  1. ^ 2001-07-06, 버전 2.2.[3][4]4 이후 LGPL-2.1 이후
  2. ^ 1992년부터 2001-07-05년까지 LGPL-2.0 이후버전 1.04?부터 2.2.[5][6]3까지

레퍼런스

  1. ^ Corbet, Jonathan (28 March 2012). "A turning point for GNU libc". LWN.net.
  2. ^ "GNU C 라이브러리 버전 2.36을 이용할 수 있게 되었습니다."; 저자명 문자열: Carlos O'Donell; 발행일: 2022년 8월 2일; 취득일: 2022년 8월 2일.
  3. ^ a b "sourceware.org Git - glibc.git/blob - Makefile". sourceware.org. Retrieved 10 June 2021. LGPL-2.1-or-later in the headers
  4. ^ "sourceware.org Git - glibc.git/commit - Update to LGPL v.2.1". sourceware.org. 6 July 2001. Retrieved 10 June 2021. LGPL-2.1-or-later in the headers
  5. ^ "glibc-1.04.tar.Z". 4 September 1992. Retrieved 22 December 2021.
  6. ^ "sourceware.org Git - glibc.git/commit - Initial import: Makefile". sourceware.org. 18 February 1995. Retrieved 10 June 2021. LGPL-2.0-or-later in the headers
  7. ^ a b "Roland McGrath bows out as glibc maintainer [LWN.net]". lwn.net. 7 July 2017. Retrieved 8 July 2017.
  8. ^ "GNU's Bulletin, vol. 1 no. 4, February, 1988". Most libraries are done. Roland McGrath [...] has a nearly complete set of ANSI C library functions. We hope they will be ready some time this spring.
  9. ^ "GNU's Bulletin, vol. 1 no. 12". It now contains all of the ANSI C-1989 and POSIX.1-1990 functions, and work is in progress on POSIX.2 and Unix functions (BSD and System V)
  10. ^ a b Corbet, Jonathan (28 March 2012). "A turning point for GNU libc". LWN.net. Of the nearly 19,000 commits found in the project's git repository (which contains changes back to 1995), over 12,000 were made by Ulrich.
  11. ^ "Glibc finally free software - The H Open: News and Features". H-online. Retrieved 19 September 2021.{{cite web}}: CS1 maint :url-status (링크)
  12. ^ Phipps, Simon (2 September 2010). "Gnu/Linux: Finally, it's really free software". InfoWorld. Retrieved 19 September 2021.{{cite web}}: CS1 maint :url-status (링크)
  13. ^ Corbet, Jonathan. "The glibc s390 ABI break [LWN.net]". LWN.net. Retrieved 17 March 2022.
  14. ^ "CosmicCuttlefish/ReleaseNotes - Ubuntu Wiki".
  15. ^ "Chapter 5. RHEL 8.0.0 release Red Hat Enterprise Linux 8".
  16. ^ "Chapter 2. What's new in Debian 10".
  17. ^ "Changes/GLIBC228".
  18. ^ "Red Hat Bugzilla – Bug 1598403".
  19. ^ "sourceware.org Git - glibc.git/blob - NEWS".
  20. ^ "DiscoDingo/ReleaseNotes - Ubuntu Wiki".
  21. ^ "Changes/GLIBC229".
  22. ^ "Red Hat Bugzilla – Bug 1653403".
  23. ^ "sourceware.org Git - glibc.git/blob - NEWS".
  24. ^ "EoanErmine/ReleaseNotes - Ubuntu Wiki".
  25. ^ "Changes/GLIBC230".
  26. ^ "Focal (20.04) : glibc package : Ubuntu".
  27. ^ "Chapter 2. What's new in Debian 11".
  28. ^ "Changes/GLIBC231".
  29. ^ "The GNU C Library version 2.32 is now available". sourceware.org. Retrieved 13 August 2020.
  30. ^ "Compilers and development tools, 9.0 Release Notes".
  31. ^ "History of glibc and Linux libc". Free Software Magazine. Retrieved 10 May 2021.{{cite web}}: CS1 maint :url-status (링크)
  32. ^ "Forking: it could even happen to you". 12 September 2008. the split between GNU LIBC and the Linux LIBC -- it went on for years while Linux stabilized, and then the forks re-merged into one project
  33. ^ Lee, Elliot (2001). "A Technical Comparison of glibc 2.x With Legacy System Libraries". Archived from the original on 11 April 2004.
  34. ^ "Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"".
  35. ^ "EGLIBC: FAQ". www.eglibc.org. Retrieved 16 September 2021.
  36. ^ eglibc 개발자들은 eglibc가 glibc의 포크가 아니라 업스트림 glibc [35]프로젝트의 패치를 수용하는 변종임을 자신들에게 강조했다.
  37. ^ Vaduva, Alexandru (2016). Linux : embedded development: leverage the power of Linux to develop captivating and powerful embedded Linux projects : a course in three modules. Alex Gonzalez, Chris Simmonds. Birmingham, UK. p. 24. ISBN 978-1-78712-445-5. OCLC 960471438.
  38. ^ Stiebert, Julius (6 May 2009). "Debian wechselt zur Eglibc". golem.de. Retrieved 16 September 2021.{{cite web}}: CS1 maint :url-status (링크)
  39. ^ Simmonds, Chris (2017). Mastering embedded Linux programming: unleash the full potential of embedded Linux (2nd ed.). Birmingham, UK. p. 26. ISBN 978-1-78728-885-0. OCLC 995052708.
  40. ^ Vaduva, Alexandru (2015). Learning embedded Linux using the Yocto project: develop powerful embedded Linux systems with the Yocto project components. Birmingham, UK. p. 29. ISBN 978-1-78439-519-3. OCLC 914797028.
  41. ^ "glibc homepage". In 2001 The GNU C Library Steering Committee ..., was formed and currently consists of Mark Brown, Paul Eggert, Andreas Jaeger, Jakub Jelinek, Roland McGrath and Andreas Schwab.
  42. ^ "Ulrich Drepper". LinkedIn. Retrieved 13 June 2012.
  43. ^ online, heise. "Open-Source-Entwickler kritisiert Stallman". heise online (in German). Retrieved 16 September 2021.{{cite web}}: CS1 maint :url-status (링크)
  44. ^ Drepper, Ulrich (26 June 2000). "RMS is at it again". sourceware.org. Retrieved 20 November 2015. A few weeks ago RMS started the next attack on me (a single mail, followed by indirect tries to take influence, followed by another mail today). The essence is that he complains I am not following "GNU policies" and therefore have to be replaced by a steering committee of which I could be a part. Some of you (namely Roland and Andreas S.) probably know about this since he proposed both as other members of the committee. In addition there was Mark Brown listed (I know somebody of this name at IBM who would also fit in this group but I'm not sure whether it is really him.) Anyhow, I completely reject this. It is not helping at all, the opposite is true. First, I am not aware of any essential policies I'm violating. The only ones are that I'm not following orders from RMS which clearly have political intends (which is of course a sacrilege) and possibly that I do not care about Winblowz (if the latter counts at all). None of this will change in any way.
  45. ^ Drepper, Ulrich (15 August 2001). "glibc 2.2.4". sourceware.com. Retrieved 29 November 2015. And now for some not so nice things. Stallman recently tried what I would call a hostile takeover of the glibc development. He tried to conspire behind my back and persuade the other main developers to take control so that in the end he is in control and can dictate whatever pleases him. This attempt failed but he kept on pressuring people everywhere and it got really ugly. In the end I agreed to the creation of a so-called "steering committee" (SC).
  46. ^ 2001년 8월 19일 slashdot.com의 rms-syslog-of-syslog-glibc-syslogs.
  47. ^ McGrath, Roland (26 March 2012). "glibc steering committee dissolving". Sourceware.org. Retrieved 13 June 2012.
  48. ^ Myers, Joseph S. (26 March 2012). "GNU C Library development and maintainers". Sourceware.org. Retrieved 13 June 2012.
  49. ^ "The GNU C Library machine maintainers".
  50. ^ Bartley, David; Spang, Michael. "GNU/kOpenSolaris (GNU libc/base + OpenSolaris kernel)". Retrieved 16 December 2008.
  51. ^ "Haiku Source". libroot.so is not part of GNU project and is included in Haiku source code.
  52. ^ Torvalds, Linus (9 January 2002). "Posting to the glibc mailing list".
  53. ^ "OpenMoko components". We will use glibc (not uClibC) ... The alternatives may save more space and be more optimized, but are more likely to give us integration headaches
  54. ^ "Re: [Familiar] Which glibc for Familiar 0.8.4 ?". Question: which version of the GLIBC was used to build the Familiar 0.8.4 ? Answer: 2.3.3

외부 링크