بایگانی برچسب: s

نوشتن یک سیستم عامل ساده – قسمت دوم

در مقاله قبلی، در مورد نمایش یک حرف روی مانیتور صحبت شد. اما یک حرف کافی نیست. حتی نمیشه به صورت حرف به حرف کلمات و جملات رو نشون داد چون واقعا کار سختیه. ما میخوایم یک پیغام (مثل Hello World) رو موقع بوت شدن سیستم عاملمون شاهد باشیم. پس باید چه کنیم؟ یک راه حل اینه که از یک ویژگی ای در زبان مورد نظر (اینجا اسمبلی) استفاده کنیم که بتونه یک رشته رو چاپ کنه. طبیعتا اسمبلی به طور پیشفرض دستوری مثل cout نداره و ما مجبوریم که خودمون اون رو به cout بیاریم. در این قسمت از مقالات «نوشتن یک سیستم عامل ساده» به این میپردازیم که چطور سیستم عامل ۱۶ بیتی ما، یک یا چند جمله رو نشونمون بده! در این قسمت علاوه بر رجیستر AX از سایر رجیستر ها هم استفاده خواهیم کرد. ممکنه بپرسید چرا؟ جواب سوالتون رو توی متن میگیرید!

خب فایل my16bitos.asm رو باز کنید. کل محتواش رو پاک کنید و این رو جایگزینش کنید :

کد   
org 0x7c00
bits 16
 
mov ax, 0
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7c00
 
mov si, welcome 
call print_string 
 
mov si, about
call print_string
 
welcome db  'Welcome to my OS', 0x0d, 0x0a, 0
about db  'Written in 16-bit real mode', 0x0d, 0x0a, 0
 
print_string:
 lodsb
 or al, al
 jz .done 
 
 mov ah, 0x0e
 int 0x10
 
  jmp print_string
 
 
 .done:
   ret
 
times 510-($-$$) db 0
dw 0xaa55

دیدید ؟ کد خیلی طولانی تر شده نسبت به قبل. طبیعیه چون که ما یه تابع تعریف کردیم و از یه سری چیزای جدید هم استفاده کردیم. خب آماده اید؟ میریم که بخش به بخش سیستم عامل کوچولوی خودمون رو بررسی کنیم!

کد   
org 0x7c00
bits 16

این قسمت، برای اینه که اولا ، اسمبلر آدرس ها رو بفهمه، ثانیا بفهمه که کد چند بیتیه. در آینده کد ما ۳۲ بیت خواهد شد و این بخش هم تغییر خواهد کرد. ولی فعلا تا آموزشهای بعدی همین برنامه رو داریم.

کد   
mov ax, 0
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7c00

این قسمت از کدمون هم مقدار صفر رو توی رجیستر AX میذاره و سپس اون رو به Data Segment, Extra Segment و Stack Segment منتقل میکنه (توجه کنید مستقیما نمیتونیم مقداری رو درون این رجیستر ها بذاریم. پس اول مقدار رو میذاریم توی AX سپس با MOV یکی یکی منتقل میکنیم). در آخر هم مقدار 7C00 هگزا دسیمال رو توی Stack Pointer قرار میدیم (استک از این آدرس شروع میکنه و میاد پایین).  این بخش داره مقدمات اجرای سیستم عامل ما رو فراهم میکنه.

بعد از اونا میرسیم به این بخش :

کد   
mov si, welcome 
call print_string 
 
mov si, about
call print_string
 
welcome db  'Welcome to my OS', 0x0d, 0x0a, 0
about db  'Written in 16-bit real mode', 0x0d, 0x0a, 0

این قسمت تقریبا ساده ترین قسمت برنامست. اومدیم welcome و about که دو رشته هستند رو ریختیم توی Source Index و سپس تابع print_string که کارش چاپ رشته هست هم صدا زدیم. با دستور db هم گفتیم که چه رشته هایی رو مد نظر داریم که چاپ شن. اون اعداد هگزاسیمال بعد از متغیر ها هم معادل New Line هستند (مثلا مقدار n در دستورات بک اسلش در C ).

بعد از این جنگولک بازیا ( 😀 ) میرسیم به کار اصلیمون یعنی نوشتن تابع print_string . این تابع نسبتا سادس ولی خب نیاز به توضیح داره چون دستوراتی رو استفاده کردیم که توی مطلب قبلی نبودن :

