Kamis, 04 Juli 2019

Sistem Operasi 2B


REMASTERING PADA LINUX UBUNTU



A.  Pengertian Remastering
Remastering adalah suatu teknik mengubah, menambah, menghapus paket aplikasi yang berada pada suatu sistem operasi. Atau menentukan suatu paket aplikasi yang akan digunakan oleh suatu sistem operasi, lalu membuat baru nama dari sistem operasi tersebut, kemudian di backup dan di jadikan sistem operasi yang baru. Atau bahasa sederhananya membuat sistem operasi baru dengan paket-paket aplikasi yang diinginkan.

B.  Pengertian Remastering Distro Linux
Istilah Remastering sendiri sebenarnya adalah proses membuat master baru untuk sebuah album,film, atau ciptaan lainnya dari hasil cipta yang sebelumnya sudah ada. seperti pada proses memindahkan rekaman musik yang berasal dari media analog menjadi rekaman digital (hal ini lebih dikenal pada industri musik dan film), namun seiring dengan waktu istilah remaster tidak saja menjadi milik industri film dan musik, seperti halnya penggunaan istilah Virus Biologis pada bidang medis dan penggunaan istilah Virus Komputer pada industri software. Penggunaan istilah remaster pada linux sendiri mulai dipopulerkan oleh Klaus Knopper sang pencipta Distro Linux LiveCD-Knoppix yang mana Knoppix sendiri merupakan hasil remaster dari Debian.
Dalam bidang software remastering dapat diartikan sebagai sebuah proses pembungkusan ulang paket aplikasi pada sistem operasi dimana kita bisa menambah bahkan bisa juga mengurangi paket aplikasi yang disertakan. Bisa dikatakan bahwa remastering merupakan proses pembuatan sistem operasi baru dengan paket aplikasi yang berbeda dari sistem aslinya (default). Dengan remastering memungkinkan kita untuk menambah atau mengurangi paket aplikasi di sistem operasi yang ada dengan paket aplikasi yang baru.
Istilah lain yang biasanya digunakan adalah operating system deployment atau slipstream istilah ini biasanya dikenal dilingkungan windows.
Secara umum dapat diketahui bahwa tujuan dari remastering itu sendiri adalah membuat sebuah sistem operasi yang sesuai dengan kehendak pembuatnya, dalam hal ini bisa bertujuan khusus atau memang ditargetkan digunakan pada lingkungan tertentu. Hampir semua sistem operasi modern yang beredar sekarang seperti Windows XP, Vista, Seven, Ubuntu, Slackware, Debian dan sistem operasi modern lainnya dapat di remaster, tetapi dari sekian banyak Sistem operasi tadi kita tidak bisa sembarangan meremastering sendiri, karena dari sekian banyak Sistem operasi tersebut ada yang memiliki licensi dan peraturan (hak kepemilikan), baik sistem operasi itu sendiri maupun software yang digunakan dalam prosesnya.
Salah satu dari sistem operasi tersebut yang dapat diremaster secara bebas tanpa terikat akan license atau diwajibkan membayar adalah sistem operasi yang menggunakan Kernel Linux dalam hal ini Slackware, Debian, Ubuntu, dan lain-lain. Malah dalam banyak hal kita dapat dengan mudah meremaster sebuah distribusi GNU/Linux dibandingkan sistem operasi laiinya hal ini dikarenakan tersedianya software bantu dan dokumentasi yang dapat diperoleh secara bebas.

C.  Tujuan Remastering
a.    Membuat linux sendiri sesuai kebutuhan.
b.    Memperbaiki bug yang ada pada distro sebelumnya.
c.    Mengubah kernel agar system lebih compatible terhadap hardware yang ada pada pc atau laptop.
d.   Mengubah interface dan tampilaln agar desktop lebih friendly bagi user atau pengguna.

