[CS, TIL] 230925 POSIX κ°€ λ­˜κΉŒμš”?

CountryGirlΒ·2023λ…„ 9μ›” 25일
0

TIL

λͺ©λ‘ 보기
73/80

🌐 POSIX (Portable Operating System Interface)

POSIX의 XλŠ” μœ λ‹‰μŠ€ ν˜Έν™˜ μš΄μ˜μ²΄μ œμ— 보톡 Xκ°€ λΆ™λŠ” κ²ƒμ—μ„œ 유래

: 이식 κ°€λŠ₯ 운영 체제 μΈν„°νŽ˜μ΄μŠ€
: UNIX OS의 곡톡 APIλ₯Ό 정리해 이식성이 높은 μœ λ‹‰μŠ€ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ IEEEκ°€ μ±…μ •ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μΈν„°νŽ˜μ΄μŠ€ 규격


λŒ€μ²΄ 이게 λ¬΄μŠ¨λ§μ΄μ•Ό.........

λ‹€λ₯Έ μš΄μ˜μ²΄μ œμ™€ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜λŠ”λ° 도움을 μ£ΌλŠ” μΌμ’…μ˜ ν‘œμ€€

[λ‚΄κ°€ μ΄ν•΄ν•˜κΈ° μœ„ν•œ μ˜ˆμ‹œ]
μš΄μ „λ©΄ν—ˆλ₯Ό 가진 μ‚¬λžŒμ΄ 여행을 λ– λ‚˜λŠ”λ° μžλ™μ°¨λ₯Ό λΉŒλ €μ„œ 여행을 κ°ˆκ±°μ•Ό.
이 μ‚¬λžŒμ΄ μ–΄λ–€ μžλ™μ°¨ 렌트 νšŒμ‚¬μ—μ„œ 아무 μžλ™μ°¨λ₯Ό λ ŒνŠΈν•΄λ„ μš΄μ „μ„ ν•  수 μžˆμ–΄.
μžλ™μ°¨μ— 기름이 μ—†μœΌλ©΄ 아무 μ£Όμœ μ†Œκ°€μ„œ 기름을 넣을 수 μžˆμ–΄.
이건 μš΄μ „λ©΄ν—ˆμ™€ 기름(μ—°λ£Œ)이 ν‘œμ€€ν™”λ˜μ–΄ 있기 λ•Œλ¬Έμ΄μ•Ό.

➑️ μ—°λ£Œκ°€ ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜κ³  μš΄μ „λ©΄ν—ˆλ„ μ—¬λŸ¬ μžλ™μ°¨μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” ꡭ제적인 ν‘œμ€€μ΄λ‹ˆκΉŒ!

POSIX 도 λ‹€μ–‘ν•œ 운영체제 (예: λ¦¬λˆ…μŠ€, macOS, μœ λ‹‰μŠ€ λ“±)μ—μ„œ λ™μΌν•œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜ λ‹€λ₯Έ 운영 체제 간에 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ΄λ™μ‹œν‚€κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ꡭ제적인 ν‘œμ€€μΈ 것이닀!!



πŸ€” POSIXκ°€ μ™œ μ€‘μš”ν• κΉŒ?

1. 이식성 (Portability)

: μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ„œλ‘œ λ‹€λ₯Έ 운영 μ²΄μ œμ—μ„œλ„ λ™μž‘ν•  수 있게 ν•˜λŠ” λŠ₯λ ₯

  • λ‹€μ–‘ν•œ 운영 체제 κ°„μ˜ 이식성을 κ°•ν™”

    POSIX μ€€μˆ˜ ν”„λ‘œκ·Έλž¨μ€ λ‹€μ–‘ν•œ 운영 μ²΄μ œμ—μ„œ 싀행될 수 μžˆμ–΄ κ°œλ°œμžλ“€μ΄ μ½”λ“œλ₯Ό μž¬μƒν•˜κ³  μ—¬λŸ¬ ν”Œλž«νΌμ— λŒ€ν•œ κ°œλ°œμ„ λ‹¨μˆœν™”ν•˜λŠ” 데 도움이 λœλ‹€!

2. μƒν˜Έ μš΄μš©μ„± (Interoperability)

λ‹€μ–‘ν•œ μœ λ‹‰μŠ€ 기반 및 μœ λ‹‰μŠ€μ™€ μœ μ‚¬ν•œ 운영 μ²΄μ œμ—μ„œ μ‚¬μš©λ˜λ―€λ‘œ, λ‹€λ₯Έ 운영 체제 κ°„μ˜ μƒν˜Έ μš΄μš©μ„±μ„ 지원
➑️ μ„œλ‘œ λ‹€λ₯Έ 운영 μ²΄μ œμ—μ„œ μž‘λ™ν•˜λŠ” λ‹€μ–‘ν•œ μ†Œν”„νŠΈμ›¨μ–΄ 및 μ‹œμŠ€ν…œ ꡬ성 μš”μ†Œ μ‚¬μ΄μ˜ 톡합을 μš©μ΄ν•˜κ²Œ ν•œλ‹€!