کد   
print_string:
 lodsb
 or al, al
 jz .done 
 
 mov ah, 0x0e
 int 0x10
 
  jmp print_string
 
 
 .done:
   ret

خب اول اومدیم اسم تابع رو گذاشتیم print_string (شما میتونید هرچیزی دلتون میخواد بذارید، مثلا دوستی ممکنه بذاره cout که براش ملموس تره و …). بیایم ببینیم خط به خط تابع چه میکنه؟

اون lodsb یک بایت رو از SI میخونه ، بعد رجیستر AL با خودش از نظر منطقی OR میشه. در نهایت اگر نتیجه صفر شد میره به done که done هم همونطور که می بینید داره return میکنه و از تابع خارج میشه. اگر جواب صفر نشه، مقدار 0e هگزا دسیمال وارد AH میشه و سپس وقفه 10 هگزادسیمال که یکی از وقفه های بایوس هست اجرا میشه. در واقع 0e یکی از تابع های وقفه مورد نظر ماست. بعد از اون پرش رخ میده به print_string. در واقع ما یک حلقه نوشتیم که به تعداد کرکتر های رشتمون، تکرار میشه و رشته رو تکرار میکنه.

در نهایت هم باید به اسمبلر بفهمونیم که برناممون یک Boot Sector عه پس طبیعتا از این قطعه کد استفاده میکنیم که در مطلب قبلی توضیحش دادم :

کد   
times 510-($-$$) db 0
dw 0xaa55

خب الان یک سیستم عاملی داریم که میتونه یک رشته چاپ کنه. ولی هنوز نمیتونه چیزی رو از کاربر بگیره و بخونه. این مورد میره برای آموزش های بعدی. فعلا بیاید این کد رو توی ویرچوال باکس اجرا کنیم! برای اجرای این سیستم عامل کد های زیر رو به ترتیب توی ترمینال اجرا کنید :

کد   
nasm -f bin -o my16bitos.bin my16bitos.asm
dd if=my16bitos.bin of=my16bitos.img

بعد یک ماشین مجازی توی ویرچوال باکس ایجاد کنید، یک Floppy Controller بسازید و اولویت بوت رو بهش بدید. سپس img رو بدید به فلاپی کنترلر و سپس ماشین رو روشن کنید. باید چنین صحنه ای رو مشاهده کنید :

 

os

تبریک! شما تقریبا نصف بیشتر راه رو رفتید! در ادامه هم میرسیم به باقی ماجرا و نوشتن prompt و این چیزا!

موفق باشید 🙂

Share

نوشتن یک سیستم عامل ساده – قسمت اول

همونطور که در جریانید، مدتهای زیادی بود که من دنبال ساخت یک سیستم عامل بودم. خب ساخت سیستم عامل دانش بالایی میخواد. حداقلش اینه که باید بدونیم چی میخوایم! ولی اگر صرفا برای فان بخوایم چنین کاری کنیم، میتونیم یک سیستم عامل خیلی ساده بنویسیم و اگر احتمالا یه کامپیوتر قدیمی و داغون داریم، روی اون نصبش کنیم.

خب، بیاید اول ببینیم چی نیاز داریم؟ اول از همه نیاز داریم که اسمبلی بلد باشیم. احتمالا با گشتن توی اینترنت کلی جزوه و کتاب و آموزش اسمبلی پیدا میکنید، همچنین اگر درس زبان ماشین پاس کرده باشید خیلی راحتتره کارتون، چون ایده کلی رو دارید. و البته مهم تر از اون، اینه که لینوکس و برنامه نویسی هم بدونید. اگر هم لینوکس بلد نیستید سعی کنید یاد بگیرید چون یکی از بهترین محیط های این کار به حساب میاد و اگر توی فروم هایی مثل OSDev بچرخید خواهید دید که اکثر توسعه دهندگان از لینوکس استفاده کردند، حتی اونایی که با سی شارپ یا MASM کار رو انجام داده بودن 😀 . دلیل عمده استفادشون از لینوکس (یا هر چیز شبه یونیکسی) وجود ابزارهای خوب توسعه روی این دسته از سیستم عامل هاست. همچنین خیلی از ایده هایی که شما بهش فکر میکنید رو قبلا روی این سیستم عاملها آزمایش کردند و ساختند که یا آزادند و یا نمونه های آزاد دارند.

