목록2024/01/11 (5)
Machineboy空
그동안 Window 기반으로 Visual Studio를 사용하다가 Mac으로 바꾸고 VS Code로 개발 환경 세팅하느라 애를 먹었다. * IDE(Integrated Development and Learning Environment, 통합개발환경) 인텔리센스 등을 활용해 자동완성을 시키기도 하고 텍스트 에디터, 컴파일러, 테스트, 디버거까지 전반적 개발을 진행할 수 있는 소프트웨어 프로그램. Microsoft의 visual studio, vs code Apple의 Xcode, JetBrain의 IntelliJ 등 다양한 IDE가 존재하고 개발 특성에 맞는 IDE를 사용하면 된다. (IDE까진 아니지만 텍스트 에디터 Sublime Text 등) * VM(Virtual Machine) c#을 실행하기 위해서..
포인터를 직접 사용해야 하는 언어들 즉, 메모리 관리를 직접할 수 있는 언어들. 메모리 관리를 가비지 컬렉터(garbage collector)가 아닌 사용자가 직접해주어야 하는 언어. *가비지 컬렉터(garbage collector): 메모리 영역 중 더 이상 쓰이지 않는 영역을 자동으로 찾아내 해제하는 것 C, C++ 등은 가비지 컬렉터가 없고, 개발자가 직접 필요한 메모리를 예약하고 해제. 이에 사용되는 수단 중 하나가 포인터(pointer). 비유하자면 기다란 집게 같은 것. Unmanaged 언어 정도의 low-level 언어들에서 지원된다. C#같은 언어에서도 포인터를 쓰는 방법이 있지만 권장되지 않는 이유 = 메모리 주소에 직접 접근하는 것은 보안상 해킹 위험 등이 발생할 수 있기 때문 메..
필수 개념 1) 커널이란? 2) 운영체제의 서비스 종류? 3) 시스템 콜과 이중 모드란? 운영체제는 현존하는 프로그램 중 가장 규모가 큰 프로그램 중 하나! 규모만 클 뿐 아니라 종류도 다양해서 제공하는 기능이 다양하다. but 가장 핵심적인 서비스는 존재한다. *같은 스마트폰이라도 아이폰과 갤럭시의 기능이 다르듯, 하지만 스마트폰의 핵심적 기능(전화, 와이파이 연결 등)은 존재 * 컴퓨터의 경우, 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능 운영체제의 심장, 커널(kernel) 운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 한다. 거의 운영체제가 곧 커널을 지칭한다고 봐도 된다. 하지만 운영체제에는 속하는데 커널에는 속하지 않는 기능? 유저 인터페..
운영체제 이해하기 위한 개념들 *(시스템 ) 자원(Resource) 프로그램 실행에 있어서 마땅히 필요한 요소들. 컴퓨터의 네 가지 핵심 부품 포함! 모든 프로그램은 실행을 위해 자원을 필요로 한다. *운영체제(OS, operating system) 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 *커널 영역(kernel space) 운영체제 또한 프로그램 따라서 실행되기 위해서는 메모리에 저장되어 있어야 한다. but 실행 프로그램들이 메모리에 적재되는 영역, 운영체제가 메모리에 적재되는 영역은 다르다! 운영체제가 적재되는 곳이 커널 영역 운영체제의 역할 1. 응용 프로그램 (워드 프로세서, 인터넷 브라우저 등)의 주소는 누가 지정해줄까? → 운영체제 새로운..