D.  Software remastering
Software remastering adalah sebuah software yang digunakan dalam proses memaketkan ulang sistem operasi dalam hal ini menambah atau mengurangi paket yang ada bahkan pada beberapa software memiliki fitur sampai pada level tampilan pengguna dimana kita bisa mengubah style, theme standar dari sistem operasi tersebut, berikut merupakan software yang remastering yang dikenal. Berikut merupakan beberapa software yang berjalan pada sistem berbasis kernel Linux:
1.    Remastersys
Remastersys merupakan tools yang terinspirasi dari fungsi mklive script pada distro Mandriva yang dapat digunakan untuk membackup sistem ada dua hal menarik yang dapat dilakukan remastersys pada distro linux debian based.
a.    Membuat full sistem backup termasuk personal data ke live cd/dvd yang dapat di gunakan di manapun dan dapat di instal (mirip ghost pada windows)
b.    Dapat digunakan untuk membuat salinan dari sistem anda untuk di bagikan ke teman- teman. Tapi tanpa ada data dari user sebelumnya.
2.    Reconstructor
Reconstructor adalah software yang mengijinkan pengguna ubuntu untuk memodifikasi ISO image Distro Ubuntu dan variannya dalam hal ini Kubuntu,Edubuntu,Xbuntu,etc. Reconstructor menghentikan pengembangan produk mereka dan sebagai gantinya berubah menjadi web-based application yang juga berfungsi sebagai mana aplikasi sebelumnya.
3.    Uck (Ubuntu reconstructor kit)
UCK merupakan kumpulan script yang dibuat untuk memodifikasi ISO image Ubuntu dan turunan nya, secara mudah UCK bisa disebut juga sebagai otomatisasi dari tools-tools (squash,mkisofs,dkk) remaster yang biasanya digunakan untuk memodifikasi Ubuntu image secara manual.
4.    Live script
Live Script merupakan sekumpulan shell script yang dibuat untuk membuat sebuah distribusi Linux Live dari sistem linux yang terinstall atau berjalan pada sistem, Linux Live Script sendiri biasanya digunakan pada Distribusi Slackware dan turunanya.
5.    Revisor
Revisor adalah tools dari distro Fedora untuk melakukan remaster distro Fedora. Dengan menggunakan Revisor maka kita cukup megubah paket-paket RPM. kita tidak perlu direpotkan dengan mengedit source anaconda lagi seperti cara manual meremaster Distro Linux Fedora.
6.    Mklive CD
MkliveCd adalah sekumpulan script yang digunakan untuk melakukan backup sistem (remaster) sistem operasi yang telah terinstall pada sistem mirip dengan remastersys pada distro berbasis Debian, Script ini biasanya digunakan untuk membuat linux live berbasis Mandriva seperti pada PC LinuxOS dan Unity Linux. Dimana kedua distro turunana mandriva tersebut memang dirancang untuk memberikan kemudahan dalam memodifikasi distro yang sudah ada.

E.  Remastering dengan Remastersys
Berikut adalah langkah-langkah remastering:
1.    Persiapan Hadware
Persiapan hardware disini sangat menentukan sekali terutama dalam masalah ruang kosong harddisk, dimana dalam proses remastering sendiri akan membutuhkan ruang kosong yang lumayan besar saya anjurkan di harddisk memiliki ruang kosong minimal 5GB dan direkomendasikan 10GB, makin besar ruang kosong yang tersedia makin baik. Untuk spesifikasi lainnya adalah Spesifikasi Processor dan besar RAM kedua hal ini akan berdampak ketika nanti kita melakukan compress pada file sistem (squashfs).
2.    Instalasi Sistem Operasi Ubuntu 18.04 Lucid Lynx.
F.   Konfigurasi Dan Persiapan Paket Instalasi
Sebelum mengubah system dan menambahkan serta megurangi paket ada beberapa hal yang harus kita lakukan. Untuk melakukan penginstallan software penulis menggunakan repository yang didapatkan secara online, sebenarnya bisa juga menggunakan media DVD yang berisi repository ubuntu, namun penulis lebih memilih menggunduh secara online karena software nya biasanya lebih terbarui dibandingkan menggunakan media offline (dvd). Untuk memperlancar dan mempercepat proses pengunduhan penulis mengubah letak repository standar ke repository local dalam hal ini berada di Indonesia.
Berikut dibawah ini adalah langkah-langkah yang penulis lakukan untuk merubah repository:
Melalui terminal:
1.    Menjalankan perintah : sudo nano /etc/apt/sources.list
2.    Masukkan password root, password yang di isikan pada saat installasi pertama.
3.    Menghapus seluruh baris pada file tersebut dan mengganti dengan baris-baris pada server repository local.

