지금까지 몇 권의 행복과 인생에 대한 고찰을 담은 철학책을 읽었다. 내가 추구하는 행복은 무엇인지? 어떻게 하면 잘 사는 인생인지 알아보기 위해서다. 몇 권 되지 않은 책으로 일반화하기는 어렵지만,  인생의 덧없음 을 알리기 위해 철학자들은 노력했다. 예를들면, 회사에 평생을 바쳐 일을하고 승진을 하며 살아왔지만 행복한 가정을 꾸리지 못했거나 행복한 삶을 살지 못했다는 후회를 죽기 전에 깨달았다는 정도의 내용이겠다. 머리로는 "인생의 덧없음"이 이해되었다. 덧없는 욕구나 행복을 추구해봐야 후회하는 삶을 살거나 만족스런 행복감을 느끼지 못한다는 것을 미뤄짐작해 알 수 있었다. 그러나 행동은 그러하지 못했다. 아니 지금도 못하고 있다. 결정적인 순간에 내 감정과 무의식은 성공과 탐욕을 향해 있다. 살아가는 지혜가 부족해서 일까? 

"인생의 덧없음"을 논증해야 한다는 결론을 내렸다. 내 몸이 그 주장을 받아 들일 수 있으려면, 결정적 순간에 이성적 판단을 하기 위해서 꼭 필요한 과정이라고 생각한다. 그렇다면 어떤 이유를 들면 인정할 수 있을까?

먼저 언제 "인생의 덧없음"을 느낄까?(알 수 있을까?) 

- 남이 정해 놓은 정답같은 인생을 살기 위해 아둥바둥 살았지만, 고통스러울때

- 삶을 경쟁적 구도로만 보고 상대를 이겼지만, 또 경쟁해야할 상대가 나타났을 때

- 이룬것 없이 나이만 먹었다는 생각이 들었을때(벌써 내 어릴적 아빠의 나이가 되었다고 느꼈을 때)

- 대학원까지 나와서 월급쟁이로 근근이 살아가며 언제 잘릴지 모르는 공포감에 휩싸였을 때

- ...

내 경험을 토대로 여러 사례를 적으려 했지만, 미천한 경험과 능동적 삶을 살지 못해 적은 수의 사례를 들 수 밖에 없었다. 그리고 이 사례가 정말 덧없음을 느끼게 하는지 아리송한 예도 있다. 내 삶에서 덧없음을 느끼는 실 경험을 알고 있어도 왜 그것을 인정하지 못할까? 인정했다면, 상사의 눈치를 살피지 않을 것이며 동료에게 하고 싶은 말을 했을 것이며 자유롭게 의견개진을 했을 것이다. 

그렇다면, 실 경험이 내 인생에 큰 임팩트를 주지 못해서 일까? 삶이 망가지고 버림받아야만... 최악의 상황이여야만 깨달을 수 있는 것일까? 그 생각하고 싶지 않은 경험을 해야만 반면교사 삼을 수 있는 것일까? 

답을 얻지 못하고 있지만, 행복을 찾아가는 과정으로 생각하고 더욱 고찰하겠다.!

Posted by 황승곤
,

21세기 자유민주주의 국가에서 살고 있는데  왠말인가? 다른 의견을 가질 권리라...


나에게 물어본다. 내 의견과 다른 의견을 피력하는 사람을 맞닥뜨리게 되었을때, 어떤 행동을 하는가?

상대에 따라 달리 행동한다. 매우 비겁하지만, 최근 몇년의 과거를 돌이켜봤을때, 직장상사, 나보다 뛰어난 사람, 지랄같은 사람에게 하는 행동과 나보다 못하다고 생각되는 사람, 강하게 내 의견에 반대하지 않는 사람에게 하는 행동이 다르다. 전자의 사람들이 주장을 펼치면 곧이 듣는 편이다. 저 사람은 나보다 뛰어나니까,  저 사람은 나의 상사인데, 지랄배기가 또 시작이구나.. 등등의 생각으로 내 의견을 굽힌다. 후자의 사람들은  다른 주장을 펼치기 보다는 동조하지 않는 얼굴 표정을 짓거나, 아무런 대응을 하지 않는 편이다. 이럴때 내 의견을 부연설명하거나, 감정에 호소하거나, 권위주의적 표현으로 상대를 설득하려 든다. 이런 나의 행동을 아는 사람들이 있다면, 매우 거북할 것이다. 나를 뒤돌아보고 있는 이 순간 내 자신이 매우 부끄러운 상태이니까...