خیلی خوب، بذارید اول ببینیم چه چیزهایی باید نصب کنیم؟

  1. یک ادیتور متنی، که معمولا همراه سیستم عاملتون نصب میشه. من خودم از nano و gedit و atom استفاده میکنم، و توصیه میکنم شما هم یکی از این ادیتورهای ساده رو انتخاب کنید تا درگیر پیچیدگی های vim و … نشید.
  2. یک اسمبلر که من اینجا از nasm استفاده میکنم، و nasm توی مخازن اوبونتو و دبیان و … موجوده. اگر هم نبود هم باینری و هم سورسش موجوده.
  3. یک مجازی فوق العاده ساده هم نیاز داریم. در واقع مجازی سازی که برای راه انداختن و بوت کردن یه باینری ساده، اذیتمون نکنه. من از qemu استفاده میکنم. حالا شما میتونید از bochs یا VirtualBox یا هرچیز دیگری استفاده کنید  و انتخاب خودتونه.

خب طبیعتا ترمینال هم نیاز داریم که این وسط بتونیم کارامونو باهاش انجام بدیم 🙂

الان کافیه که با اراده قوی، یک فایل به اسم my16bitos.asm باز کنید و شروع کنید کد زدن. خب باید چی بنویسیم؟ یکی از نکات مهمی که اینجا هست اینه که ما نمیتونیم از روتین ها یا وقفه های سیستم عامل استفاده کنیم و نیاز داریم از بایوس استفاده کنیم! دقیقا چون بایوس MBR رو میخونه و از این داستانا که موقع بوت شدن داریم. پس کد ما چنین چیزی میشه :

کد   
MOV AH, 0x0e
MOV AL, 'A'
INT 0x10
JMP $
times 510-($-$$) db 0
DW 0xaa55

خب این شد کد ما. در واقع ما یک سیستم عامل (یا بهتر بگم بوت سکتور) ۱۶ بیتی نوشتیم. که البته این خیلی سادست و در قسمت بعدی پیچیده ترش خواهیم کرد. این سیستم عامل ۶ خطی (شاید به خاطر پیشرفت علوم کامپیوتر و اسمبلر ها و پردازنده ها، الان این کد شش خطه، و ممکن بوده زمانی یه مهندس کامپیوتر یا صرفا یک علاقمند به علوم رایانه رویاش نوشتن چنین چیزی بوده!)، وقتی بوت شه حرف A رو به ما نمایش میده. حالا با چه اتفاقاتی؟

خط اول که میگه عدد شانزده شانزدهی 0x0e رو در هشت بیت بالایی رجیستر AX قرار بده، یکی از روتین های بایوسه. در واقع بایوس میفهمه که بوت سکتور، این برنامه ست. خط دوم میگه کرکتر A رو در هشت بیت پایینی همون رجیستر قرار بده. در خط سوم ما یک وقفه (توجه کنید INT توی اسمبلی مخفف Interrupt یا «وقفه» است نه Integer .) ایجاد کردیم. وقفه 0x10 در بایوس برای نمایش کرکتر ها به کار میره (البته توی روتین 0x0e). در خط چهارم با استفاده از دستور پرش، برنامه رو تا ابد باز نگه داشتیم، که وقتی سیستم عامل بوت میشه همچنان روشن بمونه. یکی از سخت ترین خط ها از نظر درک، خط پنجمه. خط پنجم چی کار میکنه؟ ۵۱۰ بایت اول دیسک (این سیستم عامل میتونه از روی یک فلاپی یا هارد دیسک یا هر دیوایس دیگری بوت شه) رو با صفر پر میکنه و حالا چرا؟ چون ما میخوایم در دوبایت نهایی، عدد جادویی 0xaa55 رو قرار بدیم که بوت سیستم عامل بهش وابسته است.

بسیار خوب، تا اینجای کار فهمیدیم که این کد چی کار میکنه. حالا با nasm کد رو اسمبل میکنیم تا به یه فایل قابل بوت شدن برسیم :

کد   
nasm -f bin -o my16bitos.bin my16bitos.asm

اکنون در دایرکتوری جاریتون، باید فایل my16bitos.bin رو ببینید. کافیه تا با qemu اجراش کنید به این شکل :

کد   
qemu-system-i386 my16bitos.bin