Berikut repository untuk Ubuntu lucid:
·         deb http://kambing.ui.ac.id/ubuntu/ bionic main restricted
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-updates main restricted
·         deb http://kambing.ui.ac.id/ubuntu/ bionic universe
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-updates universe
·         deb http://kambing.ui.ac.id/ubuntu/ bionic multiverse
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-updates multiverse
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-backports main restricted universe multiverse
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-security main restricted
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-security universe
·         deb http://kambing.ui.ac.id/ubuntu/ bionic-security multiverse

4.    Melalui terminal masukkan perintah berikut:
sudo apt-get update
sudo apt-get upgrade
Melalui perintah diatas secara otomatis system akan mengecek file-file repository proses ini akan memakan waktu beberapa menit, tunggu sampai proses ini selesai.

G. Instalasi Perangkat Lunak Pendukung Utama
Remastersys sebenarnya adalah utilitas yang digunakan untuk melakukan fungsi back-up sistem menjadi sebuah Live-CD/DVD. Aplikasi ini secara default tidak terdapat pada paket repository resmi ubuntu. Untuk itu sebelum menginstall nya terlebih dahulu harus menambahkan daftar repository. Melalui terminal masukan perintah sebagai berikut
sudo gedit /etc/apt/sources.list
Dilanjutkan dengan perintah:
sudo apt-get install remastersys

H.  Memodifikasi Paket-Paket Yang Ada
Ubuntu versi Desktop adalah sebuah distro linux yang dalam proses penginstallannya tidak menyediakan opsi pilihan paket apa saja yang akan di install dan tidak di install, hingga pada saat kita menginstall Ubuntu ke system maka semua aplikasi yang terdapat di Live CD akan secara otomatis terinstall juga di system yang baru, hal ini tentunya menguntungkan karena kita tidak direpotkan lagi untuk menginstallanya, namun ada beberapa aplikasi bawaan standar dan file-file yang menurut sebagian pengguna tidak diperlukan lagi dan harus dibuang.
Pemilihan aplikasi ini harus disesuaikan dengan tujuan dari pembuatan distribusi baru tersebut, dimana sebagai Contoh disini saya akan membuat sebuah ditribusiyang memiliki fitur Multimedia lengkap . Dimana dalam Distribusi saya menginginkan Distro yang saya buat nanti bisa digunakan langsung untuk memutar file .MP3, .MP4 dan multimedia lainnya. Maka disini saya akan menginstall paket yang diperlukan dalam hal ini Codec Multimedia, VLC media Player dan Audiocious atau XMMS sebagai player MP3, dan paket lainnya. Proses penginstallan paket ini dapat dilakukan melalui perintah di terminal atau melalui synaptic package manager, sesuai kebiasaan.
Beberapa paket aplikasi yang kita inginkan mungkin tidak terdapat di repository resmi dan harus menambahkannya secara manual. Alternatif lain yang dapat dipilih untuk menginstall paket adalah melalui terminal, dapat dilakukan dengan mengetikan perintah dibawah ini pada terminal:
sudo apt-get install nama-paket-aplikasi
sudo aptitude install nama-paket-aplikasi
Kadang kali aplikasi yang kita inginkan tidak tersedia tidak tersedia untuk distribusi yang kita gunakan sebagai basis dasar dalam hal ini Debian, Hingga kita diharuskan meng installnya secara manual melalui paket binarynya ataupun source nya. Untuk menginstall paket debian secara manual pada terminal dapat menggunakan perintah:
sudo dpkg -i nama-paket-aplikasi.deb
Untuk file binary dapat menggunakan perintah
sudo sh nama-paket-aplikasi.sh
sudo ./nama-paket-aplikasi.bin