반성해보면,

사람에 따라 달리 행동하는 것은 바람직하지 않다. 소극적 행동을 하는 전자의 나의 행동은 삶을 자유롭게 살지 않는다는 방증이다. 나만의 의견을 가질 권리가 있고 그것을 상대에게 말할 수 있는 자유가 있는데 그렇게 하지 못했다. 상대가 나를 괴롭게 한다는 이유때문이다. 주로 회사에서 겪는일인데 매우 회사 생활을 재미없게 만드는 원인 중 하나이다. (내 주장을 적극적으로 자주 펼치게 되면 부딪히는 사람들이 많이 생기게 되는데 그로 인해 피곤해진다는 변명은 나중에 다른 글을 통해서 말해보고 싶다.) 후자의 사람들에게 내 의견을 적극적으로 주장할때, 권위적 표현을 사용하는 것 또한 하지 말아야 할 행위다. 약자 위에 군림해서 힘을 과시 하려는 행동에 불과하다.


다른의견이 많으면 좋은이유는,

여러 사람들과 협력해 아이디어를 만들어 내는 과정에서 내 의견에 반대하거나 다른 의견을 많이 나올수록 내 의견에 생각하지 못했던 것을 보완하거나 다른의견을 합쳐 더 좋은 아이디어를 만들어 낼 수 있다. 내가 낸 의견에 대해 주장을 하긴 해야겠지만, 타인의 의견을 듣지 않고 주장하는 것은 도움이 되지 않는다. 다양한 의견을 모아 하나의 좋은 생각으로 발전 시킬 수 있는 기회다. 자기 힘을 과시하는 행위로 다른 의견이 나오지 않게 회의자리를 만들지 말아야 하며, 나를 불편하게 만드는 의견을 잘 듣고 보완해야 할 점을 찾는다면 좋은 결과를 얻을 것이다.


[다른의견을 가질 권리]를 읽고 나서


 

Posted by 황승곤
,

영어 공부 계획서

1. 영어 단어 (Duo 3.0)

 560문장 외우기 (하루 5문장)

2. 영어 문범

 8주 마스터 (영문범 무작정 따라하기)

3. 영어 일기

 on going (아직 계획이 없음.)

Posted by 황승곤
,

interrupt disable 구간(local_irq_disable())이 도대체 무엇이길래 왜 만들어 놨으며 그 구간에서 해야 될 것과 하지 말아야 될 것이 있을까? (앞으로 글을 더욱 다듬어 가겠지만... 내 상식선에서 자답해보자.)

보통 interrupt disable이라면 scheduling이 일어나지 않는다가 먼저 떠오른다.(preemption disable과 같은가? 나중에 알아보자 -_-) 왜냐하면, scheduling이 일어나려면, tick이 발생해야 하는데 tick은 인터럽트에 의해서 발생이 되기 때문에 처리 불가능 구간이라면 schduling이 일어 날 수 없다. 달리 이야기 하면 남에게 방해 받고 싶지 않다면, interrupt disable구간을 만들고 뭔가를 하면되겠다. 근데 그 뭔가가(some code 겠지...) 잘못된 것이라면 system을 망칠 수 도 있다.

상식적으로 생각해 볼때, 꼭 interrupt disable구간에서 뭔가를 해야 한다면, 그 뭔가를 하는 코드는 짧아야 하며, 어떠한 문제도 일으켜서는 안된다. (그렇다면, 그 짧다는 기준은 뭔가? -_- 모르겟다.)

그리고 그 구간에서 주의해야 할 점을 몇가지 이야기 해본다.(더 있을지도 모른다. 찾아내고 발굴해야 한다.)

1. interrupt disable 하고 lock을 잡지 말자.

  -spinlock의 경우 deadlock 을 발생시킬 수 있다.

  -mutex, semaphore의 경우 lock을 획득하지 못한 core(SMP 환경)가 scheduling 받지 못하거나, lock 획득하지 못한 thread가 sleep 상태로 들어가 깨어나지 못할 수 있다.

2. interrupt disable 하고 schedule()을 호출 하지 말아라. 그 다음 schedule이 일어 나지 않을 가능성이 있다.

3. 생소한 Kernel API를 사용할 경우 그 안에서 lock을 잡는 것이 있는지 확인한다.


Keep going on... may be updated by Seungkon Hwang.!! (2013-02-12)