پس از اجرای دستور و باز شدن پنجره مربوط به QEMU ، و نمایش اطلاعات مربوط به QEMU ، شاهد نمایش حرف A خواهید بود. تبریک میگم! این اولین تلاش شما برای ساخت یک سیستم عامله! در قسمت بعدی این سیستم عامل رو کامل تر میکنیم تا بتونه یه سری اطلاعات رو از کاربر بخونه و جواب بده.

پس تا مطلب بعدی خداحافظ!

Share

استفاده از اسمبلر MASM روی لینوکس

اگر شما هم هم رشته من باشید و زبان ماشین برداشته باشید، به احتمال بسیار بسیار بالا استاد این درس، کدهایی بهتون میده که با MASM اسمبل میشن، و طبیعتا شما ناراحت خواهید شد که چرا این اسمبلر نسخه لینوکسی نداره و … 😀 . و جالبه بدونید راهی که توی این پست به شما ارائه میکنم، نه تنها برای لینوکس و سیستم عاملهای غیر از ویندوز، بلکه روی ویندوز ۶۴ بیتی هم باید اجرا بشه.

اولین چیزی که نیاز دارید، این هست که یک ایمولاتور برای شبیه سازی محیط سیستم عامل قدیمی DOS تهیه کنید. برای ویندوز و لینوکس و BSD ها و … ، نرم افزاری ارائه شده به اسم DOSBox که محیط داس رو شبیه سازی میکنه. توی اوبونتو/دبین با این دستور نصب میشه :

کد   
sudo apt-get install dosbox

سپس، شما نیاز به دانلود اسمبلر MASM دارید که میتونید از اینجا دانلودش کنید.

پس از دانلود MASM و خارج کردن اون از حالت فشرده، حالا نیازمند اجرای داس باکس و سوار کردن پوشه MASM هستید. برای این کار ، داس باکس رو اجرا کنید، و دستورات زیر رو درون شل داس تایپ کنید :

کد   
mount f ~/masm
f:

دستور mount پوشه ای که آدرسش را به عنوان ورودی دریافت کرده را درون یک درایو مجازی به نام F سوار میکند و با دستور بعدی، به آن درایو مجازی میرویم. (توجه کنید که پوشه MASM در پوشه خانگی قرار داده شده است. چنانچه در آدرس دیگری قرار داده اید باید مسیر را عوض کنید)

حالا میتوانید با اجرای MASM.EXE یا ML.EXE ، کدی که به زبان اسمبلی نوشته اید را اسمبل کنید.

موفق باشید 🙂

 

Share

ساخت توزیع لینوکس غیرمستقل بدون نیاز به اسکریپت

اصولا برای نوشتن و ساختن یک توزیع لینوکس، شما نیاز به این دارید که یک اسکریپت یا نرم افزار مخصوص تهیه لایو دیسک رو استفاده کنید. اما این که پشت اون نرم افزار ها چی میگذره؟! این مهمه. خب این نرم افزارها معمولا اسکریپت هستند ( و اگر نباشن هم سورسشون موجوده) ، پس میشه با نگاه به کد، به راحتی پی برد که اون پشت چی میگذره. ولی برای این که این راه رو تست کنید، نگاهی به این مطلب من بندازید. بیاید اول ببینیم ساختار دیسک اوبونتو چیه و چطوره؟!

کد   
(CD ROOT)
|-------+casper
|	|-------filesystem.${FORMAT}	
|	|-------filesystem.manifest
|	|-------filesystem.manifest-desktop
|	|-------vmlinuz
|	|-------initrd.img
|
|-------+boot
|	|--------+grub
|	|	 |--------grub.cfg
|	|
|	|-------memtest86+
|
|--------md5sum.txt

 

توی دیسک اوبونتو، همه چیز به شکل بالا چیده شده! همه برنامه ها و کتابخانه ها (و به طور کلی کل سیستم عامل) داخل پوشه کسپر قرار دارند، و همچنین ملزومات بوت شدن سیستم عامل، توی boot . برای لایو بوت شدن هم از تکنولوژی AuFS استفاده میشه (بعدا در موردش مطلبی خواهم نوشت). اما اگر بخوایم ریز تر شیم، بازهم بهتره به توضیحاتی که سازنده های اوبونتو دادن توجه کنیم :

