Posts

Kernel, PTY and TTY

PTY (Pseudo-TTY), TTY (TeleTYpewriter). TTY The term TTY originates from the early days of computing when teletype machines were used as the main way for hci. As technology evolved, the physical teletype machines were replaced with virtual terminals or screens, and TTY is used as interface for text-based communication between a user and the system. TTYs can be hardware-based, like a console, or software-based, commonly known as virtual consoles or terminals (e....

<span title='2023-11-26 10:47:11.631 +0000 UTC'>Nov 26, 2023</span>&nbsp;·&nbsp;Me

Kernel, Process creation

static int init(void * unused) { lock_kernel(); do_basic_setup(); /* * Ok, we have completed the initial bootup, and * we're essentially up and running. Get rid of the * initmem segments and start the user-mode stuff.. */ free_initmem(); unlock_kernel(); if (open("/dev/console", O_RDWR, 0) < 0) printk("Warning: unable to open an initial console.\n"); (void) dup(0); (void) dup(0); /* * We try each of these until one succeeds. * * The Bourne shell can be used instead of init if we are * trying to recover a really broken machine....

<span title='2023-11-26 07:44:51.449 +0000 UTC'>Nov 26, 2023</span>&nbsp;·&nbsp;Me

Kernel, Bootloader

부트로더가 하는 일은 CPU 초기화 IVT 초기화 하드웨어 초기화 및 커널 찾기 (외부 메모리 인터페이스 초기화 및 파일시스템 인식 과정) 커널을 메모리에 올리고 커널 Entry로 점프 인데, 여기서 부트로더가 커널을 메모리에 올릴때 어디에 어떻게 올리냐가 헷갈렸다. 컴파일 된 커널을 보면 relative 주소로 되어 있는데, 부트로더가 커널의 .data랑 .bss를 다른 프로세스처럼 적절한 곳에 따로 두는 걸로 착각했다. 당연히 부트로더 단계에서는 메모리 매핑이나 페이징이 아직 없고, 커널은 메모리에 매핑이 된게 아니라 고정된 주소에 있어야 한다....

<span title='2023-11-22 05:35:09.645 +0000 UTC'>Nov 22, 2023</span>&nbsp;·&nbsp;Me

Kernel, syscalls

sys_fork() .align 2 _sys_fork: call _find_empty_process testl %eax,%eax js 1f push %gs pushl %esi pushl %edi pushl %ebp pushl %eax call _copy_process addl $20,%esp 1: ret FUNCTION find_empty_process() A: IF ++last_pid < 0 last_pid = 1 FOR i : 0 -> NR_TASKS IF task[i] && task[i].pid == last_pid GOTO A FOR i : 1 -> NR_TASKS IF NOT task[i] RETURN i RETURN -1 Set last_pid to 1 or more. From taskid from 0 to max_tasks, if task exists and pid is last_pid then increases pid and again....

<span title='2023-11-11 01:22:30 +0000 UTC'>Nov 11, 2023</span>&nbsp;·&nbsp;Me

Chat with GPT, about Nuclear Fission

I made GPT create a new question about GPT’s response, and repeated it for 10 minutes. This is log for it. Question: What is nuclear fission reactor, and what is breeder reactor? Answer: A nuclear fission reactor is a device used to initiate and control a self-sustained nuclear chain reaction. These reactions are used to generate heat, which is typically used in steam turbines to produce electricity in a nuclear power station....

<span title='2023-10-27 09:10:25 +0000 UTC'>Oct 27, 2023</span>&nbsp;·&nbsp;Me

Toward an Electronically-Mediated Decentralized Society

In the long and evolving tapestry of human civilization, each era has been defined by the tools it has harnessed and the political ideologies it has embraced. From the agrarian societies governed by monarchies to the industrial age’s democratic revolutions, the interplay between technology and governance has constantly shaped the contours of societies. Today, as we stand at the crossroads of an unprecedented digital revolution, it’s imperative to reflect on this intricate relationship once more....

<span title='2023-10-04 21:50:35.465 +0000 UTC'>Oct 4, 2023</span>&nbsp;·&nbsp;Me

VAE의 손실 함수

VAE의 손실 함수는 Variational Lower Bound(VLB)라고도 불리는데, 이 함수는 VAE에서 사용되는 정보량을 측정하는데 사용됩니다. 이 함수는 두 부분으로 나뉘어져 있으며, 이를 분리하여 계산하는 것이 일반적입니다. 이 때, reparametrization trick이란 기법을 사용하면 VAE의 손실 함수의 그래디언트를 계산하는 데 도움이 될 수 있습니다. 먼저, VAE의 손실 함수는 아래와 같이 정의됩니다. $$L = \mathbb{E}{q(z|x)}[\log p(x|z)] - D{KL}(q(z|x)||p(z))$$ 여기서 $p(x|z)$는 인코더의 출력을 디코더의 입력으로 넣었을 때 생성되는 값을 의미하고, $p(z)$는 잠재 변수의 확률 분포를 의미합니다....

<span title='2022-12-15 11:21:46.836 +0000 UTC'>Dec 15, 2022</span>&nbsp;·&nbsp;Me

Spectre Attacks: Exploiting Speculative Execution

The Central Processing Unit (CPU) is a device that plays a major role as the brain of a computer. The CPU controls four main functions: memory, interpretation, computation, and control, which are based on the role of interpreting the commands of a given program to perform operations with data. In CPU, there are the program counter, a command register, an ALU (arithmetic logic unit), a control unit, a bus, and a register....

<span title='2021-10-30 07:19:36 +0000 UTC'>Oct 30, 2021</span>&nbsp;·&nbsp;Me

Ad-Tech와 통계의 쓰임새

CTR(클릭률) Click-through rate)는 특정 링크를 클릭한 사용자의 비율. Z지수는 표준점수로, 통계학적인 정규분포를 만들고 각각의 경우가 표준편차상의 어떤 위치를 차지하는지를 보여주는 차원없는 수치이다. Z-지수는 원수치가 평균에서 얼마나 떨어져 있는지를 나타내는 지수로, $ z = \frac{z - \mu}{\sigma} $로 나타난다. ($\sigma$ 표준편차, $\mu$는 모집단의 평균이다. 중심극한정리란 표본의 크기가 커질수록 표본 평균의 분포는 모집단의 분포 모양과는 관계없이 정규분표에 가까워진다는 정리이다. 점추정은 모집단의 특성을 단일한 값으로 추정하는 방법으로, 표본평균과 표본분산을 이용해 모집단의 평균과 분산을 계산해 내는 방법이 대표적인 예이다....

<span title='2021-10-30 07:10:34 +0000 UTC'>Oct 30, 2021</span>&nbsp;·&nbsp;Me

구글 페이지랭크 알고리즘

구글은 방대한 웹페이지를 자사 데이터베이스에 기록하고 있으며, 이를 토대로 사용자가 검색한 검색결과와 가장 매치되는 페이지를 보여줌으로써 검색엔진의 역할을 할 수 있다. 구글이 이렇게까지 클 수 있었던 이유는 정확한 검색 결과를 보여주는 알고리즘 덕분이다. 그렇다면 이 알고리즘은 무엇일까? 구글이 웹페이지들의 관계를 산출하고 그 수치를 계산해내는 알고리즘인 페이지랭크 알고리즘은 구글의 창시자중 한명인 래리 페이지라는 사람이 석사논문으로 발명한 알고리즘이다. PageRank 알고리즘은 각각의 웹 페이지의 상대적 가중치를 계산하여 각각의 중요도와 연관성을 표현하는 방식을 이용하는데, 이를 이용하여 한 페이지와 가장 연관된 다른 페이지를 Rank를 매겨 정확한 연관성을 보여줄 수 있다....

<span title='2021-10-30 07:07:55 +0000 UTC'>Oct 30, 2021</span>&nbsp;·&nbsp;Me

양자 컴퓨터와 양자 어닐링

양자 컴퓨터와 양자 어닐링 양자 컴퓨터 입문 / 양자 컴퓨팅 발전과 전망 / 1억배 빠른 양자 컴퓨터가 온다 / 스콧 애론슨의 양자 컴퓨터 강의 양자 컴퓨터란 무엇일까? Ø 현대 컴퓨터의 발전 과정 20세기, 컴퓨터(Computer)란 말은 계산하는 사람, Computing Person이라는 뜻으로 사용되었다. 하지만 단순 반복 행동을 굳이 사람이 하지 않아도 되는, 일명 계산기계가 사용될 수 있음이 증명되면서, Computer라는 말은 ‘일정한 규칙ㅇㄹ 가지고 주어진 값을 토대로 계산하는 장치’라는 의미를 가지게 되었다. 현대적인 컴퓨터의 정의를 시작한 사람은 ‘찰스 배비지’이다....

<span title='2021-08-06 10:36:03 +0000 UTC'>Aug 6, 2021</span>&nbsp;·&nbsp;Me

Security of IoT

Security of IoT IoT란? IoT (Internet of Things)란, 독립적으로 존재했던 각종 전자기기 및 사물들이 인터넷으로 엮여 한번에 관리할 수 있게 되거나 상호 정보교환과 데이터 수집을 통해 사용자에게 최상의 서비스를 제공하는 기술을 의미이다. 여기에서 사물이라 함은 전구부터 세탁기, 그리고 신발이나 의류까지 모든 사물을 포함한다. 데이터를 분석하는 과정에서 인공지능을 주로 사용하므로 IoT에는 인공지능 기술이 들어가기도 한다. IoT는 2013년부터 쭉 개발되어 왔으며 집에서 흔히 볼 수 있는 에어컨, 냉장고등 큰 가구들부터 연결되어 왔다. 그 이후 시간이 지나면서 점점 작은 기구들까지 연결되면서, TV, 전자레인지, 오븐부터 커피포트, 선풍기, 전등 뿐 아니라 변기, 샤워기, 거울, 헤어 드라이기까지 연결되어 있지 않은 것이 없을 정도로 발전되어 왔다....

<span title='2021-08-06 10:32:57 +0000 UTC'>Aug 6, 2021</span>&nbsp;·&nbsp;Me

Hardware Security

Hardware Security 신뢰성과 관련된 기술 1. RoT (Root of Trust) Root of Trust, 신뢰점이란, 전자기기 안에서 별도로 존재하는 프로세싱 유닛으로, 메인 프로세서의 보조로서 다양한 암호화 기법이나 솔루션을 제공하거나 이를 제어하기 위한 보안 기능들을 의미한다. RoT가 궁극적으로 달성하고자 하는 것은 TC(Trusted Computing)으로, 신뢰할 수 있는 컴퓨팅, 즉 믿을 만 하고 무결성이 보장되는 계산 및 기능을 이야기한다. 이를 달성하기 위한, RoT에 포함되는 여러가지 기술들이나 알고리즘이 있고, 각 단계들을 순차적으로 달성되어 신뢰할 수 있는 보안적인 프로세스가 진행된다....

<span title='2021-08-06 10:31:09 +0000 UTC'>Aug 6, 2021</span>&nbsp;·&nbsp;Me

CFD with Python (Navier-Stokes Equation)

1-D Linear Convection 1차원 선형 열전도 방정식은 가장 심플하면서도 가장 기초적인 방정식입니다. $$ \frac{\partial u}{\partial t} + c \frac{\partial u}{\partial x} = 0 $$ 이 식을 오일러 방정식으로 변환하여 수치해석적으로 해를 구할 수 있도록 변환을 해줍니다. $$ ui^{n+1} = u_i^n - c \frac{\Delta t}{\Delta x}(u_i^n-u{i-1}^n) $$ 이제 이 오일러 방정식을 파이썬으로 구현해봅니다. import numpy from matplotlib import pyplot import time, sys %matplotlib inline nx = 41 # try changing this number from 41 to 81 and Run All ....

<span title='2021-07-10 08:23:47 +0000 UTC'>Jul 10, 2021</span>&nbsp;·&nbsp;Me

Cryptography

Cryptography 공개키 암호화 알고리즘. 1. Diffie-Hellman 디피-헬먼 키 교환 방식은 암호화 통신을 위한 키를 교환하는 방식 중 하나이다. 두 통신 주체가 공통의 비밀 키를 사용할 수 있도록 하는 안전한 알고리즘이다. 디피-헬먼 방식은 기초적인 암호 통신 방법으로, 이 알고리즘에 RSA나 ECC같은 암호화 알고리즘을 합쳐서 암호화 통신이 성립된다. 공개키는 암호화할 수 있는 키이고, 개인키는 복호화할 수 있는 키이다. 디피-헬먼 키 교환은 공개키 암호화 방식에 기반한다. 공개키 암호화 방식이란, 자신의 공개키를 상대방에게 전송하고, 그 상대방은 그 공개키로 데이터를 암호화해서 전송하면, 자신은 자신의 개인키로 복호화 할 수 있어, 통신이 성립되는 방식이다....

<span title='2021-07-09 10:24:00 +0000 UTC'>Jul 9, 2021</span>&nbsp;·&nbsp;Me

파이썬으로 구현한 뉴턴의 방정식과 적분방정식

우리의 세계에서 물체의 역학적 운동을 지배하는, 지배방정식이 있죠.뉴턴의 법칙, 방정식입니다.뉴턴의 법칙은 총 세개의 방정식이 있죠. 이 세가지 법칙만을 이용해서 물체의 운동을 계산할 수 있습니다.이것을 바탕으로 만들어진 역설이 라플라스의 역설이죠. 만약 모든 분자의 가속도, 속도, 위치 세가지 정보를 알고 있다면, 뉴턴의 법칙에 근거하여 그 다음 상황을 예측할 수 있고, 따라서 이 세상, 아니면 그것을 넘어서서 모든 분자의 정보를 알 수 있습니다.우리가 여기서 분석할 것은 가장 쉬운 법칙, 뉴턴의 제 2법칙, 가속도의 법칙입니다....

<span title='2021-05-21 13:18:27 +0000 UTC'>May 21, 2021</span>&nbsp;·&nbsp;Me