'Linux' 카테고리의 다른 글

Read Copy Update for mutual exclusion  (0) 2012.09.29
How to compile the linux kernel on mac ox x  (1) 2012.04.28
.screenrc  (0) 2011.11.06
괜찮은 임베디드 사이트  (0) 2011.03.31
realview-pbx-a9 u-boot 빌드와 QEMU 실행  (0) 2011.03.29
Posted by 황승곤
,

SMP 커널을 만지게 되면서, 가끔 혹은 자주(? -_-;;;) 이런 메세지를 본적이 있다.

INFO: xxx detected stalls on CPUs/Tasks:


무슨 말인지도 모르지만, 알고 싶지도 않은 저런 메세지... 단순히 online 코어 중 응답이 없으면 뿌리는 메세지 인줄로만 알고... 내가 코어하나를 죽였구나... 하고 한숨만 푹푹 쉬던 메세지.. RCU에서 뿌려서.. 이건 무슨 프로세서 아키텍쳐인가하고...-_- 근데 Read Copu Update라네... 다음의 사이트에서 공부를 하면 될듯하다..


http://lse.sourceforge.net/locking/rcu/HOWTO/intro.html

'Linux' 카테고리의 다른 글

interrupt disable 구간에서 하지 말아야 할것.  (0) 2013.02.12
How to compile the linux kernel on mac ox x  (1) 2012.04.28
.screenrc  (0) 2011.11.06
괜찮은 임베디드 사이트  (0) 2011.03.31
realview-pbx-a9 u-boot 빌드와 QEMU 실행  (0) 2011.03.29
Posted by 황승곤
,

응답하라, 1997을 보면서...


주인공의 나이가 나와 같다. ㅎㅎ 이 사실을 8~9편을 보면서 알게 되었다. 수능을 보는 년도를 알게 되면서..

1998년 11월 18일에 내가 수능을 봤는지 이 드라마를 보면서 다시 기억(?) 아니, 알게 해주었다.

문득 1999년 2월 말, 엄마의 붉은 눈시울이 기억난다. 


나는 강원도에서 태어나 속초에서 고등학교 시절을 보내고, 1999년에 부모님의 품을 떠나게 되었다. 누나 둘을 가진 막내 아들을 떠나보내는 부모님의 마음을 다 알지는 못하지만,  그 날을 생각하면 짐작은 간다. 


아들의 첫 자취방을 청소해주겠다며, 입학식 전에 같이 인천으로 향한 어머니. 청소를 다 해주시고, 내 속옷과 양말을 넣을 수납공간이 없다며 자취방 근처(기숙방이 더 맞다.)에 작은 시장을 돌아다니며 4칸짜리 푸른색 서랍장을 사주시고, 그리고 이경규씨의 압구정 김밥에서 저녁을 먹고 나의 첫 기숙방에서 하룻밤 주무시고 다음날 속초로 가기위해 학교 후문에 13번 버스를 타고 눈물이 가득 고인 눈으로 나를 처다보시던 어머니의 붉은 눈시울이 생생히 기억난다.

Posted by 황승곤
,


forum :

   https://www.codeaurora.org/2010/03/02/little-kernel-based-android-bootloader/

Posted by 황승곤
,


링 크 : http://www.acsu.buffalo.edu/~charngda/elf.html


Posted by 황승곤
,

.bashrc

mac 2012. 4. 29. 21:55

 System-wide .bashrc file for interactive bash(1) shells.

if [ -z "$PS1" ]; then

   return

fi


PS1='\h:\W \u\$ '

# Make bash check its window size after a process completes

shopt -s checkwinsize

# Tell the terminal about the working directory at each prompt.

if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then

    update_terminal_cwd() {

        # Identify the directory using a "file:" scheme URL,

        # including the host name to disambiguate local vs.

        # remote connections. Percent-escape spaces.

    local SEARCH=' '

    local REPLACE='%20'

    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"

    printf '\e]7;%s\a' "$PWD_URL"

    }   

    PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"

fi


alias ll='ls -l'

alias maketag='source ~/bin/ctag_cscope.sh'


# Define how Bash prompt looks like:

#


# Cli Colors

export CLICOLOR=1

# use yellow for dir's

export COLOR_NC='\033[0m' # No Color

export COLOR_WHITE='\033[1;37m'

export COLOR_BLACK='\033[0;30m'

export COLOR_BLUE='\033[0;34m'

