리눅스 창시가가 말하는 C언어
알림
|
페이지 정보
작성일
2024.07.07 22:57
본문
리눅스 창시가가 말하는 C언어
라는 제목이 이끌여서 함 봐봤습니다.
하기는 해당 영상이고요~
https://www.youtube.com/watch?v=3SaugFc5Uwc
리누스 토발즈는
C코딩을 하면서 어셈블리어를 예상하는~
그런 천재이신 분 같네요~
댓글 13
딥키즈님의 댓글의 댓글
@kittie님에게 답글
주제와 관계없는 내용이지만 업무 분야가 달라서 그런 것 아닐까 싶습니다. 펌웨어 쪽이나 컴파일러 관련 분야라면 관련 내용이 도움이 되어야 할 것 같은데요.
6K2KNI님의 댓글의 댓글
@딥키즈님에게 답글
그런걸 마이크로 튜닝이라고 하기도 하는데 이정도 수준이 되면 부품을 다시 선정하는게 맞습니다.
여태까지 그래왔고 앞으로도 계속...
여태까지 그래왔고 앞으로도 계속...
달려라쑈바님의 댓글
c의 loop 문 (for, while) 이 결국 goto, jmp 인걸 알았을때 어셈블리랑 이렇게 대응되는구나 하는걸 알게 되었었네요
분노의다운힐님의 댓글
조금 다른 이야기라고 생각하는데, C는 코딩을 했을 때 C 코드만 봐도 실제로 어떤 코드로 바뀔지, 또는 어떤 동작을 할지 거의 100% 예측 가능한 수준입니다. 다른 언어들은 언어 그 자체가 제공하는 특별한 기능들 때문에 예측이 어려운 부분들이 있습니다. 내가 선언한 구조체의 정확한 크기나 레이아웃을 알 수 없다거나, 내가 명시적으로 코딩하지 않은 어떤 코드나 기능이 예상 못한 시점에 실행되는 것은.. 하드웨어에 대한 완전한 제어권을 가지고 동작해야 하는 일종의 bare-metal firmware인 커널을 프로그램하기엔 적절한 언어일 수가 없는거죠.
에헤라디야님의 댓글
현직 C언어가 주업인 펌웨어 엔지니어 입니다.
C언어 코딩하면서 어셈블리어로 어떻게 될지 충분히 예상 가능합니다. 그냥 자연스럽게 머릿속에 그려져요.
반대로 어셈블리어 코드를 보고 C언어로 어떻게 될지도 번역할 수 있고요.
C언어 코딩하면서 어셈블리어로 어떻게 될지 충분히 예상 가능합니다. 그냥 자연스럽게 머릿속에 그려져요.
반대로 어셈블리어 코드를 보고 C언어로 어떻게 될지도 번역할 수 있고요.
규링님의 댓글
저도 지금 회사에서 주력 언어가 뭐냐고 물어보는데 C, C++이라고 하면 다들 신기하듯 쳐다봅니다.
제가 코드를 보면서도 글이나 댓글에서도 말씀해주시는 게 자연스럽게 그려지는데
그걸 베이스로 뭔가 설명하면 C언어 한번도 안해본 분들은 다들 이해를 잘 못하더군요.
제가 코드를 보면서도 글이나 댓글에서도 말씀해주시는 게 자연스럽게 그려지는데
그걸 베이스로 뭔가 설명하면 C언어 한번도 안해본 분들은 다들 이해를 잘 못하더군요.
Blizz님의 댓글
컴퓨터 아키텍쳐를 수강했거나 어셈블리를 좀 해 본 사람들은 C를 보면 어셈블리를 떠올릴 수 있고 실제 CPU에서 어떻게 작동 할 지 대충 머리속에 그릴 수 있죠. 그래서 C코드를 보면 어느 부분이 어느정도 사이클을 소비할 지 예측가능하니까 최적화 하기도 쉽고요. 여기에 더해서 파이썬코드 같은 걸 보면 이게 C로 어떻게 구현되어 있을지 떠올리기도 합니다. 그래서 C는 정말 프로그래밍의 기초로 누구나 공부해야 하는 언어인 것 같아요. 이렇게 생각하면 꼰대인건가요?
아이폰점보님의 댓글의 댓글
@Blizz님에게 답글
1991년에 21살 나이로 Linux 커널을 공개한 사람이 2012년에 한 말이니 C로 커널 코딩만 최소 20년 넘게 한 사람이어서 머리속에 그려지는건 그냥 당연하다고 봐야 할거구요... Linus의 천재성은 Linux와 Git, 세계를 정복했다 할만 한 두 소프트웨어 프로젝트를 직접 작성한 초기 버전으로 시작했다는 점에서 충분히 설명이 될 것 같습니다.
Git의 경우 2005년 6월에 프로젝트를 시작 -> 며칠만에 완전히 자체 호스팅 가능한 상태 -> 몇 주 안에 리눅스 커널 개발 호스팅 준비 -> 몇 달 안에 충분한 기능('일반인'이 편하게 쓸만한 편의기능은 빠진 상태로...) 준비 완료.
@Blizz 님께 답글 달다가 중간에 고쳐 쓰다 보니 원글에 대한 댓글이 되버린걸 뒤늦게 확인했네요 ㅎㅎ 요즘 젊은 친구들 똑똑해서 로우레벨 쌩판 모르다가도 막상 닥치면 금방 찾보고 해결하더라는 말을 하다가 옆길로 빠졌습니다 하핫
Git의 경우 2005년 6월에 프로젝트를 시작 -> 며칠만에 완전히 자체 호스팅 가능한 상태 -> 몇 주 안에 리눅스 커널 개발 호스팅 준비 -> 몇 달 안에 충분한 기능('일반인'이 편하게 쓸만한 편의기능은 빠진 상태로...) 준비 완료.
@Blizz 님께 답글 달다가 중간에 고쳐 쓰다 보니 원글에 대한 댓글이 되버린걸 뒤늦게 확인했네요 ㅎㅎ 요즘 젊은 친구들 똑똑해서 로우레벨 쌩판 모르다가도 막상 닥치면 금방 찾보고 해결하더라는 말을 하다가 옆길로 빠졌습니다 하핫
가랑비님의 댓글
이 글에 댓글 다신 분들 모아서 모임이라도 가지고 싶은 마음이네요.ㅎ.
C레벨에서 프로그램 하다보면, 다른 언어 사용하는 분들은 공감하기 어려운 내용을 많이 다루게 되는 것 같습니다.
예를 들어, embedded나 인터럽트 사용하는 프로그램에서 volatile 사용하는 이유를 이해하려면 컴파일러나 어셈블러가 돌아가는 것을 좀 이해하는 것이 필요한 것 같습니다.
C가 메이저 언어가 될리는 없지만,
좀 더 합당한 대접을 받으면 좋겠다...라는 생각을 종종 합니다. ㅎㅎ.
C레벨에서 프로그램 하다보면, 다른 언어 사용하는 분들은 공감하기 어려운 내용을 많이 다루게 되는 것 같습니다.
예를 들어, embedded나 인터럽트 사용하는 프로그램에서 volatile 사용하는 이유를 이해하려면 컴파일러나 어셈블러가 돌아가는 것을 좀 이해하는 것이 필요한 것 같습니다.
C가 메이저 언어가 될리는 없지만,
좀 더 합당한 대접을 받으면 좋겠다...라는 생각을 종종 합니다. ㅎㅎ.
컨텍스트님의 댓글의 댓글
@가랑비님에게 답글
https://cafe.daum.net/opensupport.xyz/psGH/28
여기에 나온 "펌웨어 개발자 커뮤니티" 카톡 오픈채팅방을 참고하세요~
=> https://open.kakao.com/o/gPV1ApQd
여기에 나온 "펌웨어 개발자 커뮤니티" 카톡 오픈채팅방을 참고하세요~
=> https://open.kakao.com/o/gPV1ApQd
아름다운풍경님의 댓글
저도 C 배우면서 어셈블리와 어떤 상관관계를 가지는지 같이 익혀서 그런지 다들 그러신줄 알았다는...
운이 좋았죠 한글라이브러리 옵티마이즈 하느라 노턴가이드 띄워서 인스트럭션 별로 비교하면서 인라인 어셈블리로 변환하면서 많이 배웠었죠...
운이 좋았죠 한글라이브러리 옵티마이즈 하느라 노턴가이드 띄워서 인스트럭션 별로 비교하면서 인라인 어셈블리로 변환하면서 많이 배웠었죠...
kittie님의 댓글
크게 어려운건 아니라고 생각합니다.
게다가 그렇게 최적화하는게 취업에 그닥 도움도 안되고요.
10년넘게 살면서 그런걸 할 줄 아냐고 물어봐주거나 인정해주는 회사는 1개도 없었습니다.