کد   
/casper/filesystem.${FORMAT}: This is the container of the linux filesystem we are going to copy from our harddisk. It is usually a compressed filesystem like squahsfs.
 
 
 
    /casper/filesystem.manifest: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
 
 
 
    /casper/filesystem.manifest-desktop: This file is optional. You only need it if you decide to include the Ubuntu installer in the CD. The purpose of this file will be explained later.
 
 
 
    /casper/vmlinuz: The linux kernel. This is copied form the linux filesystem.
 
 
 
    /casper/initrd.img: the initramfs that contain the customizations necessary for the live CD/DVD.
 
 
 
    /boot/grub/grub.cfg: File containing boot options for the live CD/DVD.
 
 
 
    /boot/memtest86+: Optional file used to test the RAM of the machine form the live CD/DVD.
 
 
 
    /md5sum.txt: Optional file containing checksums for all the files in the CD.

پس اسکریپت هایی که برای «ریمسترینگ» استفاده میشن، این کارها رو میکنند و چنین برنچی رو برای ما میسازند. خب برای ساخت چنین چیزی باید چه کار کنیم؟ قبل تر در مورد ساخت توزیع مطلب نسبتا زیادی نوشتم، چه تو وبلاگ قبلی که روی بلاگفا بود و چه توی این وبلاگ. اما اگر واقعا میخواید کار مشابه اسکریپتی مثل ReLinux انجام بدید، به این لینک سر بزنید.

این روش روی چه توزیع هایی کار میده؟!

این هم سوال بسیار خوبیه، میشه گفت هر توزیعی که ساختار مشابه اوبونتو داشته باشه. حتی اگر شما بخواید توزیعی بر مبنای آرچ لینوکس ارائه بدید، میتونید ازش استفاده کنید، ولی احتمالا زحمت زیادی خواهد داشت براتون. اگر توزیع مبدا ساختار مشابه نداشته باشه، احتمالا نتونید چنین توزیعی ازش بیرون بکشید ولی اگر تونستید هم به احتمال بسیار قوی توزیع جدید ساختار تازه ‌ای ارائه خواهد کرد. به زودی هم لینکی که دادم رو ترجمه میکنم 🙂

موفق باشید!

 

Share

به بهانه سه سالگی!

امروز وقتی داشتم هاست و دامنه رو تمدید میکردم، به تاریخ اولین فاکتور نگاه کردم، مرداد ماه ۹۱ اولین فاکتور بود و چهارمین فاکتور رو در چهارمین سال فعالیتم در وبلاگ نویسی، پرداخت کردم. با خودم گفتم چقدر سریع گذشت! حالا نمیخوام وارد ناله ها و بحث های فلسفی و خسته کنندگی همیشگی بشم. بیاید به وبلاگ، یه طور دیگه تبریک بگیم! تاحالا فکر کردید چرا اولین رشته ای که در یادگیری برنامه نویسی چاپ میکنید Happy Birthday نیست؟ خب بیاید این رو امروز چاپ کنیم! چندین زبان متفاوت از زبان هایی که قبلا در موردش بحث کردیم، امروز سوژه پستمونن. زبان هایی که مدت زیادی سراغشون نرفته بودم، یا تازه باهاشون آشنا شدم. این هم میتونه بهانه خوبی باشه برای کمی کد زدن 🙂

۱. Lua

کد   
print('Happy Birthday!')

۲. Scheme

کد   
(display "Happy Birthday!")

۳. Erlang

کد   
io:fwrite("Happy Birthday").

۴. Javascript

کد   
alert("Happy Birthday");

۵. bash

کد   
echo "Happy Birthday"

بله و این هم زبان های جا افتاده و یا زبانهایی که برام نا آشنا بودن و تازه باهاشون آشنا شدم (البته فقط Scheme چنین حالتی رو برام داشت). توی این سه سال کلی بحث و مطلب و … از این بلاگ اومد بیرون، در کنارش، مدت نسبتا زیادی که به لطف مبین نت دوست داشتنی، نت درست و حسابی نداشتم، وبلاگ رول توییتر من رو هم داشت 😀 . حالا همه چیز رو به جای خود دارم استفاده میکنم، وبلاگ و توییتر و فیسبوک و … . یه سری کارها هم بود که قرار بود بعد از «کنکور» انجام بدم، خب الانم بعد کنکوره (تا زمانی که دوباره بخوام کنکور بدم برای ارشد 😀 ) و خب وقت زیاده برای انجامشون. چیزایی مثل پادکست و ویدئو کست و … . و در آخر هم تشکر میکنم از همه کسایی که این وبلاگ رو توی این ۳ سال، دنبال کردن و خوندن 🙂

 

