close

Вход

Забыли?

вход по аккаунту

?

Kursovaya OSiO Kostousov

код для вставкиСкачать
???????????? ??????????? ? ????? ?????????? ?????????
??????????? ??????????????? ????????? ??????????????? ?????????? ??????? ????????????????? ??????????? "?????-????????????? ??????????????? ??????????????? ???????????"
????????? ?????????? ? ?????????????? ??????????
???????? ??????
??????????: ???????????? ??????? ? ????????
????: Linux. ?????????? ??????????.
?????????????: 010503 "?????????????? ??????????? ? ????????????????? ?????????????? ??????"
????????: ????????? ?.?.
???????______________ ?????????????: ????? ?. ?.
???????______________ "____" ____________ 2012 ?. ?????-?????????
2012
??????????
????? ????????3
?????????? ??????3
???????4
????? ???????? ? ???????4
?????? ????????? 1led.c5
?????? ????????? 2cd.c5
?????? ????????? 3musicbox.c5
????????????6
?????? ???????????7
?????????7
??????????8
????? ????????
???? "???????????? ??????? ? ????????" ????????? ?? ???????????? ? ???????? ??????????????? ? ????????????? ????????? ???????????? ??????, ? ????????? ????????? ???????????? ? ??????????? Windows ? Linux.
?????? ?????????????? ?????????, ??????????? ? ???? ????????? ???????????? ??????? ???????? ???????????? ??????, ?? ?????????, ???????????? ?????????? ? ?.?., ???? ??????? 7 ???????????? ?????, ????? ??????? ???? ???????????????? ???????????? ? ??????????????? ? ?????????? ??????????? ???????????? ?????? ?????????? ???? ????????.
?????? ????? ????? ???????? ??????, ????????? ? ?????????? ???? ?????????? ??? ??????? ????????? Linux, ????????? ????? ???? ????????????????, ??? ?++.
?????????? ??????
????? ?????? ?????? ???? ????????? ??????? ???????????????? ? ?????????????? ????????? ? Unix ???????? ????????.
??? ????????????? ?????? ???? ???? ?????????? ????????? ??????:
- ?????????? ?? ???????????? ?????????? ???? ?? Unix ???????? ??????;
- ???????? ?????????? ??? Linux, ??????????? ???????????? ?????????? CAPS, SCROLL, NUM lock ????? ??????? ??????? tty(4) ? ??????????? ?????????? ???????? ? ?????????? ??????? ??????: ??????? ????, ????????? ????????, ???????????;
- ???????? ?????????? ??? Linux, ??????????? ?????? CD-??????? ????? ??????? cdrom ? ??????????? ????????? ?????????? ?????? ?? ?????? '?????????': ????? ??? ?????, ????? ??????;
- ???????? ?????????? ??? Linux, ??????????? ?????????? ???????? ????? ??????? pcspkr ? ??????????? ????????? ?????????????? ???????? ????????: ??????, ?????????? ?????.
???????
??? ?????????? ???????????? ????? ???? ??????? ???????????? ??????? Ubuntu 12.10. ? ??????? ????????? LinuxLive USB Creator 2.8.18 ???? ??????? ??????????? flash-??????????, ? ???????? ?????? ????????? ????? ???????????? ???????. ????? ????????? ???????? ?????????? Boot ? BIOS, ???? ??????????? ????????? Ubuntu ??????????? ? ??? ????????????? Windows (??????? ????? ????? ???? ?????????? ????????? ?????????).
???? ????? ??????????, ???? ???????? ????????? ????????? 1led.c, 2cd.c, 3musicbox.c.
????? ???????? ? ???????
??? ??????? ???????? ???????? ????????? ????????:
1. ???????? ????????? (????? ??????????????? Ctrl + Alt + T);
2. ??? ???????? ????? ????? ???????????????:
ls (??????? ?????? ?????? ? ????????? ?? ???????, ????? ???????????? ??? ???????? ??????? ????? ? ?????? ??????????);
nano (????? ???????? ? ?????????).
3. ?????????? ????????? ??????????? ??????????, ??? ????? ?????? ???????:
gcc -o program_name program_name.c, ???:
gcc (??? cc) - ?????????? ?;
-? - ???????? ??? ?????? ?????????? ? ????;
program_name - ??? ???????? ???????????? ?????;
program_name.c - ???????? ???? ? ????? ??????????.
??? ???????? ???? ????????? ??????? ??????? ? ?????????? ~/bin ?????? ?????????? /Home. ??? ???????? ????????? ????????? ?? ????? ??????? ??????????. ??????? ?? ????? ? ??????? "mkdir".
4. ?????? ?????????????? ? ??????? ???????
sudo ./program_name *parameters*, ???
sudo - ????? ?????????????????, ??????? ????????? ????? ??????;
./program_name - ?????????? ? ??? ???????????? ?????;
*parameters* - ???????????? ????????? ?????????? ?????????.
5. ????????? ?????????? ?????????.
???. 1. ??????????? ???????????? ?????????? ???? 3-? ???????? ? ????????? 3-? ??????????? ??????. ?????? ????????? 1led.c
sudo ./led 1
????????? ???????? ? ?????? "1" - ??????????? ??????? ??????? ?? ??????????? ??????? ?????? ????????. ??? ????? ?????????? ???? ?? 3 ???????? ??? ????, ????? ??????? ioctl(fd,KDSETLED,LED[j]) ? ???????? ????????? ?????????? ?????????? ?? ??????? ????????????? ??????? ?? ???????????. ??????? ???????????? ????? ????????? ? ?????????? (ioctl(fd,KDSETLED,0)) ??????????? ????? ????????? ????????? ???????. ????????? ????????? 25 ????????, ????? ???? ?? ????? ????? ?????????? ? ?????????.
sudo ./led 2
????????? ???????? ? ?????? "2" - ????????? ??????? ?????? ?? ???????????. ????????? ?????????? ???????? ?????????? ????? ???????: ioctl(fd,KDSETLED,LED[rand()%3]). ????????? ????????? 25 ????????, ????? ???? ?? ????? ????? ?????????? ? ?????????.
sudo ./1keydoardLED ???
??? ???????? ????? ?????????? ????? ?????? ????????? ?? ??????, ????? ???? ?? ????? ????? ?????????? ? ?????????.
?????? ????????? 2cd.c
sudo ./cd
? ?????? ?????? ?????? ???????????? ??? ??????????. ????????? ???????? ???????? ????????? (ioctl(fd,CDROMEJECT,0)) ? ??? ???????? (ioctl(fd,CDROMCLOSETRAY,0)) ??????????? ??????? "?????" ??? ????????? ? ?????? "???????? ?????".
?????? ????????? 3musicbox.c
sudo modprobe pcspkr
sudo ./ music
????? ???????? ????????? ?????????? ???????? pcspkr - ?????? ????????????? ??????????. ????? ??????? ????????? ??????????????? ???????, ???????????? ???????????:
1 - ?????? ?????? (?????????? ? ???????? ??????? ???????? ???????)
2 - ?????? ?????????? ?????
3 - ??????????????? ?????????? "? ???? ???????? ??????".
?????????? ?? ??????????? ??????? ? Windows MVS ? ??????? ??????? beep. ????? ?? ????????????? ?? 10-?? ??????? (? ??????? ???????? beep) ????????? ? 16-?? (? ??? ??????????? ????????? ??????) ? ??????? ????? ????????: 1193180/frequency. ??? ???? ????????, ?? ???? ??????????????? ? 16-?? ??????? ?????????. ????? ????????????????? ??? ??????? ????????? ???????? ?????????, ??????? ?? 1000. ???????? ??????? ???? ?????, ????? ????????? ?????????? ??????: http://ubuntuforums.org/showthread.php?t=873679.
????????????
? ?????? ??????? ???????????? ??????????? ????? ???????? ??????? ????????. ??? ??? ????????? ????????? ??????????? ? ???????????.
????? ????????????? ????????????:
sudo strace program_name
???. 2. ????? ??????, ?????????? ????? ??????????? ?????? ?????????.
??? ?? ?????, ? ???? ?????????? ?????? ?????????, ??????? ??????????? ???????? ??????????1, ???????? ???????? ????? 3, ?? ???? ??????????????, ? ?????? ?????????. ????? strcmp - ???????? ??????????, ioctl - ????????? ?????? ??????? ? ??????????????? 19250 ? ?????????? ? 16-?? ??????? ?????????. ??? ????????? ??????? ??????? 0, ??? ??????????? ???????????? ?? ??????.
??? ?????? ????????? ????? ??????? ?????????: ??????? ??????????? ??????, ????? ??????????? ????????, ????? ??????????????? ???????? ???????, ????? ???????? ??????????? ? ??? ?????.
?????? ????????? ????? ????????? ???????? ?? ???? 3-? ???????.
??? ???????????? ????????? ????? ??????????? ?? ??????????, ??? ??????? ???????? cd ????? ? ??? ???????? ??? ???????. ???? ???????? ????????? ??????????:
???. 3. ????? ??????, ?????????? ????? ??????????? ?????? ????????? ?? ??????????, ??? ??????? ???????? cd ????? ? ??? ???????? ??? ???????.
?????, ??? ? ??????? ????????? ? ?????????????? ????????, ???????????? -1, ????? ???? ????????? ??????????? ??????. ??? ?????????? ???????? ????????? ?? ??????? ?????????? (??? ?????? ???????). ??? ????????? ? ???????? ? ?????????????? ????????, ??????? ?????? ?????? ?????-??????, ??? ???? ???????.
?????? ???????????
???? ??????? ??????????? ???????????? ??????? Ubuntu ????????? Linux.
???? ??????????? 3 ??????????, ?????? ?? ??????? ????????. ???? ???? ?????????? ?????? ????????????? ????????? ??? ?????????? ???????????? ???????????, ??? ??:
- ????????????? ??????????? ??????;
- ????????? ????? ????????, ? ????????? ?? ?????????? ?????????, ?? ?????? ? ???????;
- ???????????? ?????? ? ??????? ??????????? ???????, ???????? ????????? ???????? ? ??? ??????? ????????, ????????? ? ???????????.
?????????
1. http://ubuntu.ru/
2. http://lxr.linux.no/linux/
1. http://www.linuxmanpages.com/man4/console.4.php 4. http://www.linuxmanpages.com/man4/console_ioctl.4.php
5. http://lxr.linux.no/linux+v3.6.6/Documentation/ioctl/cdrom.txt#L251
6. http://lxr.linux.no/linux+v3.6.6/Documentation/ioctl/cdrom.txt#L270
7. http://ru.wikipedia.org/wiki/%D0%A9%D0%B5%D0%BB%D0%BA%D1%83%D0%BD%D1%87%D0%B8%D0%BA
8. http://ru.wikipedia.org/wiki/%D4%E0%E9%EB%EE%E2%FB%E9_%E4%E5%F1%EA%F0%E8%EF%F2%EE%F0
9. http://ubuntuforums.org/showthread.php?t=873679
10. man - (manual) - ??????? ?????? ??????? ????? ???????? (manual)
??????????
1. ????????? 1led.c
#include <stdio.h>
int main( int argc , char *argv[])
{
int fd = 0;
char leds;
int i=0;
char LED[] = {LED_NUM,LED_CAP,LED_SCR};
int inter = 0;
fd = open("/dev/console",O_RDWR);
if(fd<0) {
perror("open(/dev/console)");
return 1; }
ioctl(fd,KDGETLED, &leds);
if (argc != 2)
{
printf("%s\n","Error. Rewrite parametrs!");
return 2;
}
if(strcmp(argv[1],"1")==0)
{
int j=0;
for(i=0;i<25;i++)
{
for(j=0;j<3;j++)
{
ioctl(fd,KDSETLED,0);
ioctl(fd,KDSETLED,LED[j]);
usleep(100000);
} }
} if(strcmp(argv[1],"2")==0)
{
for(i=0;i<25;i++)
{
ioctl(fd,KDSETLED,0);
ioctl(fd,KDSETLED,LED[rand()%3]);
usleep(100000);
} }
close(fd);
return 0;}
2. ????????? 2cd.c
#include <stdio.h>
#include <signal.h>
#include <linux/kd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/cdrom.h>
int main(int argc, char* argv[])
{
int fd;
int i =0;
int frequency[]={300,0,300,0,300,0,250,0,350,300,0,250,0,350,300,0};
int duration[]={500,50,500,50,500,50,500,50,250,500,50,500,50,250,500,50};
fd = open("/dev/sr0", O_RDWR|O_NONBLOCK);
if(fd<0) {
perror("open(/dev/cdrom)");
return 1; }
for(i=0;i<16;i++)
{if((i==0)||(i==8)) {ioctl(fd,CDROMEJECT,0);}
if((i==5)||(i==13)) {ioctl(fd,CDROMCLOSETRAY,0);}
if(frequency[i]!=0) {frequency[i]=1193180/frequency[i];}
ioctl(fd, KIOCSOUND, frequency[i]);
usleep(1000*duration[i]);
}
close(fd);
return 0;}
3. ????????? 3musicbox.c
#include <stdio.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/kd.h>
#include <sys/types.h>
#include <fcntl.h>
int main(int argc, char* argv[]){
int fd;
int i = 0;
int j = 0;
fd = open("/dev/tty0", O_WRONLY);
if(fd<0)
{perror("open(/dev/tty0)");return 1;}
if (argc != 2)
{printf("%s\n","Error. Rewrite parametrs!");
return 2; }
if(strcmp(argv[1],"1")==0)
{for (j=0;j<5;j++)
{int frequency = 0x0384;
int deltafreq = 0x000A;
for(i=0;i<200;i++)
{frequency=frequency+deltafreq;
ioctl(fd, KIOCSOUND, frequency);
usleep(10000);}
for(i=0;i<200;i++)
{
frequency=frequency-deltafreq;
ioctl(fd, KIOCSOUND, frequency);
usleep(10000);
}
}
}
if(strcmp(argv[1],"2")==0)
{
int frequency;
int duration[] = {300, 900, 300, 900, 100, 400, 100, 1000};
for(i=0;i<5;i++)
{
for(j=0;j<8;j++)
{
frequency = 0x0064;
if (j%2==0) {frequency=0;}
ioctl(fd, KIOCSOUND, frequency);
usleep(1000*duration[j]);
}
}
}
if(strcmp(argv[1],"3")==0)
{
int frequency[] = {247, 417, 417, 370, 417, 329, 247, 247, 417, 417, 370, 417, 497, 0, 497, 277, 277, 440, 440, 417, 370, 329, 247, 417, 417, 370, 417};
for(i=0;i<27;i++)
{
if(frequency[i]!=0) {frequency[i]=1193180/frequency[i];}
ioctl(fd, KIOCSOUND, frequency[i]);
usleep(500000);
}
}
ioctl(fd, KIOCSOUND, 0);
close(fd);return 0;}
1 ???????? ?????????? - ??? ??????????????? ????? ?????. ????? ????????? ????? ????? ?????-??????, ???? ?????????? ????????, ?????????? ????? ?????-??????, ??? ???????? ?????????? (Wikipedia.org).
---------------
------------------------------------------------------------
---------------
------------------------------------------------------------
1
Документ
Категория
Без категории
Просмотров
10
Размер файла
249 Кб
Теги
kursovaya_osio_kostousov
1/--страниц
Пожаловаться на содержимое документа