I.     Memastikan Aplikasi Yang Telah Terinstall Dapat Berjalan Dengan Baik
Hal ini di lakukan untuk memastikan bahwa semua aplikasi yang telah terinstall dapat berjalan dan berfungsi secara normal tanpa ada pesan kesalahan. Untuk melakukan pengetesan ini cukup dengan menjalankan aplikasi yang ingin diuji lalu menjalankan fungsinya. Aplikasi yang terinstall dapat dijalankan melalui pintasan yang terdapat di start menu maupun perintah melalui terminal. Dalam proses ini kita juga bisa memberikan shortcut untuk aplikasi yang belum memiliki pintasan dan harus dipanggil melalui terminal untuk menjalankannya
sebagai contoh disini saya ingin membuat permanent shortcut untuk memanggil aplikasi free pascal buka gedit:
[Desktop Entry]
Encoding=UTF-8
Name=Free Pascal
Comment=Free Pascal IDE for Linux
Exec=/usr/bin/fp
Terminal=true
Type=Application
Icon=/usr/share/icons/fp.png
StartupNotify=true
Categories=Application;IDE;Development;
MimeType=text/x-pascal;
Simpan dengan nama fp.desktop (extension .desktop) simpan di /usr/share/applications secara otomatis aplikasi itu akan muncul di startmenu sesuai dengan kategori, disini programming. Untuk yang belum terbiasa bisa menggunakan fasilitas edit menu, yang juga akan melakukan hal yang sama dengan tampilan yang lebih mudah dimengerti. Namun hasil akhrinya tetaplah sama.
Dianjurkan ketika selesai menginstall semua aplikasi untuk merestart sistem, hal ini dikarenakan beberapa aplikasi membutuhkan beberapa servis di load ulang untuk berjalan dengan benar, yang biasanya diaktifkan pada saat sistem boot kembali.

