https://velog.io/@bdbest72/PintOS-%EA%B0%95%EC%9D%98-2-KAIST-%EA%B6%8C%EC%98%81%EC%A7%84-%EA%B5%90%EC%88%98%EB%8B%98



컴공의 기둥


이론 - 알고리즘, 데이터 스트럭쳐

어떤 데이터 스트럭쳐를 쓰고 생각하는 것은 기본중기본. 이것은 무조건 잘해야한다.

알고리즘은 좀 후순위.

언어 - pl 컴파일 등등 당장은 후순위

시스템 - OS

컴퓨터 아키텍쳐 는 기본적으로 봐야할 수 있음.


추가하자면


보안

hci


데이터 스트럭쳐 공부하려면 코테 도 도움된다.


페이스북 팀 백엔드 , 광고 포지션 제안


돈은 광고에서 나온다.


하지만 백엔드는 서비스를 만드는 팀이다.


보통 4~5년 주기로 이직을 한다.


페이스북은 사이드 보너스를 많이 준다.

구글 x


페이스북 -> 구글 -> 핀테크, 스타트업 -> 다시 it


한국에서는 먼저 삼성을 간다. (기업 문화 를 배운다)


평생 직장을 간다보다는 처음 갔을 때 일을 잘 할 수 있느냐. 이런 것을 기준으로 골라야한다.


카이스트 전산학과 최상위 3명 정도는 1~5등은 유학을 가거나, 한국에서 구글 코리아를 간다.


그다음 랭킹이 네이버. 카카오 두군데 선호


그다음은.

컨설팅 회사를 간다.


중~중상 삼성 간다. 몇몇은 스타트업


memory bugs in systems

60~70% 문제가 iOS macOS 에선 memory safety


안드로이드는 90%가량


c~c++을 대체하는 Rust 위의 문제점을 보안하는 면이 있다.


isolation이 보안의 첫번쨰 중 하나.


Rust가 시스템을 하는 입장에서 관심이 가는 언어다.


운영체제를 배우는 가장 중요한 부분


커널영역과 유저 영역의 경계를 구분할 줄 알아야한다.


java를 쓰는 뭘하든 유저가 어디까지 해야하고 커널이 어디까지 해 줄 수 있는지 이해야한다.


그리고 퍼포먼스가 어느정도 나오는지에대한 이해.


write 와 mmap


mmap도 write와 같은 역할을 할 수 있다.


둘에는 성능 차이가 있다.


write는 user 영역에서 커널 영역으로 copy가 일어난다. 거기서 주어진 파일로 접근.

mmap은 유저영역에서 액세스 하려는 위치로 바로 넘어간다.


이런 식으로 커널에서 무슨 역할을 하고 유저에서 무슨 역할을 하는지 에대해 이해하는 것이 각 api들의 퍼포먼스를 이해 할 수있다.


지난 시간 네가지 추상화


process -> machine

thread -> cpu

virtual memory -> physical mem (DRAM

file -> storage


추상화에서 사용되는 방법 가상에서 물리로 map ping


새로운 하드웨어가 나온다면 또 새로운 추상화가 필요하다.


결국 수많은 개발에서 추상화가 필요하다.



https://www.youtube.com/watch?v=2xaCp07w4CI