ν¨μ€νΈμΊ νΌμ€ μ΄μ체μ κ°μμ μ½κ² λ°°μ°λ μ΄μ체μ κ΅μ¬μ λν TILμ λλ€.
μμ€ν νΈμΆ(System Call)
μμ€ν
νΈμΆμ 컀λμ΄ μμ μ 보νΈνκΈ° μν΄ λ§λ μΈν°νμ΄μ€λ€. 컀λμ μ»΄ν¨ν° μμμ 보νΈνκΈ° μν΄ μ¬μ©μλ μμ© νλ‘κ·Έλ¨μ΄ μμμ μ§μ μ κ·Όνλ κ²μ μ°¨λ¨νλ€. λ°λΌμ μμ© νλ‘κ·Έλ¨μ΄ μμμ μ΄μ©νλ €λ©΄ μμ€ν
νΈμΆμ΄λΌλ μΈν°νμ΄μ€λ₯Ό μ΄μ©νμ¬ μ κ·Όν΄μΌ νλ€. λ³΄ν΅ μμ€ν
νΈμΆμ μ§μ μ¬μ©ν기보λ€λ, ν΄λΉ μμ€ν
νΈμΆμ μ¬μ©ν΄μ λ§λ κ° μΈμ΄λ³ λΌμ΄λΈλ¬λ¦¬(API)λ₯Ό μ¬μ©νλ€.
μ κ·Έλ¦Όμ CμΈμ΄λ‘ λ§λ μμ© νλ‘κ·Έλ¨μμ μμ€ν
νΈμΆμ μ¬μ©νλ μμ μ΄λ€. μ΄λ, sys_open()μ΄λΌλ μμ€ν
νΈμΆμ μ§μ μ¬μ©νλ κ²μ΄ μλ CμΈμ΄ λΌμ΄λΈλ¬λ¦¬μμ μ κ³΅ν΄ μ£Όλ open()μ μ¬μ©νλ€.
컀λμ μν κ³Ό μ’ λ₯
컀λμ μν
- νλ‘μΈμ€ κ΄λ¦¬: νλ‘μΈμ€μ CPUλ₯Ό λ°°λΆνκ³ μμ μ νμν μ λ° νκ²½ μ 곡
- λ©λͺ¨λ¦¬ κ΄λ¦¬: νλ‘μΈμ€μ μμ 곡κ°μ λ°°μΉνκ³ μ€μ λ©λͺ¨λ¦¬λ³΄λ€ ν° κ°μ곡κ°μ μ 곡
- νμΌ μμ€ν κ΄λ¦¬: λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ κ·Όν μ μλ μΈν°νμ΄μ€ μ 곡
- μ μΆλ ₯ κ΄λ¦¬: νμν μ μΆλ ₯ μλΉμ€ μ 곡
- νλ‘μΈμ€ κ° ν΅μ κ΄λ¦¬: 곡λ μμ μ μν κ° νλ‘μΈμ€ κ° ν΅μ νκ²½ μ 곡
컀λμ ꡬ쑰
λ¨μΌν ꡬ쑰 컀λ: μ΄μ°½κΈ° μ΄μ체μ μ ꡬ쑰λ‘, 컀λμ ν΅μ¬ κΈ°λ₯μ ꡬννλ λͺ¨λμ΄ κ΅¬λΆ μμ΄ νλλ‘ κ΅¬μ±
- λͺ¨λ κ°μ ν΅μ λΉμ©μ΄ μ€μ΄λ€μ΄ ν¨μ¨μ μΈ μ΄μμ΄ κ°λ₯νμ§λ§ λμ μνΈ μμ‘΄μ±κ³Ό κ΄λ ¨λ λ¬Έμ λ€μ΄ λ§μ΄ λ°μ
κ³μΈ΅ν ꡬ쑰 컀λ: λΉμ·ν κΈ°λ₯μ κ°μ§ λͺ¨λμ λ¬Άμ΄μ νλμ κ³μΈ΅μΌλ‘ λ§λ€κ³ κ³μΈ΅ κ°μ ν΅μ μ ν΅ν΄ μ΄μ체μ ꡬν
- μ€λ₯κ° λ°μνμ λ μ 체 컀λμ κ³ μΉλ κ²μ΄ μλλΌ ν΄λΉ κ³μΈ΅λ§ λ°λ‘ μμ ν μ μλ€.
- μλμ° OSλ₯Ό λΉλ‘―ν΄ μ€λλ μ μ΄μ체μ λλΆλΆμ΄ μ΄ κ΅¬μ‘°λ‘ λμ΄ μλ€.
λ§μ΄ν¬λ‘ ꡬ쑰 컀λ: νλ‘μΈμ€ κ΄λ¦¬, λ©λͺ¨λ¦¬ κ΄λ¦¬, νλ‘μΈμ€ κ° ν΅μ κ΄λ¦¬ λ± κΈ°λ³Έμ μΈ λΆλΆμ μ μΈνκ³ λλ¨Έμ§λ μ¬μ©μ μμμ ꡬν
- κ³μΈ΅ν ꡬ쑰 컀λμ κ²½μ° λ€μν νλμ¨μ΄μ μ¬μ©μμ μꡬλ₯Ό μμ©νκΈ° μν΄ λ λ§μ κ³μΈ΅κ³Ό κΈ°λ₯μ μΆκ°ν ννκ° λμλ€. μ΄λ‘ μΈν΄ 컀λμ ν¬κΈ°κ° κ³μ 컀μ§κ³ νμν νλμ¨μ΄μ μ©λλ λμ΄λ¬μΌλ©°, 컀λ μμ€κ° λ°©λν΄μ§μ λ°λΌ μ€λ₯λ₯Ό μ‘κΈ°λ μ΄λ €μμ‘λ€.
- μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ κ°μ₯ κΈ°λ³Έμ μΈ κΈ°λ₯λ€λ§ 컀λ μμμ ꡬννκ³ λλ¨Έμ§λ μ¬μ©μ μμμ ꡬννλ€.
- μ νμ PC μ΄μ체μ μΈ OS Xμ λͺ¨λ°μΌ μ΄μ체μ μΈ iOSκ° ν΄λΉ 컀λ ꡬ쑰λ₯Ό κ°μ§λ€.
π‘ μ¬μ©μ μμ? μ¬μ©μ λͺ¨λ? 컀λ μμ? 컀λ λͺ¨λ?
컀λ μμκ³Ό μ¬μ©μ μμ
- 컀λ μμμ΄λ 컀λμ΄ μμ νλ μμμΌλ‘ CPU μμ μ€μΌμ€μ΄λ νλμ¨μ΄λ₯Ό μ μ΄νλ λλ°μ΄μ€ λλΌμ΄λ²μ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ κΈ°λ₯λ€μ μννλ€.
- μ¬μ©μ μμμ μΌλ° νλ‘κ·Έλ¨μ΄ μ€νλλ μμμ΄λ€. 컀λμ΄ μμ ν΄μΌνλ μΌμ μμ²νκΈ° μν΄μλ μμ€ν νΈμΆμ μ¬μ©ν΄μΌ νλ€.
CPU Protection Rings
CPUλ κΆν λͺ¨λλΌλ κ²μ κ°μ§κ³ μλ€.
- μ¬μ©μ λͺ¨λ: μ¬μ©μ μμμ μμ© νλ‘κ·Έλ¨μ΄ μ¬μ©νλ λͺ¨λμ΄λ€.
- 컀λ λͺ¨λ: 컀λ μμμ OSκ° μ¬μ©νλ λͺ¨λμ΄λ€. νΉκΆ λͺ λ Ήμ΄ μ€νκ³Ό μνλ μμ μνμ μν μμ μ κ·Όμ κ°λ₯μΌ νλ€.
μ κ°λ
λ€μ κ΄μ μΌλ‘ λ³Έ μμ© νλ‘κ·Έλ¨μ΄ μ€νλλ κ³Όμ μ λ€μκ³Ό κ°λ€.
1. μ¬μ©μ λͺ¨λμμ μμ© νλ‘κ·Έλ¨μ΄ μ€νλλ€.
2. μ΄μ체μ κΈ°λ₯μ΄ νμν APIλ₯Ό νΈμΆνλ€.
3. ν΄λΉ APIμμ μ‘΄μ¬νλ μμ€ν μ½ ν¨μκ° νΈμΆλμ΄μ 컀λ λͺ¨λλ‘ λ³κ²½λλ€.
4. 컀λ μμμ OS λ΄λΆμμ ν΄λΉ λͺ λ Ήμ΄ μ€νλλ€.
5. μ€νμ΄ μλ£λμμΌλ©΄ λ€μ μ¬μ©μ λͺ¨λλ‘ μ νλκ³ API νΈμΆ μ΄νμ μμ μ κ³μν΄μ μ€ννλ€.
'CS > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ΄μ체μ ] μ€λ λ (0) | 2023.04.14 |
---|---|
[μ΄μ체μ ] νλ‘μΈμ€ (0) | 2023.04.13 |
[μ΄μ체μ ] μ»΄ν¨ν°μ ꡬ쑰μ μ±λ₯ ν₯μ (0) | 2023.04.12 |
[μ΄μ체μ ] μ΄μ체μ μ μμ¬ (0) | 2023.04.09 |
[μ΄μ체μ ] μ΄μ체μ λ? (0) | 2023.04.08 |
λκΈ