# برنامه نویسی سطح پایین > توسعه‌ی هسته‌ی سیستم عامل > سوال: زبانهای برنامه نویسی برای سستم عامل

## qazwsx

سلام یه مقدار توضح درباره زبانهای سیستم عامل میخواسم و اینکه با پاسکا میشه سیستم عامل به وجود اورد واگه آره یه کامپایلر پاسکال برای این کا ر میخوام

----------


## unix_svr4

منظورتون از توضییح در مورد زبانهای سیستم عامل چیست؟؟؟
اگر منظورتون زبانهای طراحی و پیاده سازی سیستم عامل است که اصلی ترین آنها عبارت اند از: C, C++‎, Assembly این زبانها به دلیل نزدیکی بیشتر به زبان ماشین و سخت افزار مناسب ترین گزینه برای طراحی و ساخت یک سیستم عامل به حساب می آیند.
در مورد نوشتن سیستم عامل با زبان Pascal هم باید بگم که:
الف) پاسکال یک زبان سطح بالاست.
ب) هدف از به وجود آوردن زبان پاسکال فقط آموزش بود.
ج) اگرچه پاسکال از اشاره گرها استفاده می کنه ولی هیچگاه قدرت زبان C را نخواهد داشت.
د) تا اونجایی که من می دونم نتیجه کامپایل برنامه های پاسکال یک فایل اجرایی وابسته به سیستم عامل است، در صورتی که در کامپایلرهای C می توان مشخص کرد که فایل خروجی چه فرمتی داشته باشد. bin, object, library

پس همانطور که متوجه شدی با زبان پاسکال نمیشه یک *سیستم عامل کاربردی* نوشت. 

موفق باشید.

----------


## application_13

سلام دوستان عزیز.
من میخوام نوشتن سیستم عامل (core) رو یاد بگیرم. به یادگیری چه چیزایی احتیاج دارم؟
آیا ایز ایران و ... کلاسهایی در این زمینه دارن؟

----------


## application_13

سلام. کسی از دوستان نمیتونه من رو راهنمایی کنه؟ :متفکر:

----------


## miradli

با سلام :
دوست عزیز شما باید توجه کنید که سیستم عاملهای موجود با سی نوشته شده اند " ویندوز ، لینوکس ، مک ، و .... " اما با پاسکال هم میشه به شرطی که اسمبلی و ارتباط با اسمبلی توسط پاسکال رو بلد باشی من به عنوان مثال یک قطعه کد که مربوط به بوت دیسک میشه و با پاسکال نوشته شده رو قرار میدم شاید کمک کنه تا بیشتر متوجه بشی :


{Function:Boot message for A-disk
  Language:Turbo Pascal
 
  BlackMedia 43}
label F;
var B: array[0..255] of Word;
E: Word; s: string[80];
const n: string=
#$FA+
#$FC+
#$B9#$27#$00+
#$BF#‎$00#$BC+
#$BE#$44#$7C+
#$33#$C0+
#$8E#$D8+
#$8E#$C0+
#$F3#$A4+
#$EA#$00#$BC#‎$00#$00+
#$BE#$6B#$7C+
#$AC+
#$0A#$C0+
#$74#$08+
#$33#$DB+
#$B4#$0E+
#$CD#$10+
#$EB#$F3+
#$B8#$01#$02+
#$BB#$00#$7C+
#$B9#$01#$00+
#$BA#$80#$00+
#$CD#$13+
#$72#$05+
#$EA#$0#$7C#‎$00#$00+
#$EB#$FE;
begin Write
  ('BootDisk ‏BlackMedia 43 ‏');
  s:='';
  for E:=1 to ParamCount do
    s:=s+ParamStr(E)+' ';
    n:=n+s+^M^J#0; E:=0;
    asm
    push DS; XOR AX,AX; mov DX,AX
    mov CX,1; mov BX,offset B
    Int 25h
    pop DS; pop DS
    jnc @1; mov E,1; @1:
  end;
  if E=1 then goto F;
  B[0]:=$2AEB;
  Move(n[1],B[$16],Length(n));
  asm
  push DS; XOR AX,AX; mov DX,AX
  mov CX,1; mov BX,offset B
  Int 26h
  pop DS; pop DS
  jnc @1; mov E,1; @1:
end;
if E=1 then goto F;
WriteLn('finished. '); Halt(0);
F: WriteLn('Error! ', #7); Halt(1);
end.



در کد بالا قسمتهایی که نوشته شده asm برنامه به اسمبلی پل زده !

پیشنهاد من برای درک کامل از طراحی یک سیستم عامل اینه که کتاب طراحی و پیاده سازی سیستم های عامل رو که نوشته تانن باوم هست و محتوی کدهای سیستم عامل minix هست به همراه توضیح و ... و ترجمه شده به فارسی رو تهیه کنی و مطالعه کنی البته همون طور که گفتم این سیستم عامل هم با سی نوشته شده .

امیدوارم کمکی کرده باشم .

----------


## typeman9

سلام :

البته کل یک سیستم عامل را میشه بطور کامل با  assembly   نوشت  مثل سیستم عاملهای زیر که کاملا با زبان اسمبلی نوشته شده اند:

DexOS ,  Kolibrios 

این دو سیستم عامل کاملا با زبان اسمبلی و البته   با بهترین کامپایلر این زبان یعنی اسمبلر  FASM     نوشته شده اند .

ادرس  سایت رسمی اسمبلر  FASM  

https://flatassembler.net

----------