export COLOR_LIGHT_BLUE='\033[1;34m'

export COLOR_GREEN='\033[0;32m'

export COLOR_LIGHT_GREEN='\033[1;32m'

export COLOR_CYAN='\033[0;36m'

export COLOR_LIGHT_CYAN='\033[1;36m'

export COLOR_RED='\033[0;31m'

export COLOR_LIGHT_RED='\033[1;31m'

export COLOR_PURPLE='\033[0;35m'

export COLOR_LIGHT_PURPLE='\033[1;35m'

export COLOR_BROWN='\033[0;33m'

export COLOR_YELLOW='\033[1;33m'

export COLOR_GRAY='\033[1;30m'

export COLOR_LIGHT_GRAY='\033[0;37m'

alias colorslist="set | egrep 'COLOR_\w*'"  # lists all the colors


#Prompt

export PS1="${COLOR_GREEN}\w$ ${COLOR_NC}"


# Alias

alias ls='ls -G'

alias ll='ls -hl'

alias la='ls -a'

alias lla='ls -lah'


# history handling

#

# Erase duplicates

export HISTCONTROL=erasedups

# resize history size

export HISTSIZE=10000

# append to bash_history if Terminal.app quits

shopt -s histappend

'mac' 카테고리의 다른 글

lion mac port  (0) 2011.11.22
mac에서 .bashrc enable  (0) 2011.02.27
Posted by 황승곤
,

mac에서 리눅스 커널 컴파일을 하는 방법을 적는다. (나중에 까먹으면 봐야지, 근데 왜 내가 이런 삽질을??)


mac에서 리눅스 커널 컴파일을 하는 방법.

1. mac port를 설치 한다. ( google 에서 검색하면 나옴)

2. 다음과 같이 패키지를 검색 후 설치 한다.

   1)port list | grep arm-none-eabi-

   위와 같이 명령어를 내리면 아래와 같이 결과가 나온다.

  arm-none-eabi-binutils         @2.21.53.0.1    cross/arm-none-eabi-binutils

 arm-none-eabi-gcc              @4.6.2          cross/arm-none-eabi-gcc

 arm-none-eabi-gdb              @7.3            cross/arm-none-eabi-gdb

  뒤에 버전은 다를 수 있다. 난 위에 두개만 설치

  2) sudo port install arm-none-eabi-binutils arm-none-eabi-gcc

  3) sudo port install libelf

      elf관련 에러를 내뿜기 때문에 libelf를 만든다.


3. /usr/include/elf.h 파일을 만든다.

  어떻게 만드냐면, libelf를 설치하게 되면 /opt/local에 설치되게 되어 있는데 여기서 gelf.h를 검색한다.

  1) find . -name "gelf.h" -print

  하게 되면 /opt/local/include/libelf/gelf.h  라는 결과를 내뿜는다.

  2) sudo vim /usr/include/elf.h

  위와 같이 해서 elf.h 파일을 만들고 아래와 같이 기술한다.

  #include <gelf.h>


#define R_386_NONE        0

#define R_386_32          1

#define R_386_PC32        2

#define R_ARM_NONE        0

#define R_ARM_PC24        1

#define R_ARM_ABS32       2

#define R_MIPS_NONE       0

#define R_MIPS_16         1

#define R_MIPS_32         2

#define R_MIPS_REL32      3

#define R_MIPS_26         4

#define R_MIPS_HI16       5

#define R_MIPS_LO16       6


4. 이제는 컴파일이다.

아래와 같이 내리면된다.

make ARCH=arm CROSS_COMPILE=arm-none-eabi- HOSTCFLAGS="-I/opt/local/include/libelf -I." -j32

위에가 안되면,

make ARCH=arm CROSS_COMPILE=arm-none-eabi- HOSTCFLAGS="-I/opt/local/include -I/opt/local/include/libelf -I." -j32


그럼 무리 없이 컴파일이 되고 결과인 Image가 나온다. 굿~~~~~~~~~~

'Linux' 카테고리의 다른 글

interrupt disable 구간에서 하지 말아야 할것.  (0) 2013.02.12
Read Copy Update for mutual exclusion  (0) 2012.09.29
.screenrc  (0) 2011.11.06
괜찮은 임베디드 사이트  (0) 2011.03.31
realview-pbx-a9 u-boot 빌드와 QEMU 실행  (0) 2011.03.29
Posted by 황승곤
,