dev-writeup-2024 / march

개발 1일 1글 스터디
2 stars 0 forks source link

[03-04] 운영체제 1편 - [What is OS?] #2

Open Kjm04175 opened 4 months ago

Kjm04175 commented 4 months ago

서론

잡설

안녕하세요. 1월 글쓰기 이후 1개월 만의 글쓰기네요. 지난번 글쓰기에서는 네트워크 + 알고리즘 위주의 주제를 선정했었는데, 이번에는 운영체제에 대해 글을 써보려 합니다. 운영체제와 네트워크는 짝꿍으로 항상 함께 등장하니까요...

하지만, 네트워크 대비 드립의 농도가 낮을 예정입니다. 기억 나는 것이 거의 없어서 응용이 불가능하기 때문이죠! 그리고 빈고도 한 시즌 해 먹었으니 다른 친구를 찾아보려 합니다.

즉, 오늘의 글은 빈고와의 송별식이 될 확률이 높습니다.

image [지금까지의 헌신에 감사합니다...]

앞으로의 진행 방향성

본디 운영체제 지식을 널리 섭렵했던 저였지만, 2018년 초부터 2019년까지 불의의 사고로 인해 1년 8개월 간 혼수 상태에 빠진 적이 있었습니다. 그 시기 동안 많은 지식을 잃어버렸더군요.

때문에 운영체제의 기초부터 천천히 살펴보고 보편적인 커리큘럼에 맞춰 운영체제를 다룰 예정입니다.

오늘은 What is OS 부터 시작해서, 앞으로 다룰 내용을 슬쩍 살펴보도록 하겠습니다.

void main()

운영체제란 무엇인가?

컴퓨터와 24시간 함께하는 저희에게 운영체제는 친근한 존재입니다. 저희가 업무를 보는 노트북과 데스크톱은 윈도우나 리눅스가 설치되어 있고, 밤 늦게 까지 유튜브 머신으로 활약하는 스마트폰에는 안드로이드가 깔려있죠.

운영체제는 사용자가 장치를 이용할 수 있도록 인터페이스를 제공하고, 자원을 적절히 분배하는 역할을 수행합니다.

좀 더 알기 쉽게 말하자면, 전자 장치를 이용하기 위해 필요한 로우 레벨의 작업을 대신 처리해주는 장치라고 볼 수 있습니다.

image

옛날에 유튜브에서 이런 게임이 올라온 적이 있었습니다. 숨 쉬는 것 부터 눈 깜빡이는 것 하나까지 컨트롤을 해 줘야 하는 게임이었는데, 만약 사람에게 내재된 native 운영체제가 없었다면 이런 힘겨운 조작이 필요했을 겁니다.

운영체제는 아래와 같은 기능을 수행합니다!

각 기능 별로 살펴봅시다.

자원 관리

컴퓨터에는 많은 자원이 존재합니다. SSD나 HDD같은 보조 기억 장치, RAM 같은 주 기억 장치부터 해서 실질적인 연산을 수행하는 CPU, GPU 내부에 존재하는 VRAM 모두가 컴퓨터 자원의 일종이죠.

예시를 하나 들어봅시다.

image 취준생인 철수는 하루에 많은 일을 해야 합니다. 자소서 작성, 코딩 테스트 준비, 개인 프로젝트. 일상 생활에 필요한 이것저것 등등... 하지만, ADHD인 철수는 하루에 3시간 이상 풀 집중을 할 수 없습니다. 풀집중 이후의 일은 효율이 급감합니다. 개백수로 삶을 마무리할 수는 없는 법! 철수는 해야 할 일의 우선순위를 메기고 일을 완수하려 합니다! 이를 위해서는 시간과 집중력이라는 자원을 적절히 고려하고 분배하는 것이 필요하겠죠.

이 예시에서 자원을 분배해주는 역할을 운영체제가 수행하고 있다고 볼 수 있습니다! 만약 운영체제가 이를 수행해주지 않았다면, 저희는 human handcraft metod를 통해 agile한 자원 분배를 하고 있었을지도 모릅니다.

자원 보호

자원을 분배해주는 것에 이어 자원을 보호하는 것 역시 운영체제의 역할입니다. 대표적으로는 파일에 대한 권한 부여가 있습니다.

image

개인 PC의 경우 권한의 소중함이 와 닿지 않을 수도 있습니다. 어차피 본인이 관리자이자 사용자이자 etc...이니까요. 하지만, 사용자 간 공유 자원이 있는 경우 느낌이 달라집니다.

공용 파일을 일개 사용자가 쓱싹 해버린다면, 공동체에게 파멸이 찾아올지도 모릅니다.

인터페이스 제공

리눅스 cmd 만으로 살아가기 1주일 vs 카페인 1주일 끊기

세기의 대결입니다. 개발자의 빨강 포션과 같은 카페인 1주일 만큼이나 중요한 GUI를 제공하는 것 역시 운영체제입니다.

사실, cmd도 인터페이스의 일종입니다. '리눅스 cmd 만으로 살아가기 1주일' 은 인터페이스의 중요함을 소개하기 위한 현 상황에 완벽한 비유는 아니지만, 인터페이스 없이 1주일 살아가기의 경우는 가지만 먹고 1주일 살아가기 급의 검열 불가 비교 군이 요구되기에 눈물을 머금고 다운그레이드하여 글을 작성하였습니다.

Conclusion

작성 중이라는 마크를 달아 놓고, 저는 그대로 잠들어버렸습니다. 그러다보니 글이 참으로 사두구미로 빈약하게 끝 맺음 하게 되었습니다... 오늘부터는 분골쇄신하여 사두사미 레벨로 끝낼 수 있도록 노력하겠습니다.

참고

https://m.blog.naver.com/ksil_/221428992856 운영체제란?

mingnuj commented 4 months ago

작성중이 사라져서 다시 왔는데 그대로 끝이었군요.. 꿀잠이면 된거 아니겠습니까 ^^b

snaag commented 4 months ago

ㅋㅋㅋㅋㅋㅋㅋ 빈고가없어도 충분히 재밌네요 ㅋㅋㅋㅋㅋ