Share

ملاقات با اوبونتو ۱۵.۰۴

Screenshot from 2015-04-24 16:09:07پنجشنه، نسخه جدید اوبونتو، یعنی ۱۵.۰۴ منتشر شد. این نسخه، اولین نسخه منتشر شده در سال ۲۰۱۵ و در ماه آپریل، یعنی ماه چهارم هست و طبیعتا بخاطر همین نامش میشه ۱۵.۰۴ . در این تاپیک قصد بررسی فنی ندارم، فقط تنها خوبیش برام این بود که مینت مزاحم رو پاک کردم و این رو جاش نصب کردم. نسخه بعدی، ۶ ماه دیگه یعنی در ماه ۱۰ میلادی منتشر میشه. هنوز جزئیاتی ازش منتشر نشده. در مورد این نسخه بخوام بگم (۱۵.۰۴) باید بگم که در یک کلام «عالی» بود. تقریبا همه نسخه هایی که روی لپتاپی که یک سال از عمرش میگذره نصب کردم، خیلی خیلی خوب جواب دادن. تست ها و Review های دیگر هم همینو میگن :).

نرم افزار پخش ویدئوی این نسخه هم ظاهر جالبی پیدا کرده :

Screenshot from 2015-04-25 01:24:41تقریبا این نرم افزار رو ظاهرش  رو به مینیمالیست ترین شکل ممکن باز-طراحی کردن (بابت عکس ترسناکش معذرت! این کنسرت تنها ویدئوی موجود بود اون موقع که داشتم تست میکردم نرم افزارها رو!).

خلاصه که تغییرات زیادی کرده این نسخه و در یک مطلب طولانی، در موردش بیشتر خواهم نوشت 🙂

Share

تازه وارد مایکروسافت اینجاست!

همونطوری که میدونید، مایکروسافت چند روزی میشه که ویندوز ۱۰ رو ارائه کرده. اگر اکانت مایکروسافت داشته باشید میتونید توی مایکروسافت اینسایدر لاگین کنید، و نسخه آزمایشی رو دریافت کنید. خب، من هم منتظر بودم که راهی پیدا کنم تا بتونم دانلودش کنم، پس نتیجتا اونجا لاگین کردم و بعد به این لینک هدایت شدم. در این لینک یک سری لینک دیگه بود برای دانلود ویندوز ۱۰ به زبان های مختلف! منم نسخه انگلیسی (آمریکایی) رو با معماری ۶۴ بیتی که حجمی حدود ۴ گیگابایت داشت رو دانلود کردم.
جالب تر اینجا بود که این کد رو هم مایکروسافت اونجا گذاشته بود اما نیازی بهش نشد موقع نصب :

 Product key: NKJFK-GPHP7-G8C3J-P6JXR-HQRJR 

نصب در Virtual Box

خب، من اولش تصمیم گرفتم که این نسخه از سیستم عامل رو توی ویرچوال باکس تست کنم، اما ویندوز خودش ارورهای متعددی داد که باعث شد نتونم این سیستم عامل رو با استفاده از ویرچوال باکس، نصب و تست کنم!

نصب در VMWare

خب، از اونجا که توی ویرچوال باکس تلاشم ناکام موند، رفتم سراغ این لینک و وی ام ویر رو دریافت کردم. بعد از دریافت وی ام ویر، یکم سرچ کردم و لیستی از سریال هایی که کار میکنن رو هم پیدا کردم. یکی از این سریال ها رو زدم، و بعد وی ام ویر اکتیو شد! وارد محیطش شدم و طبق روال عادی یک ماشین مجازی ایجاد کردم، فایل دریافت شده رو بهش دادم و مراحل نصب رو پیش گرفتم.

بعد از نصب

بعد از اینکه عملیات نصب تموم شد، و ویندوز ریبوت کرد، دوباره پنجره ای باز شد و ازم خواست تا اطلاعات مربوط به اکانت مایکروسافت رو هم وارد کنم. وقتی واردش کردم، آخرین تنظیمات (مثل والپیپر و… ) که روی ویندوز ۸.۱ (که الان از روی لپتاپم حذف شده!) اعمال کرده بودم رو خوند و دسکتاپم رو با آخرین والپیپر قرار داده شده، بهم نشون داد :
Untitled

