전체 글
-
리눅스 커널 분석을 위한 vim, ctag, cscope, tagbar 세팅공부 2018. 2. 20. 00:12
리눅스 커널 분석을 위한 vim, ctag, cscope, tagbar 세팅 지난 주말 커널 분석 수업을 들으면서 언젠간 해봐야지 마음먹었을 때 알아두면 편할것 같아서 정리.나는 원래 vim을 주 에디터로 쓰고 firefox에도 vim key binding을 해놓는 사람이라... 리눅스 커널을 분석하려면 결국 리눅스환경에서 작업해야하는데 vim 커스터마이징을 안하는 사람들을 위한 글 + 알게된 팁들 정리용이다. 작업 환경 내가 작업을 진행한 환경은 Ubuntu 16.04, vim 8.0 을 이용했고 분석한 커널버전은 4.14.x대이다.리눅스 커널 소스코드는 www.kernel.org에서 다운 받을 수 있다. # jen6 at localhost.localdomain in ~/tmp [12:22:32] → ..
-
스프링의 위치와 속도 구하기공부/프로그래밍 2017. 6. 11. 15:39
import numpy as np import math g = 9.81 N = 1000 tau = 20.0 dt = tau/float(N-1) SHOstate[0] : 늘어난거리, 위치 state[1] : 속도dv_dt 유도식 F = -mg -kx (탄성력) F = ma (뉴턴 제2법칙 가속도법칙) ma = -mg -kx a = -g -(kx/m) x(늘어난 거리)를 이용해서 가속도를 구해주는 것euler 함수에 들어갈 [속도, 가속도]를 구해준다def SHO(state, time): dx_dt = state[1] dv_dt = -k/m * state[0] - g return np.array([dx_dt, dv_dt]) euler1차 일반 미분 방정식의 해를 근사시켜준다… 결국 Yn+1을 Yn을 이용해서..
-
몬테카를로법으로 원주율 근사값 구하기공부/프로그래밍 2017. 6. 11. 15:31
from random import random, seed from math import sqrt Monte Carlo Method난수를 이용해 함수의 값을 확률적으로 계산하는 알고리즘 참고 url 몬테카를로 법을 이용해 pi의 근사값을 구해보자 반지름이 1인 원이 있다고 생각하자 ( $x^2 + y^2 = 1$ )이제 그 원안에 점들을 찍는다. 이때 난수가 사용된다. (점의 좌표 범위 : $ 0 \leq x \leq 1 , 0 \leq y \leq 1 $ )random 함수의 값은 float으로 0~1 사이의 값이 리턴된다. 원의 넓이는 $\pi r^2$이고 정사각형의 넓이는 $4r^2$이다. 따라서 원의 넓이를 정사각형의 넓이로 나누게 되면 $\frac{\pi}{4}$가 된다. 3번에서 구한 값에 4배..
-
CPPCon 2016 The strange details of std::string at Facebook공부/c++ 2017. 3. 28. 09:19
CPPCon 2016 The strange details of std::string at Facebook 동영상 링크 ppt링크뭐가 제일 페이스북에 효율적인지string은 제일 중요한 요소중 하나 cpu전체의 18%가 std안에서 쓰임string을 간단하게 만드는 것 gcc string(v empty string but empty string is no empty malloc을 해서 매 번 overhead를 감수하고 할껀가? gcc는 매번 25byte arry를 가지고 있음 So empty is not emptyQ:왜 empty가 없는건데..
-
binary 관련 간단한 정리공부/프로그래밍 2017. 3. 9. 21:46
binary 관련 간단한 정리 정수표현 정수타입에서 대부분 최상위 비트(Most Siginificant Bit)가 음수인지 정수인지를 구분한다는 것은 알고있을 것 이다. 나도 그냥 그렇게만 알고 음수표현은 양수에서 최상위 비트만 반전되는줄 알고 있었다. (하지만 그게 아니다..) 그러다 학교에서 친구가 파이썬에서 ‘~’ 가 뭐냐고 물어봐서 not이라고 대답해 주다가 이상한 부분을 발견했다. 0b101 을 not연산을 하게 되면 -0b110이 나오는 이상한 일이 일어난거다. 5 : 0b0101 !5 : 0b1010 내 생각으로는 최상위 비트가 1이고 나머지가 정수라면 -2가 되야한다고 생각했지만 음의 정수는 그렇게 표현하지 않는다. source code 0을 0b0000으로 두고 -1부터는 0b000에서 ..
-
디스크 정리를 이용해서 Windows10의 UAC Bypass 하기공부 2016. 7. 29. 01:37
원문(bypassing-uac-on-windows-10-using-disk-cleanup)은 다음과 같은 글 입니다. 내용이 재미있다고 판단되어 번역해봤습니다. 의역 오역이 있을 수도 있으니 너그럽게 봐주세요.위 글은 원 저자에게 허락을 받고 번역한 글입니다.Thanks to @enigma0x3Matter Graeber과 나는 최근 WIndows10을 파보면서 User Account Control을 bypass할 수 있는 재미있는 방법을 찾았습니다.(UAC에 대해 잘 모른다면 이 글을 읽어보시면 됩니다.)요즘에는 UAC bypass 기술들이 여러가지 있는데, 대부분의 기술들은 DLL hijack을 하기 위해 IFileOperation COM object 또는 WUSA extraction을 이용하여 권한있..
-
Computation Structures 1: Digital Circuits공부 2016. 1. 29. 11:45
데이터를 저장하는데 필요한 비트수를 어떻게 표현할 수 있을까? 어떤 확률을 컴퓨터에 저장하기 위한 비트로 표현하기 위한 비트수는 Claude Shannon이라는 사람이 1948년에 다음과 같이 정의했다. $I(x) = log_2(\frac{1}{P_x})$ 이 확률을 만들기 위해 몇비트가 필요한지를 나타내는 것이라 $log_2$가 사용되었다. 예를들어 $P(x)$가 카드에서 어떤걸 뽑는 확률이라고 해보자. 조건은 하트라는 점이다. 그러면 확률 $P(x)$는 $\frac{13}{52}$ 가 된다. 그러면 아까 식에 대입해 보면 $I(x) = log_2(\frac{52}{13}) = 2bits$ 가 나오게 된다. data $P_x$ $log_2(\frac{1}{P_x})$ 하트이다 $\frac{13}{52}..
-
마이크로소프트의 ChakraCore과 node js공부/오픈소스 분석 2016. 1. 19. 01:09
최근 마이크로소프트에서 새로운 브라우저 Edge의 자바스크립트 엔진인 ChakraCore의 엔진을 공개했는데 공개한 이유가 좀 재미있다. 보통 node js를 돌릴 때 크롬의 v8엔진을 사용하는데 마소가 Chakra를 오픈소스로 공개하고 Chakra를 이용해서 nodejs를 돌리게 해서 edge와 uwp를 이용해서 앱개발을 유도하려고 한다. api도 추가되고 디버거도 공개하고 심지어 우분투15.10 x64에서 컴파일 가능하도록 준비하고 있다. 최근 edge사용해 보면서 나름 성능 괜찮다고 생각하고 있고 벤치마크 점수도 잘 나오고 있어서 앞으로 어떻게 될지 기대된다. https://github.com/Microsoft/ChakraCore http://www.infoq.com/news/2016/01/chak..