부팅과 현대 운영체제의 이해

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

11. 부팅과 현대 운영체제의 이해

Boot

  • 컴퓨터를 켜서 동작시키는 절차
  • Boot 프로그램
    • 운영체제 커널을 Storage에서 특정 주소의 물리 메모리로 복사하고 커널의 처음 실행위치로 PC를 가져다 놓는 프로그램

부팅 과정

  • 컴퓨터를 키면
    • BIOS가 특정 Storage 읽어와 bootstrap loader를 메모리에 올리고 실행함
    • bootstrap loader 프로그램이 있는 곳을 찾아서 실행시킴

실제 운영체제의 이해

  • 리눅스 운영체제
    • 리눅스 커널(운영체제) + 시스템 프로그램(쉘) + 응용 프로그램

쉘 종류

  • 쉘(shell): 사용자와 컴퓨터 하드웨어 또는 운영체제간 인터페이스

    • 사용자의 명령을 해석해서, 커널에 명령을 요청해주는 역할
    • 관련된 시스템콜을 사용해서 프로그래밍이 작성되어 있다.
  • 쉘 종류

    • Bourne-Again Shell (bash) : GNU 프로젝트의 일환으로 개발됨, 리눅스 거의 디폴트임
    • Bourne Shell (sh)
    • C Shell (csh)
    • Korn Shell (ksh) : 유닉스에서 가장 많이 사용됨

안드로이드 스마트폰 (Android)

  • Linux Kernel + (Shell + Some basic programs) + Andorid Framework

실제 운영체제의 이해

  • process management
    • 응용 프로그램은 여러개의 process로 관리됨
    • process scheduler
      • process 실행, 종료 관리
      • 인터럽트 처리 관리

실제 운영체제의 이해

  • memory management

    • 가상 메모리
      • page 기반 메모리 관리
  • IO device management

    • VFS(Virtual File Syste)
    • file, Device drivers, Network 관리

실제 운영체제의 이해

  • 시스템 프로그램
    • 핵심은 쉘
      • bash (Bourne-again shell)
      • 내부는 시스템콜을 호출하도록 구현
    • 각 프로그래밍 언어
      • 필요시 해당 운영체제의 시스템콜 호출

가볍게 이해하기: IoT

  • IoT: 사물인터넷(Internet of Things)
    • 각종 사물에 센서와 통신 기능을 내장하여 인터넷에 연결하는 기술

IoT 예 (스마트 온도계)

무게 : 7.5g 통신 : 블루투스 LE 스피커 : 피에조 배터리 : CR2032 (약 6개월 사용 가능) 측정온도 : -20도씨에서 60도씨까지, 0.1도 단위 측정범위 : 약 60m 앱 지원 : iOS / 안드로이드 값 : $29 물어 볼 곳 : https://sen.se/store/thermopeanut/ 출처: http://www.iotdanawa.com/archives/8919


IoT 하드웨어 예

출처: http://linuxgizmos.com/files/rpi_pi3_detail.jpg


IoT와 운영체제

출처: https://www.slideshare.net/snecute/tinyos