-
[SW 정글 83일차] 효율적으로 보낸 일요일기타/SW 사관학교 정글 2021. 10. 25. 01:18
오늘은 일요일, 한 주간 해보고 싶었다고 생각한 공부, 부족한 부분을 채우는 날로 하루를 보냈다.
잠도 평소보다 1~2시간 더 자면서 쌓인 피로감을 풀어주었다.
10시에 강의실에 도착해서 CS 중 가장 재미를 느낀 네트워크를 점심먹기 전까지 공부했다.
이미 대학교에서 정보통신공학을 전공하면서 접한 내용이지만 웹 통신 프로토콜에서 쓰이는 HTTP, 그리고 조금 더 새로운 시각으로 네트워크를 공부하는 것이 신선하고 재미있다.
공부 자료는 HTTP 완벽 가이드로 공부 중에 있다.
꾸준히 나만의 무기를 만들기 전까지는 아침시간에는 네트워크를 공부할 생각이다.
그리고 점심을 먹고 나서는 NodeJs 공부를 시작했다.
일단은 간단하게 Javascript라는 언어에 대한 친숙함을 쌓고 NodeJs로 웹 서버를 어떻게 설계하는지를 알 수 있는 생활코딩 강의를 정주행했다.
https://opentutorials.org/course/3332
큰 제목은 Node.js이지만 중간중간 Javascript 문법도 알려줘서 따라가기 편했다.
다 들어본 느낌은 처음 Java로 웹 개발을 하면서 접한 Servlet과 JSP로 개발하는 느낌?
개인적으로 java보다 javascript가 더 편한 언어여서 더 이해하기는 쉬웠지만 하나부터 열까지 신경쓰는게 많아서 불편했고 flask처럼 프레임워크가 아니여서 큰 틀이 없기에 자유도가 높아 어느정도 장단점이 존재하는 것같다.아마 Express라는 프레임워크를 쓰면 조금 더 편해질라나?
일단은 재미있는 것같다.
9시까지 node.js공부를 마무리하고 다시 PIntos를 보기 시작했다.
새로운 과제를 구현하기보다는 지금까지 한 project3 구현 코드를 다시보면서 복습을 했다.
다시봐도 어려운 코드, 어셈블리어들이 있지만 그런 부분은 큰 그림을 그려 이해하고 어떠한 정보가 어떻게 흘러가는지 메모리에 어떻게 쌓이고 접근되는지를 봤다.
내일은 Memory Mapped Files 과제를 구현해볼 생각이다.
11시까지 pintos복습을 마무리하고 운영체제라는 CS과목의 개념을 다잡고 싶어 강의를 볼까 책을 볼까 고민을 하다가 새로운 강의가 눈에 띄어 하나를 봤다.
한 블로그에서 설명해준 글귀를 봤을 때 운영체제를 커널관점에서 잘 설명해주는 강의라고해서 뭔가 새로운 것들을 배워볼 수 있는 강의라고 생각했다.
뭐든 강의는 첫 번째 강의는 introduction이기에 첫 느낌만 받을 수 있는데 나는 개인적으로 좋았다.
나는 개인적으로 어떠한 개념이 나왔을 때 등장배경부터 절차적으로 알아가는 것을 좋아하는데 이 강의가 그렇다.
왜 운영체제는 부팅 시에 kernel이라는 개념으로 불릴까? 운영체제에는 kernel말고 무엇이 있을까?
유저 프로그램들의 자원(메모리, disk 등)의 보호를 위해 protection하는 방안으로 kernel mode가 생긴 이유와 어떻게 mode를 변경하게 되는지 등.. 이러한 기본적인 개념이 나를 더 성장할 수 있게 해주는 것 같다.
간단하게 오늘 배운 것을 정리하면 운영체제에는 kernel, utility, shell이 있다.
이렇게 운영체제가 하나의 big 프로그램이 아닌 여러 개로 나뉜 이유는 부팅 시에 너무 큰 프로그램을 메모리에 올릴려면 비용이 들고 시간적으로 오래걸린다. 그래서 꼭 필요한 것들이 담겨있는 kernel을 메모리에 올려놓는 것이다.
shell은 utility 중 하나로 job control(utility들을 관리해줌)을 해주는 것이 역할이다.
그리고 pintos를 공부하면서 kernel이라는 것이 어떠한 프로그램인지는 알겠지만 utility에 대한 개념이 잡히지 않아 찾아보았다.
유틸리티(utility)는 컴퓨터의 동작에 필수적이지는 않지만 컴퓨터를 이용하는 주 목적에 대한 부가적인 일부 특정 작업을 수행하는 소프트웨어를 뜻한다.
일반 사용자에게 이익이 되는 작업을 직접 수행하기 위한 응용 소프트웨어와 달리 컴퓨터 인프라를 지원하는 데 사용된다.
유틸리티의 예시로는 디스크 조각 모음, 화면 보호기, 응용 프로그램 실행기 등이 있다.kernel과 utility의 가장 큰 차이는 kernel은 항상 메모리에 상주하는 것이고 utility는 디스크에 상주하는 것이다.
이렇게 하루를 마무리하고 블로그 글을 정리하고 나니 '오늘의 나는 어땠을까'를 쓸 필요는 없을 것같다.
남은 기간동안 더 열심히 달리자.
'기타 > SW 사관학교 정글' 카테고리의 다른 글
[SW 정글 85일차] Page Replacement Algorithm (0) 2021.10.27 [SW 정글 84일차] Project 3 - Memory Mapped Files (0) 2021.10.26 [SW 정글 82일차] Project 3 - Stack Growth (0) 2021.10.24 [SW 정글 81일차] 오늘 한 일 (0) 2021.10.23 [SW 정글 80일차] Project 3 - Anonymous Page (0) 2021.10.22