Home
david61song
Cancel

Union

Intro union 키워드 (공용체)를 C에서 크게 쓸 일이 없었는데, 이번에 linux kernel을 주로 공부하면서 자주 등장해서 이번 기회에 정리하고자 한다. union을 이용하면 메모리 공간을 조금 더 효율적으로 쓸 수 있는데, linux kernel을 공부하기 전까지는 겨우 몇 바이트가 중요한지 잘 이해가 가지 않았다. 하지만, 페이징...

KAISER-hiding the kernel from userspace

유저스페이스, 커널스페이스에 대해 더 알아보다가 lwn.net의 글을 발견해 번역해 두었다. 아직 Meltdown이 세상에 알려지기 전에 쓰여진 글인거 같은데, (2017년 11월 15일에 원문이 작성되었다.) 글에 나온 논문과 다른 자료를 더 조사해야 하겠지만, 일단 좋은 글인거 같아서 번역해 두었다. 원문은 https://lwn.net/Articl...

Kernel Labs - Some Terminology

이 게시글은 다음 페이지, 리눅스 커널 학습 lab의 일부를 번역한 것을 기초로 작성되었다. https://linux-kernel-labs.github.io/refs/heads/master/lectures/intro.html 이에 덧붙여, 추가적인 개념 및 설명과 레퍼런스를 조금 추가하였다. Goals 기본 운영체제 용어 및 개념 학습 ...

Intel basic execution environment

더욱 자세한 내용은 Intel® 64 and IA-32 Architectures Software Developer Manuals 를 참조해라. x86-64 프로세서의 운영 모드 요약 x86-64 프로세서에는 다섯 가지 주요 운영 모드가 있다. 이 모드는 리얼 모드, 보호 모드, IA-32e 모드, 시스템 관리 모드, 가상 8086 모드로 구분된다....

malloc lab - intro

Malloc lab의 목적 malloc() 함수, malloc 과 관련된 라이브러리를 직접 구현하는 것이다. 즉, Dynamic memory allocator를 직접 구현하는 프로젝트이다. 자세한 문서는 CSAPP malloc lab pdf로 검색하여 확인해 볼 수 있다. 본 문서에서는 x86-64 시스템에서 동작하는 할당기를 구현할 계획이다. S...

pintos project-2-userprogram guide translated

공식 gitbook 문서를 어느 정도 번역하고 있다. https://casys-kaist.github.io/pintos-kaist/project2/system_call.html 프로젝트 2: User program 이제 pintos에 대해 충분히 코드를 작성하였고, pintos의 구조와 스레드에 익숙해졌을 것이다. 이제, pintos 시스템에서 ...

Linked list - basics

Linked List? 연결 리스트(linked list)란 데이터의 집합을 저장하기 위해 사용되는 데이터 구조이다. 다음의 속성을 가지게 된다. 포인터로 연결된다. 마지막 항목은 NULL을 포인팅한다. 필요한 만큼 길어질 수 있다. (시스템의 메모리가 허용하는 만큼) 동적인 크기를 가진다. (실행하는 동안 크기가 커지거나, 작아질...

Pintos project-2-system call implementations

files to modify threads/thread.* userprog/syscall.* userprog/process.* System Call 운영체제가 제공하는 일종의 서비스, API를 구현하는 것이다. 유저 프로그램 (Not kernel)이 Kernel의 기능을 사용할 수 있도록 해야 한다. 유저가 특수 권한이 필요한 기능을 요청할 경우...

Vector space - intro

벡터공간의 정의 체 $F$ 에서의 벡터공간은 다음 8가지 조건을 만족하는 두 연산, 합과 스칼라 곱을 가지는 집합이다. 체 : 대수적 구조의 하나로, 간단히 말해  사칙연산을 집합 안에서 소화할 수 있는 집합을 의미한다. 합 -> 벡터공간 $V$의 두 원소, $x,y$에 대해 유일한 원소 $x + y \in V$ 를 대...

Pintos project-1-context switch

Context switch Pintos에서 context switch가 어떻게 일어나는지 확인해 보도록 하자. 반드시 모든 과제를 수행하기 전에 이 문서를 읽는 것을 추천한다. Process struct Pintos에서 프로세스를 나타내는 구조체는 include/thread/thread.h에 정의되어 있다. Pintos는 process와...

Pintos project-start

What is pintos project? Pintos 프로젝트는 미국 Standford 대학교에서 시작된 교육용 운영체제 실습 프로젝트이다. 같이 참고하면 좋은 책들 Google에 OSTEP으로 검색하여 (Operating system: Three Easy Pieces, 운영체제 : 아주 쉬운 세가지 이야기) 이 책을 참고하며 프로젝트를 진행하...

Pintos project-2-userprog-argument passing

#TODO 가장 먼저, Arguments passing을 구현해야 한다. 그 전에, 다음 문서를 읽어 보도록 하자. Arguments passing Argument Passing Setup the argument for user program in process_exec() x86-64 Calling Convention This section ...

CSAPP Part 2 - 1

CSAPP Chapter 2 CSAPP의 앞 부분, Chapter 1은 다른 책에서도 훌륭히 공부할 수 있고, 크게 어려운 내용이라기 보다는 컴퓨터과학도라면 마땅히 알아야 할 내용이 대부분이기에, 이 부분에 대해서는 작성하지 않으려 한다.

Operating System: virtualization

Virtualization Virtualization of resources: Making those who share resources feel that they have independent resources. Assume there is one physical CPU in a system. What virtualization does i...