خب، دکمه ویندوز روی کیبرد رو که بزنید، باید استارت منو رو بهتون نشون بده. این یک قاعده ویندوزی هست (که البته در ۸ و ۸.۱ بجای استارت منو، میحط مترو رو نشون میداد!). خیلی خوب، استارت منوی این نسخه، ترکیبی از مترو و استارت کلاسیک هست .

Untitled2

بعدش، رفتم سراغ سرچ این نسخه، این نسخه سرچ بهتر و سریع تری نسبت به ۸.۱ داره، و علاوه بر سرچ در خود ویندوز، در وب هم با استفاده از موتور جست و جوی bing ، سرچی رو برای شما انجام میده :
Untitled4

همونطور که دیدید، در قسمت Store هم برنامه هایی که اسم مشابه کلمه مورد نظر دارن پیشنهاد داده میشن، و در قسمت Web هم کلیدواژه های پرکاربردی که حاوی کلمه مورد نظر شما بودن، نشون داده میشن.

و اما عکس آخر، بدون شرح!
Untitled3

جمع بندی نهایی

خب، هنوز وقت نکردم زیر و بم این سیستم عامل رو چک کنم و ببینم که چی به چی هست، حتی اینترنت اکسپلورر (دم دست ترین برنامه!) رو هم چک نکردم. خب طبیعی هست که الان نمیتونم جمع بندی خوبی ارائه بدم. در کل میتونم بگم نسبت به نسخه های پیشین ویندوز، بسیار بهتر شده و البته چون اجرا مجازی بوده، نمیشه در این مورد هم نظر قطعی داد 🙂 . یه دور باید روی لپتاپ خودم تستش کنم تا بفهمم چی به چیه. در آینده، مطالب بیشتری در موردش خواهم نوشت 🙂

Share

نخستین دیدار با تکشاخ کنونیکال

Screenshot from 2014-10-25 22:16:00

خب، نسخه ۱۴.۱۰ از سیستم عامل گنو/لینوکس، توزیع اوبونتو، که توزیع محبوب و مورد  استفاده من هست هم منتشر شد. نام این نسخه Utopic Unicorn یا «تکشاخ اتوپیایی» گذاشته شده. شاید چون قراره که اوبونتو در این نسخش، به اتوپیای خودش برسه، این نام رو براش انتخاب کردن.

در این نسخه، هسته 3.16 مورد استفاده قرار گرفته و طبق معمول، همه قطعات لپتاپ Lenovo G510 من رو شناخت، البته به جز کارت شبکه بی‌سیم که broadcam هست و درایورهای انحصاریش رو از مخازن نصب کردم و کار کرد و الان دارم این مطلب رو برای شما مینویسم. طبق عادت مالوف، در این میان چندین شات قرار میدم :

Screenshot from 2014-10-25 22:14:05

تصویر بالا، اولین سکانسی هست که هر اوبونتو کاری مشاهده میکنه!!! محیط اصلی یونیتی به اضافه والپیپر چند رنگ اوبونتو که تم بنفش داره 🙂

Screenshot from 2014-10-25 22:14:13خب، این صحنه هم آشناست، Dash که بعد از فشردن کلید سوپر (که روی اکثر کیبرد ها با لوگوی ویندوز مشخص شده) ، باز میشه و میتونید آخرین فایلها و اپلیکیشن های باز شده، موزیک ها، ویدئوها و … رو از این طریق ببینید.

Screenshot from 2014-10-25 22:14:36با این که عمدتا ترجیح میدم از ترمینال برای دانلود و نصب برنامه ها استفاده کنم، اما این هم مرکز نرم افزار محترم، یعنی همون Software Center هست که در تمامی نسخه های اوبونتو عمدتاً با همین شکل و قیافه ظاهر میشه.

Screenshot from 2014-10-25 22:15:18و در آخر، مرورگر فایرفاکس که ذهن زیبا رو باهاش باز کردم. این هم به نوبه خودش جالبه، نه؟! مرورگر فایرفاکس هم در اوبونتو، حق آب و گل داره و از ابتدا باهاش بوده. البته فایرفاکس در توزیع های دیگری هم مرورگر پیشفرض هست، اما اوبونتو و فایرفاکس دو یار دیرینه هستند.