3. ꡭ제적 ν‘œμ€€ (International Standard)

  • ꡭ제적으둜 μΈμ •λ˜λŠ” ν‘œμ€€
  • λ‹€μ–‘ν•œ ꡭ가와 κΈ°κ΄€μ—μ„œ μΈμ •ν•˜κ³  μ€€μˆ˜ν•˜λŠ” ν‘œμ€€

4. νš¨μœ¨μ„±κ³Ό μ„±λŠ₯

  • 운영 μ²΄μ œμ™€ μ‘μš© ν”„λ‘œκ·Έλž¨ κ°„μ˜ 효율적인 μƒν˜Έ μž‘μš©μ„ 지원
  • μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€λ₯Ό 효율적으둜 ν™œμš©
    ➑️ 운영 체제 및 μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 κΈ°μ—¬

5. μ†Œν”„νŠΈμ›¨μ–΄ 개발의 νŽΈλ¦¬μ„±

  • 이식성을 가진 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κ³  μœ μ§€ν•˜λŠ”λ° μžˆμ–΄ νŽΈμ˜μ„±μ„ 제곡
  • μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ‹¨μˆœν™”
  • κ°œλ°œμžλ“€ κ°„μ˜ ν˜‘μ—… 용이

6. 자유 & μ˜€ν”ˆ μ†ŒμŠ€ μƒνƒœκ³„

λ§Žμ€ μ˜€ν”ˆ 자유, μ˜€ν”ˆ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ νŠΈλŠ” 이식성 및 μƒν˜Έ μš΄μš©μ„±μ„ 보μž₯
μ΄λŸ¬ν•œ 이유둜 μ†Œν”„νŠΈμ›¨μ–΄ 개발 및 μ‹œμŠ€ν…œ 톡합에 μ€‘μš”ν•œ 역할을 ν•œλ‹€κ³  ν•œλ‹€!



βš™οΈ ν‘œμ€€ 슀트림과 νŒŒμ΄ν”„λ₯Ό ν†΅ν•œ ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신

😎 ν‘œμ€€ 슀트림

ν‘œμ€€ μž…λ ₯ 슀트림 (stdin)

ν‚€λ³΄λ“œλŠ” λ˜λŠ” λ‹€λ₯Έ μž…λ ₯ μ†ŒμŠ€λ‘œλΆ€ν„° ν”„λ‘œμ„ΈμŠ€λ‘œ 데이터λ₯Ό μ½λŠ” 데 μ‚¬μš©

ν‘œμ€€ 좜λ ₯ 슀트림 (stdout)

ν”„λ‘œμ„ΈμŠ€κ°€ κ²°κ³Όλ₯Ό 화면에 좜λ ₯ν•˜κ±°λ‚˜ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‘œ 좜λ ₯ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” 데 μ‚¬μš©

ν‘œμ€€ 였λ₯˜ 슀트림 (stderr)

ν”„λ‘œμ„ΈμŠ€κ°€ 였λ₯˜ 및 κ²½κ³  λ©”μ‹œμ§€λ₯Ό 화면에 좜λ ₯ν•˜κ±°λ‚˜ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‘œ 였λ₯˜ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” 데 μ‚¬μš©


😎 νŒŒμ΄ν”„ (Pipe)

λ‚΄κ°€ μ“΄ ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신 쀑 Pipe

두 개의 ν”„λ‘œμ„ΈμŠ€ 간에 데이터 흐름을 μ„€μ •ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” IPC(Inter-Process Communication) λ§€μ»€λ‹ˆμ¦˜ 쀑 ν•˜λ‚˜

일반적으둜 ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±ν•œ 데이터λ₯Ό λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λ‘œ μ „λ‹¬ν•˜κ³  ν†΅μ‹ ν•˜λŠ” 데 ν™œμš©

읡λͺ… νŒŒμ΄ν”„ (Anonymous Pipe)

단방ν–₯ 톡신을 μœ„ν•œ νŒŒμ΄ν”„λ‘œ λ°μ΄ν„°λŠ” ν•œ λ°©ν–₯으둜만 흐λ₯Έλ‹€.

  • 두 ν”„λ‘œμ„ΈμŠ€ 간에 데이터λ₯Ό μ „μ†‘ν•˜κΈ° μœ„ν•΄μ„  두 개의 νŒŒμ΄ν”„κ°€ ν•„μš”
  • 보톡 λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€ μžμ‹ ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ 톡신에 μ‚¬μš©

λͺ…λͺ… νŒŒμ΄ν”„ (Named Pipe OR FIFO - First In, First Out)

파일 μ‹œμŠ€ν…œμ— μ €μž₯λ˜λ―€λ‘œ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€ 간에 데이터λ₯Ό μ£Όκ³  받을 수 μžˆλ‹€.



βœ… REFERENCE

Wikeipedia : POSIX
0612 TV w/ NERDfirst : λ¦¬λˆ…μŠ€λž€? μœ λ‹‰μŠ€? POSIX?
ν™μ°¨μ£Όλ„κ°œλ°œ : POSIXλž€?

profile
πŸ’»πŸŒΎμ‹œκ³¨μ†Œλ…€μ˜ 엉망징창 개발 μ„±μž₯μΌμ§€πŸŒΎπŸ’» (2023.05.23 ~)

0개의 λŒ“κΈ€