|
(광고) 단통법 시대의 인터넷가입 가이드(ver2.0) (234) |
백메가 |
2015-12 |
1764041 |
25 |
2015-12
1764041
1 백메가
|
|
[필독] 처음 오시는 분을 위한 안내 (737) |
정은준1 |
2014-05 |
5238526 |
0 |
2014-05
5238526
1 정은준1
|
108774 |
[파쇄문의] 핸드폰/전자제품 처분, 파쇄 업체나 간단한 방법이 있을까요 ? (10) |
Smile |
2023-08 |
2139 |
0 |
2023-08
2139
1 Smile
|
108773 |
파워셀을 이용한 OS 라이선스 Key 추출 배치파일 만들기 질문 (3) |
NNTHH |
2023-08 |
1879 |
0 |
2023-08
1879
1 NNTHH
|
108772 |
모니터 고장증상 잘 아시는분 계실까요 (3) |
훌딱이 |
2023-08 |
1869 |
0 |
2023-08
1869
1 훌딱이
|
108771 |
gbic 게으른 질문 (8) |
구차니 |
2023-08 |
1697 |
0 |
2023-08
1697
1 구차니
|
108770 |
CISCO AP c1242 Standalone 용 최신 Firmware 를 가지고 계시면 공유 좀 부탁드립니… (2) |
시도니 |
2023-08 |
1852 |
0 |
2023-08
1852
1 시도니
|
108769 |
유니파이 네트워크 (10) |
rainma |
2023-08 |
2380 |
0 |
2023-08
2380
1 rainma
|
108768 |
12코어/16쓰레드 CPU는 어떤 헤놀을 써야하나요? (6) |
GPGPU |
2023-08 |
2991 |
0 |
2023-08
2991
1 GPGPU
|
108767 |
U.3 SSD가 U.2 단자에 하위 호환되나요? (6) |
미친감자 |
2023-08 |
2948 |
0 |
2023-08
2948
1 미친감자
|
108766 |
지하수 모터 컨트롤러에 대해 아시는분 계신가요? (14) |
일론머스크 |
2023-08 |
3462 |
0 |
2023-08
3462
1 일론머스크
|
108765 |
블루투스 지원되는 MP3 플레이어를 하나 사려고 합니다 (25) |
VSPress |
2023-08 |
2620 |
0 |
2023-08
2620
1 VSPress
|
108764 |
pfsense 용 보드와 시퓨 추천 + 10기가 허브 추천 부탁드립니다 (4) |
미수맨 |
2023-08 |
2739 |
0 |
2023-08
2739
1 미수맨
|
108763 |
용산 신우전자(?) 라는 곳에서 보드 AS받아보신불 계실까요? (13) |
달광이 |
2023-08 |
5438 |
0 |
2023-08
5438
1 달광이
|
108762 |
Scalable Xeon 1세대, 2세대도 VROC 기능이 있나요? (5) |
미친감자 |
2023-08 |
2154 |
0 |
2023-08
2154
1 미친감자
|
108761 |
컴퓨터 재연결후 부팅시 삑삑 소리가 납니다. (10) |
영산회상 |
2023-08 |
2993 |
0 |
2023-08
2993
1 영산회상
|
108760 |
잘 쓰던 서버가 갑자기 전원이 안들어 옵니다. (5) |
달광이 |
2023-08 |
2344 |
0 |
2023-08
2344
1 달광이
|
108759 |
잘 쓰던 서버가 갑자기 전원이 안들어 옵니다. |
LUNA |
2024-12 |
431 |
0 |
2024-12
431
1 LUNA
|
108758 |
페이와 신용카드는 어떻게 다르나요..금융지식이없습니다T.T (7) |
slowcity |
2023-07 |
2347 |
1 |
2023-07
2347
1 slowcity
|
108757 |
윈도우 PC 폴더/파일 탐색기에서 불안정... (6) |
회원 |
2023-07 |
2062 |
0 |
2023-07
2062
1 회원
|
108756 |
키스톤잭 교체 했는데 인터넷연결이 안댑니다 (24) |
래바이 |
2023-07 |
3296 |
0 |
2023-07
3296
1 래바이
|
108755 |
전동킥보드 어느정도 위험하나요 (14) |
pumkin |
2023-07 |
2631 |
0 |
2023-07
2631
1 pumkin
|
https://www.clien.net/service/board/park/16569890
이런 분이 해당 분야에 있다면 가능하겠지만 글에 나와 있듯이 이분도 모든 걸 잘하는게 아니라서,,,,,,
결국은 노하우 공유를 통해 집단적 지성을 이용헤 발전하는 것이 더 효용이 크기 때문에
가장 보편적으로 널리 퍼진 언어 툴을 이용하는게 좋을겁니다
요즘은 컴파일러가 매우 효율적이라 대부분의 코드에서 사람이 직접하는 짠거보다 더 옵티마이즈된 결과물을
내놓다는 글을 본적이 있습니다
빌딩을 짓는데 굳이 현대식 건설 장비를 놔두고 삽으로 처음부터 끝까지 지을 필요는 없다라는 말이 생각나는군요....ㅎ
삽과 곡괭이라도 있는건 그래도 컴파일러 정도는 갖춰놓고 코딩하는거죠.
그만큼 기계어나 어셈블리어만 사용해서 구축할 수 있는 사람이 있을지 모르겠네요..
기계어나 어셈블리어 재대로 다룰수 있는 사람이 상당히 귀합니다..
이제는 로우레벨/하드웨어 수준의 개발도 무식하게 어셈블리만 가지고 하는 사람은 없어요. 저도 기계어 만지는 것은 좋아하지만 현실에서 쓰는 일은 리버스 엔지니어링 아니면 컴파일러가 잘 못 활용하는 일부 SIMD명령어 다뤄야 할 때나 합니다.
감사합니다
비 상식적인 것이 궁금하였던 것입니다.
그래서 듣는 사람들이 ...생각하기에..
비 상식적이고.. 비 합리적이고... 쌩뚱 맞은 그런 느낌입니다.
모든 장비의 기저에 시작은 어셈블리 인 것이죠..
그것을 일반인들이 활용하여 개발이 쉽게 편하도록 하는 것이
프로그램잉 랭귀지 인 것 이죠.
서버라고 거창한걸 생각하시는지 모르겟지만
httpd 데몬만 돌려도 서버 입니다
임베디드쪽 가면 없지는 않습니다
너무 비싸고.. 비 효율이고. 한것이죠..
그런짓해봤자 성능 향상은 커녕 인터프리터 쓰는 언어보다 빠르면 다행입니다 (시퓨의 명령어셋이랑 레지스터의 숫자등 모든 스팩을 다 파악하고, 모든 가속 명령의 작동 구조등 다 빠삭하게 이해한 상태에서 아주 정확하게 최적화된 구조로 설계후 그걸 엄청난 노가다로 다 일일히 입력해야 제대로 성능이 나옵니다)
거기다 버그 안 걸리길 기도하시거나, 알아서 디버그도 다 하셔야 합니다 (기계어용 제대로된 디버거는 없다시피하고, 어셈만 되어도 찾기 힘듭니다)
그리고 하급 언어로 만들수록 특정 머신 의존적으로 되니 신경써야할게 늘어납니다
옛날부터 기계어로 짜는 경우는 거의 없었고, 2~30년전조차 어셈으로 부분적으로 코딩하는 수준이었습니다
8비트 컴퓨터라면 어느 정도 어셈블리로 프로그래밍이 가능하지만
16비트 이상되면 복잡해지기에 사람 머리로 할 수 있는 한계를 넘어선다고 들었습니다..
현재는 32비트도 넘어서 64비트 컴퓨터 시대입니다..
2^8 = 256개
2^16 = 약 6만5천개
2^32 = 약 43억개
2^64 = 약 1844경 개
천재급 두되를 가졌다면 6만5천개 조합까지는 평생을 바치면 어쩌면 가능할지도?
그러나 32비트 부터는 어림도 없습니다.
구글에 "x86 assembly web server"로 찾아보니 몇개 나오네요. 그중 하나는 여기.
https://github.com/barrettotte/HTTP-ASM64
"The most basic HTTP Server written in 64-bit Assembly with NASM Assembler."라고 합니다.
딱 한페이지만 보여주는 웹서버.
근데 요즘 운영체제에서는 어차피 네트웍 연결을 하라면 운영체제에서 제공하는 시스템콜을 호출할 수 밖에 없는데요,
그럼 C로 프로그램짜나 assembly로 프로그램짜나 거기서 거기입니다.
C는 "고도화된 어셈블리언어"라고 표현해도 될것 같습니다.
아직까지 메인프레임에 코볼이 살아있는 걸 본적은 있습니다.
지금은 아마도 차세대로 바뀌면서 웹인터페이스로 바뀌지 않았을까 싶긴 합니다만,...
만든다고 끝이 아니고 만든 것을 사용하다 보면 시간 내에 수정해야 하는 부분들 계속 나올텐데 어셈블리로 만들면 그거 하기도 버겁습니다.
경험상 같은 기능을 하는 프로그램을 어셈블리와 C로 짤 경우 어셈블리 코드 라인수는 C의 10배 정도 됩니다.
java도 시스템 자원 낭비하는 비효율적인 언어라고 욕을 먹고 있지만 빨리 만들 수 있으니 널리 쓰이는겁니다.
지금은 시스템 성능도 좋아져서 규모가 아주 커지지 않는 이상 체감성능은 차이도 안납니다.
질문 하신 내용 보면
컴파일러 : 인터프리터도 구분 못하시고,
저급언어 : 고급언어도 구분 못하시고,
서버란 용어도 여렴풋이 이해하고 있는거로 보입니다.
카더라성 정보에 의존해서 상상력을 키우는 것도 좋지만,
서버에 관심 있으시면, 진지하게 운영체제론 책이라도 보시면서 기초를 다지시면 좋을 것 같습니다.
컴퓨터나 계산기 대신 주판으로 회계 장부를 정리하는 것도 가능하냐고 묻는 것과 어떻게 다른지요 ?
어셈블리어로 소켓통신 가능합니다. 구현 사례도 있습니다.
다만 os없이 생짜로 boot레벨부터 어셈블리어로 가능하냐?
가능이야 하겠지만 비 현실적이겠죠. 네트워크 카드 하나만 두고 보더라도 예전에는 하드웨어 제어가 대부분이었다면, 지금은 소프트웨어 제어가 대부분입니다.
드라이버 용량이 커지는 이유도 여기 있구요.
( 도스의 int 21h와 같은 역할이고, http://www.linuxassembly.org 에서 모든 function을 소개하고 있습니다.)
근데 써보면 호출하는 모양이 POSIX와는 동떨어진 느낌이 듭니다. glibc 같은 C 라이브러리에서 POSIX 비슷하게 포장해주고 있어서 C로만 했다면 안보이는 부분.
말씀하신 boot 레벨에서 생짜로 할꺼면 어셈블리는 필수입니다.
cpu 특수 레지스터를 다루는 초기 환경 셋업, 외부장치 in/out, interrupt 처리 및 관련 셋업들은 컴파일러 출력 바이너리 포맷과 맞지 않는다거나 부팅후 한두번 정도만 쓰는 특수명령어도 사용해서 C/C++로도 불가능한 곳들이 많습니다. 근데 로직은 만들 시간도 없고 그거 만회할려고 사람 많이 쓰면 돈이 감당못할 정도로 많이 들어가니 어셈블리 안씁니다. 쓴다면 사이즈가 중요한 곳 정도. 예를 들자면 x86 기준 부트로더 1차 로드 부분은 디스크 1sector 크기에 다 우겨넣어야 합니다.
c 언어에서요.