در پایان، باید بگم که این نسخه هم در ابتدای امر بسیار خوب و روان اجرا شده و هیچ مشکلی برای شخص من نداره، فقط باید دوباره طبق معمول برم سراغ اوکی کردن بوت ویندوز ۸.۱ که همراه این سیستم عامل، روی لپتاپ Lenovo G510 من نصب شده. راستی، تا یادم نرفته بگم که با کلید های ترکیبی Super + Space میتونید زبان رو عوض کنید. سعی کردم به Alt + Shift تغییرش بدم، اما نشد.

موفق باشید 🙂

Share

کتاب جدید اوبونتو برای تازه واردها

خب، خیلی از خوانندگان این وبلاگ میدونن اوبونتو چیه و چی کار میکنه. اوبونتو در کل سیستم عامل ساده ای هست، ولی همین سادگی باعث میشه که خیلی ویژگی های این سیستم عامل قدرتمند، به چشم نیاد. بچه های وبسایت آزاد راه که یکی از بهترین منابع لینوکسی و در کل اوپن سورس فارسی هم محسوب میشه، کتابی تحت عنوان «اوبونتو برای تازه واردها» منتشر کردند. این کتاب الکترونیکی هست و به صورت PDF قابل دریافت و خواندن هست. همچنین به گفته وبسایت خود کتاب، نسخه ePub هم در حال انتشار هست (یک امتیاز مثبت برای ساسان، نوا و احمد، چرا که ePub به خوبی با اکثر دستگاه های هندست، مثل اکثر گوشی های موبایل و تبلت ها سازگار هست).

خب، من این کتاب رو دانلود کردم و فهرستش رو خوندم، هنوز خودش رو نخوندم (یه بار یه کتاب فروش به من گفت که کتاب خوب از فهرستش مشخص میشه). در این کتاب همه چیز به خوبی آموزش داده شده (با توجه به فهرستش + کتاب اوبونتو ۱۲.۰۴) پس مشکلی برای تازه کار ها نخواهد بود.

برای این که این کتاب رو به اشتراک بگذارید این پست آزاد راه رو میتونید جاهای مختلف به اشتراک بگذارید. البته، این هم وبسایت خود کتاب هست و میتونید کتاب رو دانلود کنید و لینک دانلودش رو هم به بقیه بدید :).

 

Share

داستان لینوکس، کتابی که باید بر بستر اینترنت خواند.

فکر کنم اکثر خواننده های وبلاگ من، حداقل کسانی که از طریق فرومهای اوبونتو و … با وبلاگ من آشنا شدند، لینوس تروالدز رو بشناسند، کسی که دوست داشت سیستم عامل خودش رو بنویسه و این کار رو هم کرد و نام سیستم عاملش شد لینوکس، و این لینوکس الان یکی از ایمن ترین و پر کاربر ترین سیستم عاملهای جهان هست که در قالب «توزیع ها» خود نمایی میکنه! توزیع هایی مثل دبیان، آندروید، اوبونتو، ردهت انترپرایز و …! کلی تفاوت بصری، اما یکسان در هسته!

جادی رو هم اکثرا میشناسید، وبلاگ نویسی که نثر قشنگی داره و البته یک صدای گرم، پادکست «رادیوگیک» رو میخونه و من هم معمولا وبلاگش رو دنبال میکنم :).

کتاب Just For Fun (فقط برای تفریح) یک اتوبیوگرافی (خودزندگی نامه یا حسب حال نامه) به قلم شخص لینوس هست، و توسط جادی ترجمه شده. زمانی که جادی نتونسته از طریق قانونیش، کتاب رو منتشر کنه، تصمیم گرفته تا اون رو آنلاین منتشر کنه :

من سال ها پیش کتاب Just For Fun که مربوط به زندگی لینوس توروالدز و نوشته شدن لینوکس است رو ترجمه کردم ولی ارشاد بهش مجوز چاپ نداد. حالا تصمیم گرفتم آنلاین برای بقیه بذارمش و اینجا آپلودش کردم: www.LinuxStory.ir . خوشحالم می شم بخونین و به دیگران معرفی کنین چون به نظرم نشون دهنده بخشی از فرهنگی است که لینوکس زاده اونه.

منبع هم حرف جادی در فروم اوبونتو هست.

خوندن این کتاب آسونه! تنها نیاز دارید تا به اینترنت دسترسی داشته باشید و بتونید اسکرول کنید! یا یک نرم افزار PDF خوان داشته باشید!

این هم لینک داستان لینوکس!

Just_for_Fun_cover

 

Share