J.    Merubah Tampilan GNU/Linux Yang Akan Diremaster
Merubah tampilan yang dimaksud disini adalah merubah segala macam atribut atau logo bawaan milik distro basis menjadi sesuai dengan yang kita inginkan, dan nantinya juga perubahan tampilan yang kita lakukan secara otomatis akan menjadi tampilan themes standar pada waktu distribusi GNU/Linux yang kita buat dijalankan secara live maupun ketika selesai diinstall sistem dan membuat user baru, Perubahan tampilan tersebut meliputi.
1.    Tampilan desktop
Melakukan perubahan desktop sesuai dengan yang telah di rencanakan, perubahan ini meliputi settingan taskbar, background desktop, posisi start menu tampilan waktu dan icon-icon pintasan yang terdapat pada desktop. Agar perubahan yang kita lakukan tersebut dapat di terapkan pada iso hasil remaster dan diterapkan pada semua user baru yang akan di buat,
perlu diketahui sebelumnya bahwa di sistem GNU/Linux, terdapat folder atau lokasi yang hanya dapat diakses oleh user yang ditentukan dan file yang bisa diakses oleh semua user yang dibuat pada sistem tersebut termasuk akun root, dengan default hak akses read only kecuali root.
Setiap perubahan yang anda lakukan pada tampilan desktop anda yang bisa dilakukan tanpa mengharuskan untuk mengisi password root seperti menginstall themes dan menambah wallpaper, tersimpan pada folder user tersebut, yang secara default berada pada:
/home/nama_user
Semua folder yang menyimpan file dan settingan tersebut memiliki atribut hidden (tersembunyi) ditandai dengan titik diawal folder.
Setelah menyelesaikan semua perubahan di desktop dengan themes dan segala atributnya, saatnya membuat perubahan itu permanen dan dapat dilihat juga pada Live CD yang nanti dijalankan maupun ketika sudah di install.
Langkah yang pertama harus dilakukan adalah mengcopykan semua themes yang berada di folder user (home) ke folder sistem berbagi (/usr/share/ untuk itu anda bisa melakukan hal sebagai berikut, cara ini merupakan cara alternatif yang penulis dapatkan (cara lain mun- gkin bisa anda coba dengan tujuan yang sama:
a.       Memindahkan semua file yang akan dijadikan background ke
/usr/share/backgrounds
b.      Memindahkan semua file icon yang akan dijadikan themes ke
/usr/share/icons
c.       Memindahkan semua themes ke
/usr/share/themes
d.      Memindahkan semua icons dan cursors ke
/usr/share/icons

Referensi:
 

Sistem Operasi 2B


CLI LINUX



A.  Dasar Teori
Command line atau baris perintah adalah instruksi-instruksi yang disediakan oleh OS yang dieksekusi dari terminal dengan cara mengetikkan perintah dan diakhiri “enter”. Meskipun sekarang ini GNU/Linux sudah memiliki desktop environment yang menawan, contohnya GNOME dan KDE, akan tetapi command line tidak bisa ditinggalkan. Command line merupakan cara yang lebih efisien untuk melakukan suatu pekerjaan, oleh karena itu pengguna GNU/Linux masih menggunakan cara ini untuk bekerja. Oleh karena itu pada praktikum kali ini di awali dengan perintah dasar sebagai dasar pada untuk keseluruhan praktikum sistem operasi. Berikut adalah contoh perintah dasar yang sering dipakai oleh pengguna linux.
Contoh:
Praktikum:$ ls -1

Contoh diatas “ls” merupakan perintah untuk menampilkan konten dari sebuah direktori aktif, dengan opsi “-l” (use a long listing format). Untuk memudahkan pengguna dalam menggunakan perintah baris disediakan pula sebuah bantuan yang berisi informasi lengkap tentang perintah dan opsi-opsinya. Cara untuk mengakses bantuan terhadap sebuah perintah sebagai berikut.
Contoh:

Banyak sekali baris perintah pada GNU/Linux pada praktikum ini akan dipelajari beberapa yang sering dan sangat berguna jika kita mengoperasikan sistem GNU/Linux.

B.  Syntax  Perintah Linux
Secara umum perintah-perintah linux dan UNIX memiliki sintaks sebagai berikut:
Perintah [option…] [argumen…]
Keterangan:
1.    Option merupakan pilihan yang dapat kita gunakan untuk memberikan hasil tertentu dari suatu perintah.
2.    Argumen merupakan sesuatu yang akan diproses oleh perintah, misalnya nama file atau nama direktori.
3.    Tanda kurung siku [] merupakan simbol bahwa option dan argumen tidak harus selalu digunakan dalam menjalankan perintah.
4.    Tanda titik-titik (&) menandakan bahwa baik option maupun argumen dapat lebih dari satu.
Semua perintah dalam Linux bersifat case sensitive, artinya huruf besar dan kecil berbeda artinya. Jadi LS akan dianggap berbeda dengan ls.
a.    Logout
Untuk keluar dari user yang sedang login, anda dapat mengetikkan perintah logout. Contoh:

b.    Virtual terminal
Beberapa user dapat melakukan login pada sebuah PC atau seorang user dapat melakukan beberapa kali login yang sama pada sebuah PC. Hal ini dapat dilakukan dengan mengunakan terminal virtual. Untuk berganti terminal dugunakan tombol: Alt+Fx, x adalah nomor terminal.
Contoh: jika saat ini anda berada pada mode teks dan pada terminal 1 (F1), maka untuk pindah ke terminal lainya, tekan tombol:
Alt+F2: pindah ke terminal 2.
Alt+F3: pindah ke terminal 3, dan seterusnya.
c.    Merestart system
Untuk merestart system, anda dapat menggunakan perintah rebbot dan init 6.
d.   Mematikan system
Untuk mematikan system, anda dapat menggunakan perintah shutdown, halt, init 0, atau power off.
e.    Membatalkan perintah
Anda dapat membatalkan sebuah perintah yang anda berikan pada saat sistem sedang memprosesnya. Utnuk membatalkan proses tekan tombol Ctrl+c atau Ctrl+z.
f.     Info
Membaca dokumentasi dari sebuah perintah. Format: info perintah yang diinginkan, namun tidak semua distro menyediakan perintah info.
g.    Help option
Yang dimaksudkan dengan help option adalah sebuah option yang dapat digunakan untuk mendapatkan informasi singkat dari sebuah perintah. Format: perintah-yang-diingikan #help.
h.    Informasi sistem
Menampilkan informasi sistem. Sistem yang dimaksud adalah versi kernel yang digunakan, sistem operasi, platform dan lainnya. Perintah yang digunakan adalah uname. Format: uname option.
i.      Menampilkan identitas komputer
Identitas komputer yang dimaksud adalah nama komputer yang sedang digunakan. Perintahnya adalah hostname. Format: hostname options
j.      Menampilkan direktori aktif
Direktori aktif adalah letak direktori tempat anda bekerja saat ini. Misalnya jika saat ini anda berada pada direktori data, maka direktori data disebut direktori aktif. Sebenarnya, tanpa menggunakan sebuah perintah pun kita dapat mengetahui posisi direktori aktif. Contohnya, jika terminal anda menunjukkan seperti:

Maka posisi direktori aktif berada pada direktori home. Tetapi, terkadang model tampilan terminal tidak seperti pada Contoh sehingga menyulitkan untuk mengetahui posisi direktori aktif. Untuk itu digunakan perintah pwd. Format: pwd
k.    Melihat isi direktori
Anda dapat melihat isi dari direktori aktif atau isi direktori lain dengan menggunakan perintah ls. Format: ls
l.      Berpindah direktori
Dalam sistem linux banyak sekali terdapat direktori. Anda dapat berpindah-pindah ke direktori-direktori tersebut dengan menggunakn perintah cd. Format: cd direktori-yang-dituju
m.  Menghapus direktori
Direktori dapat dihapus dengan dengan menggunakan perintah rmdir. Format: rmdir option direktori-yang-akan-dihapus.
n.    Membuat file
Anda dapat membuat sebuah file dengan perintah touch. File yang dihasilkan dengan perintah ini adalah file kosong yang tidak berisi apa-apa. Format: touch option nama-file-baru.
o.    Mengcopy file
Jika diperlukan, anda dapat mengcopy sebuah file dengan menggunakan perintah cp. Format: cp option file-asli file-copy-an.
p.    Melihat izin akses
Setiap file linux memiliki status izin akses file (file permission). Maksudnya setiap file memiliki informasi untuk mengatur siapa saja yang berhak untuk membaca, menjalankan atau mengubah file tersebut. Tujuannya adalah unuk menjaga privasi file, keamanan serta integritas sistem agar tidak terganggu.
Untuk mengetahui izin akses suatu file dapat digunakan perintah ls dengan option -1.
Contoh:
Pada tampilan tersebut, terdapat 9 kolom.
-rw –r -r- : ini adalah izin akses file
1: link file
smuet: pemilik file
smuet: nama group pemilik file
206: ukuran file
2008-08-29: tanggal pembuatan file
20:55: jam pembuatan/modifikasi file
file2: nama file
perizinan file dan direktori dibagi atas 3 macam akses, antara lain:
READ(r) membaca fiel atau direktori
WRITE(w) menulis dan menciptakan file atau direktori
EXECUTE(x) mengeksekusi file atau memasuki directori
Kepemilikan file dan direktori dibagi atas 3 macam kepemilikan, antara lain:
Owner (u) yaitu user tertentu
Group (g) yaitu group tertentu
Othera (o) yaitu owner atau group diatas
atau juga bisa digunakan singkatan a untuk mewakili ugo
Untuk izin akses file terdapat 10 digit karakte, yang dibagi menjadi tiga kelompok.
q.    Melihat pemilik file dan group
Untuk melihat kepemilikan suatu file dan group, gunakan perintah ls dengan option -1.
Terlihat nama smuet yang pertama adalah pemilik file dan nama arie yang kedua adalah nama groupnya. Secara default sama seperti nama pemilik file.
r.     Menampilkan user
who digunakan untuk menampilkan user yang login ke system. Format: who [option] & [file|arg1 arg].
s.     Membuat group
Group yang dimaksud adalah kelompok user yang saling bergabung dan mempunyai ketentuan tersendiri di kelompoknya. Setiap kali user baru dibuat, secara default sistem akan membuat sebuah group yang namanya sama dengan nama user tersebut. Selain group yang dibuat secara default oleh system, kita juga bisa juga membuat group baru. Perintah yang digunakan adalah groupadd. Format: groupadd [option...] nama-grup-baru.
t.     Menghapus group
Group yang ada dapat dihapus. Gunakan perintah groupdel.


Link Youtube:
https://youtu.be/TW3Xy6xl4eE

Referensi:
Golepi. 2018. Contoh system operasi berbasis GUI dan CLI serta Penjelasnnya. [Online]. Tersedia: https://www.golepi.com/2018/01/contoh-sistem-operasi-gui-dan-cli.html





TB Keamanan Jaringan

SQL INJECTION A.   Pengertian SQL injection atau biasa yang dikenal dengan sebutan SQLi adalah suatu teknik penyerangan web dengan m...